c语言课设.docx
- 文档编号:8773868
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:189.77KB
c语言课设.docx
《c语言课设.docx》由会员分享,可在线阅读,更多相关《c语言课设.docx(18页珍藏版)》请在冰豆网上搜索。
c语言课设
┊┊
课程设计
目录
C语言课程设计成绩评定表1
自本102班C语言课程设计任务书2
程序基本框架结构图3
程序设计说明书4
源代码清单5
课程设计总结13
┊┊
C语言课程设计成绩评定表
班级
自本102
学号
06
姓名
郭禹婷
项目组
第一小组
项目组长
陈饶之
项目组组员
郭禹婷李雪孙得栋赵中国李岳峰
本人工作简介:
在这次课程设计中,我组的任务是设计通讯录管理系统我个人的工作是设计模块的是读取通讯录。
我通过不断运行与修改,及在组长的帮助下,顺利完成了通讯录的读取部分。
对c语言有了不同于以往的理解。
组长评语:
在一周的课程设计中,该同学主动承担了模块的读取文件编写的工作。
同时能积极的与其他组员进行交流和讨论。
工作认真负责,与其他组员配合默契,充分的利用了课堂与课余时间,表现优秀。
成绩评定标准
A
B
C
D
E
理论基础
很好
好
比较好
一般
不好
报告完成情况
很好
好
比较好
一般
不好
纪律表现
很好
好
比较好
一般
不好
程序创意
很好
好
比较好
一般
不好
所选模块完成情况
很好
好
一般
较差
不好
所选算法难易程度
复杂
比较复杂
一般
简单
很简单
程序可操作性
很好
好
一般
较差
不好
答辩表现
很好
好
一般
较差
不好
最后成绩
优秀
A>=5
B<=3
C<=0
D=0
E=0
良好
A>=3
B<=4
C<=1
D=0
E=0
中等
A>=1
B>=2
C>=4
D<=1
E=0
及格
A=0
B=0
C<=4
D>=4
不及格
A=0
B=0
C=0
D<=4
E>=4
负责指导教师:
(签名)
指导教师:
(签名)
自本102班C语言课程设计任务书
一、设计目的
通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。
二、设计要求
1、认真查阅参考书、资料2、遵守课程设计时间安排
3、按时上机,认真调试程序4、认真完成课程设计报告
三、课设报告装订内容及顺序
1、课程设计封皮2、目录
3、课程设计成绩评定表4、课程设计任务书
5、程序基本框架图6、程序设计说明书
7、源代码清单8、课设总结与心得
四、设计题目
●通讯录管理系统
五、时间安排(一周:
从6月13日到6月17日)
1、查阅资料及程序设计(1天)2、程序编制及调试(3天)
3、成绩评定(0.5天)3、打印报告(0.5天)
六、参考文献
1、《C语言程序设计》李淑华/李贞编大连理工大学出版社
2、《C语言程序设计》孙连科/姚大鹏编辽海出版社
3、《C++时尚编程百例》网冠科技编.机械工业出版社
4、《TURBOC实用大全》徐金梧等编.机械工业出版社
程序基本框架结构图
程序设计说明书
一、程序运用的语句:
Switch语句,
For语句,
If语句。
二、程序构思:
程序通过运用switch语句实现各种功能的选择,通过for(;;)有限循环实现联系人的添加,通过for循环语句实现联系人的显示,通过字符串的比较实现联系人的查找。
程序的亮点在于其简单易于操作,便于各种功能的顺利运行,而且程序的所有函数都在我们的知识范围之内,便于程序的调试和完善。
可移植性良好。
三、程序功能简介
本程序有添加联系人,查找联系人,删除联系人,显示,编辑,读取保存功能。
(一)、添加联系人:
定义全局变量,结构体指针,采用for有限循环进行输入。
(二)、查找联系人:
利用字符串的比较功能(strcmp),For循环语句和输出函数(printf)实现该功能。
(三)、删除联系:
利用字符串的比较,字符串拷贝,If语句,For循环实现该功能,全局变量n自减改变记录条数。
(四)、显示:
利用全局变量n,For循环语句实现该功能。
(五)、编辑:
利用字符串的比较,字符串的拷贝,switch语句,全局变量n和for循环,把记录内容显示。
(六)、读取:
利用文件指针,文件打开函数fopen(),switch语句,fseek()函数,定位函数rewind()来实现。
(七)、保存:
利用文件指针,switch语句,以及一些文件操作实现该功能。
源代码清单
#include
#include
#include
#include
typedef
structTongxun
{
charname[40];
charage[40];
charphone[40];
charqq[40];
charemail[40];
charaddress[40];
}TX;
TXstu[400];
TX*p=stu;
intn=0;
charS[50];
charS1[50];
voidAdd(TXstu[])
{
inti,m;
printf("添加联系信息\n");
printf("请输入添加联系人的个数:
");
scanf("%d",&m);
for(i=n;i {printf("输入序号: %d\n",i+1); printf("姓名: "); scanf("%s",&(p+i)->name); printf("年龄: "); scanf("%s",&(p+i)->age); printf("电话: "); scanf("%s",&(p+i)->phone); printf("QQ: "); scanf("%s",&(p+i)->qq); printf("邮箱: "); scanf("%s",&(p+i)->email); printf("家庭住址: "); scanf("%s",&(p+i)->address); } n=n+m; printf("添加成功,按任意键返回"); getch(); } voidSearch(TXstu[]) {inti,j,k=1; charName[40]; printf("请输入要查询的姓名: "); scanf("%s",Name); for(i=0;i { j=strcmp(Name,stu[i].name); if(j==0) {printf("成功找到\n"); printf("姓名: %s,年龄: %s,电话: %s,QQ: %s,邮箱: %s,家庭住址: %s\n", (p+i)->name,(p+i)->age,(p+i)->phone,(p+i)->qq,(p+i)->email,(p+n)->address); k=0; } } if(k! =0) { printf("对不起,未发现要查找的信息\n"); } printf("按任意键返回"); getch(); } voidDelete(TXstu[]) {inti,j,m,k=1,judge; charName[40]; printf("请输入要删除的姓名: "); scanf("%s",Name); for(i=0;i { j=strcmp(Name,stu[i].name); if(j==0) {printf("确实要删除此条信息? 是: 1;否: 其他: "); scanf("%d",&judge); { if(judge==1) { for(m=n-1;m>i;m--) { strcpy(stu[m-1].name,stu[m].name); strcpy(stu[m-1].age,stu[m].age); strcpy(stu[m-1].phone,stu[m].phone); strcpy(stu[m-1].qq,stu[m].qq); strcpy(stu[m-1].email,stu[m].email); strcpy(stu[m-1].address,stu[m].address); printf("保存文件后删除成功\n"); n=n-1; } k=0; } } } } if(k! =0) { printf("对不起,未发现要删除的信息\n"); } printf("按任意键返回"); getch(); } voidEdit(TXstu[]) { inti,j,k=1,num,num1; charName[40]; charEditor[40]; printf("请输入要修改的信息姓名: "); scanf("%s",Name); for(i=0;i { j=strcmp(Name,stu[i].name); if(j==0) { printf("\n"); printf("选择修改项目\n"); printf("1、姓名\n"); printf("2、年龄\n"); printf("3、电话\n"); printf("4、QQ\n"); printf("5、邮箱\n"); printf("6、家庭住址\n"); printf("0、返回\n"); printf("\n"); while(num1! =0) {printf("您要选择: "); scanf("%d",&num); switch(num) { case0: num1=0;break; case1: { printf("输入新的名字: "); scanf("%s",Editor); strcpy(stu[i].name,Editor); Editor[0]='\0'; }break; case2: { printf("输入新的年龄: "); scanf("%s",Editor); strcpy(stu[i].age,Editor); Editor[0]='\0'; }break; case3: { printf("输入新的电话: "); scanf("%s",Editor); strcpy(stu[i].phone,Editor); Editor[0]='\0'; }break; case4: { printf("输入新的QQ: "); scanf("%s",Editor); strcpy(stu[i].qq,Editor); Editor[0]='\0'; }break; case5: { printf("输入新的邮箱: "); scanf("%s",Editor); strcpy(stu[i].email,Editor); Editor[0]='\0'; }break; case6: { printf("输入新的家庭住址: "); scanf("%s",Editor); strcpy(stu[i].address,Editor); Editor[0]='\0'; }break; } } } } printf("按任意键返回"); getch(); } voidDisplay(TXstu[]) {inti; for(i=0;i {printf("记录: %d\n",i+1); printf("姓名: %s,年龄: %s\n电话: %s,QQ: %s,邮箱: %s\n家庭住址: %s\n",(p+i)->name,(p+i)->age,(p+i)->phone,(p+i)->qq,(p+i)->email,(p+i)->address); } printf("按任意键返回"); getch(); } voidType(TXstu[]) { inti,j; FILE*fp; printf("输入原通讯录的文件名以及路径: "); scanf("%s",S); fp=fopen(S,"rb"); if(fp==NULL) { printf("没有找到文件是否建立新文件: 1、是2、否: "); scanf("%d",&j); switch(j) { case2: exit (1);break; case1: {S[0]='\0'; printf("请输入要新建的文件名以及路径: "); scanf("%s",S); fp=fopen(S,"wb");break; } } } else {rewind(fp); fscanf(fp,"%d",&n); for(i=0;i {fseek(fp,2+i*240,SEEK_SET); fread(p+i,1,240,fp); } } fclose(fp); } voidSave(TXstu[]) {intx,y; FILE*fp1; printf("1、保存2、另存为"); scanf("%d",&x); switch(x) { case1: fp1=fopen(S,"wb");break; case2: { printf("请输入要保存的文件名以及路径: "); scanf("%s",S1); fp1=fopen(S1,"wb"); }break; } rewind(fp1); fprintf(fp1,"%d",n); for(y=0;y {fseek(fp1,2+y*240,SEEK_SET); fwrite(p+y,1,240,fp1); } fclose(fp1); } voidMenu() { printf(": : ∴★∵**☆欢迎来到通讯录**☆.∴★∵**☆\n"); printf(": : ∴★∵**☆.∴★∵*主菜单∴★∵**☆.∴★∵**☆∴.\n"); printf("1、添加联系人\n"); printf("2、查找联系人\n"); printf("3、删除联系人\n"); printf("4、显示通讯录\n"); printf("5、编辑通讯录\n"); printf("6、读取通讯录\n"); printf("7、保存通讯录\n"); printf("0、退出\n"); } voidmain() {inti=1,a,j; Type(stu); while(i! =0) {system("cls"); Menu(); printf("请输入要操作的选项: "); scanf("%d",&a); switch(a) { case1: Add(stu);break; case2: Search(stu);break; case3: Delete(stu);break; case4: Display(stu);break; case5: Edit(stu);break; case6: Type(stu);break; case7: Save(stu);break; case0: i=0;break; } } printf("是否要保存修改: 1、是2、否"); scanf("%d",&j); switch(j) { case1: Save(stu);exit(0);break; case2: exit(0);break; } printf("%d\n",n); } 课程设计总结 在忙碌的学习和工作后,我们终于完成了属于我们自己的C语言程序设计。 在本次课程设计,使我对计算机C语言内容有了更深一步的熟悉深化,在理论的基础上,进行实践研究。 我们通过自己亲自动手实践中查缺补漏,完善学习。 分工合作进行,大家互帮互助,并且在组长的领导下,我们的工作完成得很顺利,也条学会了更多的知识。 深深的懂得了编程不是一见很容易的事情。 学习C语言,它对于我们,特别是初学者的我们来说更是有一顶挑战性的课程,但是只要我们努力的去学习研究,一切问题终究会被我们所解决,我们只要是用心去学习了,我们就会有收获。 在大家密切的配合下,同学之间取长补短,顺利的完成了所分配的任务.虽然期间有很多波折,但在团体精神的鼓舞下,在组长的带动下,我负责的是通讯录的读取顺利完成,组员的努力合作充分发挥团队的力量,集体的作用,使本次设计圆满的完成了。 这次实训设计,在程序设计的中,我遇到了好多的问题,有时竟会因为一个小小的疏忽让以前所有的设计都前功尽弃。 但是我没有放弃,我的组员们也尽力的帮助我,让我在重重困境里获得了成功。 虽然一些问题的出现阻碍了设计的进度,但在解决问题的过程中让我明白了好多新知识,从而也锻炼了自己的耐力,更加深了我和同学之间的友谊一周的实训,不仅仅检验了我一直以来的学习情况,还加深了我对这门知识的进一步理解,在今后的学习中,我们不仅要牢记书本知识,掌握理论,而且还应学会把理论联系实际中,充分运用所学到的知识,让我们所学的知识能够更好的发挥起作用。 这次实训不仅增强了我对计算机程序设计这门科学的热情和信心,同时更加增强了我们的动手能力和应用能力,丰富了我们的实践经验,让我们在今后的学习和工作中能更好的发挥自己的能力.。 在老师的指导和组员同学的帮助下,虽然出现的问题都被一一解决了,但也让我清楚的明白: 自己对这门知识的掌握还不够,还有很多不足的地方,以后应更加的努力学习. 在以后的生活中、,我们会学习更多的知识,也会运用更多的知识, 在课程设计过程中,我学到了很多书本上没有的知识,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,无论面对什么问题,都以平常心去对待,因为黑夜终将过去,我们收获的会是黎明。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言