《课程设计论文-精品文档资料整理.doc》由会员分享,可在线阅读,更多相关《课程设计论文-精品文档资料整理.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 程序设计基础课程设计学生姓名 郑扬武所在专业电子信息工程所在班级1131任课老师陈有英实习时间2014年 6 月 22 日1 目录:一:系统需要实现的功能分析.(2)二:系统的总体设计(2)三:实习总结与心得(3)四:附录:源程序(3)一:系统需要实现的功能分析l 建立通讯录信息,信息至少包含学号,姓名,联系电话等、l 能够提供添加,删除,修改,查询通讯录信息等功能。l 能够提供按照不同查询方式查询通讯录信息的功能,如按照学号或者姓名查询信息。l 将通讯录保存在文件中。l 能够按照表格形式输出通讯录信息。二:系统总体设计1:问题分析:u 案例设计的背景为学生通讯录管理系统,根据系统需求的描述
2、,要求实现的功能包括学生通讯录的创建、显示、添加、查询、修改、删除等功能。学生的通讯信息一般包括了学号,姓名,电话号码,所属院校等内容。根据系统的要求可以把将要实现的功能模块分为学生通讯信息的记录创建,记录显示,记录添加,记录查询等独立的功能模块,分别编写各功能子函数,最后集成到主函数的界面中统一进行函数调用。2:设计思路:学生通讯录管理系统通过文本菜单进行操作,首先显示为一个主菜单界面,其菜单项分别包括创建通讯录,显示通讯录,查询记录,添加记录,修改记录,删除记录等内容,按照数字提示供用户选择各功能,节能型各子菜单项的功能操作。u 由于要开发的系统中各功能模块基本相互独立,因此考虑采用独立的
3、函数来实现个功能模块,并且个功能子函数见相互独立,通过主函数进行直接或间接的调用。u 学生的通讯信息中包含了多个属性信息,例如学号,姓名等,在整个程序代码中也将多次使用这些信息,考虑对学生的通讯录数据采用结构体定义和管理。创 建 通 讯 录显 示 通 讯 录添加通讯录删除通讯录修改通讯录通讯录保存查询通讯录学生通讯录管理系统u 根据学生通讯录管理系统的分析和设计思路,对系统的主要功能画出功能组织结构图。如下图。添加:可以添加通讯录记录,依次输入学号,姓名等,会提示是否再添加显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除人的名字,将自动删除该人的记录内容。查询:可以用姓名,学号,电话
4、三种方式查询修改:输入欲修改的人的名字后,再以此输入所需修改的信息即可保存:输入文件名(带后缀名),即可将通讯录信息保存到文件四:实习总结与心得通过这次课程设计我知道了自己在c语言方面还有很大的不足,有些语句和循环结构虽然知道是这么回事,但是不知道怎么把他们应用到实践中去,因此参考了许多质料,也学习了很多他们的方法。在编程方面还要好好的努力,不断的学习。五:源代码#include#include#includetypedef structint num; /学号char name10; /名字char tel15; /联系电话char depar20; /学院Person; Person pe
5、80; FILE *fp; int Input(); int menu_select(); void Display(); int Delete_a_record(); void Query_a_record(); void Change(); int menu_select() char c; do system(cls); printf(tt*通讯录*n); printf(tt| 1.添加纪录 |n); printf(tt| 2.显示纪录 |n); printf(tt| 3.删除纪录 |n); printf(tt| 4.查询纪录 |n); printf(tt| 5.修改纪录 |n); pr
6、intf(tt| 6.保存纪录 |n); printf(tt| 0.退出程序 |n); printf(tt请您选择(0-6):); c=getchar(); while(c6); return(c-0); int Input(Person per,int n) int i=0; char sign,x10; while(sign!=n&sign!=N) printf(t学号:); scanf(t%d,&pern+i.num); printf(t姓名:); scanf(t%s,pern+i.name); printf(t联系电话:); scanf(t%s,pern+i.tel); printf(
7、t学院:); scanf(t%s,pern+i.depar); gets (x); printf(nt是否继续添加?(Y/N)); scanf(t%c,&sign); i+; return(n+i); void Display(Person per,int n) int i; printf(-n); /*格式*/ printf(学号 姓名 联系电话 学院n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n); system(pause); int Dele
8、te_a_record(Person per,int n) char s20; int i=0,j; printf(t请输入想要删除的人的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.name,perj+1.name); strcpy(perj.tel,perj+1.tel); strcpy(perj.depar,perj+1.depar); perj.num=perj+1.num; prin
9、tf(ttt已经成功删除!n); return(n-1); void Query_a_record(Person per,int n) int m; printf(tn请选择查询方式:n); printf(t-n); printf(t| 1-姓名 |n); printf(t| 2-电话 |n); printf(t| 3-学院 |n); printf(t| 4-返回 |n); printf(t-n); printf(t请选择n); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误,重新选择:); scanf(%d,&m); if(m=1)
10、char s20; int i=0; printf(t请输入你想查询的姓名:); scanf(t%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人学号:%dn,peri.num);printf(t电话号码:%sn,peri.tel);printf(t所属学院:%sn,peri.depar); if(m=2) char s20; int i=0; printf(t输入你想查询的电话:); scanf(%s,s); while(strcmp(peri.tel,s)!=
11、0&in) i+; if(i=n) printf(t通讯录中没有此人!); return; printf(t此人学号:%dn,peri.num); printf(t此人姓名:%sn,peri.name); printf(t所属学院:%sn,peri.depar); if (m=3) char s20; int i=0; printf(t输入你想查询的学院:); scanf(%s,s); while(strcmp(peri.depar,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!); return; printf(t此人学号:%dn,peri.num); pri
12、ntf(t此人姓名:%sn,peri.name); printf(t联系电话:%sn,peri.tel); void Change(Person per,int n) char s20; int i=0; printf(t输入你想要修改的记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!); return; printf(t学号:); scanf(t%d,&peri.num); printf(t姓名:); scanf(t%d,&peri.name); printf(t电话:)
13、; scanf(t%d,&peri.tel); printf(t学院:); scanf(t%d,&peri.depar); printf(t修改成功!n); void WritetoText(Person per,int n) int i=0; FILE*fp; /定义文件指针 char filename20; /定义文件名 printf(t保存到文件n); /输入文件名 printf(t请输入要保存到的文件名n); scanf(t%s,filename); if(fp=fopen(filename,w)=NULL) printf(t无法打开文件n); system(pause); retur
14、n; fprintf(fp,*通 讯 录*n); fprintf(fp,学号 姓名 电话号码 学院n); fprintf(fp,-n); while(in) fprintf(fp,%-5dt%-8st%-13st%-20stn,peri.num,peri.name,peri.tel,peri.depar); i+; fprintf(fp,-n); fprintf(fp,*共 有 %d 条 记 录*n,n); fclose(fp); /*关闭文件*/ printf(保存成功!n); void main() /主函数 int n=0; for(;) switch(menu_select() cas
15、e 1: printf(nt添加记录到通讯录n); /*添加记录*/ n=Input(pe,n); break; case 2: printf(nttt通讯录记录表n); /*显示记录*/ Display(pe,n); system(pause); break; case 3: printf(nt从通讯录中删除记录n); /*删除记录*/ n=Delete_a_record(pe,n); printf(t); system(pause); break; case 4: printf(nt从通讯录中查找记录n); /*查找记录*/ Query_a_record(pe,n); printf(t); system(pause); break; case 5: printf(nt修改通讯录中的记录n); /*修改记录*/ Change(pe,n); printf(t); system(pause); break; case 6: printf(nt保存功能n); /*保存记录*/ WritetoText(pe,n); printf(t); system(pause); break; case 0: printf(nt谢谢使用,再见!n); /*结束程序*/ printf(ntt); system(pause); exit(0); 参考文献:C语言标准程序设计c语言程序设计谭浩强9