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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

通讯录管理系统的设计与实现.docx

1、通讯录管理系统的设计与实现课程设计报告通讯录管理系的设计与实现姓名:钟婷英 班级:计122学号:39 时间:2014年1月10日 1,问题描述通讯录是用来记载和查询联系人通讯信息的工具,电子通讯录已经为手机,电子词典等设备中不可缺少的工具软件,请设计一个能够满足这种需求的软件,基本功能模块如下图所示。 输入:记录的录入。显示:通讯录的显示。查找:按指定方式,输入关键字,查找指定记录。插入:实现记录的添加或在指定位置插入记录。保存:将内存中正在被操作的通讯录以文件形式保存到磁盘。读入:保存的逆操作,讲存在磁盘中的通讯录文件读到内存中。排序:按指定关键字对通讯录数据进行排序。修改:提供修改某条记录

2、的功能。移动:移动记录在通讯录中的存储位子,使其被查找或显示时的位序前移或后移。退出:结束程序运行。2,设计要求(1)设计通讯录数据的逻辑结构和物理结构。(2)通讯录至少包括下列数据信息:姓名,电话,单位等。(3)完成图示基本功能。(4)软件易用,操作简单。(5)根据自己使用通讯录体会扩充其他功能,如按姓名查找,按号码查找,按序号删除等。(6)设计足够多的测试用例(7)数据输入有效性检验:如姓名不能为空,号码中不能有非法字符等。(8)提供分组管理的相关功能,如:分组显示,加入组,组创建,组查询等。(9)可视化的界面设计。3,概要设计1,使用struct data struct addressL

3、ist定义结构体类型,struct data结构体中包括年月日的定义,strcut addressList中包括联系人ID账号,名字,性别,名族,生日,手机号码,QQ号码和家庭地址等。struct date int year; int month; int day; ; struct addressList char ID10; char name10; char gender4; char minzu2; date birthday; char shoujihao14; char QQ11; char address40; ;2,程序设计过程中用到的函数有:int zhujiemian( )

4、; void tianjia(fstream & ); void xiugai(fstream & );void shanchu(fstream & ); void chazhao(fstream & ); void liulan(fstream & ); int findRecord(fstream &, const char *); int getAmount(fstream & );3,整个程序用的是面向对象的方法,在主函数中调用各种函数,来实现通讯录的功能。在主函数中,使用的是c+语言中的开关语句(switch)用来选择通讯录的各种功能。4,在各个函数的编译过程中使用了system(“

5、cls)命令,进项清屏工作,在利用各种输出命令。,5,主界面设计为采用了单链表形式,使得选择更加方便,快速。程序段为:int zhujiemian( ) system(cls); int selection=0; cout*endl; cout 通讯录 endl; cout*endl; coutendl; cout 1、添加联系人信息endl; coutendl; cout 2、删除联系人信息endl; coutendl; cout 3、修改联系人信息endl; coutendl; cout 4、查询联系人信息endl; coutendl; cout 5、浏览联系人信息endl; couten

6、dl; cout 6、退出endl; cout *endl; coutselection; return(selection); 6,下面开始写各个函数,在函数中,采用了边做边存的思想,减少了工作量。,提供了是否正确打开通讯录的程序7,调用函数void tianjia(fstream &listFile )当打开方式正确时,输入联系人的信息ID账号,姓名,性别(男/女)民族,出生年月,手机号,QQ号,家庭住址等。以防信息的重复添加,还提供了添加提醒,当添加好一个联系人之后会提醒是否继续添加,或者是回到主界面,运用了while,if,选择语句,进行操作。程序代码如下:void tianjia(f

7、stream &listFile ) system(cls); cout*endl; cout 添加界面 endl; cout*endl; addressList a; char b,c; do (,ios:out|ios:app|ios:binary);if() cout打开通讯录失败!endl; exit(0); cout 请输入以下信息:endl;cout 学号:;cout”姓名:;cout 性别(男/女):;cout 民族:;cout 出生年-月-日: 手机号:;cout QQ号:;cout 家庭住址:;cout此信息已经添加!endl;(char *)&a,sizeof(a);( )

8、;cout是否继续添加?(Y/N)b;();();while(toupper(b)=Y);cout*endl;cout是否返回到主界面?(Y/N)c;if(toupper(c)=Y)main();elseexit(0);8,调用void xiugai (fstream&listFile)函数进行对通讯录的修改。用了if else语句判断输入的联系人信息是否正确,嵌套while语句,再用switch语句选择要修改的信息。程序片段如下:void xiugai(fstream &listFile )system(cls);cout*endl;cout 修改界面 endl;cout*endl;bool

9、 isExit=false;char modifyName10;coutmodifyName;(,ios:out|ios:in|ios:binary);if()cout打开通讯录失败!endl;exit(0);int pos=findRecord(listFile, modifyName);if(-1=pos)cout对不起,没有modifyName的信息!endl;elseaddressList temp;(long)(sizeof(addressList) * pos),ios:beg);(char*)&temp,sizeof(addressList);while(!isExit)int

10、selection=0;cout*endl;cout 1、IDendl;cout 2、姓名endl;cout 3、性别endl;cout 4、民族endl; cout 5、出生年-月-日endl; cout 6、手机号endl;cout 7、QQendl; cout 8、家庭住址endl; cout 9、返回上一层endl;cout*endl;coutselection;coutendl;switch(selection)case 1:cout原ID:endl;cout;();cout修改成功!endl; break;case 2:cout原姓名:endl; cout;( );cout修改成功

11、!endl;break;case 3:cout原性别:endl;cout;();cout修改成功!endl;break;case 4:cout原民族:endl;cout;();cout修改成功!endl;break;case 5:cout原出生年-月-日:setw(5)修改成功!endl;break;case 6:cout原手机号:endl;cout;();cout修改成功!endl;break;case 7:cout原QQ:endl;cout;();cout修改成功!endl;break;case 8:cout原地址:endl;cout;();cout修改成功!endl;break;case

12、 0:isExit=true;break;(long)(sizeof(addressList)pos),ios:beg);(char*)&temp,sizeof(addressList);( );();coutendl;9,调用用函数void shanchu(fstream&listFile)进行对联系人的删除,整个函数使用 while ,if else语句进行操作,未免误删,还要进行提示,是否确认删除并确定是否删除成功,用到语句仍是选择和循环语句。程序片段如下;、10,调用函数void chazhao (fstream &listFile )来查询联系人信息,程序通过联系人的姓名来查找。程序

13、片段如下:void chazhao(fstream &listFile )system(cls);cout*endl;cout 查询界面endl;cout*endl;char findName21=0,c;(,ios:out|ios:in|ios:binary);if()cout打开通讯录失败!endl;exit(0);coutfindName;int pos=findRecord(listFile, findName);if(-1=pos)cout对不起,没有findName 的信息!endl;elseaddressList temp;(long)(sizeof(addressList) *

14、 pos),ios:beg);(char*)&temp,sizeof(addressList);cout*endl;cout学号:endl;cout姓名:endl;cout性别(男/女):endl;cout民族:endl;cout出生年-月-日:setw(5)手机号:endl;coutQQ:endl;cout家庭住址:endl;();cout*endl;cout是否返回到主界面?(Y/N)c;if(toupper(c)=Y)main();elseexit(0);11,调用函数void liulan(fstream &listFile )来浏览之前添加并保存过的联系人。程序片段如下:void l

15、iulan(fstream &listFile )system(cls);cout*endl;cout 浏览界面 endl;cout*endl;addressList a;char b;int count=0;(,ios:in);if()cout打开通讯录失败!/n;exit(0);while(!()(char *)&a,sizeof(a);if()break;cout*endl;cout学号:endl;cout姓名:endl;cout性别(男/女):endl;cout民族:endl;cout出生年-月-日:setw(5) endl;cout手机号:endl;coutQQ:endl;cout家

16、庭住址:endl;cout*endl;count+;();if(count=0)cout该通讯录里没有记录!endl;cout是否返回到主界面?(Y/N)b;if(toupper(b)=Y)main();elseexit(0);12,调用函数void dineRecord(fstream &listFile, const char *pName)来进行通讯录内储存过联系人的查找。调出存储在电脑内指定位置的文件,进行查找。并用函数int getAmount(fstream &listFile )在查找之后返回文件中记录的个数。程序片段如下:/查找记录的记录号int findRecord(fstr

17、eam &listFile, const char *pName)int pos=-1;addressList Temp;(0L,ios:beg);(char*)&Temp,sizeof(addressList);while(!( )pos+;if(strcmp,pName)=0)return(pos);(char*)&Temp,sizeof(addressList);( );return(-1);/返回文件中记录的个数int getAmount(fstream &listFile )int amount=0;addressList temp;(0L,ios:beg);(char*)&temp

18、,sizeof(addressList);while(!( )amount+;(char*)&temp,sizeof(addressList);( );return amount;4,设计与体会一星期的课程设计就这样面临尾声,在课程设计之前,总觉得自己学的c+,java和数据结构没什么用武之地,直到课程设计让我们设计通讯录管理系统,才发现原来学好计算机语言和数据结构是一件多么有趣的事,不仅可以设计通讯录,还可设计游戏,这激发了我好好学习计算机语言的兴趣。在这次的课程设计当中,很多东西我都不太懂,除了会用一些基本的语句,编写一些函数之外,大部分程序还是向同学请教和网上参考的,在设计过程中遇到过很

19、多的难题,最多的一次,碰上了100多个错误,和n多警告,在经过很多次的调试修改之后,还是没调出理想的结果,当时就想放弃了。但是,看着同学们那么激情洋溢的调试程序,给了我继续下去的勇气。终于调出了基本符合的程序,用的是最简单语法。借鉴了边看边存的程序语段,才提升了我程序的档次。尽管这次课程设计快要结束了,但是我还是会继续完善我做的程序,让它变得更加全面。源程序附录:#include #include #include #include #include #include using namespace std; const char fileName=; /定义结构体struct date in

20、t year; int month; int day; ; struct addressList char xuehao10; char name10; char gender4; char minzu2; date birthday; char shoujihao14; char QQ11; char address40; ; /函数声明int zhujiemian( ); void tianjia(fstream & ); void xiugai(fstream & ); void shanchu(fstream & ); void chazhao(fstream & ); void li

21、ulan(fstream & ); int findRecord(fstream &, const char *); int getAmount(fstream & ); /主函数int main( ) bool Exit=false; fstream listFile; while(!Exit) switch(zhujiemian( ) case 1: tianjia(listFile); break; case 2: shanchu(listFile); break; case 3: xiugai(listFile); break; case 4: chazhao(listFile); b

22、reak; case 5: liulan(listFile); break; case 0: Exit=true; break; return 0; int zhujiemian( ) system(cls); int selection=0; cout*endl; cout 通讯录 endl; cout*endl; coutendl; cout 1、添加联系人信息endl; coutendl; cout 2、删除联系人信息endl; coutendl; cout 3、修改联系人信息endl; coutendl; cout 4、查询联系人信息endl; coutendl; cout 5、浏览联系人信息endl; coutendl; cout 6、退出endl; cout *endl; coutselection; return(selection); /添加联系人信息void tianjia(fstream &listFile ) system(cls); cout

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

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