学位论文-—c语言课程设计报告.doc





《学位论文-—c语言课程设计报告.doc》由会员分享,可在线阅读,更多相关《学位论文-—c语言课程设计报告.doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程名称 计算机高级语言课程设计(C) 教师姓名 刘 刚 本科生姓名 郭 勇 权 本科生学号 20121003468 本科生专业 机械设计制造及其自动化 所在院系 机 电 学 院 类别: C. 本科生 日期: 2013.7.11 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录1题目要求12需求分析13总体设计14详细设计25上机操作236总结287致谢28参考文献291题目要求模拟手机通信录管理系统,实现对手机中的通信录进行管
2、理。功能要求如下:(1)查看功能:选择此功能时,列出下列3类选择。办公类.个人类.商务类.当选中某类时,显示出此类所有数据中的姓名、电话号码和电子邮件。(2)增加功能:能录入新数据。一个结点包括:姓名、电话号码、分类(办公类、个人类、商务类)、电子邮件。例如:杨春135896664454商务类chuny当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,储存空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(3)修改功能:选中某个人姓名时,可对此人的相应数据进行修改。(4)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自
3、动调整后续条目的编号。2需求分析根据题目要求,由于联系人信息时存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要查看联系人信息,应提供显示、查看功能;要实现修改和删除联系人功能,所以应提供对文件的修改和删除操作。3总体设计以下分析整个系统,根据上面的需求分析,可将这个系统的设计分为四大模块(如图一):图一 系统功能模块图4详细设计【详细设计】1. 主函数程序main() /*主函数*/menu();2. 主菜单主菜单函数提供用户对系统功能的选择,包括浏览联系人、增加联系人、修改联系人、删除联系人。该函数的流程图如图二所示。程序如下。开始显示一系列功能选项输入n,判断n是否是1-4?Y
4、根据n的值调用各功能模块函数结束图二 主菜单流程图程序void menu() /*菜单函数*/int n=0,w1;do puts(tt*主菜单*nn);puts(tttt1. 查看联系人);puts(tttt2. 增加联系人);puts(tttt3. 修改联系人信息);puts(tttt4. 删除联系人);puts(nntt*n);printf( (请选择1-4): bb);scanf(%d,&n);if(n4)w1=1;getchar();elsew1=0;while(w1=1);switch(n)case 1:browse();break; /*浏览联系人模块*/case 2:add()
5、;break; /*增加联系人模块*/ case 3:modify();break; /*修改联系人模块*/case 4:del();break; /*删除联系人模块*/3数据结构设计各联系人信息包括有姓名、电话号码、联系人类型、电子邮件。可以使用结构体数组,则姓名、电话、类型和电子邮件作为结构体成员。struct member /*联系人结构体*/char name20; /*联系人姓名*/char tel11; /*联系人电话*/int type; /*联系人类型:1为办公类;2为个人类;3为商务类*/char email30; /*联系人电子邮件*/memN; /*N为全局变量,表示能够
6、储存的联系人数量*/4. 浏览联系人模块需求分析该模块的功能是使用户可以浏览或者分类浏览各联系人信息。如图三所示,当用户输入1、2、3、4时,分别显示办公类联系人、个人类联系人、商务类联系人和所有联系人。图三 浏览联系人模块流程图程序void browse() /*浏览联系人函数*/int m,n=0,w1;m=load();doputs(nntt *查询联系人*);puts(tttt1. 查询办公类联系人); /*查询办公类联系人*/puts(tttt2. 查询个人类联系人); /*查询个人类联系人*/puts(tttt3. 查询商务类联系人); /*查询商务类联系人*/puts(tttt4
7、. 查询所有联系人); /*查询所有联系人*/puts(tttt5. 返回主菜单 ); /*返回菜单*/printf(请键入数字(1-5)选择: bb);scanf(%d,&n);if(n5)w1=1;getchar();elsew1=0;while(w1=1);if(n=1)printf_cle(m); /*显示办公类联系人*/puts(n信息已显示,按任意键返回菜单 n);system(pause); /*暂停系统工作*/getchar();menu();else if(n=2)printf_per(m); /*显示个人类联系人*/puts(n信息已显示,按任意键返回菜单 n);syste
8、m(pause); /*暂停系统工作*/getchar();menu();else if(n=3)printf_com(m); /*显示商务类联系人*/puts(n信息已显示,按任意键返回菜单 n);system(pause); /*暂停系统工作*/getchar();menu();else if(n=4)printf_all(m); /*显示商务类联系人*/puts(n信息已显示,按任意键返回菜单 n);system(pause); /*暂停系统工作*/getchar();menu();elsemenu();5. 增加联系人模块需求分析该模块的功能是使用户实现增加新联系人的功能,从键盘输入新
9、联系人信息并加入到原文件中。该模块流程图如图四所示。程序void add()int m,w1,n,t,w2,i,j; /*m为现有联系人数量*/m=load(); /*加载联系人信息,并将联系人数量输入m*/if(m=N)运行save(int)函数,将信息保存至文件中是否保存?输入联系人姓名、电话、类型、电子邮箱判断m是否小于N?运行m=load()函数,加载现有联系人信息开始返回至主菜单输出:储存空间已满,无法输入 YNNY 结束图四 增加联系人模块流程图printf(储存空间不足!n);printf(按任意键返回菜单.);getchar();system(pause);menu();els
10、eputs(t请输入联系人姓名:); /*输入联系人姓名*/scanf(%s,memm.name); /*将联系人姓名保存至结构体*/puts(t请输入联系人电话号码:);scanf(%s,memm.tel);do /*选择联系人类型语句*/puts(nnnnn:nnn请选择联系人类型);puts(1, 办公类t);puts(2, 个人类t);puts(3. 商务类t);puts(请键入数字选择联系人类型: bb);scanf(%d,&n);if(n!=1)&(n!=2)&(n!=3)w1=1;getchar();elsew1=0;while(w1=1);switch(n) /*将联系人类型信
11、息存入结构体中*/case 1:memm.type=1;break;case 2:memm.type=2;break;case 3:memm.type=3;break;puts(t请输入联系人电子邮件地址:);scanf(%s,memm.email);doputs(确定保存? 1.是 2.否 bb);scanf(%d,&t);if(t2)w2=1;getchar();elsew2=0;while(w2=1);if(t=1)for(i=0;im;i+)if(strcmp(memi.name,memm.name)=0)puts(姓名已存在!不能存储,请按任意键返回菜单!);for(j=0;j20;
12、j+) memm.namej=0;for(j=0;j11;j+)memm.telj=0;memm.type=0;for(i=0;i30;i+)memm.emailj=0;system(pause);menu();if(strcmp(memi.tel,memm.tel)=0)puts(姓名已存在!不能存储,请按任意键返回菜单!);for(j=0;j20;j+) memm.namej=0;for(j=0;j11;j+)memm.telj=0;memm.type=0;for(i=0;i30;i+)memm.emailj=0;system(pause);menu();save(m); /*保存联系人信
13、息至文本文档*/puts(信息已存储!n);puts(以下是所有信:n);printf_all(m+1);getchar();puts(请按任意键返回菜单);system(pause);menu();if(t=2) /*如果用户不保存,则将刚刚存入结构体中的数据删除*/for(i=0;i20;i+) memm.namei=0;for(i=0;i11;i+)memm.teli=0;memm.type=0;for(i=0;i30;i+)memm.emaili=0;puts(信息存储失败!n);puts(:以下是所有信息n);printf_all(m);getchar();puts(请按任意键返回菜
14、单);system(pause);menu();6. 修改联系人模块需求分析该模块的功能的功能是显示所有联系人信息。显示完后,用户输入要修改联系人的序号,系统根据用户输入的序号显示用户选择的联系人,并提示用户需要修改哪部分信息,是姓名、电话、类型还是电子邮箱。根据用户的选择修改相应的信息。程序 void modify()int m,n,t,w1,w2;m=load();puts(以下是所有信息:t);printf_all(m); /*显示所有信息,以便用户确认所要修改的信息*/doputs(请输入您想修改的联系人数字代号,或按0退出:);scanf(%d,&n);if(nm)w1=1;getc
15、har();else开始w1=0;运行m=load()函数,加载现有联系人信息,并显示所有用户信息while(w1=1);if(n=0)menu();printf_one(n);do输入nputs(tttt1, 姓名);puts(tttt2. 电话号码);判断n是否在015中puts(tttt3. 类型);Nputs(tttt4. 电子邮件);puts(tttt0. 退出);Yputs(请输入您想修改的类型数字代号,或按0退出:);根据n的值调用相应功能模块scanf(%d,&t);if(t4)n是否等于0w2=1;getchar();YelseNw2=0;输入twhile(w2=1);结束返
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学位 论文 语言 课程设计 报告

限制150内