《C++设计报告.pdf》由会员分享,可在线阅读,更多相关《C++设计报告.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北华大学电气信息工程学院C+实习报告题目:通讯录设计一、课程设计目的1.通过 C+课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。2、通过这次课程设计掌握C+语言程序设计的编程思想,为后续课程打下基础。3、培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。课程设计的要求利用学到的编程知识和编程技巧,要求学生:1、对系统进行功能模块分析、控制模块分析正确2、系统设计要能完成题目所要求的功能。3、编程简练,可用,尽可能的使系统的功能更加完善和全面4、使用说明书
2、、流程图要清楚。5、特别要求自己独立完成。二、课程设计的内容1、课程设计的题目及简介题目:通信录的设计设计要求:一、定义人员(person)类,其中至少包括姓名、性别、电话、地址、邮政编码、邮箱、QQ 号和类别(例如:同学、朋友等)二、实现功能:1、设计菜单实现功能选择2、输入功能:输入人员信息,并保存到文件中;3、能根据姓名、电话删除人员信息4、查询功能:1)能够根据姓名、电话精确查询人员信息;2)能够根据地址进行模糊查询人员信息;3)根据人员类别查询人员信息5、能根据姓名、电话修改人员信息6、根据姓名对人员信息排序输出2、设计说明根据问题描述和要求,系统要求设计一个主菜单实现功能选择,要有
3、输入功能和查询功能,要能根据姓名对人员排序,还要能根据姓名电话修改,删除人员信息。系统的输入功能是在输入完人员信息后还能把人员信息保存在指定文件夹中,这样方便查找人员信息。查询功能可以根据姓名、电话号码精确查找人员信息;能根据地址进行模糊查询信息;还能根据人员类别查询信息。系统能根据人员信息的姓名进行排序并输出全部信息,如果无人员信息,输出“无人员信息”。综合考虑系统具有以下几项功能模块:菜单项、输入功能、删除功能、查询功能、修改功能、排序功能、退出功能。主菜单界面:三、程序流程图1、总功能模块执行图:开始显示菜单?选择菜单(录入、删除、查询、修改、输出)执行操作结束/退出系统返回菜单2、各功
4、能模块执行图:.录入(增加)信息使用 person 类,借用 while 循环及 person类成员,。在菜单界面输入1,增加人员相关信息,并保存信息,信息录入以后,返回菜单界面,再选择所需执行项目。操作界面:菜单界面输入 1 输入新增人员人数输入相关人员信息并保存返回菜单.删除信息使用 person 类及 while 语句进行信息匹配:发现匹配项信息,用删除函数删除信息并提示该信息已删除;若没有发现匹配项,则输出没有相关信息并返回菜单界面,再选择所需执行项目。操作界面:.查询信息使用 person 类及 while 语句进行信息匹配:发现匹配信息,则将该人员全部信息输出;若没有发现匹配项,则
5、输出无相关信息并返回菜单界面,在选择所需执行项目。菜单界面输入 2 输入人员姓名及电话?搜索匹配信息并执行对应操作返回菜单返回菜单?搜索匹配信息并执行对应操作输入对应查询关键字菜单界面输入 3/4/5.修改信息使用 person 类及 while 语句进行信息匹配:发现匹配信息,则将该人员全部信息进行重新编辑修改;若没有发现匹配项,则输出无相关信息并返回菜单界面,在选择所需执行项目。操作界面:返回菜单?搜索匹配信息并执行对应操作输入对应删除关键字菜单界面输入 6.输出信息使用 person 类、if 判断、while 循环输出,及有关函数的调用,实现以姓名为排序根据,利用清屏函数先将屏幕清白,
6、再将储存的全部人员信息输出。操作界面返回菜单清屏并以姓名排序输出全部信息菜单界面输入 7.退出3、源代码:#include#include using namespace std;constint nu=100;void setup()cout 通讯录n;cout 学校:n;cout 学院:n;cout 专业:n;cout 班级:n;cout作者:n;couttttttCopyright(c+)2013n;coutendl;enum SexMan,Woman,mid;class person private:string name;enum Sex sex;string address;str
7、ing phone;stringpocode;string email;stringqq;string type;/类别person*next;public:person()name=name;sex=mid;address=address;phone=phone;pocode=pocode;email=email;qq=qq;type=type;next=NULL;voidsetname()cout输入姓名 name;stringgetname()return name;voidsetsex()string x;cout输入 0 或 1,0 代表男性,1 代表女性 x;sex=(x=0)?M
8、an:Woman;stringgetsex()return(sex=Man)?Man:Woman;voidsetaddress()cout输入地址 address;stringgetaddress()return address;voidsetphone()cout输入电话号码 phone;stringgetphone()return phone;voidsetpocode()cout输入邮政编码 pocode;stringgetpocode()returnpocode;voidsetemail()cout输入邮箱 email;stringgetemail()return email;void
9、setqq()cout输入 QQ 号qq;stringgetqq()returnqq;voidsettype()cout输入类别 type;stringgettype()return type;voidsetnext(person*per)next=per;person*getnext()return next;voidm_swap(person&p)swap(name,p.name);swap(address,p.address);swap(email,p.email);swap(phone,p.phone);swap(pocode,p.pocode);swap(qq,p.qq);swap(
10、sex,p.sex);person();int main()setup();person*head=new person();int n;cout 请输入指令0,1,2,3,4,5,6,7,endl;cout0、退出通讯录系统endl;cout1、录入功能:用于增加通讯录的内容,即首次录入同学的相关信息。endl;cout2、删除功能:通过姓名、电话查找,然后删除一个同学的相关信息。endl;cout3、查询功能一:可以通过姓名、电话查找某个同学的信息。endl;cout4、查询功能二:可以通过地址查找某个同学的信息。endl;cout5、查询功能三:可以通过类别查找某个同学的信息。endl;
11、cout6、修改功能:通过姓名、电话查找,然后完成姓名、性别、地址、邮政编码、邮箱、QQ 号,类别和电话等信息的修改。endl;cout7、排序输出:按姓名排序并输出所有人员信息。endl;cout 请输入:n;while(!(0=n&nn;while(n)switch(n)case 1:/输入功能intnum;cout请输入需要录入的学生人数num;while(num-)person*s=new person();s-setname();s-setsex();s-setphone();s-setaddress();s-setpocode();s-setemail();s-setqq();s-
12、settype();s-setnext(head-getnext();head-setnext(s);break;case 2:/姓名,电话类删除功能 string name;string phone;cout输入要删除的学生姓名、电话name;cinphone;person*p;person*q=head;p=head-getnext();if(p=NULL)cout 通讯录为空 getname()!=name)&(p-getphone()!=phone)coutheregetnext();if(p=NULL)cout 不存在符合条件的记录!setnext(p-getnext();cout
13、姓名为 getname()的学生已删除 endl;delete p;break;case 3:/姓名,电话类查询功能 string name;string phone;cout请输入姓名及电话name;cinphone;person*p=head-getnext();while(p)if(p-getname()=name)break;p=p-getnext();if(p=NULL)cout 该学生不存在 endl;else cout 学生信息:endl;cout 姓名:getname()endl;coutQQ 号:getqq()endl;cout 邮政编码:getpocode()endl;co
14、ut 邮箱:getemail()endl;cout 类别:gettype()endl;cout 地址:getaddress()endl;cout 性别:getsex()endl;cout 电话号码:getphone()endl;break;case 4:/地址类查询功能 string address;cout请输入地址 address;person*p=head-getnext();while(p)if(p-getaddress()=address)break;p=p-getnext();if(p=NULL)cout 该学生不存在 endl;else cout 学生信息:endl;cout 姓
15、名:getname()endl;coutQQ 号:getqq()endl;cout 邮政编码:getpocode()endl;cout 邮箱:getemail()endl;cout 类别:gettype()endl;cout 地址:getaddress()endl;cout 性别:getsex()endl;cout 电话号码:getphone()endl;break;case 5:/类型类查询功能 string type;cout请输入类别 type;person*p=head-getnext();while(p)if(p-gettype()=type)break;p=p-getnext();
16、if(p=NULL)cout 该学生不存在 endl;else cout 学生信息:endl;cout 姓名:getname()endl;coutQQ 号:getqq()endl;cout 邮政编码:getpocode()endl;cout 邮箱:getemail()endl;cout 类别:gettype()endl;cout 地址:getaddress()endl;cout 性别:getsex()endl;cout 电话号码:getphone()endl;break;case 6:/姓名,电话类修改功能 string name;string phone;cout请输入姓名及电话name;c
17、inphone;person*p=head-getnext();while(p)if(p-getname()=name)|(p-getphone()=phone)break;p=p-getnext();if(p=NULL)cout 该学生不存在 endl;else cout 修改姓名 setname();cout 修改 QQsetqq();cout 修改邮政编码 setpocode();cout 修改邮箱 setemail();cout 修改类别 settype();cout 修改地址 setaddress();cout 修改性别 setsex();cout 修改电话号码 setphone()
18、;cout 修改完毕 getnext();while(per&per-getnext()person*q=per-getnext();while(q)if(per-getname()q-getname()(*per).m_swap(*q);q=q-getnext();per=per-getnext();per=head-getnext();system(cls);coutnn;if(!per)cout无人员信息!ngetnext();while(per)cout姓名:getname();cout;cout地址:getaddress();cout;cout电话:getphone();cout;c
19、out邮箱:getemail();cout;cout邮政编码:getpocode();cout;coutQQ 号码:getqq();cout;cout性别:getsex();cout;cout类别:gettype();coutgetnext();break;cout请输入指令0,1,2,3,4,5,6,7,endl;cout0、退出通讯录系统endl;cout1、录入功能:用于增加通讯录的内容,即首次录入同学的相关信息。endl;cout2、删除功能:通过姓名、电话查找,然后删除一个同学的相关信息。endl;cout3、查询功能一:可以通过姓名、电话查找某个同学的信息。endl;cout4、查
20、询功能二:可以通过地址查找某个同学的信息。endl;cout5、查询功能三:可以通过类别查找某个同学的信息。endl;cout6、修改功能:通过姓名、电话查找,然后完成姓名、性别、地址、邮政编码、邮箱、QQ 号,类别和电话等信息的修改。endl;cout7、排序输出:按姓名排序并输出所有人员信息。endl;cout 请输入:n;return 0;四、课程设计总结这一周的 C+课程设计,时间上说长不长,说短也不短,却让我学到了很多,第一点就是:C+很难,似乎是学不完的,你觉得自己了解一点,是总会发现还有很多自己所不懂的东西,还有很多自己所没探知的领域,很多知识运用到实践中很有一定的难度,看着自己和同学的程序运行结果,突然发现 C+真的很神奇,居然能运行出那么漂亮的系统。课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。在我们上机调试程序的过程中,我遇到了很多的问题,自己设计是总是觉得没有头绪,无从下手。看到同学认真看程序的样子,还有修改程序时的熟练,我很羡慕他,我想,我也要将C+学好,在将来能为我的就业加分。