设计实现简单的通讯录C++课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《计算机科学与应用系程序类课程设计》设计报告书题目:设计并实现简单的通讯录指导教师:姓名:学号:日期:2013/5/16计算机科学与应用系2012-2013学年第二学期一、需求分析●功能需求分析:通讯录主要有一下模块:录入纪录、查询纪录、修改纪录、显示纪录、删除纪录、清空纪录、退出操作,其中姓名可以由字符和数字混合编码,电话号码可由字符和数字组成。○通讯录界面设计主要功能是设计通讯录的界面,能够提示用户的实际操作等。我采用的是按照序号来实现相应的操作的,其中:录入纪录(I/i),查询纪录(S/s),修改纪录(M/m),显示纪录(D/d),删除纪录(X/x),清空纪录(Q/q),退出操作(E/e)。○通讯录添加联系人模块主要功能是添加联系人模块,添加操作是根据用户的要求实现的。按实际情况,将通讯录的录入选项加多,包括添加联系人的姓名,性别,出生年月,学校,班级,电话号码,邮政编码,QQ号,家庭住址,最后输入完成后,将提示是否继续输入!○通讯录查询联系人模块主要功能是查询已添加的联系人。其中包括按名字查找和按班级查找。如果没有这条记录,将提示对不起,你要查找的数据不存在!反之,将分条显示该成员的数据。○通讯录修改联系人模块主要是修改联系人的信息,界面提示要输入密码(1)和学生姓名,如果不正确,显示要修改的学生不存在。如果正确,则显示出改联系人的所有信息,并提示根据下面提示修改信息,姓名,性别,出生年月,学校,班级,电话号码,邮政编码,QQ号,家庭住址。○通讯录删除联系人模块主要功能是删除不再需要的联系人。其中包括输入你要删除输入电话或电话号码如果没有的话,将提示:要删除的学生不存在!如果找到,则提示删除联系人的所有信息和这个人的信息已经从你的通讯录中删除的信息!○通讯录显示所有联系人模块显示所有的联系人的信息,包括姓名、电话、QQ、邮编、地址并提示所有联系人已经全部显示出来!!○通讯录关闭通讯录模块提示谢谢您的使用!●环境需求分析:操作系统:Windows7开发软件:VC6.0●方法需求分析该系统由于数据可能会很大,故采用文件操作,能够打开或修改指定文件及将多个文件组成一个文件。而联系人的信息则通过类的对象来保存,它完全使用类来实现,充分体现面向对象的程序设计特点。二、系统主要功能●建立文件○存储文件可以使用默认文件名或指定文件名。○可以不保存输入记录,但需要确认是否保存输入记录。○如果已经有文件,只能在其后追加○新增的记录可以不存入原文件中,也可以用原来的文件覆盖内存的内容。○可以将指定文件的内容追加到目前内存的链表后面。●文件的存取和显示○可以单独存取文件。○可以随时显示内存中记录的全部内容。○可以直接存取默认文件或指定文件。●删除记录○可以按“姓名”方式删除记录并更新。○能给出被删除记录的信息。○如果已经是空表,删除时应该给出提示信息并返回主菜单。○如果没有要删除的信息,输出“没有找到”的信息。●查询记录○可以按“姓名”或“班级“方式查询记录。○能给出查询记录的信息。○如果查询的信息不存在,输出“没有找到“的信息。●整体性能○应可以随时检索、删除或增加新记录,也可以保存或取消新的记录。○姓名可由字符和数字混合编码。○电话号码可由字符和数字组成。三、流程图总菜单选项input()添加search()查找deletes()删除modify()修改display()输出qingkomg()清空Exit选项主函数四、数据结构设计软件中使用的结构体和结构体数组,如:strcpy(st[i].name,name);strcpy(st[i].sex,sex);strcpy(st[i].birth,birth);strcpy(st[i].school,school);st[i].Class=Class;strcpy(st[i].tel,tel);strcpy(st[i].box,box);strcpy(st[i].qq,qq);strcpy(st[i].address,address);};对用户的信息进行保存,他们都以二进制的形式读写。其中:cout请输入要修改的学生的姓名:\t;charpName[20];cinpName;for(i=0;inum;i++)分别对姓名、地址、邮编、电话号码等进行储存在子函数中运用了结构体数组还运用了头文件:student.h其中还使用大量的子函数,例如:voidinput();//增加一条通讯录信息voidsearch();//查询指定同学的信息voidmodify();//修改某一个同学的信息voiddisplay();//输出全部信息voiddeletes();//删除指定记录voidqingkong();//清空所有记录voidmenu();//菜单选择voidbiaotou();//表头五、类设计本程序有八个公有成员函数,九个私有成员。公有:voidinput();用于增加通讯录的成员。voidsearch();用于查询通讯录中已经存入的成员。voidmodify();用于对已存入通讯录的成员进行修改。voiddisplay();用于将保存的通讯录进行输出。voiddeletes();用于删除通讯录中已有的成员。voidqingkong();用于将通讯录中的所有成员清空。voidmenu();主菜单,用于用户对功能的选择。voidbiaotou();链表的标头。私有:charname[20];存放姓名。charsex[4];存放性别charbirth[10];存放生日charschool[20];存放学校intClass;存放班级chartel[15];存放电话号码charbox[10];存放邮政编码charqq[15];存放QQ号charaddress[20];存放家庭地址下面贴上类的代码:classstudent{public:voidinput();//增加voidsearch();//查询voidmodify();//修改voiddisplay();//输出voiddeletes();//删除voidqingkong();//清空voidmenu();//菜单选择voidbiaotou();//表头private:charname[20];//姓名charsex[4];//性别charbirth[10];//出生年月charschool[20];//学校intClass;//班级chartel[15];//电话号码charbox[10];//邮政编码charqq[15];//QQ号charaddress[20];//家庭住址};六、主要算法设计采用模块化设计思想,定义了一个学生类,然后分别在类中定义实现各个功能的函数。在个人类中定义了九个私有变量,分别是姓名,性别,出生年月,学校,班级,电话号码,邮政编码,QQ号,家庭住址。由主菜单选择进入通讯录,进行功能的实现。尽量使用简单明了的文字提示,让界面更加友好。七、主要代码student.h#if!defined_STUDENT_H_#define_STUDENT_H_#includeiostream#includeiomanip#includefstream#includestringusingnamespacestd;classstudent{public:voidinput();//增加voidsearch();//查询voidmodify();//修改voiddisplay();//输出voiddeletes();//删除voidqingkong();//清空voidmenu();//菜单选择voidbiaotou();//表头private:charname[20];//姓名charsex[4];//性别charbirth[10];//出生年月charschool[20];//学校intClass;//班级chartel[15];//电话号码charbox[10];//邮政编码charqq[15];//QQ号charaddress[20];//家庭住址};#endif/*******************************************************************/student.cpp#includestudent.hintnum=0;inti=0;studentst[100];//学生个数/******************************学生通讯录信息的输入******************************/voidstudent::input(){fstreamfile;charch='y';//以输出方式打开文件,如果已经有此名字的文件,则其原有内容全部删除。file.open(d://student.txt,ios::out);while(ch=='y'||ch=='Y'){coutpleaseinputstudent'smessage!endl;cout\t请输入姓名:\t;cinst[i].name;cout\t请输入性别:\t;cinst[i].sex;cout\t请输入出生年月(如199109):;cinst[i].birth;cout\t请输入学校:\t;cinst[i].school;cout\t请输入班级(数字):\t;cinst[i].Class;cout\t请输入电话号码:\t;cinst[i].tel;cout\t请输入邮政编码:\t;cinst[i].box;cout\t请输入QQ号:\t;cinst[i].qq;cout\t请输入家庭住址:\t;cinst[i].address;filest[i].namest[i].sexst[i].birthst[i].schoolst[i].Classst[i].telst[i].boxst[i].qqst[i].addressendl;cout\t☆继续输入?(Y/N):;cinch;num+=1;i++;}cout\t您一共输入了num个人学生的记录。\n;file.close();menu();}/******************************学生通讯录的修改******************************/voidstudent::modify(){fstreamfile;cout修改需密码,请输入(1):;intp;cinp;if(p!=1){cout\t***密码错误!***endl;return;}else{cout请输入要修改的学生的姓名:\t;charpName[20];cinpName;for(i=0;inum;i++){if(strcmp(st[i].name,pName)==0)break;else{cout\t要修改的学生不存在!\n;return;}}cout请输入修改后的姓名:\t;cinname;cout请输入修改后的性别:\t;cinsex;cout请输入修改后的出生年月:;cinbirth;cout请输入修改后的学校:\t;cinschool;cout请输入修改后的班级(数字):\t;cinClass;cout请输入修改后的电话号码:;cintel;cout请输入修改后的邮政编码:;cinbox;cout请输入修改后的QQ号:\t;cinqq;cout请输入修改后的家庭住址:;cinaddress;strcpy(st[i].name,name);strcpy(st[i].sex,sex);strcpy(st[i].birth,birth);strcpy(st[i].school,school);st[i].Class=Class

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功