C程序课程设计通讯库管理系统.doc

上传人:土8路 文档编号:10384820 上传时间:2021-05-13 格式:DOC 页数:26 大小:1.17MB
返回 下载 相关 举报
C程序课程设计通讯库管理系统.doc_第1页
第1页 / 共26页
C程序课程设计通讯库管理系统.doc_第2页
第2页 / 共26页
C程序课程设计通讯库管理系统.doc_第3页
第3页 / 共26页
C程序课程设计通讯库管理系统.doc_第4页
第4页 / 共26页
C程序课程设计通讯库管理系统.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C程序课程设计通讯库管理系统.doc》由会员分享,可在线阅读,更多相关《C程序课程设计通讯库管理系统.doc(26页珍藏版)》请在三一文库上搜索。

1、 信息科学与工程学院课程设计报告书课程名称: C程序课程设计 班 级: 自动化2010级1002班 学 号: 201004134061 课程设计报告书(一) 需求分析 设计题目:通讯录管理系统 设计要求:1.建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;2.能够提供添加、删除和修改通讯录信息的功能,并给出确认是否保存或删除记录的提示信息;3.能够提供按姓名或电话等查询并显示相应记录信息;4.将通讯录保存在文件中;5.能够按表格方式输出通讯录信息。系统功能需求分析: 包括添加,显示,查询,修改,删除,保存,退出等功能(二)概要设计 整体设计框架:通讯录添加显示查询修改

2、删除保存退出(三)详细设计 主要功能模块的算法设计思路及对应的工作流程图: 1添加模块: 2.显示模块: 3查询模块4. 修改模块 5. 删除模块6. 保存模块 (四)主要源程序代码#include #include #include #include 控制台输入输出struct contacks 定义通讯录结构体char name100; char num100; char sex100; char age100; char tel100; char address100; char e_mail100; con100;int b=0;void add(); 声明添加函数void show(

3、); 声明显示函数void search(); 声明查询函数void correct(); 声明修改函数void del(); 声明删除函数 void save(); 声明保存函数void main() 主函数输出选择菜单system(cls); int a; char i=1;while(a!=0)printf(tn);printf(t n);printf(t n);printf(t 欢迎使用通信录管理系统 n);printf(t n);printf(t n);printf(t No.1 添加通信录信息 n);printf(t n);printf(t No.2 显示通信录信息 n);prin

4、tf(t n);printf(t No.3 查询通信录信息 n);printf(t n);printf(t No.4 修改通信录信息 n);printf(t n);printf(t No.5 删除通讯录信息 n);printf(t n);printf(t No.6 保存通讯录 n);printf(t n);printf(t No.0 退出系统 n);printf(t n);printf(t n);printf(tn);printf(n 请选择(0-6):);scanf(%d, &a);switch(a)case 0:exit(0);break;case 1:add(); break;case

5、2:show();break;case 3:search(); break;case 4:correct(); break;case 5:del();break;case 6:save();break;default:printf( 您的输入有误!n);i=getchar();void add() 定义添加函数char ch100;system(cls);printf(n 请输入相关联系人的信息:n);printf(n 姓名: );scanf(%s,conb.name);printf(n 编号:);scanf(%s,conb.num);printf(n 性别:);scanf(%s,conb.s

6、ex);printf(n 年龄:);scanf(%s,conb.age);printf(n 电话:);scanf(%s,conb.tel);printf(n 地址:);scanf(%s,conb.address);printf(n e_mail:);scanf(%s,conb.e_mail);b+;printf(nn 您的信息输入已完成,输入y继续添加,输入任意键返回: );scanf(%s,ch);system(cls);if(strcmp(y,ch)=0|strcmp(Y,ch)=0)add ();elsemain();void show() 定义显示函数 system(cls);int

7、i;char a100;for(i=0;ib;i+) printf(n 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%sn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail); printf(nn 以上是您所输入的信息,输入y以表格显示,输入任意键返回:);scanf(%s,a);if(strcmp(y,a)=0|strcmp(Y,a)=0)system(cls);printf(nn); printf( 姓名 编号 性别 年龄 电话 地址 电子邮件 )

8、; for(i=0;ib;i+) printf();printf( %-9s%-9s%-9s%-9s%-12s%-12s%-12s ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail); printf();printf(nn 请按任意键返回主界面:);getch(); main(); elsemain();printf(nn 以上是您所输入的信息,请按任意键返回主界面:);getch(); main(); void search() 定义查询函数system(cls);int i,k=1;char a1

9、00;printf(nn 请输入您想要查询的方式:nn);printf( No.1 按姓名查找nn);printf( No.2 按编号查找nn);printf( No.3 按电话查找nn);printf( No.4 返回主菜单nn);printf(n 请输入1-4:);scanf(%s,a);if(strcmp(a,1)=0)system(cls);printf(nn 请输入姓名:);scanf(%s,a);for(i=0;ib;i+)if(strcmp(a,coni.name)=0)printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮

10、件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续查找,输入任意键返回: );scanf(%s,a);if(strcmp(y,a)=0|strcmp(Y,a)=0)search();elsemain(); k=0;if(k)printf(nn 对不起,您所查找的联系人不存在,请按任意键返回);getch();search();else if(strcmp(a,2)=0)system(cls);printf(nn 请输入编号:);scanf(%s,a);fo

11、r(i=0;ib;i+)if(strcmp(a,coni.num)=0)printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续查找,输入任意键返回: );scanf(%s,a);if(strcmp(y,a)=0|strcmp(Y,a)=0)search();elsemain(); k=0;if(k)printf(nn 对不起,您所查找的联系人不存在,请

12、按任意键返回);getch();search();else if(strcmp(a,3)=0)system(cls);printf(nn 请输入电话:);scanf(%s,a);for(i=0;ib;i+)if(strcmp(a,coni.tel)=0)printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续查找,输入任意键返回: );scanf(%s,

13、a);if(strcmp(y,a)=0|strcmp(Y,a)=0)search();elsemain(); k=0;if(k)printf(nn 对不起,您所查找的联系人不存在,请按任意键返回);getch();search();else if(strcmp(a,4)=0)system(cls);main();else printf(nn 您的输入有误,请按任意键返回);getch();search();void correct() 定义修改函数 system(cls);char q100;int i,k=1;printf(nn 请输入你想更改的联系人的姓名、编号或电话(填写其中一个即可):

14、);scanf(%s,q);for(i=0;ib;i+) if(strcmp(q,coni.tel)=0|strcmp(q,coni.name)=0|strcmp(q,coni.num)=0)printf(n 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(n 您想修改的是:nn);printf( No.1 姓名n);printf( No.2 编号n);printf( No.3 性

15、别n);printf( No.4 年龄n);printf( No.5 电话n);printf( No.6 地址n);printf( No.7 电子邮件n);printf(n 请输入1-7:);scanf(%s,q);if(strcmp(q,1)=0)system(cls);printf(nn 请输入新姓名:);scanf(%s,coni.name);system(cls);printf(nn 联系人信息已更改成功!);printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.se

16、x,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续修改,输入任意键返回: );scanf(%s,q);if(strcmp(y,q)=0|strcmp(Y,q)=0)system(cls);correct();else system(cls);main();else if(strcmp(q,2)=0)system(cls);printf(nn 请输入新编号:);scanf(%s,coni.num);printf(nn 联系人信息已更改成功!);printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:

17、%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续修改,输入任意键返回: );scanf(%s,q);if(strcmp(y,q)=0|strcmp(Y,q)=0)system(cls);correct();else system(cls);main();else if(strcmp(q,2)=0)system(cls);printf(nn 请输入新性别:);scanf(%s,coni.sex);printf(nn 联系人信息已

18、更改成功!);printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续修改,输入任意键返回: );scanf(%s,q);if(strcmp(y,q)=0|strcmp(Y,q)=0)system(cls);correct();else system(cls);main();else if(strcmp(q,4)=0)system(cls);printf

19、(nn 请输入新年龄:);scanf(%s,coni.age);printf(nn 联系人信息已更改成功!);printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续修改,输入任意键返回: );scanf(%s,q);if(strcmp(y,q)=0|strcmp(Y,q)=0)system(cls);correct();else system(cls)

20、;main();else if(strcmp(q,5)=0)system(cls);printf(nn 请输入新电话:);scanf(%s,coni.tel);printf(nn 联系人信息已更改成功!);printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续修改,输入任意键返回: );scanf(%s,q);if(strcmp(y,q)=0|strc

21、mp(Y,q)=0)system(cls);correct();else system(cls);main();else if(strcmp(q,6)=0)system(cls);printf(nn 请输入新地址:);scanf(%s,coni.address);printf(nn 联系人信息已更改成功!);printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn

22、输入y继续修改,输入任意键返回: );scanf(%s,q);if(strcmp(y,q)=0|strcmp(Y,q)=0)system(cls);correct();else system(cls);main();else if(strcmp(q,7)=0) system(cls);printf(nn 请输入新e_mail:);scanf(%s,coni.e_mail);system(cls);printf(nn 联系人信息已更改成功!);printf(nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni

23、.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);printf(nn 输入y继续修改,输入任意键返回: );scanf(%s,q);if(strcmp(y,q)=0|strcmp(Y,q)=0)system(cls);correct();else system(cls);main();else printf(nn 您的输入有误,请按任意键返回);getch();search();k=0;if(k)printf(nn 对不起,没有找到相关联系人的信息,是否继续修改?nn 输入y继续,输入任意键返回: );scanf(%s,q);i

24、f(strcmp(y,q)=0|strcmp(Y,q)=0)system(cls);correct();elsesystem(cls);main();void del() 定义删除函数 int i,j,flag=1;char q100,ch20;system(cls);printf(nn 请输入您要删除联系人的姓名、编号或电话(填写其中一个即可): ) ;scanf(%s,q);for(i=0;ib;i+)if(strcmp(q,coni.tel)=0|strcmp(q,coni.name)=0|strcmp(q,coni.num)=0) printf(nn 姓名:%sn 编号:%sn 性别:

25、%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail);flag=0;break;if(flag)printf(nn 对不起,您所输入的此联系人不存在!n); printf(nn 输入y继续进行删除操作,输入任意键返回主菜单: );scanf(%s,ch);if(strcmp(y,ch)=0|strcmp(Y,ch)=0) system(cls);del(); else main();printf(nn 您确定要删除该联系人吗? y/n

26、 : );scanf(%s,ch);if(strcmp(ch,y)=0|strcmp(ch,Y)=0)for(j=i;j=b;j+)conj=conj+1; b-; printf(n 您已成功删该联系人 n);printf(n 输入y继续进行删除操作,输入任意键返回主菜单: );scanf(%s,ch);if(strcmp(y,ch)=0|strcmp(Y,ch)=0) system(cls);del();else main();printf(n 联系人未删除n);printf(n 输入y继续进行删除操作,输入任意键返回主菜单: );scanf(%s,ch);if(strcmp(y,ch)=0

27、|strcmp(Y,ch)=0) system(cls);del();else main();void save() 定义保存函数 system(cls);FILE *fp; int i;fp=fopen(通讯录.doc,w); if(fp=NULL) printf(cannot write the file.n); exit(0);for(i=0;ib;i+)fprintf(fp,nn 姓名:%sn 编号:%sn 性别:%sn 年龄:%sn 电话:%sn 地址:%sn 电子邮件:%snn ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.

28、address,coni.e_mail);fprintf(fp,nn); fprintf(fp, 姓名 编号 性别 年龄 电话 地址 电子邮件 ); for(i=0;ib;i+) fprintf(fp,);fprintf(fp, %-9s%-9s%-9s%-9s%-12s%-12s%-12s ,coni.name,coni.num,coni.sex,coni.age,coni.tel,coni.address,coni.e_mail); fprintf(fp,);fclose(fp); printf(nnn 您输入的信息已保存!nn);printf( 按任意键返回主界面:);getch();

29、system(cls); main();(五)调试分析过程描述: 1. 程序开始主界面 源程序编译完成后运行程序,就会出现以下界面,主菜单有7个选项,用来添加,显示,查询,修改,删除,保存和退出,采用switch函数进行选择 2. 添加模块 输入1即可进入添加信息界面,按照提示我们可以依次输入姓名,编号,性别,年龄,电话,地址,以及电子邮件,采用scanf键盘输入 3显示模块 输入2可以进入显示界面,我们可以看到自己输入的信息,都是分开显示的,这里还有一个选择就是输入y以表格输出,这样显示会清晰很多,用户可以依照自己的喜好选择适合自己显示方式,显示模块采用的for循环函数,依次进行输出。下面就

30、是以表格形式输出,简洁明了。4.查询模块 查询模块分为了三种方式,把姓名查找,按编号查找以及按电话查找,采用if函数进行选择,已输入1再输入胡蛟龙为例,我们可以看到相关联系人的全部信息。5修改模块修改模块首先要找到相关联系人,这里我们可以输入联系人的姓名、编号或电话来搜索联系人例如输入编号1,就会显示相关联系人并提示我们修改那一项1-7,选择后输入信息即可,这里同样采用if函数进行选择。6.删除模块 删除模块也是输入联系人的姓名、编号或电话来搜索联系人,删除时会提醒是否确定,在运行显示函数删除的联系人就不存在了。7.保存模块 保存模块自动创建一个名为通讯录的word文档,并把通讯录信息全部写入

31、,下面就可以在文档中看到我们输入的信息,同样是分两部分显示。(六)课程设计小结: 这次课程设计让我学到了很多,以前都只是纸上谈兵,很少去操作,操作也只是简单一段程序,现在要做却是做的一个完整的有实际功能的c程序,一开始都不知道怎么下手,后来通过仔细看书和询问同学才慢慢做起来,但是错误总是很多,例如总是忘了冒号或者一些变量没有定义,还有就是我用了很多if,这就导致了有时候会混在一起,提示else没有对应的if,需要用大括号都隔开,经过长时间的修改与琢磨才接近于完善但还有不足的地方,总之这次课程让我懂得了什么事都要去动手去做才行,要有足够强的实践能力才行,而且还要有毅力,不能半途而废,以为设计程序

32、要不断的修改,如果没有耐心是很难做好的。 这次做的设计题目是通讯录管理系统,是一个比较实用的程序,不复杂但各种功能查询、修改、删除等联系在一起还是非常能考验我们的。所以我觉得这个题目还是很经典成功的,其他的题目还有汽车售票系统和学生成绩管理系统,有时间的话我还都想尝试一下,不同的程序都有不一样的考察点,能够从各个方面锻炼自己的能力。c语言的应用是非常广泛的,而且也非常受欢迎,但也是比较抽象的学科,理论如果不加上实际是一点用处也没有的,所以在以后的学习中我也会牢记着一点,会学不代表会用,我也建议以后学习c语言的同学或教导他们的老师一定多实践,多操作学以致用,总之我非常喜欢c语言这门课,能做出一个完整的程序我也很欣慰,以后我还想多做一些这样的程序,掌握熟练,也会继续学习有关c语言的知识,争取有一天能

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1