C++课程设计报告_第1页
C++课程设计报告_第2页
C++课程设计报告_第3页
C++课程设计报告_第4页
C++课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告题目 通信录的设计 学 院 专 业 班 级 学生姓名:12月_15_日至J2_月_28_日共2周指导教师(签字) 院长(主任)(签字) 2014年12月19日一、设计内容及要求设计要求:定义人员(person)类,其中至少包括姓名、性别、年龄、电话和类别(例如:同学、朋友等)。二、实现下面的功能:1输入功能:输入人员信息。2、查询功能:

1) 能够根据姓名精确查询人员信息;2) 根据电话号码查询人员信息。3、 根据姓名对人员信息排序输出。4、 能根据姓名、电话修改人员信息。5、 能根据姓名、电话删除人员信息。三、分析与设计3.1系统模块设计根据系统的功能设计,如下模块主界面显示功能选择通讯录信息录入通讯录信息修改通讯录信息查询通讯录信息导入通讯录信息导出通讯录信息删除主界面显示功能选择通讯录信息录入通讯录信息修改通讯录信息查询通讯录信息导入通讯录信息导出通讯录信息删除主界面模块:完成系统菜单的显示功能选择模块:根据用户的选择,完成其相应的功能(1) 通讯录信息录入:完成用户从界面输入通讯录,保存入系统的功能(2) 通讯录信息修改:完成用户从界面输入通讯录,在系统中查询定位,并将录入的数据保存入系统的功能(3) 通讯录信息查询:完成用户从界面输入查询条件,在系统查询符合条件的通讯录信息,并在界面上显示的功能。(6)通讯录信息删除:完成用户从界面输入需要的通讯录信息的姓名,并将其从系统中删除。3.2数据结构设计根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下:数据项名称数据项系统表示数据类型数据长度备注姓名name字符串20地址address字符串100电话tele字符串203.3界面设计主界面:根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将在每个菜单前显示该菜单项对应的数字用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。输入界面:在光标下输入通讯录的信息,用空格将信息隔开。修改界面:首先输入通讯录的姓名,显示该通讯录的详细信息,输入修改后的信息,将原来信息修改。删除界面:输入需要删除的姓名,将其从通讯录中删除。显示联系人界面:显示全部联系人查询界面、;输入联系人姓名或号码可查询联系人信息3.4模块实现主界面实现:调用cout函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。对应的实现函数menu_show();功能选择模块实现:一接受从键盘输入的菜单选择,判断并调用相应的功能函数,完成其对应的功能。实现功能选择。对应的函数:menu_select();通讯录信息录入模块实现:模块说明:从键盘接收输入的通讯录信息,在动态存储区中创建通讯录的节点,遍历链表,将其插入到通讯录链表的最后位置。模块流程:清屏遍历链表找至"最后一个节点创建一个新节点从键盘给新节点赋值将新节点连接到链表的最后一个节点上对应函数:add(structphone*head)通讯录信息修改模块实现:模块说明:从键盘接收输入的需要修改通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入修改后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录C模块流程:

对应函数:update(structphone*head)通讯录信息删除模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录<模块流程:对应函数:delete(structphone*head)通讯录信息导入模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录C

模块流程:对应函数:load(structphone*head)通讯录信息导出模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录<模块流程:对应函数:save(structphone*head)通讯录信息查询模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点

的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录模块流程:对应函数:search(structphone*head)通讯录信息显示模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录<模块流程:对应函数:list(structphone*head)四•调试主界面修改界面ilL宗4-慢改信■*,-m-査忧联系.人、-a-IE土i邑iiL系-外必-外必-S"l| 12ELBB 卑I离扌寿任:&謎£也缭--- 半.■ 显示联系人界面*.斤也:htjjpWR.甩■ 鳴・MrrafK.BI.・It.1QW|t・M・tA«> 缶―*i4HVK4&^■「Kr A. ».lOUHhftl戻®亠flMJl

f+P-

V斗TF添加联系人界面五•程序源代码:#include<iostream>#inelude<string>#include<iomanip>#inelude<fstream>#include<cstdlib>intn,m;usingnamespacestd;classmsg{public:

首页添加联系人

删除联系人

显示所有联系人charinter_face();〃voidadd_person();//voiddel_person();//voidshow_all();首页添加联系人

删除联系人

显示所有联系人voidalter();// 修改信息voidselect();//查询联系人voidsave_new();〃 保存新增加的联系人private:stringname;// 姓名stringsex;// 性另stringnum;〃 电话号码stringad;// 地址stringrl;// 类型};msg::msg(){name="\0";ad="\0";num="\0";sex="\0";rl="\0";}//首页charmsg::inter_face(){cout<<endl;cout<<"\t\t***********************************************"<<endl<<"\t\tcout<<"\t\t***********************************************"<<endl<<"\t\t<<"\t\t通 迅录<<"\t\t<<"\t\t1.添加新联系人• 4.修改信息.<<"\t\t<<"\t\t2.删除联系人.5.查询联系人.<<"\t\t<<"\t\t3.显示所有联系人.0.退出通迅录.<<"\t\tVV"\t\t*土***************************************"<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"\t\t\t选择:"charchoose;cin>>choose;returnchoose;}//添加联系人voidmsg::add_person(){_cout<<endl<<"根据下面提示输入新联系人信息"<<endl<<endl<<"姓名:";cin>>name;cout<<"电话:";cin>>num;cout<<"类型:";cin>>rl;cout<<"性别:";cin>>sex;cout<<"地址:";cin>>ad;save_new();cout<<endl<<endl<<" 新联系人信息已经保存好!!!!!"<<endl;}//删除联系人voidmsg::del_person(){ofstreamoutData("temp.txt",ios::out);ifstreaminData("pbook.txt",ios::in);//if(!outData||!inData){cout<<endl<<"对不起!!!!找不到文件!!!!"<<endl;system("pause");return;}stringsign;cout<<endl<<"你要删除输入姓名或电话号:";cin>>sign;stringstr1;boolflag=true;stringstr;while(inData>>name>>num){getline(inData,str);if((sign==name)||(sign==num)){cout<<endl<<"你想删除的联系人:"<<endl<<endl;cout<<str1<<endl;cout<<setiosflags(ios::left)<<setw(17)<<name<<""<<num<<str<<endl;flag=false;break;}outData<<setiosflags(ios::left)<<setw(17)<<name<<""<<num<<str<<endl;}if(flag){cout<<endl<<"对不起!!!联系人中没你找的人!!!!"<<endl<<endl;}else{while(getline(inData,str)){outData<<str<<endl;}outData.close();inData.close();ofstreamout("pbook.txt",ios::out);ifstreamin("temp.txt",ios::in);if(!out||!in){cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;return;}while(getline(in,str)){out<<str<<endl;}out.close();〃in.close();cout<<endl<<"这个人的信息已经从你的通迅录中删除 !!!"<<endl<<endl;}}//显示所有联系人voidmsg::show_all(){_ifstreaminData("pbook.txt",ios::in);if(!inData){cout<<endl<<"对不起!!!!没有找到文件!!!!!"<<endl;return;}boolflag=true;stringrecord;while(getline(inData,record)){if(flag){cout<<endl<<"所有联系人信息如下:"<<endl;cout«"姓名"<<setw(18)vv"电话"<<setw(15)<<"性别"vvsetw(21)vv"类型"<<setw(15)vv"地址"<<endl;}cout<<record<<endl;flag=false;}if(flag){cout<<endl<<"你的通迅录中没有联系人!!!!!"<<endl<<endl;}else{cout<<endl<<"所有联系人已经全部显示出来!!!!!"<<endl<<endl;}}//修改信息voidmsg::alter(){ofstreamoutData("temp.txt",ios::out);ifstreaminData("pbook.txt",ios::in);//if(!outData||!inData){cout<<endl<<"对不起!!!!找不到文件!!!!"<<endl;return;}stringsign;cout<<endl<<"你要修改输入姓名或电话号:";cin>>sign;stringstr1;boolflag=true;stringstr;while(inData>>name>>num){getline(inData,str);if((sign==name)||(sign==num)){cout<<endl<<"你想修改的联系人:"<<endl<<endl;cout<<str1<<endl;cout<<setiosflags(ios::left)<<setw(17)<<name<<""<<num<<str<<endl;cout<<endl<<"请根据下面提示修改信息:"<<endl;cout<<"姓名:";cin>>name;fflush(stdin);cout<<"电话号:";cin>>num;fflush(stdin);cout<<"性别:";cin>>sex;fflush(stdin);cout<<"类型:";cin>>rl;fflush(stdin);cout<<"地址:";cin>>ad;fflush(stdin);save_new();flag=false;break;}outData<<setiosflags(ios::left)<<setw(17)<<name<<""<<num<<str<<endl;}if(flag){cout<<endl<<"对不起!!!联系人中没你找的人!!!!"<<endl<<endl;}else{while(getline(inData,str)){outData<<str<<endl;}outData.close();inData.closeO;ofstreamout("pbook.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;}}//查询联系人voidmsg::select(){ifstreaminData("pbook.txt",ios::in);if(!inData){cout<<endl<<"对不起!!!!文件找不到!!!!"<<endl;system("pause");return;}stringsign;cout<<endl<<"输入你想查找的联系人的姓名或电话号码:";cin>>sign;fflush(stdin);stringstr1;boolflag=true;stringstr;while(inData>>name>>num){getline(inData,str);if((name==sign)||(num==sign)){cout<<endl<<"你要查找的联系人是:"<<endl<<endl;cout<<str1<<endl;cout<<setiosflags(ios::left)<<setw(17)<<name

<<num<<str<<endl;flag=false;system("pause");break;}}}voidmsg::save_new(){_ofstreamoutData("pbook.txt",ios::app);if(!outData){cout<<endl<<"对不起!!!打开文件失败!!!!"<<endl<<endl;system("pause");return;}outData<<setiosflags(ios::left)<<setw(17)<<name<<""<<setw(16)<<num<<""<<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论