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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

通讯录管理系统报告书.docx

1、通讯录管理系统报告书 C+程序设计课程设计 通讯录管理系统 学 院 信息与电气工程学院 专 业 电子信息工程 年 级 大一 学 号 0808140208 班 级 电子081 姓 名 蒋明阳 200 9年7月目 录一.设计项目名称二.课程设计目的三.需求分析及规格说明 3.1 需求分析 3.2 详细功能 3.3 规格说明四.概要设计 4.1 通讯录管理系统说明图 4.2 数据的结构和各模块分析 4.3 数据保存方式及格式 4.4 实现各模块功能的相应程序五详细设计的部分六.调试分析及心得体会 6.1 调试分析 6.2 心得体会七.使用说明 7.1 运行环境 7.2 系统操作说明八.全部源代码一设

2、计项目名称:通讯录管理系统二课程设计目的:通过设计一个通讯录管理系统,进一步熟悉C+中类的概念、基本知识和技能,类的封装、继承的实现方式。掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。三需求分析及规格说明: 3.1,需求分析: 3.11 设计一个实用的小型学生通讯录管理系统,用文件来存储学生的姓名,电话,QQ号码,邮编,地址等信息,完成对信息的添加,删除,查询,显示所

3、有信息,退出及用双向链表来处理修改等操作. 3.12 详细功能如下: A.添加:系统将提示用户输入新添加学生信息,输入到文件中,学生信息数据包括姓名,电话号码,QQ号,邮编,地址. B.删除: 首先由用户输入要删除的学生的姓名或者电话号码,然后调用删除函数,删除该学生的所有相关资料. C.显示所有人员信息: 该功能将显示已经保存的所有学生的姓名,电话,QQ号,邮编及地址. D.修改: 首先由用户输入要修改的学生姓名或者电话号码,然后系统用修改函数查找,显示该名同学的资料,然后系统提示用户输入需要修改的人员的相关信息.并用双向链表来实现修改功能 E.查询: 可由用户输入要查找的学生姓名或电话号码

4、,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息. F.退出系统 关闭通讯录管理系统. 3.2规格说明: 3.21:要有一个菜单,用于选择各项功能: 其中包括:.a:添加新联系人; .b:删除联系人;.c:显示所有人员信息;.d:修改人员信息;. e: 查询联系人; .f:关闭通讯录. 3.22:采用面向对象的程序设计方法,a,b,c,d,e,这五项菜单都调用一个函数来实现.四概要设计: 4.1通讯录管理系统功能说明图: 4.2数据的结构及各模块分析: 4.21:设计类,对象及基本数据类型: 4.211创建一个book类,它有五个私有数据成员:string name

5、; 姓名 string address; 家庭地址 string personalnumber; 本人联系电话 string class; 班级 string university; 就读大学名称 string homepnumber 家庭电话 string major 专业 string post 邮编包含七个公有成员函数: 功能如下: char inter_face(); 首页 void add_person(); 添加联系人 void del_person(); 删除联系人 void show_all(); 显示所有联系人 void alter(); 修改信息 void select()

6、; 查询联系人 void save_new(); 保存新增加的联系人 在主函数main()之中, .book obj; 创建名为obj的对象 4.212结构体:struct record book object; object对象作为结构体record的一个成员 record *prior; 定义一个指向前驱的结构体指针 record *next; 定义一个指向后继的结构体指针; 该结构体是在alter()修改函数中用来处理相关信息的修改. 4.213 .字符串变量: str,record; 字符变量: choose; 布尔型变量: flag; 4.3数据保存方式以及格式:该通讯录管理系统将把

7、输入的人员信息保存为pbook.txt 文本文件,在文件读取时系统将会把该文件中相关信息读出,并在屏幕上显示出相关信息. 4.4.实现各模块功能的相应程序: 4.41,界面: inter_face() system(cls); coutendl; couttt . fflush(stdin); return choose; 4.42添加联系人: add_person() coutendl根据下面 . .save_new() ofstream outData(pbook.txt, ios:app); if(!outData) outData.close(); coutendl新联系人信息已经保存

8、好!endlendl; system(pause); 4.43删除联系人 del_person() ofstream outData(temp.txt, ios:out); coutendl这个人的信息已经从你的通迅录中删除!endlendl; system(pause); 4.44显示所有联系人: show_all() ifstream inData(pbook.txt,ios:in); cout所有联系人已经全部显示出来!endl; system(pause); 4.45修改信息 alter() ifstream inData(pbook.txt, ios:in); coutendl信息已

9、经修改完成!endlendl; system(pause); 4.46查询联系人 select() ifstream inData(pbook.txt,ios:in); system(pause); 五.详细设计的部分:现将 “修改”功能模块详解如下: void book:alter() ifstream inData(pbook.txt, ios:in); /打开文件pbook.txt,进行读操作 if(!inData)/判断文件打开是否成功 coutendl对不起不能打开文件!endlendl; /如果打开失败,输出 “对不起不能打开文件!” system(pause);/屏幕暂停 ret

10、urn; string sign;/定义字符串变量sign coutendlsign;/输入变量sign fflush(stdin);/清空缓冲区 record *H=new record; /新建结构体指针变量H,并为其分配空间 record *p=H;/使p指针指向指针H record *q=H;/使q指针也指向指针H bool flag=true;/定义布尔型变量flag. while(inDatap-object.namep-object.numberp-object.qq p-object.postp-object.address) /读取文件中一个人的信息 p-next=new r

11、ecord; /建立双向链表 p=p-next; p-prior=q; q-next=p; q=p; p-next=NULL;/使p的next成员指向NULL. inData.close();/关闭pbook.txt文件 p=H;/使指针变量P指向结构指针H的头节点 while(p)/当p不为空时 if(p-object.name=sign)|(p-object.number=sign) /判断输入是否为空. if(flag) coutendl你想修改你联系人的信息如下:endlendl; coutsetiosflags(ios:left)setw(17) object.namesetw(16

12、)object.class setw(18)object.personalnumber setw(14)object.postsetw(20)object.addresssetw(15)objiet.homepnumbersetw(15)object.universitysetw(15)object.majorendl;/输出要修改的人的信息 flag=false; coutendl请根据下面提示修改信息 : endl; coutp-object.name; fflush(stdin); coutp-object.personalnumber; fflush(stdin); coutp-obj

13、ect.adress; fflush(stdin); coutp-object.post; fflush(stdin); coutp-object.homepnumber; fflush(stdin); coutp-object.university; fflush(stdin); coutp-object.class fflush(stdin); coutp-object.major break; /根据提示进行修改 p=p-next;/使结构体指针p指向该指针的末尾 if(flag) coutendl你的通迅录中没有你找的联人!;coutendlendl; system(pause); r

14、eturn; else ofstream out(pbook.txt,ios:out); /打开文件pbook.txt,进行写操作 if (!out) /判断文件打开是否成功打开 cout endl 对不起!不能打开文件! endl; system(pause); return; p=H; /使结构体指针p指向被修改的人的记录的首地址. while(p)/如果p不为空,则执行以下语句 outsetiosflags(ios:left)setw(17)object.name setw(16)object.number setw(18)object.qq setw(14)object.post se

15、tw(20)object.addressnext;/使用p指针指向其本身的末尾 out.close();/关闭pbook.txt文件 coutendl信息已经修改完成!endlendl; system(pause);/屏幕暂停 六.调试分析及心得体会: 6.1.调试分析: 6.11 函数: fflush(stdin); 功用: stdin是默认的输入流文件,对应输入缓冲区就是清空输入缓冲区,避免缓冲区内残存读取函数无法取走的内容! 也就是在添加人员信息(见下程序段)时,如果加入该函数,则输入的信息如:姓名,电话等,文件调用该函数时,就可以把缓冲区的内容全部送入文件. coutname; ffl

16、ush(stdin); cout电话: ; 6.22. 函数alter();中,用指针来处理双向链表时.相关程序及分析如下: record *H=new record; /新建一个结构体指针,作用是为了指向要修改的人员的记录 record *p=H; /令p结构体指针指向结构体指针H,为了用p来建立双向链表p=H;/再次使用p指向H的头节点,为了在while()循环中输出要修改的整个人员的信息 while(p) /依次输出要修改信息,并进行修改. p=H; /又令p指针指向H指针的头节点,为了将修改后的信息输出到修改 while(p ) /前的位置 outsetiosflags(ios:lef

17、t)s coutendl信息已经修改完成!endlendl; 6.2.心得体会: 6.21,程序的编写应是:三分编写,七分调试; 6.22,程序编写之前需求分析,至关重要,将关系这整个项目的成败. 6.33,一名优秀程序员的成长,需要付出很多很多,编程是每天必做之事,就像一位程序大师所说: “After three days without programming, ife becomes meaningless. 三日不编程,食肉无味” 6.34,熟能生巧,这次在用指针处理双向链表时,以前对这块内容并不十分清楚,,这次感觉很吃力,所以在今后的编程之中,尽可能把基本技能练习熟练. 6.35,做

18、软件最终是满足用户的需求,所以做软件时应一切应以用记为导向.七.使用说明: 7.1运行环境: Microsoft Visual C+6.0 7.2在此,把软件使用过程写出,并对此程序的一些细节和具体的操作方法加以说明,说明如下: 7.21将软件进行初始化,即在VC+6.0中运行该程序,进入程序主界面, 界面显示的是“一个通讯录系统”,总的操作流程有七个方面:1,添加新联系人2,删除联系人3,显示所有联系人4,修改信息5,查询联系人6,关闭通讯录 7,最后是提示用户选择要使用的功能 7.22. 输入和存取人员信息,选择菜单界面的第1个选择,按Enter键进入此选择界面,根据提示,输入信息相关信息

19、,出现以下界面: 7.23 显示所有人的信息,按 “3”,出现以下界面: 7.24要修改人员信息就按 “4”,根据提示输入相关信息:如下: 7.25要查找相关人员信息就按 “5”,根据提示输入信息,将出现以下界面 7.26,要删除相关人员信息,按 “2”,根据提示输入信息,将出现以下界面 7.27要退出该程序,按 “6”.八.全部源代码:/C+课程设计-通讯录#include #include #include #include #include using namespace std; class book public: book(); char inter_face(); void ad

20、d_person(); void del_person(); void show_all(); void alter(); void select(); void save_new(); private: string name; string address; string homepnumber; string post; string class; string university; string personalnumber; class major; ;struct record book object; record *prior; record *next; ;book:boo

21、k() name=0; address=0; number=0; post=0; qq=0;char book:inter_face() system(cls); coutendl; coutttendl tt endl tt 欢迎使用小小通讯录 endl tt endl tt 1. 添加新联系人. 4. 修改信息. endl tt endl tt 2. 删除联系人. 5. 查询联系人. endl tt endl tt 3. 显示所有联系人. 6. 关闭通讯录. endl tt endl ttendl endlchoose; fflush(stdin); return choose;void

22、book:add_person() coutendl根据下面提示输入新联系人信息endl; coutp-object.name; fflush(stdin); coutp-object.personalnumber; fflush(stdin); coutp-object.adress; fflush(stdin); coutp-object.post; fflush(stdin); coutp-object.homepnumber; fflush(stdin); coutp-object.university; fflush(stdin); coutp-object.class fflush

23、(stdin); coutp-object.major save_new(); coutendl新联系人信息已经保存好!endlendl; system(pause);void book:save_new() ofstream outData(pbook.txt, ios:app); if(!outData) coutendl对不起!打开文件失败!endlendl; system(pause); return; outDatacoutsetiosflags(ios:left)setw(17) object.namesetw(16)object.class setw(18)object.pers

24、onalnumber setw(14)object.postsetw(20)object.addresssetw(15)objiet.homepnumbersetw(15)object.universitysetw(15)object.majorendl outData.close(); void book:del_person() ofstream outData(temp.txt, ios:out); ifstream inData(pbook.txt, ios:in); if(!outData|!inData) coutendl对不起!找不到文件!endl; system(pause); return; string sign; coutendlsign; bool f

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

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