ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:145.58KB ,
资源ID:5063112      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5063112.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c通讯录管理系统.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c通讯录管理系统.docx

1、c 通讯录管理系统通讯录管理系统专 业: 班 级: 软件112班 姓 名: 常婉娜 学 号: 201101014201 指导教师: 郭永锋 4.7排序记录 135.6查询记录源代码 215.6排序记录源代码 216.2增加记录 231.课程设计目的1.1课程设计的目的C/C+课程设计是将C/C+理论教学与实践环节相结合的关键步骤,为学生提供了一个既动手又动脑,将课本上的理论知识和实践有机的结合起来,独立分析和解决实际问题的机会。通过本次课程设计,使学生: 进一步学习和巩固C/C+课程的核心内容,加深对面向过程(或对象)程序设计思想的正确理解。 提高学生分析问题、解决问题以及综合利用C语言进行程

2、序设计的能力。培养学生结构化程序、模块化程序设计的方法和能力。 熟练掌握C/C+程序设计技能及上机调试方法,为今后学习其他专业课程打好基础。具备一定的计算机应用及软件开发能力,培养独立分析问题、解决问题及查阅资料、获取新知识的能力,以适应技术不断更新的计算机行业特点1.2课程设计的题目通讯录管理。 1.3题目要求1.3.1问题描述(功能要求):学生信息包括:编号,分组 ,姓名,固话,手机号,QQ号码,E-mail,家庭住址。(1)能建立、修改和增删学生通讯录(2)能够按多种方式进行查询1.3.2问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系

3、及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。2.需求分析2.1功能需求分析 通讯录主要有以下模块:通讯录界面设计、添加记录、删除记录、显示记录、修改记录、查询记录,排序记录。2.1.1通讯录主菜单主要功能是设计通讯录的界面,能够提示用户的实际操作等。按照序号来实现相应的操作,其中:添加记录,删除记录,显示记录,修改记录,查询记录, 退出系统。2.1.2通讯录添加记录模块增加一个或几个人的记录,并可选择继续输

4、入或退出2.1.3通讯录删除记录模块删除已输入的记录。输入姓名查找要删除的记录,若找到,提示是否确定删除,若选择是,则删除该人信息,若选择否,则取消;若没找到,提示无此人信息。2.1.6通讯录查询记录模块可按姓名查找某人记录,也可查找某个组的所有记录。若找到,则显示所有人的记录,否则提示未找到,无论查找成功否,应还可选择继续查找或退出。2.1.4通讯录显示记录模块主要是显示所有的联系人的信息2.1.5通讯录修改记录模块修改某人的记录。输入姓名并查找,若找到,显示该人的所有信息,并可进行修改;否则提示无此人信息2.1.6通讯录登录模块该模块在进入主界面之前先执行,用于对进入系统的用户进行身份验证

5、,若用户输入正确的用户名及用户密码,则进入主界面,否则输入超过3次错误则退出程序。处理方法:用户名及用户密码可保存在一文件中,校验时从文件中读入数据进行校验。在系统中应增加一个用户管理模块,在其中可新增用户,修改用户信息等。2.1.7通讯录排序记录模块可分别按分组、编号或姓名进行排序2.1.8通讯录系统帮助模块显示开发者姓名、班级、开发完成日期、版本号和指导老师等信息。2.1.8通讯录退出模块2.2 方法需求分析该系统由于数据可能会很大,故采用文件操作,能够打开或修改指定文件及将多个文件组成一个文件。而联系人的信息则通过类的对象来保存,它完全使用类来实现,充分体现面向对象的程序设计特点。3.概

6、要设计3.1 系统功能模块图2.1 系统功能模块图通讯录系 统 添加联系人删除联系人查询联系人修改信息显示所有联系人排序联系人系统帮助 退出登陆 3.2 设计思想通讯录系统是用面向对象的方法设计,在类中定义 add_person( ),del_person( ),show_all( ),alter( ),select( ),save_new( )等方法和num ,name,group,phone,hpone,addr,email,QQ等属性来实现通讯录的各种操作。3.3 主要代码描述3.31添加联系人的实现;通过输入联系人的如下信息:姓名、电话、QQ、邮编、地址,固化,编号,分组,并把输入的信

7、息保存对象的属性,创建或者打开文件,并向文件中写入新添加的联系人信息void comm_info:add_users() system(cls); char m=Y; cout请添加联系人:endl; coutendl; coutendlname; coutendlnum; coutendlgroup; coutendlhphone; coutendlmphone; coutendlqq; coutendlemail; coutendladdr; save_new(); coutendl添加成功!endl; cout是否继续添加(Y/N)?m; if(m=Y) add_users(); els

8、e menu(); system(cls); 3.32删除联系人的实现首先输入你要删除姓名,删除操作时采用输入的姓名 与文件中的姓名 比较,从头到尾开始遍历,如果没有的话,将提示:对不起!联系人中没你要找的人!如果找到,则提示删除联系人的所有信息和这个人的信息已经从你的通讯录中删除的信息!void comm_info:del_users() ofstream outData(temp.txt, ios:out);/? ifstream inData(comm_info.txt, ios:in); /? if (!outData | !inData) coutendl 对不起,找不到文件! en

9、dl; system(pause); return; string sign; coutendlsign; bool flag=true; string str; while (inDataname) /inData name :从inData读入一个字符串,直到遇到文件结束符其值才为假 getline(inData, str);/读取一行字符,然后文件指针指向下一行开头 if(name=sign) /如果删除的姓名匹配则将这个人信息输出 cout endl 您要删除的联系人信息:endlendl; coutname strendl; flag=false; break;/跳出循环 /程序没有

10、跳出出循环说明姓名不匹配,然后将这些人信息存入临时文件 outDataname strendlendl;/没写则全部删除 if (flag) coutendl对不起,通讯录中没有此联系人!endl; else while (getline(inData, str) outDatastrendl; outData.close();/关闭comm_info.txt文件 inData.close();/关闭temp.txt文件 char m=Y; coutendl确定删除此联系人(Y/N)?m; if(m=Y) /下面就将临时文件中的记录重新输出到原始文件,因为临时文件中存放的都是不匹配的信息,这样

11、就达到了删除的效果 ofstream out(comm_info.txt, ios:out);/? ifstream in(temp.txt, ios:in); if (!out|!in) cout对不起不能打开文件!endl; system(pause); return; while (getline(in, str) outstrendl; out.close();/? in.close(); cout此人的的信息已从通讯录中删除!endl; else menu(); system(pause); menu();3.33显示所有联系人的实现:把文件中的各种信息读取并显示出来,代码如下voi

12、d comm_info:show_users() ifstream inData(comm_info.txt,ios:in); if(!inData) cout对不起,没有找到您需要的文件!endl; system(pause); return; bool falg=true; string std; while(getline(inData,std)/? if(falg) cout所有联系人信息如下:endl; coutstdendl; falg=false; if(falg) coutendl你的通讯录中没有联系人!endl; else coutendl所有的联系人已经输出!endl; i

13、nData.close(); system(pause); menu();3.34 查询联系人模块 对文件进行遍历,将联系人的所有信息都显示出来。具体代码见3.4中。3.35 修改联系人模块只要输入来联系人的名字,进行文件爱你的遍历查找到联系人的信息,而后进行修改。具体代码见3.4中。3.36排序通讯录模块只要输入来联系人的名字,进行文件爱你的遍历查找到联系人的信息,而后进行排序。具体代码见3.4中。3.37登陆通讯录模块该模块在进入主界面之前先执行,用于对进入系统的用户进行身份验证,若用户输入正确的用户名及用户密码,则进入主界面,否则输入超过3次错误则退出程序,具体代码见3.4中。3.38系

14、统帮助通讯录模块显示开发者姓名、班级、开发完成日期、版本号和指导老师等信息。具体代码见3.4中。3.38关闭通讯录模块 提示谢谢使用!具体代码见3.4中。3.4 程序详细代码#include #include /#include #include /输入/输出文件流类,实现输入/输出#include #include /容器#include /sort排序using namespace std;/登录int login(string usename,string pwd) if(usename=changwanna & pwd=201) return 1; else return 0; cla

15、ss comm_info/ 类 public: string login(); void menu(); void add_users();/添加 void find_users();/查找 void del_users();/删除 void edit_users();/修改 void sort_users();/排序 friend bool comp(const comm_info &a, const comm_info &b ); void show_users();/显示所有人信息 void help(); /系统帮助 void save_new();/保存新增加的联系人 void le

16、ave();private: string name; /姓名 long num; /编号 char group16; /分组 char hphone16; /固话home_phone char mphone16; /手机号mobile_phone char qq16; /QQ号码 char email20; /e-mail地址 string addr; /家庭住址或通信地址 ;/首页void comm_info:menu() comm_info info; system(cls);/清屏 int n; coutendl; coutendl; coutendl; couttendl; cout

17、t 欢迎进入通讯录管理系统! endl; coutt 1 添加 endl; coutt 2 查询 endl; coutt 3 删除 endl; coutt 4 修改 endl; coutt 5 排序 endl; coutt 6 显示所有人信息 endl; coutt 7 系统帮助 endl; coutt 8 退出 endl; couttendl; coutendlsetw(42)n; system(cls); switch(n) case 1:coutsetw(53)*你选择了添加*endl;info.add_users();break;/函数调用 case 2:coutsetw(50)*你选

18、择了查询*endl;info.find_users();break; case 3:coutsetw(50)*你选择了删除*endl;info.del_users();break; case 4:coutsetw(50)*你选择了修改*endl;info.edit_users();break; case 5:coutsetw(53)*你选择了排序*endl;info.sort_users();break; case 6:coutsetw(55)*你选择了显示所有人信息*endl;info.show_users();break; case 7:coutsetw(53)*你选择了系统帮助*endl

19、;info.help();break; case 8:info.leave();break; /添加联系人void comm_info:add_users() system(cls); char m=Y; cout请添加联系人:endl; coutendl; coutendlname; coutendlnum; coutendlgroup; coutendlhphone; coutendlmphone; coutendlqq; coutendlemail; coutendladdr; save_new(); coutendl添加成功!endl; cout是否继续添加(Y/N)?m; if(m=

20、Y) add_users(); else menu(); system(cls); /保存新增加的联系人void comm_info:save_new() ofstream outData(comm_info.txt,ios:app);/ofstream outData定义输出文件流对象outData;ios:app使添加信息不被覆盖,追加文件 if (!outData) cout打开文件失败!endl; system(pause); return; outDataname num group hphone mphone qq email addrendlendl; outData.close

21、();/文件关闭/查找联系人void comm_info:find_users() ifstream inData(comm_info.txt,ios:in);/输入文件,创建一个输入文件流对象inDate,输入文件为程序所在文件夹中的名为info.txt的文件(如同cin输入一样) if(!inData) cout对不起,没有找到您所需要的文件!endl; system(pause); return; string sign; coutendlsign; bool flag=true; string str; while(inDataname) getline(inData,str);/st

22、r存储读入的内容,必为string类 if(name=sign) coutendl您所查找的联系人信息如下:endlendl; coutnamestrendl; flag=false; break; if(flag) /flag=true coutendl; cout对不起,此联系人不存在!endl; inData.close(); /system(cls); coutm; if(m=Y) find_users(); else menu(); system(cls);/删除联系人void comm_info:del_users() ofstream outData(temp.txt, ios:

23、out);/? ifstream inData(comm_info.txt, ios:in); /? if (!outData | !inData) coutendl 对不起,找不到文件! endl; system(pause); return; string sign; coutendlsign; bool flag=true; string str; while (inDataname) /inData name :从inData读入一个字符串,直到遇到文件结束符其值才为假 getline(inData, str);/读取一行字符,然后文件指针指向下一行开头 if(name=sign) /

24、如果删除的姓名匹配则将这个人信息输出 cout endl 您要删除的联系人信息:endlendl; coutname strendl; flag=false; break;/跳出循环 /程序没有跳出出循环说明姓名不匹配,然后将这些人信息存入临时文件 outDataname strendlendl;/没写则全部删除 if (flag) coutendl对不起,通讯录中没有此联系人!endl; else while (getline(inData, str) outDatastrendl; outData.close();/关闭comm_info.txt文件 inData.close();/关闭temp.txt文件 char m=Y; coutendl确定删除此联系人(Y/N)?m; if(m=Y) /下面就将临时文件中的记录重新输出到原始文件,因为临时文件中存放的都是不匹配的信息,这样就达到了删除的效果 ofstream out(comm

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1