版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广州番禺职业技术学院C++课程设计报告设计题目:通信录管理系统系别:信息工程学院专业:嵌入式技术与应用班级:11嵌入式小组成员:凌世林卫晓彤李文剑组员分工情况:凌世林:负责编写删除、修改联系人两个模块的程序;写课程设计报告文档。卫晓彤:负责编写显示、查询、复制联系人三个模块的程序;编写主程序,调试程序。李文剑:负责编写添加联系人模块,建Cbook类,写主菜单,做答辩的PPT。2012年12月8日目录TOC\o”1—3”\h\z\u广州番禺职业技术学院 1HYPERLINK\l”_Toc343209843"目录 2HYPERLINK\l”_Toc343209844"1需求分析 31.1功能需求分析: 3_Toc343209847”2.算法设计/设计思想 3HYPERLINK\l”_Toc343209848"2。1设计思想 3HYPERLINK\l”_Toc343209849”3概要设计 43。1模块功能: 43.2.结构总框图描述 4HYPERLINK\l”_Toc343209852”3.3模块功能的实现 63。3。1添加联系人(add()) 6_Toc343209856”3.3。4修改联系人.(alter()) 7_Toc343209858"3.3。6复制全部信息。(copy()) 8HYPERLINK\l”_Toc343209859"3.3。7保存到文本(save()) 8_Toc343209862”5。调试结果 18HYPERLINK\l”_Toc343209863"5.1主菜单 18HYPERLINK\l”_Toc343209864"5。2添加界面 19HYPERLINK\l”_Toc343209865"5。3查找界面 195.5显示界面 20HYPERLINK\l”_Toc343209868”5.6修改界面 20HYPERLINK\l”_Toc343209869"5.7复制界面 20HYPERLINK\l”_Toc343209870”6。设计总结及心得体会 21设计背景随着社会的进展,时代的进步,人们可以利用现代化工具便利的进行沟通联系.例如:手机和电脑已经越来越普及化了,成了人们日常生活沟通联系的必备工具。但随着人们生活范围的扩大,也使得人们需要记住各种伴侣的一些联系方式,这当然就要需要一个通讯录来记录这些繁琐的事情.因此我们这次设计了一个用C++编的通讯录管理系统,用来模拟通讯录的实际应用。1需求分析1。1功能需求分析:通讯录主要有一下模块:通讯录界面设计、添加联系人、删除联系人、显示全部联系人、修改信息、查询联系人、复制通讯录,同时具备文件的保存和读取。1。2环境需求分析:操作系统:Windows开发环境:VC++6。02。算法设计/设计思想2.1设计思想采纳模块化设计思想,分别定义了一个类:然后在类中定义实现各个功能的函数。在个人类中定义了五个私有变量,分别是姓名,电话,地址,邮箱和QQ号。首先进入主菜单。由主菜单选择各个功能。而且在这个类中实现了用文件保存信息,实现了信息的保存与读取。3概要设计3.1模块功能:(1)添加联系人;(2)查找联系人;(3)删除联系人;(4)修改联系人;(5)显示联系人;(6)复制全部信息;(7)退出此系统3.2。结构总框图描述总菜单选项总菜单选项add()添加find()查找del()删除alter()修改appear()显示copy()复制Exit选项主函数个人通讯录3。3模块功能的实现进入主函数的主菜单,当进入通讯录后,会消灭一个功能选择菜单;1.添加联系人(add()) 2.查找联系(find()) 3.删除联系人.(del())4。修改联系人.(alter()); 5.显示联系人(appear())6.复制全部信息.(copy()) 7。关闭该通迅录3.3。1添加联系人(add())(1)依据提示依次输入个人信息:姓名,电话,地址,邮箱和QQ号。(2)输入完成第一个联系人的信息后会提示你新联系人信息已经保存好!你按任意键重新选择功能菜单。3。3。2查找联系(find())(1)首先建立一个输入流文件,用来连接存储信息的文本,若找不到文件,则提示”对不起!!!!文件找不到!!!!。。。.。.”(2)若能找到文件,则提示”请用户输入你想查找的联系人的信息(姓名、联系方式、地址、邮箱、QQ任选一个):”(3)若没有此人的话,则提示"对不起!!!联系人中没你找的人!!!!"若有,则将显示所要查找的联系人的全部信息。你按任意键重新选择功能菜单。3.3。3删除联系人.(del())(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个临时文本,若找不到文件,则提示”对不起!!!!文件找不到!!!!。..。..”(2)若能找到文件,则提示”请用户输入你想删除的联系人的姓名或联系方式:"(3)若没有此人的话,则提示”对不起!!!联系人中没你找的人!!!!"若有,则将显示所要删除的联系人的全部信息,并且提示"这个人的信息已经从你的通迅录中删除!!!”你按任意键重新选择功能菜单。3。3。4修改联系人.(alter())(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个临时文本,若找不到文件,则提示”对不起!!!!文件找不到!!!!.。。..."(2)若能找到文件,则提示"请用户输入你想修改的联系人的信息(姓名、联系方式、地址、邮箱、QQ任选一个):”(3)若没有此人的话,则提示"对不起!!!联系人中没你找的人!!!!”若有,则你可以依据提示修改信息。修改完成后会提示你”这个人的信息已经在你的通迅录中修改!!!"你按任意键重新选择功能菜单.3.3.5显示联系人(appear())(1)首先建立一个输入流文件,用来连接存储信息的文本,若找不到文件,则提示”对不起!!!!文件找不到!!!!。。..。.”(2)若能找到文件,文本中却没有信息的话,则提示”你的通迅录中没有联系人!!!!!",有信息的话,显示全部信息你按任意键重新选择功能菜单。3。3.6复制全部信息。(copy())(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个复制存储文本,若找不到文件,则提示"对不起!!!!文件找不到!!!!。。”(2)复制完成后会提示”已经复制完毕!!!”3。3。7保存到文本(save())建立一个输出流文件用来连接存储信息的文本,将数据存储到文本。3。3。8退出系统4.各模块简略代码设计(1)主函数voidmain(){ intchoice; Cbookperson(“世林”,,"",”865808840com”,”865808340"); while(1) { system("cls"); system(”color2b"); person.menu(); cout<〈”请选择(1—7):”<〈endl; cin>>choice; while(getchar()!='\n’)//清除行输入缓冲区 continue; switch(choice) { 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: exit(0); break; default: cout〈〈endl<<endl<<"输入错误!请输入1~7:"<〈endl<〈endl;system(”pause");break; } } }(2)Cbook类的定义classCbook{public:Cbook(char*na,char*te,char*addre,char*ema,char*q); voidmenu();/*主菜单*/voidadd();/*添加联系人*/ voidfind();/*查找联系人*/ voiddel();/*删除联系人*/voidalter();/*修改联系人*/ voidappear();/*显示联系人*/ voidcopy();/*复制全部信息*/ voidsave();/*保存信息*/private:charname[12];chartel[15];charaddress[22];charemail[20]; charqq[12];};Cbook::Cbook(char*na,char*te,char*addre,char*ema,char*q){ strcpy(name,na); strcpy(tel,te); strcpy(address,addre); strcpy(email,ema); strcpy(qq,q);}//添加新联系人voidCbook::add(){cout〈〈endl<〈"请用户依据下面提示输入新联系人信息:”<<endl〈〈endl<<”姓名:”;cin〉〉name;cout<〈”电话:";cin>〉tel; cout〈〈”地址:";cin>>address; cout〈<"邮箱:”;cin>>email; cout〈<"QQ号:”;cin〉〉qq; save();cout<〈endl<〈"新联系人信息已经保存好!...。.。”<〈endl<<endl;system(”pause”);}//查找联系人voidCbook::find(){ifstreaminput(”person.txt",ios::in);if(!input){cout<〈endl<〈”对不起!!!!文件找不到!!!!。。。。。。"<〈endl;system(”pause");return;}stringsign;cout<<endl〈〈”请用户输入你想查找的联系人的信息(姓名、联系方式、地址、邮箱、QQ任选一个):"<〈endl;cin>>sign;fflush(stdin);boolflag=true;stringstr;while(input>〉name〉>tel>〉address〉>email〉>qq){getline(input,str);if((name==sign)||(tel==sign)||(sign==address)||(sign==email)||(sign==qq)){cout〈<endl〈〈"你要查找的联系人信息有:"〈〈endl<〈endl;cout〈<setiosflags(ios::left)<〈setw(10)〈〈name<〈"”〈〈setw(10)〈〈tel〈〈""<<setw(10)〈<address〈〈""<<setw(10)〈<email〈〈"”<〈setw(12)〈〈qq<<endl;flag=false;system("pause");break;} }if(flag) { cout〈〈"对不起!!!联系人中没你找的人!!!!"<〈endl; system("pause"); }}//。删除联系人.voidCbook::del(){fstreamoutput("temp.txt",ios::out);ifstreaminput(”person.txt",ios::in);if(!output||!input){cout〈<endl<<”对不起!!!!找不到该文件!!!!"<<endl;system("pause");return;} stringsign;cout<〈endl<<”请输入你要删除的联系人的姓名或联系方式:”〈<endl;cin〉>sign;boolflag=true;stringstr;while(input〉〉name〉〉tel){getline(input,str); if((sign==name)||(sign==tel)){cout<〈endl〈〈"你想删除的联系人:"<<endl〈〈endl;cout〈〈setiosflags(ios::left)〈<setw(10)<<name〈〈””<<tel〈〈str<〈endl;flag=false;break;}output〈〈setiosflags(ios::left)〈〈setw(12)<〈name<〈""<<tel<<str〈<endl;}if(flag){cout〈<endl〈<”对不起!!!联系人中没你找的人!!!!"<<endl<〈endl;}else{while(getline(input,str)){output<<str<〈endl;}output.close();input。close();ofstreamout(”person。txt",ios::out);ifstreamin(”temp。txt”,ios::in);if(!out||!in){cout<〈endl〈<”对不起不能打开文件!!!"<<endl<<endl;system(”pause");return;}while(getline(in,str)){out<〈str<〈endl;}out。close();in.close();cout<〈endl〈〈”这个人的信息已经从你的通迅录中删除!!!”〈<endl<〈endl;}system(”pause”);}//修改联系人voidCbook::alter(){charc;ofstreamoutput("temp。txt”,ios::out);ifstreaminput(”person.txt”,ios::in);if(!output||!input){cout〈<endl<<"对不起!!!!找不到文件!!!!”〈<endl;system("pause”);return;}stringsign;cout<〈endl〈〈”请输入你要修改的联系人的信息(姓名、联系方式、地址、邮箱、QQ任选一个):”;cin〉〉sign;stringstr1;boolflag=true;stringstr;while(input〉>name>〉tel〉〉address〉>email〉>qq){getline(input,str);if((sign==name)||(sign==tel)||(sign==address)||(sign==email)||(sign==qq)){cout<<endl<〈”你想修改的联系人信息有:”<<endl<<endl;cout<〈""〈〈endl;cout〈〈setiosflags(ios::left)<〈setw(10)〈〈name<<”"<〈setw(10)〈〈tel<<”"<<setw(10)<<address〈〈””<〈setw(10)〈<email<〈"”<〈setw(12)〈<qq〈<endl; cout〈〈”"〈〈endl;do { cout<〈”1。修改姓名2。修改联系方式3。修改地址4。修改邮箱5.修改QQ号码6.退出修改\n”〈〈endl; cout<〈"请选择(1—6)要修改的信息\n”〈<endl; cin〉〉c; if(c!='6') cout<〈”请输入新的信息:"; switch(c) { case'1’:cin〉>name;break; case'2':cin>〉tel;break; case'3':cin〉〉address;break; case'4’:cin>〉email;break; case’5':cin〉>qq;break; default:break; } }while(c!=’6'); save(); system("cls”); cout〈〈”\t***修改成功***\n”<<endl;flag=false;break; }output〈〈setiosflags(ios::left)〈<setw(10)〈〈name〈<""〈〈setw(10)〈<tel<<”"〈<setw(10)<〈address〈<”"〈〈setw(10)<〈email<〈""〈〈setw(12)〈<qq<<endl;}if(flag){cout〈〈endl〈〈”对不起!!!联系人中没你找的人!!!!"<<endl〈〈endl;}else{while(getline(input,str)){output<<str〈<endl;}output.close();input。close();ofstreamout(”person。txt”,ios::out);ifstreamin("temp。txt",ios::in);if(!out||!in){cout<<endl<〈”对不起不能打开文件!!!”<〈endl<<endl;system(”pause”);return;}while(getline(in,str)){out<〈str<〈endl;}out.close();in.close();cout〈〈endl〈<"这个人的信息已经在你的通迅录中修改!!!”〈<endl<〈endl;}system("pause");}//显示联系人voidCbook::appear(){ifstreaminput("person。txt",ios::in);if(!input){cout<〈endl〈〈”对不起!!!!没有找到文件!!!!!”<〈endl;system(”pause”);return;}boolflag=true;stringrecord;while(getline(input,record)){if(flag){cout〈〈endl〈<”全部联系人信息如下:"〈<endl;}cout〈〈record<<endl;flag=false;}if(flag){cout<〈endl<〈”你的通迅录中没有联系人!!!!!"<〈endl〈<endl;}else{cout<〈endl〈〈”全部联系人已全部显示出来!!!!!"<<endl〈〈endl;}system(”pause");}//复制全部信息voidCbook::copy(){ ifstreaminput("person.txt”,ios::in); ofstreamoutput(”copy.txt”,ios::out);if(!input||!output){cout〈〈endl〈<"对不起!!!!没有找到文件!!!!!”〈〈endl;system(”pause”);return;}stringrecord;while(getline(input,record)){output<<record<<endl;}output。close();input.close();cout<<endl<〈"已经复制完毕!!!”<<endl〈〈endl;system("pause");}//存储信息到文件voidCbook::save(){ofstreamoutput("person.txt”,ios::app);//定义输出文件流对象output,打开方式为追加!ifstreamin(”person。txt”,ios::in);if(!output||!in){cout〈<endl〈<”对不起!!!打开文件失败!!!!”<<endl〈〈endl;system("pause");return;//或用exit(1);} stringstr; getline(in,str); inti;//if(i==1&&str=="\0"){output〈<setiosflags(ios::left)<〈setw(10)〈〈"姓名”〈<""<<setw(10)<〈"联系方式”〈<””〈〈setw(10)〈〈"地址”<〈""〈〈setw(10)<<”邮箱”<<"”〈〈setw(12)〈〈”QQ号"<<endl;}i++;output〈<setiosflags(ios::left)〈〈setw(10)<<name<〈”"<〈setw(10)<〈tel〈〈"”<<setw(10)〈〈address<<””<<setw(10)〈<email〈〈””<〈setw(12)<〈qq<〈endl;output。close(); in.close();}//主菜单voidCbook::menu(){ cout〈<”\t★★★(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)★★★”<〈endl<<"\t%>_〈%欢迎进入通讯录管理系统%>_<%"<〈endl <<”\t%〉_〈%%〉_〈%”<<endl 〈〈”\t%>_〈%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度农业科技园区运营管理合同标准3篇
- 二零二五年度林权登记与不动产登记网络安全保障合同
- 2025年度智能控制喷锚工程劳务施工合同标准
- 二零二五年度美术教育研发中心美术教师聘用合同4篇
- 2025年度民间担保人文化创意产业贷款合同模板
- 二零二五年度数字经济派遣合同就业协议书范本
- 2025年新能源汽车零部件采购及供应合同范本2篇
- 2025年度山西旅游行业劳动合同书范本3篇
- 2025版智能门卫服务与社区治安巡逻合同3篇
- 2025装载机驾驶员聘用合同-装载机驾驶员职业技能鉴定协议3篇
- 《openEuler操作系统》考试复习题库(含答案)
- 《天润乳业营运能力及风险管理问题及完善对策(7900字论文)》
- 医院医学伦理委员会章程
- xx单位政务云商用密码应用方案V2.0
- 2024-2025学年人教版生物八年级上册期末综合测试卷
- 2025年九省联考新高考 语文试卷(含答案解析)
- 死亡病例讨论总结分析
- 第二章 会展的产生与发展
- 空域规划与管理V2.0
- JGT266-2011 泡沫混凝土标准规范
- 商户用电申请表
评论
0/150
提交评论