C++毕业课程设计通信录管理程序.docx
- 文档编号:7237433
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:21
- 大小:21.21KB
C++毕业课程设计通信录管理程序.docx
《C++毕业课程设计通信录管理程序.docx》由会员分享,可在线阅读,更多相关《C++毕业课程设计通信录管理程序.docx(21页珍藏版)》请在冰豆网上搜索。
C++毕业课程设计通信录管理程序
郑州轻工业学院本科
面向对象程序设计c++
课程设计总结报告
设计题目:
通信录管理程序
学生姓名:
IZQ
系别:
计算机科学与通信工程
专业:
计算机科学与技术
班级:
计科班
学号:
2008
指导教师:
2010年1月8日
郑州轻工业学院
课程设计任务书
题目通信录管理程序
专业、班级计科班学号2008
姓名
主要内容、基本要求、主要参考资料等:
完成期限:
指导教师签名:
课程负责人签名:
2010年1月8日
设计题目:
通讯录管理程序
1.设计背景
随着社会的发展,时代的进步,人们可以利用现代化工具方便的进行交流联系。
例如:
手机和电脑已经越来越普及化了,成了人们日常生活交流联系的必备工具。
但随着人们生活范围的扩大,也使得人们需要记住各种朋友和公司的一些联系方式,这当然就要需要一个通讯录来记录这些繁琐的事情。
因此我这次设计了一个用C++编的通讯录管理程序,用来模拟通讯录的实际应用。
2.题目描述
2.1设计一个简单的通讯录管理程序,要求有简单的界面,程序段要分清模块。
该程序应该具有下列功能:
1.个人通讯录
(1)添加联系人;
(2)查找联系人;
(3)删除联系人;
(4)修改联系人;
(5)显示联系人;
(6)复制全部信息;
(7)关闭该通迅录;
(8)退出此系统
2.公司通讯录
(1)添加公司;
(2)查找公司;
(3)删除公司;
(4)修改公司;
(5)显示公司;
(6)复制全部信息;
(7)关闭该通迅录;
(8)退出此系统
2.2题目要求
1、按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
2、为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
3.算法设计设计思想
3.1设计思想
采用模块化设计思想,分别定义了两个类:
一个是个人类,另一个是公司类,然后分别在各个类中定义实现各个功能的函数。
在个人类中定义了六个私有变量,分别是姓名,电话,地址,邮箱,QQ号和身份证号。
在公司类中定义了五个私有变量,分别是公司名称,公司电话,公司地址,公司网址和公司传真。
在主函数中分别定义了
个人类和公司类的两个对象和第一个主菜单。
由主菜单选择进入个人或公司通讯录。
而且在这两个类中实现了用文件保存信息,实现了信息的保存与读取。
4.结构框图、各模块的功能描述
4.1进入主函数(main()):
。
进入主函数的主菜单,这是一个无限循环的菜单,菜单中有三个选项,分别是管理个人电话薄,管理公司电话薄,退出系统。
只有选择3选项退出才能结束或者进入通讯录进行退出。
4.2个人类(Cbook)
当进入个人通讯录后,同样会出现一个功能选择菜单(menu());
1.添加联系人(add())2.查找联系(find())
3.删除联系人.(del())4.修改联系人.(alter());
5.显示联系人(appear())6.复制全部信息.(copy())
7.关闭该通迅录8.退出此系统
4.2.1添加联系人(add())
(1)按照提示依次输入个人信息:
姓名,电话,地址,邮箱,QQ号和身份证号。
(2)输入完成第一个联系人的信息后会提示你新联系人信息已经保存好!
你按任意键重新选择功能菜单。
4.2.2查找联系(find())
(1)首先建立一个输入流文件,用来连接存储信息的文本,若找不到文件,则提示"对不起!
!
!
!
文件找不到!
!
!
!
......"
(2)若能找到文件,则提示"请用户输入你想查找的联系人的姓名或电话号码:
"
(3)若没有此人的话,则提示"对不起!
!
!
联系人中没你找的人!
!
!
!
"若有,则将显示所要查找的联系人的所有信息。
你按任意键重新选择功能菜单。
4.2.3删除联系人.(del())
(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个临时文本,若找不到文件,则提示"对不起!
!
!
!
文件找不到!
!
!
!
......"
(2)若能找到文件,则提示"请用户输入你想删除的联系人的姓名或电话号码:
"
(3)若没有此人的话,则提示"对不起!
!
!
联系人中没你找的人!
!
!
!
"若有,则将显示所要删除的联系人的所有信息,并且提示"这个人的信息已经从你的通迅录中删除!
!
!
"你按任意键重新选择功能菜单。
4.2.4修改联系人.(alter())
(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个临时文本,若找不到文件,则提示"对不起!
!
!
!
文件找不到!
!
!
!
......"
(2)若能找到文件,则提示"请用户输入你想修改的联系人的姓名或电话号码:
"
(3)若没有此人的话,则提示"对不起!
!
!
联系人中没你找的人!
!
!
!
"若有,则你可以按照提示修改信息。
修改完成后会提示你"这个人的信息已经在你的通迅录中修改!
!
!
"你按任意键重新选择功能菜单。
4.2.5显示联系人(appear())
(1)首先建立一个输入流文件,用来连接存储信息的文本,若找不到文件,则提示"对不起!
!
!
!
文件找不到!
!
!
!
......"
(2)若能找到文件,文本中却没有信息的话,则提示"你的通迅录中没有联系人!
!
!
!
!
",有信息的话,显示全部信息你按任意键重新选择功能菜单。
4.2.6复制全部信息.(copy())
(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个复制存储文本,若找不到文件,则提示"对不起!
!
!
!
文件找不到!
!
!
!
......"
(2)复制完成后会提示"已经复制完毕!
!
!
"
4.2.7保存到文本(save())
建立一个输出流文件用来连接存储信息的文本,将数据存储到文本。
4.2.8.关闭该通迅录关闭所在的通讯录
4.2.9退出系统完全退出程序
4.3公司通讯录
当进入公司通讯录后,同样会出现一个功能选择菜单(menu())。
1.添加公司(add()).2.查找公司(find())
3.删除公司(del()).4.修改公司(alter())
5.显示公司(appear()).6.复制全部信息(copy()).
7.关闭该通迅录8.退出此系统
公司通讯录和个人通讯录实现功能函数类似,在此不再赘述。
以下是主框架图:
5.程序结构及代码解析
(1)主函数:
调用菜单函数menu()通过其返回值来选择哪个通讯录,进而选择调用后面的各个函数,实现其功能。
voidmain()
{charselect[100],choice[100];
memset(select,0,sizeof(select));
memset(select,0,sizeof(choice));
Cbookperson("zheng","***","taik***","","81424***","");
Companycom("zhonghua","","qingyuan","","aaa");
select[0]='1';
while(select[0]-48!
=3)
{
system("cls");
system("color5e");
choice[0]='0';
cout< cout<<"\t★★★(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)★★★"< <<"\t%>_<%%>_<%"< <<"\t%>_<%请选择管理分类: %>_<%"< <<"\t%>_<%1.管理个人电话薄%>_<%"< <<"\t%>_<%2.管理公司电话薄%>_<%"< <<"\t%>_<%3.退出系统%>_<%"< <<"\t%>_<%%>_<%"< <<"\t★★★(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)★★★"< <<"\t\t\t选择(1~3): "; cin>>select; if(select[0]-48==1) { while(choice[0]-48! =7) { person.menu(); cin>>choice; switch(choice[0]-48) { case1: person.add(); break; case2: person.find(); break; case3: person.del(); break; case4: person.alter(); break; case5: person.appear(); break; case6: person.copy(); break; case7: break; case8: exit(0); break; default: cout< 请输入1~8: "< system("pause");break; } } } if(select[0]-48==2) { while(choice[0]-48! =7) { com.menu(); cin>>choice; switch(choice[0]-48) { case1: com.add(); break; case2: com.find(); break; case3: com.del(); break; case4: com.alter(); break; case5: com.appear(); break; case6: com.copy(); break; case7: break; case8: exit(0); break; default: cout< 请输入1~8: "< system("pause"); } } } if(select[0]-48==3){exit(0);break;} } } (2)Cbook类的定义 classCbook { public: Cbook(char*na,char*te,char*addre,char*ema,char*q,char*idd); voidmenu();*主菜单* voidadd();*添加联系人* voidfind();*查找联系人* voiddel();*删除联系人* voidalter();*修改联系人* voidappear();*显示联系人* voidcopy();*复制全部信息* voidsave();*保存信息* private: charname[12]; chartel[15]; charaddress[22]; charemail[20]; charqq[12]; charid[20]; }; Cbook: : Cbook(char*na,char*te,char*addre,char*ema,char*q,char*idd) { strcpy(name,na); strcpy(tel,te); strcpy(address,addre); strcpy(email,ema); strcpy(qq,q); strcpy(id,idd); } (3)公司类的定义 classCompany { public: Company(char*comna,char*pubte,char*comadd,char*comemail,char*chuanzh); voidmenu();*主菜单* voidadd();*添加公司* voidfind();*查找公司* voiddel();*删除公司* voidalter();*修改公司* voidappear();*显示公司* voidcopy();*复制全部信息* voidcomsave();*保存信息* private: charcompanyname[24];公司名称 charpubtel[20];公司电话 charcompanyadd[30];公司地址 charcompanyemail[20];公司网址 charchuanzhen[20];公司传真 }; Company: : Company(char*comna,char*pubte,char*comadd,char*comemail,char*chuanzh) { strcpy(companyname,comna); strcpy(pubtel,pubte); strcpy(companyadd,comadd); strcpy(companyemail,comemail); strcpy(chuanzhen,chuanzh); } (4)添加新联系人 voidCbook: : add() { cout< "< <<"姓名: "; cin>>name; cout<<"电话: "; cin>>tel; cout<<"地址: "; cin>>address; cout<<"邮箱: "; cin>>email; cout<<"QQ号: "; cin>>qq; cout<<"身份证号: "; cin>>id; save(); cout< ......"< system("pause"); } (5)查找联系人 voidCbook: : find() { ifstreaminput("person.txt",ios: : in); if(! input) { cout< ! ! ! 文件找不到! ! ! ! ......"< system("pause"); return; } stringsign; cout< "; cin>>sign; fflush(stdin); boolflag=true; stringstr; while(input>>name>>tel) { getline(input,str); if((name==sign)||(tel==sign)) { cout< "< cout< : left)< < flag=false; system("pause"); break; } } if(flag) { cout<<"对不起! ! ! 联系人中没你找的人! ! ! ! "< system("pause"); } } (6).删除联系人. voidCbook: : del() { fstreamoutput("temp.txt",ios: : out); ifstreaminput("person.txt",ios: : in); if(! output||! input) { cout< ! ! ! 找不到该文件! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; boolflag=true; stringstr; while(input>>name>>tel) { getline(input,str); if((sign==name)||(sign==tel)) { cout< "< cout< : left)< <<""< flag=false; break; } output< : left)< <<""< } if(flag) { cout< ! ! 联系人中没你找的人! ! ! ! "< } else { while(getline(input,str)) { output< } output.close(); input.close(); ofstreamout("person.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) { cout< ! ! "< system("pause"); return; } while(getline(in,str)) { out< } out.close(); in.close(); cout< ! ! "< } system("pause"); } (7)修改联系人 voidCbook: : alter() { ofstreamoutput("temp.txt",ios: : out); ifstreaminput("person.txt",ios: : in); if(! output||! input) { cout< ! ! ! 找不到文件! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; stringstr1; boolflag=true; stringstr; while(input>>name>>tel) { getline(input,str); if((sign==name)||(sign==tel)) { cout< "< cout< cout< : left)< <<""< cout< "< cout<<"姓名: "; cin>>name; cout<<"电话: "; cin>>tel; cout<<"地址: "; cin>>address; cout<<"邮箱: "; cin>>email; cout<<"QQ号: "; cin>>qq; cout<<"身份证号: "; cin>>id; save(); flag=false; break; } output< : left)< <<""< } if(flag) { cout< ! ! 联系人中没你找的人! ! ! ! "< } else { while(getline(input,str)) { output< } output.close(); input.close(); ofstreamout("person.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) { cout< ! ! "< system("pause"); return; } while(getline(in,str)) { out< } out.close(); in.close(); cout< ! ! "< } system("pause"); } (8)显示联系人 voidCbook: : appear() { ifstreaminput("person.txt",ios: : in); if(! input) { cout< ! ! ! 没有找到文件! ! ! ! ! "< system("pause"); return; } boolflag=true; stringrecord; while(getline(input,record)) { if(flag) { cout< "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 毕业 课程设计 通信 管理程序