收藏 分销(赏)

C语言课程设计报告电话薄.doc

上传人:二*** 文档编号:4496073 上传时间:2024-09-25 格式:DOC 页数:21 大小:762KB
下载 相关 举报
C语言课程设计报告电话薄.doc_第1页
第1页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 C语言程序设计课程设计报告书 题目:通讯录程序设计系 别:计算机工程系专 业:计算机网络设计班级:网12姓 名:胡玉婷学 号:指导教师:耀军、新爱二一一年六月七日一、课程设计(论文)的容编写学生通讯录程序,包括以下功能模块:1、通讯录的每一条信息包括学号、(字符数组)。2、输入功能:可以一次完成若干条信息的输入。3、显示功能:完成全部通讯录信息的显示。4、查找功能:完成按查找通讯信息,并显示。5、增加功能:增加通讯信息。6、删除功能:完成按删除通讯信息。7、将通讯录信息存在文件addrbook中。8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!二、课程设计(论

2、文)的要求与数据1、用C语言实现系统;2、利用结构体数组或动态链表实现学生通讯录的数据结构设计;3、系统具有增加,查询,删除等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将通讯录信息存在文件中;6、完成设计任务并编写课程设计说明书。 7、每个同学提交源程序(*.c),可执行程序(*.exe),保存通讯录信息的文件addrbook,课程设计说明书电子文档(word)。 每班交一光盘,包含所有学生的资料(按学号排序),每个学生的资料放在以学号命名的文件夹中。三、课程设计(论文)应完成的工作1完成程序的编制、调试,并能正确运行。2完成课程设计说明书的编写,其容包括(1)封面(2)任务书

3、(3)目录(4)正文(1)总体设计(包含几大功能模块)。(2)详细设计(各功能模块的具体实现算法流程图)(3)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。(4)调试分析(包含各模块的测试用例,与测试结果。)(5)总结(课程设计完成了哪些功能,还有哪些地方需要改进,与通过一周的课程设计有何收获,调试程序的体会等)(5)参考文献四、应收集的资料与主要参考文献1 谭浩强著. C程序设计(第三版). :清华大学,20052 谭浩强著. C程序设计题解与上机指导. :清华大学,2005目 录一、总体设计(包含几大功能模块)4二、详细设计(各功能模块的具体实现算法流程图)5第一个函数为输入函数

4、:5第二函数为显示函数:5第三个函数为查找函数:5第四为排序函数6第五为插入函数:6第六删除函数7三、数据结构设计描述,各模块(函数)的功能介绍,参数说明等9(一):结构设计描述9(二)功能介绍9四、调试分析(包含各模块的测试用例,与测试结果)。12五、总结(课程设计完成了哪些功能,还有哪些地方需要改进,与通过一周的课程设计有何收获,调试程序的体会等)16六、参考文献16一、总体设计(包含几大功能模块)1、 输入功能2、 显示功能3、 查找功能(1)用学号查找(2)用查找4、 删除功能5、 插入功能6、 排序功能7、 复制功能二、详细设计(各功能模块的具体实现算法流程图)第一个函数为输入函数:

5、N-S流程图: 定义整型变量i,j.for(i=0;iSIZE;i+)输入学生的学号.、性别。sum=0打开文件“score.dat”将数据写入文件关闭文件第二函数为显示函数:N-S流程图:打开文件“stu.dat”将数据读出显示出来关闭文件第三个函数为查找函数:N-S流程图:定义整型i,n,定义字符型数组打文件“stu.dat”将文件数据读出 并确定记录个数n关闭文件打印“输入学号”输入要查找的学号输入学号分别与文件中各学号对比是一样不同把这个学号对应学生资料打印出来第四为排序函数:N-S流程图 定义整型I,j,n,结构体变量struct student temp打开文件将文件数据读出 并确

6、定记录个数n关闭文件for(I=0;In;I+)for(j=i+1;j0)TF交换I,j两项打开文件for(I=0;In;I+)排好n个记录写入文件显示该记录的学号、关闭文件第五为插入函数:N-S流程图: 定义整型i,j,n结构体变量s打印”输入学号:”输入学号打印”输入:”输入打印”输入:”输入打开文件 stu .dat将文件数据读出 并确定记录个数n关闭文件使新记录赋给stun,n=n+1打开文件for(i=0;in;i+)向文件输出数据并显示关闭文件第六删除函数 流程图:定义整形i,j,n,flag,字符数组name打开文件stu.dat读取文件数据并确定记录个数n关闭文件n=i输入待删

7、除学生的nameFor(flag=1,i=0,flag&n;I+)strcmp(name,stui.name)=0T Ffor(j=i;jn-1;j+)将第j+1个学生的数据移到第j个flag=1Flag=1TFn=n-1显示没有发现打开stu.dat文件for(i=0;in;i+)将第i个学生的数据写入文件并显示关闭文件三、数据结构设计描述,各模块(函数)的功能介绍,参数说明等(一):结构设计描述用#include#include命令;用宏定义SIZE以便修改学生数目;定义结构体用于输入学生数据资料。主函数,main()前不加void编译系统会提示funstion should return

8、 a value,不过不会出错。在主函数开头先声明子函数,设一界面菜单,用do-while语句实现不断执行直到选择退出。(二)功能介绍1输入功能可以一次完成若干条信息的输入。并将输入的数据保存在文件stu.dat中.2显示功能如,将上面的输入的数据显示出来:*No. name phone*06693宋昌恩 23456706694 王淑其 23456806695王壮辉 23456906696 吴浩龙 234570*3查找功能在主函数开头先声明子函数,设一界面菜单,用do-while语句实现不断执行直到选择学号或查找、还是退出。(1) 用学号查找定义字符型数组用于输入要查找的学生学号。如:输入学号

9、:06694显示Input num:06694* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *The record you search is:No. name phone06694 王淑其 234568* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *(2)用插入功能用查找该学生的资料:(跟学号一样都是字符型,在比较输入的/学号都是用strcmp()实现的。原理一样。只是把学号换成。如

10、:输入: 打印结果跟上一题一样。)如输入 王淑其显示Input name:王淑其* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *The record you search is:No. name phone06694 王淑其 234568* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *4 删除功能按删除 若有两个一样的 则两个一起删除;删除后把新的记录写人文件并显示出来 ;5 增加功能

11、可无限的增加记录;记录后把新的记录写人文件并显示出来 ;6 排序功能 可根据学好由小到大排序;排序后新的记录写人文件并显示出来 ;原来的记录为:显示:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *No. name phonel * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *06694 王淑其 23456806693宋昌恩 23456706695王壮辉 23456906696 吴浩龙 234570* * * * * *

12、 * * * * * * * * * * * * * * * * * * * * * * * * * * * * *排序后的结果显示:No. name phone* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 06693宋昌恩 23456706694 王淑其 23456806695王壮辉 23456906696 吴浩龙 234570* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 7 复制功

13、能可把当前记录从stu.dat复制到别的文件;四、调试分析(包含各模块的测试用例,与测试结果)。1输入功能请选择(07):0Input score of student1:NO.:06694name:王淑其phone:234568Input score of student2:NO.:06693name:宋昌恩phone:234567Input score of student3:NO.:06695name:王壮辉phone:234569Input score of student4:NO.:06696name:吴浩龙phone:234570Input score of student5:NO

14、.:00name:phone:2345712显示功能请选择(07):1* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *No. name phone* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *06694 王淑其 23456806693 宋昌恩 23456706695 王壮辉 23456906696 吴浩龙 23457000 234571* * * * * * * * * * * * * * * * * * * *

15、* * * * * * * * * * * * * * *3查找功能请选择(07):2* * * * * * * * MENU* * * * * * * * * * * * * * * * * * * * * * * * * * * * 8-用学号查找. 9-用查找 10-安全退出.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *(1)用学号查找请选择(810):8Input num:06694* * * * * * * * * * * * * * * * * * * * * * * *

16、* * * * * * * * * * * * * * *The record you search is:No. name phone 06694 王淑其 234568* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *(2)用查找请选择(810):9Input name:王淑其* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *The record you search is:No. na

17、me phone 06694 王淑其 234568* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *4删除功能* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *请选择(07):3Input name deleted:Now the list is:?* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

18、 * * *No. name phone06694 王淑其 23456806693 宋昌恩 23456706695 王壮辉 23456906696 吴浩龙 234570* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *5插入功能请选择(07):4NO.:06697name:丹萍phone:234572Now the new list is:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

19、No. name phone* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *06694 王淑其 23456806693 宋昌恩 23456706695 王壮辉 23456906696 吴浩龙 23457006697 丹萍 2345726排序功能请选择(07):5* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *No. name phone06693 宋昌恩 23456706694 王淑其

20、 23456806695 王壮辉 23456906696 吴浩龙 23457006697 丹萍 234572* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *五、源程序代码:#include#include#include# define SIZE 5# define LEN sizeof(struct student) struct student char num10; char name20; char phone15;stuSIZE;void main() void enter(vo

21、id); void list(void); void search(void); void Delete(void); void sort(void); void add(void); void copy(void); int m; do printf(* * * * * * * * * * * * * *MENU * * * * * * * * * * * * * * * * * * * * *n); printf( 0-输入资料n); printf( 1-显示资料n); printf( 2-查找已有的记录n); printf( 3-删除一个记录n); printf( 4-添加记录n); p

22、rintf( 5-重新排序n); printf( 6- 复制n); printf( 7-安全退出n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(n请选择(07):n); scanf(%d,&m); switch(m) case 0:enter();break; case 1:list();break; case 2:search();break; case 3:Delete();break; case 4:add();break; case 5:

23、sort();break; case 6:copy();break; case 7:exit(0); default:printf(input error.n);break; while(m!=7); void enter(void)FILE*fp; int i,j; for(i=0;iSIZE;i+) printf(nInput score of student%d:n,i+1); printf(NO.:); scanf(%s,stui.num); printf(name:); scanf(%s,stui.name); printf(phone:); scanf(%s,stui.phone)

24、; if(fp=fopen(stu.dat,wb)=NULL) printf(Can not open the file.n); exit(0); for(i=0;iSIZE;i+) if(fwrite(&stui,LEN,1,fp)!=1) printf(file write errorn); fclose(fp); void list(void) FILE*fp; int i,n; if(fp=fopen(stu.dat,rb)=NULL) printf(Can not open the file.n); exit(0); for(i=0;fread(&stui,LEN,1,fp)!=0;

25、)i+; n=i; for(i=0;in;i+) fread(&stui,LEN,1,fp); fclose(fp); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(No.tnametphonen); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); for(i=0;in;i+) printf(%st%st%sn,stui.num,stui.name,stui

26、.phone); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);void search(void)void sea_num(void); void sea_name(void); int b; do printf(* * * * * * * * * * * * * *MENU * * * * * * * * * * * * * * * * * * * * * *n); printf( 8-用学号查找.n ); printf( 9-用查找.n); printf( 10-安全退出.n);

27、 printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(n请选择(810):n); scanf(%d,&b); switch(b) case 8:sea_num();break; case 9:sea_name();break; case 10:break; default:printf(input error.n);break; while(b!=10); printf(exit.n);void sea_num(void)FILE*fp; int i,fla

28、g,n; char num10; if(fp=fopen(stu.dat,rb)=NULL) printf(Can not open the file.n); exit(0); for(i=0;fread(&stui,LEN,1,fp)!=0;)i+; n=i; for(i=0;in;i+) fread(&stui,LEN,1,fp); fclose(fp); printf(nInput num:); scanf(%s,num); for(flag=0,i=0;in;i+) if(strcmp(num,stui.num)=0) printf(* * * * * * * * * * * * *

29、* * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(The record you search isn:); printf(No.tnametphonen); printf( %st%st%sn,stui.num,stui.name,stui.phone); flag=1; printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); if(flag!=1)printf(Not found the record

30、n);void sea_name(void)FILE*fp; int i,j,flag,n; char name10; if(fp=fopen(stu.dat,rb)=NULL) printf(Can not open the file.n); exit(0); for(i=0;fread(&stui,LEN,1,fp)!=0;)i+; n=i; for(i=0;in;i+) fread(&stui,LEN,1,fp); fclose(fp); printf(nInput name:); scanf(%s,name); for(flag=0,i=0;in;i+) if(strcmp(name,

31、stui.name)=0) printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(The record you search isn:); printf(No.tnametphonen); printf( %st%st%sn,stui.num,stui.name,stui.phone); flag=1; printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

32、* * *n); if(flag!=1)printf(Not found the recordn); void sort(void)FILE*fp; int i,j,n; struct student temp; if(fp=fopen(stu.dat,rb)=NULL) printf(Can not open the file.n); exit(0); for(i=0;fread(&stui,LEN,1,fp)!=0;)i+; n=i; for(i=0;in;i+) fread(&stui,LEN,1,fp); fclose(fp); for(i=0;in;i+) for(j=i+1;j0)

33、 temp=stui; stui=stuj; stuj=temp; printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(No.tnametphonen); for(i=0;in;i+) printf(%st%st%sn,stui.num,stui.name,stui.phone); fp=fopen(stu.dat,wb); for(i=0;in;i+) fwrite(&stui,LEN,1,fp); printf(* * * * * * * * * * *

34、 * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); fclose(fp);void add(void) int i,j,n; FILE*fp; struct student s; printf(NO.:); scanf(%s,s.num); printf(name:); scanf(%s,s.name); printf(phone:); scanf(%s,s.phone); if(fp=fopen(stu.dat,rb)=NULL) printf(nCan not open the file.n); exit(0); for(

35、i=0;fread(&stui,LEN,1,fp)!=0;)i+; n=i; for(i=0;in;i+) fread(&stui,sizeof(struct student),1,fp); fclose(fp); strcpy(stun.name,s.name); strcpy(stun.num,s.num); strcpy(stun.phone,s.phone); n=n+1; printf(nNow the new list is:n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

36、* * * * *n); printf(No.tnametphonen); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); fp=fopen(stu.dat,wb); for(i=0;in;i+) fwrite(&stui,sizeof(struct student),1,fp); printf(%st%st%sn,stui.num,stui.name,stui.phone); fclose(fp);void Delete(void)FILE*fp; int i,j,

37、n,flag; char name10; if(fp=fopen(stu.dat,rb)=NULL) printf(nCan not open the file.n); exit(0); for(i=0;fread(&stui,LEN,1,fp)!=0;)i+; n=i; printf(nInput name deleted:); scanf(%s,name); for(flag=1,i=0;in;i+) if(strcmp(name,stui.name)=0) for(j=i;jn-1;j+) strcpy(stuj.name,stuj+1.name); strcpy(stuj.num,st

38、uj+1.num); strcpy(stuj.phone,stuj+1.phone); flag=0; n=n-1; printf(nNow the list is:n?); fp=fopen(stu.dat,wb); for(i=0;in;i+) fwrite(&stui,LEN,1,fp); fclose(fp); fp=fopen(stu.dat,rb); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(No.tnametphonen); for(

39、i=0;fread(&stui,LEN,1,fp)!=0;i+) printf(%st%st%sn,stui.num,stui.name,stui.phone); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); if(flag) printf(nNot found the recordn); fclose(fp);void copy(void) FILE * in,* out; if(in=fopen(stu.dat,rb)=NULL) printf(Can not open the infile.n); exit(0); if(out=fopen(stu2.dat,wb)=NULL) printf(Can not open the outfile.n); exit(0); wh

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服