ImageVerifierCode 换一换
格式:DOC , 页数:32 ,大小:375KB ,
资源ID:4693363      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4693363.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(c语言课程设计报告-学位论文.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

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);结束返

16、回至主菜单调用相应功能模块输入tN判断t是否在04中Y调用相应功能模块返回至主菜单结束图五 修改联系人模块流程图if(t=1)modify_name(n,m); /*修改姓名函数,n为要修改的联系人编号;m为总联系人数*/if(t=2)modify_tel(n,m); /*修改电话函数,n为要修改的联系人编号;m为总联系人数*/if(t=3)modify_type(n,m); /*修改类型函数,n为要修改的联系人编号;m为总联系人数*/if(t=4)modify_email(n,m); /*修改Email函数,n为要修改的联系人编号;m为总联系人数*/if(t=0)menu();7. 删除联系

17、人模块需求分析该模块首先显示现有所有联系人,显示完成后,用户输入要删除的联系人序号。删除方式是将数据从结构体中删除,然后将后面的记录向前移。删除之后将记录保存至文件中。程序void del()int m,n,w1,w2,t,i;m=load();puts(以下是所有信息:t);printf_all(m);doputs(请输入您想要删除的联系人数字代号: bb);scanf(%d,&n);if(nm)w1=1;getchar();elsew1=0;while(w1=1);do /*用do while语句控制用户的输入,使用户只能输入1或者2*/puts(您确定要删除此联系人:);printf_o

18、ne(n);puts(n您确定要删除吗? 1,是 2,否);scanf(%d,&t);开始运行m=load();加载现有联系人信息;并显示所有联系人信息输入要删除的联系人序号n判断0nm是否成立NY显示用户要删除的联系人的所有信息用户是否确认删除NY删除数据,并运行move函数,将删除位置后面的数据前移运行save函数,将信息保存至文件中返回至主菜单结束图六 删除联系人模块if(t2)w2=1;getchar();elsew2=0;while(w2=1);if(t=2)puts(信息已保留,请按任意键反回菜单n);getchar();system(pause);menu();if(t=1)fo

19、r(i=0;i20;i+)memn-1.namei=0;for(i=0;i11;i+)memn-1.teli=0;memn-1.type=0;for(i=0;i30;i+)memn-1.emaili=0;move(n,m);puts(信息已删除,请按任意键反回菜单n);getchar();system(pause);menu();8. 公共函数以下为各模块中可能用到的一些公共函数。(1) 加载联系人信息函数:int load()说明该函数用于将文件中的数据加载至结构体中,并且可以返回现有联系人的数目。程序int load()FILE *fp;int i,j;if(fp=fopen(E:vc p

20、rogrammesmembers.txt,rb)=NULL)/*以只读方式打开一个二进制文件*/printf(n不能找到信息 );for(i=0;(!feof(fp)&(iN);i+)fread(&memi,sizeof(struct member),1,fp);/*将文件中的数据加载至结构体中*/fclose(fp); /*关闭文件*/for(j=0;(strcmp(memj.name,0)!=0)&(j0时,首先进入save_1函数,新建一个文件,同时把mem0的数据保存;然后进入save_2函数,将mem1到memm的数据追加至文件中*/ save_2(m);该包含两个子函数:void

21、save_1()和void save_2(int m),当结构体中只有一个元素,即m=0时,只执行第一个函数,新建一个文件并将数据存入文件中;如果结构体中多于一个元素,即m0时,首先执行第一个函数新建一个文件,然后执行第二个函数,将结构体中下标大于0的数据存入文件中。程序void save_1()FILE *fp;if(fp=fopen(E:vc programmesmembers.txt,wb)=NULL)printf(n不能找到信息 );fwrite(&mem0,sizeof(struct member),1,fp);fclose(fp);程序void save_2(int m)int i

22、;FILE *fp;if(fp=fopen(E:vc programmesmembers.txt,ab)=NULL)printf(n不能找到信息 );for(i=1;i=m;i+)fwrite(&memi,sizeof(struct member),1,fp);fclose(fp);(3) 显示所有联系人函数:void printf_all(int m)说明形参m表示现有联系人的数目。用以控制输出联系人的数量。该函数用于输出所有的联系人信息。程序void printf_all(int m)int i;printf(nntt 以下是所有联系人 :);printf(nnNO. 姓名 电话号码 类型

23、 电子邮件 n);for(i=0;im;i+) /*判断联系人类别并输出*/if(memi.type=1)printf(%2d %-20s %-11s 办公类 %-30sn,i+1,memi.name,memi.tel,memi.email);if(memi.type=2)printf(%2d %-20s %-11s 个人类 %-30sn,i+1,memi.name,memi.tel,memi.email);if(memi.type=3)printf(%2d %-20s %-11s 商务类 %-30sn,i+1,memi.name,memi.tel,memi.email);(4) 显示办公类联

24、系人函数:void printf_cle(int m)说明形参m表示现有联系人数目。用以控制循环终点。该函数用于输出所有办公类联系人信息。程序void printf_cle(int m)int i;printf(nntt 办公类联系人:); printf(nn姓名 电话号码 类型 电子邮件 n);for(i=0;im;i+)if(memi.type=1) /*判断联系人是否属于办公类*/printf(%-20s %-11s 办公类 %-30sn,memi.name,memi.tel,memi.email);(5) 显示个人类联系人函数:void printf_per(int m)说明形参m表示

25、现有联系人数目。用以控制循环终点。该函数用于输出所有个人联系人信息。程序void printf_per(int m)int i;printf(nntt 个人类联系人 :);printf(nn姓名 电话号码 类型 电子邮件 n);for(i=0;im;i+)if(memi.type=2) /*判断联系人是否属于个人类*/printf(%-20s %-11s 个人类 %-30sn,memi.name,memi.tel,memi.email);(6) 显示商务类联系人函数:void printf_com(int m)说明形参m表示现有联系人数目。用以控制循环终点。该函数用于输出所有商务类联系人信息。

26、程序void printf_com(int m)int i;printf(nntt 商务类联系人:);printf(nn姓名 电话号码 类型 电子邮件 n);for(i=0;im;i+)if(memi.type=3) /*判断联系人是否属于商务类*/printf(%-20s %-11s 商务类 %-30sn,memi.name,memi.tel,memi.email);(7) 显示某一联系人函数:void printf_one(int m)说明形参m表示现有联系人数目。用以控制循环终点。该函数用于输出某一指定联系人信息。程序void printf_one(int m)printf(姓名 电话号

27、码 类型 电子邮件 n);if(memm-1.type=1) /*三个if语句判断联系人类型*/printf(%-20s %-11s 办公类 %-30sn,memm-1.name,memm-1.tel,memm-1.email);if(memm-1.type=2)printf(%-20s %-11s 个人类 %-30sn,memm-1.name,memm-1.tel,memm-1.email);if(memm-1.type=3)printf(%-20s %-11s 商务类 %-30sn,memm-1.name,memm-1.tel,memm-1.email);(8) 修改姓名函数:void m

28、odify_name(int n,int m)说明该函数用于修改联系人姓名。形参n为用户输入的要修改的联系人序号;m表示现有联系人数量。程序void modify_name(int n,int m)char mod_name20; /*用于暂存用户输入的更改后的联系人姓名*/int i,t,w1;puts(请输入新姓名:);scanf(%s,mod_name);doputs(确定要存储吗? 1.是 2.否 bb);scanf(%d,&t);if(t2)w1=1;getchar();elsew1=0;while(w1=1);if(t=1)/*当用户输入1,即确认修改时,将原来存在结构体中联系人的

29、姓名删除,并将新的联系人姓名赋到结构体中*/for(i=0;i20;i+)memn-1.namei=0;strcpy(memn-1.name,mod_name);save(m-1);puts(储存成功,按任意键继续.);getchar();system(pause);modify();if(t=2)for(i=0;i20;i+)mod_namei=0;puts(信息存储失败,按任意键继续.);getchar();system(pause);modify();(9) 修改电话函数:void modify_tel(int n,int m)说明该函数用于修改联系人电话。形参n为用户输入的要修改的联系

30、人序号;m表示现有联系人数量。程序void modify_tel(int n,int m)char mod_tel11;int i,t,w1;puts(请输入新电话号码:);scanf(%s,mod_tel);doputs(确定保存吗? 1.是 2.否 bb);scanf(%d,&t);if(t2)w1=1;getchar();elsew1=0;while(w1=1);if(t=1)for(i=0;i11;i+)memn-1.teli=0;strcpy(memn-1.tel,mod_tel);save(m-1);puts(储存成功!按任意键继续.);getchar();system(pause);modify();if(t=2)

移动网页_全站_页脚广告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 

客服