C语言毕业课程设计报告通讯录.docx
- 文档编号:25755032
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:27
- 大小:29.62KB
C语言毕业课程设计报告通讯录.docx
《C语言毕业课程设计报告通讯录.docx》由会员分享,可在线阅读,更多相关《C语言毕业课程设计报告通讯录.docx(27页珍藏版)》请在冰豆网上搜索。
C语言毕业课程设计报告通讯录
(此文档为word格式,下载后您可任意编辑修改!
)
《C语言程序设计》
课程设计报告书
题目:
通讯录程序设计
系别:
计算机工程系
专业:
计算机网络
设计班级:
网12
姓名:
胡玉婷
学号:
指导教师:
赵耀军、杨新爱
二○一一年六月七日
一、课程设计(论文)的内容
编写学生通讯录程序,包括以下功能模块:
1、通讯录的每一条信息包括学号、姓名、电话(字符数组)。
2、输入功能:
可以一次完成若干条信息的输入。
3、显示功能:
完成全部通讯录信息的显示。
4、查找功能:
完成按姓名查找通讯信息,并显示。
5、增加功能:
增加通讯信息。
6、删除功能:
完成按姓名删除通讯信息。
7、将通讯录信息存在文件addrbook中。
8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
二、课程设计(论文)的要求与数据
1、用C语言实现系统;
2、利用结构体数组或动态链表实现学生通讯录的数据结构设计;
3、系统具有增加,查询,删除等基本功能;
4、系统的各个功能模块要求用函数的形式实现;
5、将通讯录信息存在文件中;
6、完成设计任务并编写课程设计说明书。
7、每个同学提交源程序(*.c),可执行程序(*.exe),保存通讯录信息的文件addrbook,课程设计说明书电子文档(word)。
每班交一张光盘,包含所有学生的资料(按学号排序),每个学生的资料放在以学号姓名命名的文件夹中。
三、课程设计(论文)应完成的工作
1.完成程序的编制、调试,并能正确运行。
2.完成课程设计说明书的编写,其内容包括
(1)封面
(2)任务书
(3)目录
(4)正文
(1)总体设计(包含几大功能模块)。
(2)详细设计(各功能模块的具体实现算法——流程图)
(3)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。
(4)调试分析(包含各模块的测试用例,及测试结果。
)
(5)总结(课程设计完成了哪些功能,还有哪些地方需要改进,及通过一周的课程设计有何收获,调试程序的体会等)
(5)参考文献
四、应收集的资料及主要参考文献
[1]谭浩强著.C程序设计(第三版).北京:
清华大学出版社,2005
[2]谭浩强著.C程序设计题解与上机指导.北京:
清华大学出版社,2005
目录
一、总体设计(包含几大功能模块)4
二、详细设计(各功能模块的具体实现算法——流程图)5
第一个函数为输入函数:
5
第二函数为显示函数:
5
第三个函数为查找函数:
5
第四为排序函数6
第五为插入函数:
6
第六删除函数.7
三、数据结构设计描述,各模块(函数)的功能介绍,参数说明等9
(一):
结构设计描述9
(二)功能介绍9
四、调试分析(包含各模块的测试用例,及测试结果)。
12
五、总结(课程设计完成了哪些功能,还有哪些地方需要改进,及通过一周的课程设计有何收获,调试程序的体会等)16
六、参考文献16
一、总体设计(包含几大功能模块)
1、输入功能
2、显示功能
3、查找功能
(1)用学号查找
(2)用姓名查找
4、删除功能
5、插入功能
6、排序功能
7、复制功能
二、详细设计(各功能模块的具体实现算法——流程图)
第一个函数为输入函数:
N-S流程图:
定义整型变量i,j.
for(i=0;i 输入学生的学号.姓名、性别。 sum=0 打开文件“score.dat” 将数据写入文件 关闭文件 第二函数为显示函数: N-S流程图: 打开文件“stu.dat” 将数据读出显示出来 关闭文件 第三个函数为查找函数: N-S流程图: 定义整型i,n,定义字符型数组 打文件“stu.dat” 将文件数据读出并确定记录个数n 关闭文件 打印“输入学号” 输入要查找的学号 输入学号分别与文件中各学号对比 是相同 不同 把这个学号对应学生资料打印出来 第四为排序函数: N-S流程图 定义整型I,j,n,结构体变量structstudenttemp 打开文件 将文件数据读出并确定记录个数n 关闭文件 for(I=0;I for(j=i+1;j strcmp(stu[i].num,stu[j].num)>0) T F 交换I,j两项 打开文件 for(I=0;I 排好n个记录写入文件 显示该记录的学号、姓名 关闭文件 第五为插入函数: N-S流程图: 定义整型i,j,n结构体变量s 打印”输入学号: ” 输入学号 打印”输入姓名: ” 输入姓名 打印”输入电话: ” 输入电话 打开文件stu.dat 将文件数据读出并确定记录个数n 关闭文件 使新记录赋给stu[n],n=n+1 打开文件 for(i=0;i 向文件输出数据并显示 关闭文件 第六删除函数. N-S流程图: 定义整形i,j,n,flag,字符数组name 打开文件stu.dat 读取文件数据并确定记录个数n 关闭文件 n=i 输入待删除学生的姓名name For(flag=1,i=0,flag&& strcmp(name,stu[i].name)==0 T F for(j=i;j 将第j+1个学生的数据移到第j个 flag=1 Flag=1 T F n=n-1 显示"没有发现" 打开stu.dat文件 for(i=0;i 将第i个学生的数据写入文件并显示 关闭文件 三、数据结构设计描述,各模块(函数)的功能介绍,参数说明等 (一): 结构设计描述 用#include 在主函数开头先声明子函数,设一界面菜单,用do-while语句实现不断执行直到选择退出。 (二)功能介绍 1输入功能 可以一次完成若干条信息的输入。 并将输入的数据保存在文件stu.dat中. 2显示功能 如,将上面的输入的数据显示出来: ********************************************************* No.namephone ********************************************************* 06693宋昌恩234567 06694王淑其234568 06695王壮辉234569 06696吴浩龙234570 ********************************************************* 3查找功能 在主函数开头先声明子函数,设一界面菜单,用do-while语句实现不断执行直到选择学号或姓名查找、还是退出。 (1)用学号查找 定义字符型数组用于输入要查找的学生学号。 如: 输入学号: 06694 显示 Inputnum: 06694 *************************************** Therecordyousearchis : No.namephone 06694王淑其234568 *************************************** (2)用姓名插入功能 用姓名查找该学生的资料: (姓名跟学号一样都是字符型,在比较输入的姓名学号都是用strcmp()实现的。 原理一样。 只是把学号换成姓名。 如: 输入姓名: 打印结果跟上一题一样。 ) 如输入姓名王淑其 显示 Inputname: 王淑其 *************************************** Therecordyousearchis : No.namephone 06694王淑其234568 *************************************** 4删除功能 按姓名删除若有两个一样的姓名则两个一起删除;删除后把新的记录写人文件并显示出来; 5增加功能 可无限的增加记录;记录后把新的记录写人文件并显示出来; 6排序功能 可根据学好由小到大排序;排序后新的记录写人文件并显示出来; 原来的记录为: 显示: *********************************** No.namephone ●********************************** 06694王淑其234568 06693宋昌恩234567 06695王壮辉234569 06696吴浩龙234570 *********************************** 排序后的结果显示: No.namephone ************************************** 06693宋昌恩234567 06694王淑其234568 06695王壮辉234569 06696吴浩龙234570 ************************************** 7复制功能 可把当前记录从stu.dat复制到别的文件; 四、调试分析(包含各模块的测试用例,及测试结果)。 1输入功能 请选择(0~7): 0 Inputscoreofstudent1: NO.: 06694 name: 王淑其 phone: 234568 Inputscoreofstudent2: NO.: 06693 name: 宋昌恩 phone: 234567 Inputscoreofstudent3: NO.: 06695 name: 王壮辉 phone: 234569 Inputscoreofstudent4: NO.: 06696 name: 吴浩龙 phone: 234570 Inputscoreofstudent5: NO.: 00 name: 陈 phone: 234571 2显示功能 请选择(0~7): 1 *********************************** No.namephone *********************************** 06694王淑其234568 06693宋昌恩234567 06695王壮辉234569 06696吴浩龙234570 00陈234571 *********************************** 3查找功能 请选择(0~7): 2 ********MENU**************************** 用学号查找. 用姓名查找 安全退出. *************************************** (1)用学号查找 请选择(8~10): 8 Inputnum: 06694 *************************************** Therecordyousearchis : No.namephone 06694王淑其234568 *************************************** (2)用姓名查找 请选择(8~10): 9 Inputname: 王淑其 *************************************** Therecordyousearchis : No.namephone 06694王淑其234568 *************************************** 4删除功能 *************************************** 请选择(0~7): 3 Inputnamedeleted: 陈 Nowthelistis: ? *************************************** No.namephone 06694王淑其234568 06693宋昌恩234567 06695王壮辉234569 06696吴浩龙234570 *************************************** 5插入功能 请选择(0~7): 4 NO.: 06697 name: 张丹萍 phone: 234572 Nowthenewlistis: *************************************** No.namephone *************************************** 06694王淑其234568 06693宋昌恩234567 06695王壮辉234569 06696吴浩龙234570 06697张丹萍234572 6排序功能 请选择(0~7): 5 *************************************** No.namephone 06693宋昌恩234567 06694王淑其234568 06695王壮辉234569 06696吴浩龙234570 06697张丹萍234572 *************************************** 五、源程序代码: #include {voidenter(void); voidlist(void); voidsearch(void); voidDelete(void); voidsort(void); voidadd(void); voidcopy(void); intm; do {printf("***************MENU*********************\n"); printf("输入资料\n"); printf("显示资料\n"); printf("查找已有的记录\n"); printf("删除一个记录\n"); printf("添加记录\n"); printf("重新排序\n"); printf("复制\n"); printf("安全退出\n"); printf("***************************************\n"); printf("\n请选择(0~7): \n"); scanf("%d",&m); switch(m) {case0: enter();break; case1: list();break; case2: search();break; case3: Delete();break; case4: add();break; case5: sort();break; case6: copy();break; case7: exit(0); default: printf("inputerror.\n");break; } }while(m! =7); } voidenter(void) {FILE*fp; inti,j; for(i=0;i {printf("\nInputscoreofstudent%d: \n",i+1); printf("NO.: "); scanf("%s",stu[i].num); printf("name: "); scanf("%s",stu[i].name); printf("phone: "); scanf("%s",stu[i].phone); } if((fp=fopen("stu.dat","wb"))==NULL) {printf("Cannotopenthefile.\n"); exit(0); } for(i=0;i if(fwrite(&stu[i],LEN,1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } voidlist(void) { FILE*fp; inti,n; if((fp=fopen("stu.dat","rb"))==NULL) {printf("Cannotopenthefile.\n"); exit(0); } for(i=0;fread(&stu[i],LEN,1,fp)! =0;)i++; n=i; for(i=0;i fread(&stu[i],LEN,1,fp); fclose(fp); printf("***********************************\n"); printf("No.\tname\tphone\n"); printf("***********************************\n"); for(i=0;i printf("%s\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].phone); printf("***********************************\n"); } voidsearch(void) {voidsea_num(void); voidsea_name(void); intb; do{ printf("**************MENU**********************\n"); printf("用学号查找.\n"); printf("用姓名查找.\n"); printf("安全退出.\n"); printf("***************************************\n"); printf("\n请选择(8~10): \n"); scanf("%d",&b); switch(b) {case8: sea_num();break; case9: sea_name();break; case10: break; default: printf("inputerror.\n");break; } }while(b! =10); printf("exit.\n"); } voidsea_num(void) {FILE*fp; inti,flag,n; charnum[10]; if((fp=fopen("stu.dat","rb"))==NULL) {printf("Cannotopenthefile.\n"); exit(0); } for(i=0;fread(&stu[i],LEN,1,fp)! =0;)i++; n=i; for(i=0;i fread(&stu[i],LEN,1,fp); fclose(fp); printf("\nInputnum: "); scanf("%s",num); for(flag=0,i=0;i {if(strcmp(num,stu[i].num)==0) {printf("***************************************\n"); printf("Therecordyousearchis\n: "); printf("No.\tname\tphone\n"); printf("%s\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].phone); flag=1; } } printf("*************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 毕业 课程设计 报告 通讯录