c++通讯录管理.docx
- 文档编号:17900359
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:27
- 大小:78.93KB
c++通讯录管理.docx
《c++通讯录管理.docx》由会员分享,可在线阅读,更多相关《c++通讯录管理.docx(27页珍藏版)》请在冰点文库上搜索。
c++通讯录管理
机电工程学院
中南大学
本科生C语言课程设计
题目通讯录管理系统
姓名张垚学号0806100225班级:
机械1002班
参与成员金海亮、冯上任
指导教师樊广军
学院机电工程学院
完成时间2011年06月30日
摘要:
随着科学技术的发展,计算机领域不断取得新的研究成果。
计算机的应用越来越广泛.计算机知识也越来越普及.计算机的应用也不仅仅局限于科学研究方面.计算机的应用与我们的生活息息相关.在学校里学生的成绩管理系统,在日常生活中给我们带来很大方便的通讯录,都与计算机的管理系统有关,都是通过程序设计,开发,调试形成的管理系统.
通讯录系统能方便用户迅速、准确的查找修改或者删除联系人信息,把各个联系人的信息以文档保存。
本文介绍了简易通讯录管理系统在MicrosoftVisualC++6.0环境下的实现过程:
系统的分析,功能模块的设计,系统的调试和测试。
此系统的主要管理的信息有:
联系人的姓名,联系人的号码.本系统的主要功能有联系人的添加、删除、插入、显示.可以随时查找修改通讯录.
实现主要功能:
建立文件,文件的存取和显示,删除记录,查询记录,使用list类等。
可以随时检索,删除,或增加记录,也可以保存或取消新的记录。
姓名可以由字符和数字混合编码。
电话号码可由字符和数字组成。
关键词:
通讯录、功能模块(函数)、文件操作、list类、面向对象
1.1功能需求分析:
通讯录主要有一下模块:
通讯录界面设计、添加联系人、删除联系人、显示所有联系人、修改信息、查询联系人,其中姓名可以由字符和数字混合编码,电话号码可由字符和数字组成。
1.11通讯录界面设计
主要功能是设计通讯录的界面,能够提示用户的实际操作等。
我采用的是按照序号来实现相应的操作的,其中:
1添加联系人2删除联系人3显示所有联系人4修改信息5查询联系人6关闭通讯录
1.12通讯录添加联系人模块
主要功能是添加联系人模块,添加操作是根据用户的要求实现的。
包括添加联系人的姓名、电话、QQ、邮编、地址等,最后输入完成后,将提示新联系人信息已经保存好!
!
1.13通讯录删除联系人模块
主要功能是删除不再需要的联系人。
其中包括输入你要删除输入电话或电话号码如果没有的话,将提示:
对不起!
!
!
联系人中没你要找的人!
!
!
如果找到,
则提示删除联系人的所有信息和这个人的信息已经从你的通讯录中删除的信息!
1.14通讯录显示所有联系人模块
显示所有的联系人的信息,包括姓名、电话、QQ、邮编、地址并提示所有联系人已经全部显示出来!
!
1.15通讯录修改联系人模块
主要是修改联系人的信息,界面提示要输入需要修改的姓名或者电话号码,如果不正确,显示对不起,联系人中没有你找的人。
如果正确,则显示出改联系人的所有信息,并提示根据下面提示修改信息,姓名、电话号、QQ、邮编、地址等
1.16通讯录关闭通讯录模块
提示谢谢使用!
1.2环境需求分析:
操作系统:
WindowsXP
开发软件:
Visual2008
1.3方法需求分析
该系统由于数据可能会很大,故采用文件操作,能够打开或修改指定文件及将多个文件组成一个文件。
而联系人的信息则通过类的对象来保存,它完全使用类来实现,充分体现面向对象的程序设计特点。
2概要设计
2.1系统功能模块图
通讯录系统
信息的初始化
添加联系人
删除联系人
显示所有联系人
修改信息
查询联系人
关闭通讯录
2.2设计思想:
通讯录系统是用面向对象的方法设计,在类中定义了一下方法:
add_person(),del_person(),show_all(),alter(),select(),save_new()等方法和name,address,
,number,post,qq属性来实现通讯录的各种操作。
3详细设计
3.1设计原理
通讯录管理系统以菜单选择,通过调用各个函数,通过使用各种循环语句如while和do…while,实现不同的功能.不同函数处理后返回的只是一个头结点,但是通过头结点可以找到所有链表中的信息,只要有函数,找到头指针就能进行相应的操作,所以模块化的程序方便以后添加或者删除某些功能,程序中通过system(“cls”)清屏函数实现界面的转换,主函数中的循环保证程序不会退出,一个循环和一个清屏函数实现了主菜单和各子画面的切换(子函数)。
这样的话各个子函数都可以调用一开始输入的数据,这样就实现了各个不同函数调用时都能使用整个系统连续起来了。
作为一个通讯录管理系统,增加了文件的读入和写出功能,增加了程序的实用性。
3.2主要代码描述
个人任务简介:
显示所有联系人模块:
把文件中的各种信息读取并显示出来,
修改联系人模块:
只要输入来联系人的名字或者电话,进行文件的遍历查找到联系人的信息,而后进行修改。
具体代码如下:
#include
#include
#include
#include
#include
usingnamespacestd;
classbook
{
public:
book();//默认构造函数
charinter_face();//首页
voidadd_person();//添加联系人
voiddel_person();//删除联系人
voidshow_all();//显示所有联系人
voidalter();//修改信息
voidselect();//查询联系人
voidsave_new();//保存新增加的联系人
private:
stringname;//姓名
stringaddress;//地址
stringnumber;//电话号码
stringpost;//邮编
stringqq;//QQ号
};
book:
:
book()
{
name="\0";
address="\0";
number="\0";
post="\0";
qq="\0";
}
//显示所有联系人
voidbook:
:
show_all()//作者:
张垚
{
ifstreaminData("pbook.txt",ios:
:
in);
if(!
inData)
{
cout< ! ! ! 没有找到文件! ! ! ! ! "< system("pause"); return; } boolflag=true; stringrecord; while(getline(inData,record)) { if(flag) { cout< "< } cout< flag=false; } if(flag) { cout< ! ! ! ! "< } else { cout< ! ! ! ! "< } system("pause"); } } intmain() { charchoose; bookabj; while(choose=abj.inter_face()) { switch(choose) { caseADD: abj.add_person();////添加联系人 break; caseDEL: abj.del_person();////删除联系人 break; caseSHOW: abj.show_all();////显示所有联系人 break; caseAlter: abj.alter();////修改信息 break; caseSelect: abj.select();////查询联系人 break; caseEND: cout< ! ! ! ! "< exit(0); break; default: break; } } return0; } } 3.4系统界面 通讯录界面设包括添加联系人、删除联系人、显示所有联系人、修改信息、查询联系人等功能,如下图: 增加联系人模块 删除联系人模块: 1.如果联系人不存在的话: 2.如果存在的话: 显示所有联系人 修改联系人模块 查询联系人模块 关闭通讯录模块 3.4程序详细代码 #include #include #include #include #include usingnamespacestd; classbook { public: book();//默认构造函数 charinter_face();//首页 voidadd_person();//添加联系人 voiddel_person();//删除联系人 voidshow_all();//显示所有联系人 voidalter();//修改信息 voidselect();//查询联系人 voidsave_new();//保存新增加的联系人 private: stringname;//姓名 stringaddress;//地址 stringnumber;//电话号码 stringpost;//邮编 stringqq;//QQ号 }; book: : book() { name="\0"; address="\0"; number="\0"; post="\0"; qq="\0"; } //首页 charbook: : inter_face() { system("cls"); cout< cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"< <<"\t\t※※"< <<"\t\t※通迅录※"< <<"\t\t※※"< <<"\t\t※1.添加新联系人.4.修改信息.※"< <<"\t\t※※"< <<"\t\t※2.删除联系人.5.查询联系人.※"< <<"\t\t※※"< <<"\t\t※3.显示所有联系人.6.关闭通迅录.※"< <<"\t\t※※"< <<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"< <<"\t\t\t选择: "; charchoose; cin>>choose; fflush(stdin); returnchoose; } //添加联系人//作者: 冯上任 voidbook: : add_person() { cout< <<"姓名: "; cin>>name; fflush(stdin); cout<<"电话: "; cin>>number; fflush(stdin); cout<<"QQ: "; cin>>qq; fflush(stdin); cout<<"邮编: "; cin>>post; fflush(stdin); cout<<"地址: "; cin>>address; fflush(stdin); save_new(); cout< ! ! ! ! "< system("pause"); } //删除联系人//作者: 冯上任 voidbook: : del_person() { ofstreamoutData("temp.txt",ios: : out); ifstreaminData("pbook.txt",ios: : in);// if(! outData||! inData) { cout< ! ! ! 找不到文件! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; stringstr1; boolflag=true; stringstr; while(inData>>name>>number) { getline(inData,str); if((sign==name)||(sign==number)) { cout< "< cout< cout< : left)< <<""< flag=false; break; } outData< : left)< <<""< } if(flag) { cout< ! ! 联系人中没你找的人! ! ! ! "< } else { while(getline(inData,str)) { outData< } outData.close(); inData.close(); ofstreamout("pbook.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) { cout< ! ! "< system("pause"); return; } while(getline(in,str)) { out< } out.close();// in.close(); cout< ! ! "< } system("pause"); } //显示所有联系人//作者: 张垚 voidbook: : show_all() { ifstreaminData("pbook.txt",ios: : in); if(! inData) { cout< ! ! ! 没有找到文件! ! ! ! ! "< system("pause"); return; } boolflag=true; stringrecord; while(getline(inData,record)) { if(flag) { cout< "< } cout< flag=false; } if(flag) { cout< ! ! ! ! "< } else { cout< ! ! ! ! "< } system("pause"); } //修改信息//作者: 张垚 voidbook: : alter() { ofstreamoutData("temp.txt",ios: : out); ifstreaminData("pbook.txt",ios: : in);// if(! outData||! inData) { cout< ! ! ! 找不到文件! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; stringstr1; boolflag=true; stringstr; while(inData>>name>>number) { getline(inData,str); if((sign==name)||(sign==number)) { cout< "< cout< cout< : left)< <<""< cout< "< cout<<"姓名: "; cin>>name; fflush(stdin); cout<<"电话号: "; cin>>number; fflush(stdin); cout<<"QQ: "; cin>>qq; fflush(stdin); cout<<"邮编: "; cin>>post; fflush(stdin); cout<<"地址: "; cin>>address; fflush(stdin); save_new(); flag=false; break; } outData< : left)< <<""< } if(flag) { cout< ! ! 联系人中没你找的人! ! ! ! "< } else { while(getline(inData,str)) { outData< } outData.close(); inData.close(); ofstreamout("pbook.txt",ios: : out); ifstreamin("temp.txt",ios: : in); if(! out||! in) { cout< ! ! "< system("pause"); return; } while(getline(in,str)) { out< } out.close(); in.close(); cout< ! ! "< } system("pause"); } //查询联系人//作者: 金海亮 voidbook: : select() { ifstreaminData("pbook.txt",ios: : in); if(! inData) { cout< ! ! ! 文件找不到! ! ! ! "< system("pause"); return; } stringsign; cout< "; cin>>sign; fflush(stdin); stringstr1; boolflag=true; stringstr; while(inData>>name>>number) { getline(inData,str); if((name==sign)||(number==sign)) { cout< "< cout< cout< : left)< < flag=false; system("pause"); break; } } } voidbook: : save_new()//作者: 金海亮 { ofstreamoutData("pbook.txt",ios: : app); if(! outData) { cout< ! ! 打开文件失败! ! ! ! "< system("pause"); return; } outData< : left)< <<""< < < < outData.close(); } enumpower{ADD='1',DEL='2',SHOW='3',Alter
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 通讯录 管理