东南大学短学期c++电话簿

上传人:j****9 文档编号:46219443 上传时间:2018-06-24 格式:DOC 页数:24 大小:349.50KB
返回 下载 相关 举报
东南大学短学期c++电话簿_第1页
第1页 / 共24页
东南大学短学期c++电话簿_第2页
第2页 / 共24页
东南大学短学期c++电话簿_第3页
第3页 / 共24页
东南大学短学期c++电话簿_第4页
第4页 / 共24页
东南大学短学期c++电话簿_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《东南大学短学期c++电话簿》由会员分享,可在线阅读,更多相关《东南大学短学期c++电话簿(24页珍藏版)》请在金锄头文库上搜索。

1、C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 1 -课课程程设设计计报报告告学院、系学院、系交通学院交通学院课程设计科目课程设计科目C+C+程序课程设计程序课程设计课程设计题目课程设计题目通讯录管理系统通讯录管理系统组长组长季予季予小组成员小组成员吕文广、李文贤、郭瑞琦吕文广、李文贤、郭瑞琦指导教师指导教师刘敏刘敏完成时间完成时间2012-8-232012-8-23C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 2 -摘要:摘要:随着科学技术的发展,计算机领域不断取得新的研究成果。计算机知识越来越普及,计算机的应用也越来越广泛:它不再局限于科学研究方面,变得与我们的生活息息相关。此例的通

2、讯录便是日常生活中极实用的应用之一。通讯录系统能方便用户迅速、准确的查找修改删除联系人信息,并实现把各个联系人的信息以文档保存。本文介绍了简易通讯录管理系统在 Microsoft Visual C+ 6.0 环境下的实现过程:系统的分析,功能模块的设计,系统的调试和测试。 该通讯录包含的主要功能有:联系人的添加、修改、删除、拨号、分类显示以及整表导出为 txt 文本,并自动实现按字母升序排列通讯录。关键词:关键词:Microsoft Visual C+、通讯录、功能函数、面向对象、控制台目录1课题小组成员组成及分工情况2功能需求分析 2.1 通讯录界面设计2.2 添加模块2.3 查找模块2.4

3、 删除模块2.5 修改模块2.6 显示模块2.7 拨号功能模块2.8 来电显示模块3 程序框图4 主要代码描述4.1 添加记录4.2 查找记录4.3 删除记录4.4 修改记录4.5 整表输出4.6 拨号功能4.7 来电显示4.8 控制台5 调试6 总结与心得7 致谢C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 3 -(附:程序详细代码)(附:程序详细代码)1 1 课题小组成员组成及分工情况课题小组成员组成及分工情况季予:程序 MFC 实现方法、Search、Edit、Delete、Dial 函数的编写。吕文广:程序 MFC 实现方法、输入输出流控制、运算符重载部分的编写。李文贤:Addre

4、ss 类、Terms 类、Addrbook 类基础框架构造。组织各函数。郭瑞琦:链表部分的排序实现、程序调试与 bug 修复、pptword 报告编写。2 2 功能需求分析功能需求分析通讯录主要应有以下功能模块:通讯录界面、新建联系人、修改原有联系人信息、删除联系人、查找联系人、显示联系人信息及由联系人姓名进行拨号的功能。其中联系人的姓名、通讯号码等信息可由数字和字母混编而成。2.1 通讯录界面设计主要功能是设计通讯录的界面,能够提示用户的实际操作等。我组采用按照序号来实现相应的操作,其中:1 添加通讯录 2 删除通讯录 3 编辑通讯录 4 查看通讯录5 拨号 6 来电显示 7 整表输出 8

5、保存退出2.2 通讯录添加模块主要功能是添加联系人,包括姓名、电话等信息,且添加后自动按字母顺序排列。2.3 通讯录查找模块主要功能是在已编通讯录内查找所需删除或修改的联系人信息,并实现“查无此人”的报错功能。2.4 通讯录修改模块主要功能是对原有联系人的个人信息进行修改更新。2.5 通讯录删除模块主要功能是删除不再需要的联系人。2.6 通讯录显示模块主要功能是显示已有的通讯录信息并可输出在文本文档中。C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 4 -2.7 通讯录拨号模块主要功能是通过已知姓名的输入实现系统对号码的自动查找拨出。2.8 通讯录来电显示模块主要功能是通过已知电话号码的输入

6、实现系统对已有通讯录姓名的查找。3 3 程序框图程序框图4 4 主要代码描述主要代码描述4.1 添加记录 通过输入联系人的姓名、电话等向程序中写入信息,具体由重载实现:istreamcouta.tel_num;友 元 类Address (记录类)姓名、手机、归类、E-mailvoid Modify (替换编辑)、=运算符重载数据成员成员函数Terms(链表类)Terms* InsertafterAddress 型数据Terms *link数据成员成员函数Addrbook(通讯录类)bool Delete老师类同学类其他类删除、修改、拨打指 定名字的记录数据成员为 Terms数组bool Edi

7、tbool DialTerms* Search(按名查找)bool Insert(按字母升序插入)void Output(整链输出)、a.tel_num;elsebreak;cout:“;ina.arch;couta.e_addr;return in;4.2 查找记录 根据姓名输入,查询原有联系人信息的地址,具体代码如下:Terms* AddrBook:Search(char *nam)Terms *p,*q;for(int i=0;ilink;p!=abi;p=p-link)if(!strcmp(p-term.name,nam)/比较名字return /相同时返回地址q=p;/用 q 保存前

8、一个指针return /搜索失败时返回表头节点 4.3 删除记录 根据姓名输入,通过遍历全表找到原有联系人信息并删除,拥有报错功能, 具体代码如下:bool AddrBook:Delete()char *nam=new char25;coutnam;/指定名字C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 6 -return Delete(nam);bool AddrBook:Delete(char *nam)Terms *q,*p=Search(nam);if(Search(nam)=delete q;cout:n“;coutstr;if(strcmp(str,“#“)!=0)strcpy

9、(name,str);coutstr;if(strcmp(str,“#“)!=0)strcpy(tel_num,str);couta;if(a!=#)arch=a;coutstr;if(strcmp(str,“#“)!=0)strcpy(e_addr,str);C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 7 - 4.5 整表输出的实现 把文件中的各种信息通过 txt 文本文档的形式保存出来,代码如下:void AddrBook:save()ofstream outfile(“data.txt“);for(int i=0;ilink;p!=abi;p=p-link)outfileterm.

10、nameterm.tel_numterm.e_addrterm.tel_numi;dofor(unsigned long int j=0;jterm.tel_num+i;while(c!=0Terms *p=show(come);if(show(come)=dofor(unsigned long int j=0;jterm.name+i;while(c!=0p!=abi;p=p-link)if(!strcmp(p-term.tel_num,come)/比较名字return /相同时返回地址q=p;/用 q 保存前一个指针return /搜索失败时返回表头节点4.8 控制台命令实现。void m

11、ain()C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 9 -AddrBook adrbk;int i;couti;switch(i)case 1:cinadrbk;break;case 2:adrbk.Delete();break;case 3:adrbk.Edit();break;case 4:couti;switch(i)case 1:adrbk.save();break;case 2:cout#include/用于字符串的比较#includeclass Address/定义记录类public:Address()name=new char25;tel_num=new char15;e

12、_addr=new char25;Address(char *n,char *tel,char ar,char *eadr);Address()delete name;delete tel_num;delete e_addr;void Modify();/编辑数据private:char *name,*tel_num,arch,*e_addr;friend istream/重载输入运算符friend ostream/重载“号friend bool operator=(Address /重载等于号friend class AddrBook;C+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 15

13、-;Address:Address(char *n,char *tel,char ar,char *eadr)name=new char25;tel_num=new char15;e_addr=new char25;strcpy(name,n);strcpy(tel_num,tel);arch=ar;strcpy(e_addr,eadr);void Address:Modify()char *str=new char25,a;cout:n“;coutstr;if(strcmp(str,“#“)!=0)strcpy(name,str);coutstr;if(strcmp(str,“#“)!=0)

14、strcpy(tel_num,str);couta;if(a!=#)arch=a;coutstr;if(strcmp(str,“#“)!=0)strcpy(e_addr,str);istreamcouta.tel_num;while(1)if(strlen(a.tel_num)!=11)couta.tel_num;elsebreak;cout:“;ina.arch;couta.e_addr;return in;ostreamC+课程设计报告 季予、吕文广、李文贤、郭瑞琦- 17 -bool operator=(Address /定义通讯录链表的节点/由于数据需要反复的插入,删除以及调整顺序,所

15、以用链表存放class Termspublic:Terms()link=0;Terms(char *n,char *tel,char ar,char *eadr);Terms(char *n,char *tel,char ar,char *eadr,Terms* nxt);Terms* InsertAfter(char *n,char *tel,char ar,char *eadr);/完成在后边插入private:Address term;/记录数据Terms *link;/指向下一节点friend class AddrBook;Terms:Terms(char *n,char *tel,char ar,char *eadr):term(n,tel,ar,eadr)link=NULL;Terms:Terms(char *n,char *tel,char ar,char *eadr,Terms* nxt):term(n,tel,ar,eadr)link=nxt;Terms* Terms:InsertAfter(char *n,char *tel,char ar,char *eadr)link=new Terms(n,tel,ar,eadr,link);/循环链表return lin

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号