C语言课程设计分析报告_第1页
C语言课程设计分析报告_第2页
C语言课程设计分析报告_第3页
C语言课程设计分析报告_第4页
C语言课程设计分析报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课程设计报告作者:日期:C语言课程设计论文学生姓名:陈丹学生学号: 20091020101所在班级:信息与计算科学一班任课教师:马老师通讯录管理系统【设计目的】设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。数据包括:人名、工作单位、电话号码和E-mail地址。可对记录中的姓名和电话号码进行修改。可增加或删除记录。可显示所有保存的记录。可按人名或电话号码进行查询。【设计思路】根据要求,电话簿数据以文本文件存放在文件中,故需要提供文件的输入、 输出等操作;还需要保存记录以进行修改, 删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。【总体设计】【详细设计】1.

2、主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2.主函数流程图Void menu()int n, w1;void en ter();doputs(t* * puts(tttt1.puts(tttt2.puts(tttt3.puts(tttt4.puts(tttt5.puts(tttt6.puts(tttt7./*主界面*/void add();void modify。;void browse(); void deleter。;void search。;菜单,*tnn);新建联系人”); 添加联系人);修改);删除);浏览);查找);退出);/*输入模块*/*添加模块*/put

3、s(nnt* *printf(请选择服务种类(1-7) : bb); scan f(%d,&n);if(n7)w仁 1;getchar();else w1=0;while(w 仁=1);switch( n)case 1: en ter(); break;case 2: add(); break;通讯录 *tn);附录:源代码#defi ne N 50#in clude#in cludestruct peoplechar n ame20; char compa ny 50; char nu m15; char mail20;peopN;void prin tf_face() printf(nt姓

4、名t单位t电话号码t邮箱n); void printf_on e(i nt i) prin tf(t%st%st%st%sn,peopi. name,pa ny ,peopi. nu m,peopi.mail); void printf_n (i nt n) int j;for(j=0;jnn1).姓名 2).单位 3).电话号码 4).邮箱5).所有数据消并返回);printf(请选择?: bb);scan f(%d,&c);if(c6|c6|c1);do switch(c) case 1: printf(n ame:); sca nf(%s,peopi. name); break;case

5、 2: prin tf(compa ny:); sca nf(%s,pa ny); break;case 3: printf(number:); scanf(%s,peopi.num); break;case 4: prin tf(e-mail:); sca nf(%s,peopi.mail); break;case 5: in put(i); break;case 6: menu();puts(nNow:n);prin tf_face();printf_on e(i);printf(n确定?nnt1).是 2).不,重新修改3).返回不保存 bb);scan f(%d,&w1);while(

6、w 仁=2);return(wl);void in put(i nt i) prin tf_face(); prin tf(t);sca nf(%st%st%st%s,peopi. name,pa ny ,peopi. nu m,peopi.mail); void save(i nt n) FILE *fp; int i;if(fp=fope n(file,wb)=NULL) prin tf(nCan not ope n filen);exit(0);for(i=0;i n;i+)if(peopi. name0!=0)if(fwrite(&peopi,sizeof(struct people)

7、,1,fp)!=1)prin tf(file write errorn);fclose(fp);void prin tf_back()int w; void browse(); void men u();prin tf(nn tA_A.Successful. A_Ann);printf(What do you want to do?nnt1).浏览所有 t2).返回:bb);scan f(%d,&w);if(w=1) browse();else menu();void mai n()void menu(); menu(); void menu()int n, w1;oid en ter();v

8、oid add();voi(od modify();void browse(); voidputs(t*菜单,* );puts(tt*1建联系人 *);puts(tt*2添加联系人 *);puts(tt*3修jz改 *);puts(tt*4删1除 *);puts(tt*5浏览 *);puts(tt*6查找 *);puts(tt*7退1 出 *);puts(nnt*通讯录* );printf(请选择服务种类(1-7):bb);deleter();void search();scan f(%d,&n); if(n7)w仁 1;getchar(); else w1=0;while(w 仁=1);sw

9、itch( n)case 1: en ter(); break;case 2: add(); break;case 3: modify(); break;case 4: deleter(); break;case 5: browse(); break;case 6: search(); break;case 7: exit(0); void en ter() int i,n;printf(How many people(0-%d)?:,N-1);scan f(%d,&n);printf(”请输入数据:n);for(i=0;i n;i+)printf(n 输入第 %d 个记录.n,i+1);in

10、 put(i);if(i!=0) save( n);prin tf_back();void add() in t i,n ,k,t;n=load();printf(How many people do you want to add(0-%d)?:,N-n-1);scan f(%d, &t);k=n+t;for(i=n; ik;i+) printf(n 输入第 %d 个记录.n,i-n+1);input(i);save(k);prin tf_back();void modify() struct people s; int i,n ,k,w0=1,w1,w2=0;n=load();do k=-

11、1; prin tf_face(); printf_n(n);do prin tf(nnEn ter n ame that you want to modify! nN ame:);sca nf(%s,s .n ame);for(i=0;i n; i+)if(strcmp(s .n ame,peopi. name)=0) k=i; s=peopi;if(k=-1) prin tf(nn 没有记录请重新输入!);while(k=-1);prin tf_face();printf_on e(k);w1=modify_data(k ,n);if(w1=1) printf(ntSuccessful A

12、_A.nn是否继续?nnt1).是 2).保存返回 t bb);sca nf(%d,&w0);w2=1;elsew0=0;if(w2=0) peopk=s;if(w0!=1)&(w2=1)save( n);while(w0=1); menu();!n); w2=1;bb);bb);void browse() int n;n=load();prin tf_face(); printf_n(n);printf(t 共有 %d 记录.n,n);prin tf(nPress any key to back.);getchar();menu();void search() int w0,k,i ,n,

13、w1,w2; struct people s;n=load();doprintf(请选择查找类别:1).姓名 2).电话号码 bb); scanf(%d,&w1); if(w12) printf(输入错误!请重新输入while(w2=1);if(w仁=1)do k=-1;do printf(nnEnter name that tou want to search!nName:); sca nf(%s,s .n ame);for(i=0;i n; i+)if(strcmp(s .n ame,peopi. name)=0) k=i; s=peopi; if(k=-1) prin tf(nn没有记录

14、请重新输入!);while(k=-1);prin tf_face();printf_on e(k);prin tf(nWhat do you want to do?nt1).继续2).返回菜单sca nf(%d,&w0);while(w0=1);menu();else do k=-1;do prin tf(nnEn ter nu mber that tou want to search!nNu m:); sca nf(%s,s .nu m);for(i=0;i n; i+)if(strcmp(s .nu m,peopi. num)=0) k=i; s=peopi; if(k=-1) prin

15、tf(nn没有记录请重新输入!);while(k=-1);prin tf_face();printf_on e(k);prin tf(nWhat do you want to do?nt1).继续2).返回菜单sea nf(%d,&wO);while(wO=1);menu();void deleter()struct people s; int i,n ,k,w0,w1;n=load();do k=-1;prin tf_face();printf_n(n);do printf(nnEnter name that you want to delete!nName:);sca nf(%s,s .n

16、 ame);for(i=0;i n; i+)if(strcmp(s .n ame,peopi. name)=0) k=i; s=peopi; if(k=-1) prin tf(nn 没有记录请重新输入!);while(k=-1);prin tf_face(); printf_on e(k);printf(n 确定?nt1).是 2).返回 bb);scan f(%d,&w0);if(w0=1) peopk .n ame0=0; save( n);else break;prin tf(ntA_A.SuccessfulA_A.n);printf(What do you want to do?nt1

17、).继续2).返回bb);scan f(%d,&w1);while(w 仁=1);menu();【设计体会】通过为期一周的课程设计,我们对 C语言这门课程有了更深一步的了解。它是计算机程 序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道, 要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握 书本上的东西。运用C语言中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系.统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。【参考文献】朱若愚数据结构M.北京:电子工业出版社,2006.1:41-65晋良颍数据结构M.北京:人民邮电出版社,2007.05: 21-45刘大有.数据结构M.北京:高等教育出版社,2006.3: 30-58赵文静数据结构与算法M.北京:科学出版社,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论