免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录封面1目录2一、功能描述3二、概要设计3三、各模块实现方法4四、模块的程序设计分析4五、部分模块的程序源代码6六、程序运行结果及系统使用说明12七、结束语、心得体会14一、 功能描述(1)、查看功能:选择此功能时,列出下列三类选择,A 办公类、B 个人类、C 商务类,当选中某类时,显示出此类所有的数据中的姓名和电话号码。(2)、增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如 :杨春商务类 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (3)、拨号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声音。(4)、修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)、删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 二、 概要设计(模块流程图)通信录管理系统界面查看功能增加功能拨号功能修改功能删除功能退出系统三、 各模块实现方法查看功能通过ifstream定义file3、并通过information类来定义对象information1,利用file3.read(char*)&information1,sizeof(information);来输出二进制文件中的数据。增加功能运用C+中基本的输入流和输出流实现数据的输入,保存在information类中。并用ofstream定义file1,利用file1.write(char*)&information1,sizeof(information1);并根据选择将数据分别存入”office.dat”、”personal.dat”、”commercial.dat”三个二进制文件中拨号功能利用while函数来确定循环的次数!用coutn/al来控制声音。修改功能要实现这个功能,依然是利用strcmp函数比较2个字符串,只有当你输入的姓名与电话薄中已存姓名一致才能进行修改操作,否则系统会报错。删除功能利用for循环和if函数,只有当你输入的姓名与电话薄中已存姓名一致(利用strcmp函数比较2个字符串),就可以进行删除,否则继续循环直到输对为止。四、 模块的程序设计分析增加功能If(y=b)File1.open(office.dat,ios:app|ios:binary)终止开始If(y=c)File1.open(commercial.dat,ios:app|ios:binary)If(y=a)File1.open(personal.dat,ios:app|ios:binary)File1.write(char*)&information1,sizeof(information1)查看功能If(y=b)File1.open(office.dat,ios:in|ios:binary)终止开始If(y=c)File1.open(commercial.dat,ios:in|ios:binary)If(y=a)File1.open(personal.dat,ios:in |ios:binary)file3.read(char*)&information1,sizeof(information)修改功能If(y=b)File1.open(office.dat,ios:in|ios:binary)终止开始If(y=c)File1.open(commercial.dat,ios:in|ios:binary)If(y=a)File1.open(personal.dat,ios:in |ios:binary)File1.open(temple.dat,ios:app|ios:binary)file3.write(char*)&information1,sizeof(information)File1.open(office.dat,ios:app|ios:binary)File1.open(personal.dat,ios:app|ios:binary)File1.open(commercial.dat,ios:app|ios:binary)五、 部分模块的程序源代码#includeusing namespace std;#includeadd.cpp#includesee.cpp#includecall.cpp#includemodify.cpp#includedel.cppvoid gmenue()int i,j;do cout”* endl; cout * *endl; cout * 通信录管理系统 *endl; cout * * * * *endl; cout * * * 1 查看 * *endl; cout * 2 增加 * *endl; cout * * 3 拨号 * *endl; cout * * 4 修改 * *endl; cout * 5 删除 * *endl; cout * * 6 退出 * *endl; cout * * * *endl; cout * * 制作人:甘文俊 * *endl; cout * *endl; cout * *endl; cout * 版权所有,违者必究! endl; cout*endl; cout*endl;couti;switch(i)case 1:gsee();coutj;break;case 2:gadd();coutj;break;case 3:gcall();coutj;break;case 4:gmodify();coutj;break;case 5:gdel();coutj;break;case 6:j=1;while(j=2);int main()gmenue();return 0;#include#include#includeusing namespace std;class informationpublic:information();char* getname()return name;void showphone();void show();void get();private:char name40;char phone20;char mail40;information1;information:information()name0=0;phone0=0;mail0=0;void information:showphone()int n;char sound=a;cout电话:;for(n=0;nsizeof(phone);n+)coutphonen;coutsound;void information:get()int n=0,m=0;coutname;coutphone;docoutmail;while(!=mailn|mailn=0)n+;while(.!=mailm|mailm=0)m+;if(mailn=0|mailm=0|mn|m=n+1)cout输入错误,请重新输入!endl;while(mailn=0|mailm=0|mn|m=n+1);void information:show()cout姓名:name 电话:phone E-mail:mailendl;void gadd()ofstream file3;char a,y;dodo coutA:办公类endl B:个人类endl C:商务类endl a; if(a!=A&a!=a&a!=B&a!=b&a!=C&a!=c) cout输入错误,请重新输入!endl; while(a!=A&a!=a&a!=B&a!=b&a!=C&a!=c);if(a=A|a=a)information1.get();file3.open(office.dat,ios:app|ios:binary); file3.write(char*)&information1,sizeof(information1); file3.close(); information1.show();else if(a=B|a=b)information1.get();file3.open(personal.dat,ios:app|ios:binary); file3.write(char*)&information1,sizeof(information1); file3.close(); information1.show(); elseinformation1.get();file3.open(commercial.dat,ios:app|ios:binary); file3.write(char*)&information1,sizeof(information1); file3.close(); information1.show(); docouty; if(y!=Y&y!=y&y!=N&y!=n) cout输入错误,请重新输入!endl;while(y!=Y&y!=y&y!=N&y!=n);while(y=Y|y=y);/return 0;#include#include#includeusing namespace std;int gsee()ifstream file1;int n;int i=0;char a;docoutA 办公类endlB 个人类endlC 商务类endl请输入你要查看的类别:a;if(a!=A&a!=a&a!=B&a!=b&a!=C&a!=c)cout输入错误,请重新输入!;while(a!=A&a!=a&a!=B&a!=b&a!=C&a!=c);if(a=A|a=a)file1.open(office.dat,ios:in | ios:binary); while(!file1.eof() file1.read(char*)&information1,sizeof(information);n=file1.gcount();if(n=sizeof(information)information1.show(); file1.close();else if(a=B|a=b)file1.open(personal.dat,ios:in | ios:binary); while(!file1.eof() file1.read(char*)&information1,sizeof(information);n=file1.gcount();if(n=sizeof(information)information1.show(); file1.close();elsefile1.open(commercial.dat,ios:in | ios:binary); while(!file1.eof() file1.read(char*)&information1,sizeof(information);n=file1.gcount();if(n=sizeof(information)information1.show(); file1.close();return 0;六、 程序运行结果及系统使用说明 增加功能查看功能修改功能七、结束语、心得体会从这次的课程设计,我深刻的了解到C+的功能强大!也认识到了,自己的不足!在起初的时候,程序编译的还算顺利,但是到了关键的部分,往往,要花费好几天来查找一个错误!比如,一开始我用文本文件来存放需要保存的数据,可是,当读出数据是,由于是定义的类型不同,所以,有时是很难达到预想的效果,有时候再碰见空格时,文件直接跳出,不再执行空格后的字符!后来改用二进制的文件存放数据时,又发生了读出乱码的效果!经过多次调试,终于发现时,定义private时,数据成员类型定义有误
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 停车场智能化管理系统设计方案
- 电站蓄水池与调度优化方案
- 抽水蓄能电站的防腐与耐久性设计方案
- 光伏电站智能巡检与无人机应用方案
- 2026年琼台师范学院单招职业适应性考试题库新版
- 2026年陇南师范高等专科学校单招职业适应性考试必刷测试卷及答案1套
- 2026年云南新兴职业学院单招职业技能考试必刷测试卷及答案1套
- 2026年甘肃工业职业技术学院单招职业适应性测试必刷测试卷新版
- 2026年湖北体育职业学院单招职业适应性测试必刷测试卷新版
- 2026年许昌陶瓷职业学院单招职业倾向性考试题库及答案1套
- 开展医养结合促进行动实施方案
- 《运动相关心血管事件风险筛查技术规范》
- 市政管道工程项目突发公共事件应急预案
- 完整道德经全文电子版下载
- 2025年上海教师考试真题及答案
- 施工员的考试题目及答案
- 2025年化妆品市场拓展策略研究可行性报告
- GB/T 191-2025包装储运图形符号标志
- 行测5000题电子版2025
- 血栓性血小板减少性紫癜TTP课件(PPT 49页)
- 大象版小学《科学》实验目录
评论
0/150
提交评论