算法与数据结构设计通讯录的实现doc.docx

上传人:牧羊曲112 文档编号:3124104 上传时间:2023-03-11 格式:DOCX 页数:12 大小:39.54KB
返回 下载 相关 举报
算法与数据结构设计通讯录的实现doc.docx_第1页
第1页 / 共12页
算法与数据结构设计通讯录的实现doc.docx_第2页
第2页 / 共12页
算法与数据结构设计通讯录的实现doc.docx_第3页
第3页 / 共12页
算法与数据结构设计通讯录的实现doc.docx_第4页
第4页 / 共12页
算法与数据结构设计通讯录的实现doc.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《算法与数据结构设计通讯录的实现doc.docx》由会员分享,可在线阅读,更多相关《算法与数据结构设计通讯录的实现doc.docx(12页珍藏版)》请在三一办公上搜索。

1、算法与数据结构设计通讯录的实现doc 题 目 二:通讯录的实现 一,课题内容和要求 基本要求:实现一个以带表头结点的单链表为存储结构的通讯录,其中通讯录的信息中包括姓名、电话、地址等数据项。所设计的系统要有简单的DOS界面,方便用户进行操作,显示以下功能: 建立通讯录。 插入、删除、修改通讯录记录 查询通讯录记录,要求可按姓名和电话号码查询 可按姓名或电话号码对讯录进行排序 输出通讯录到文本文件中。 提高要求:建立通讯录时,从文本文件中输入通讯录记录,从而建立通讯录。 分配该题目的学生学号:10001111-10001120 二、需求分析 建立一个类,类中包含 添加联系人函数 void add

2、_person; 删除联系人 void add_person; 显示所有联系人 void show_all; 修改信息 void alter; 查询联系人 void select; 保存新增加的联系人 void save_new; 同时,通讯录中包含 name姓名 address地址 number电话号码 mail邮箱 系统总流程图 开始 列出一个操作目录,选择要操作的编号 添加联系人一删除联系人二显示所有联系人三修改联系人四查询联系人五关闭通讯录六三,概要设计 定义一个结构体,在其中声明结构变量,然后定义字符串,来存放要用到的变量。然后定义此程序的其他功能模块的原型。主函数调用各个功能子函数

3、,定义各个功能子函数,通过class person创建一个联系人信息函数。通过add_person做一个添加的函数,实现联系人信息的录入。通过del_person做一个删除的函数,实现联系人信息的删除。通过show_all做一个显示的函数,显示所有联系人的信息。通过select做一个查询信息的函数,实现查询某联系人的信息。通过alter做一个修改信息的函数,实现修改某联系人的信息。在程序中需要输入的内容包括: 联系人的录入 列出一个操作目录选择要操作的编号 结束 实现过程:根据提示选择“1”进入添加联系人信息界面,按步骤输入要添加的信息,以“Enter”键结束,然后由系统自动调用信息录入函数,

4、联系人的信息保存在事先定义的文件中。 联系人的删除 实现过程:根据提示选择”2”进入删除联系人信息界面,按步骤输入要删除的联系人姓名或号码,以”Enter”键结束,然后由系统自动调用信息删除函数,删除联系人后保存在事先定义的数据库中。 显示所有联系人 实现过程:根据提示选择”3”进入现显示所有联系人信息界面,由系统自动调用显示联系人信息函数。 联系人的修改 实现过程:根据提示选择“4”进入联系人信息的修改界面,按步骤输入要修改的联系人姓名或号码,以“Enter”键结束,此时所有的基本信息都被要求重新输入。 联系人的查询 实现过程:根据提示选择“5”进入联系人信息的查询界面,按步骤输入要查询的联

5、系人姓名或号码,以“Enter”键结束,由系统自动调出所需要查询的信息。 四,详细设计 1,添加联系人 函数声明为:void person:add_person; 功能:该函数用来录入联系人信息,name 是姓名,number是号码,mail是电子邮箱,address是籍贯。 流程图为: 选择1开始 输入联系人姓名 输入联系人电话号码 输入联系人电子邮箱 输入联系人的籍贯 结束 函数定义为: void person:add_person cout endl 根据下面提示输入新联系人信息 endl endl; cout name; cout number; cout mail; cout add

6、ress; save_new; cout endl endl 新联系人信息已经保存好! endl endl; 2, 联系人查询函数 函数声明为:void person:select; 功能:该函数用来查找指定的联系人的基本信息。 流程图: 选择2开始 输入要查找的联系人姓名或号码 判断是否存在 否 是 输出该联系人信息 结束 函数定义为: void person:select ifstream inData(pperson.txt,ios:in); if (!inData) cout endl 对不起!文件找不到! endl; system(pause); return; string sig

7、n; cout endl sign; fflush(stdin); string str1; bool flag = true; string str; while (inData name number) getline(inData, str); if (name=sign) | (number=sign) cout endl 你要查找的联系人是: endl endl; cout str1 endl; cout setiosflags(ios:left) setw(17) name number str endl; flag = false; system(pause); break; v

8、oid person:save_new ofstream outData(pperson.txt, ios:app); if (!outData) cout endl 对不起!打开文件失败! endl endl; system(pause); return; outData setiosflags(ios:left) setw(17) name setw(16) number setw(14) mail setw(20) address endl; outData.close; 3,联系人信息修改函数 函数声明为:void person:alter; 功能:该函数用来修改联系人信息。 流程图:

9、 选择3开始 输入要修改的联系人姓名或号码 否 判断是否存在 是 输入联系人姓名 输入联系人号码 输入联系人电子邮箱 输入联系人籍贯 结束 函数定义为: void person:alter ofstream outData(temp.txt, ios:out); ifstream inData(pperson.txt, ios:in); / if (!outData | !inData) cout endl 对不起!找不到文件! endl; system(pause); return; string sign; cout endl sign; string str1; bool flag =

10、true; string str; while (inData name number) getline(inData, str); if (sign=name) | (sign=number) cout endl 你想修改的联系人: endl endl; cout str1 endl; cout setiosflags(ios:left) setw(17) name number str endl; cout endl 请根据下面提示修改信息 : endl; cout name; fflush(stdin); cout number; fflush(stdin); fflush(stdin)

11、; cout mail; fflush(stdin); cout address; fflush(stdin); save_new; flag = false; break; outData setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 对不起!联系人中没你找的人! endl endl; else while (getline(inData, str) outData str endl; outData.close; inData.close; ofstream out(pperson.txt,

12、 ios:out); ifstream in(temp.txt, ios:in); if (!out | !in) cout endl 对不起不能打开文件! endl endl; system(pause); return; while (getline(in, str) out str endl; out.close; in.close; cout endl 这个人的信息已经在你的通迅录中修改! endl endl; system(pause); 4, 联系人信息删除函数 函数声明为:void person:del_person; 功能:该函数用来删除某联系人信息。 流程图: 选择4开始 输

13、入要删除的联系人姓名或号码 否 判断是否存在 是 输出要删除联系人信息 删除联系人信息 结束 函数定义为: void person:del_person ofstream outData(temp.txt, ios:out); ifstream inData(pperson.txt, ios:in); / if (!outData | !inData) cout endl 对不起!找不到文件! endl; system(pause); return; string sign; cout endl sign; string str1; bool flag = true; string str;

14、while (inData name number) getline(inData, str); if (sign=name) | (sign=number) cout endl 你想删除的联系人: endl endl; cout str1 endl; cout setiosflags(ios:left) setw(17) name number str endl; flag = false; break; outData setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 对不起!联系人中没你找的人

15、! endl endl; else while (getline(inData, str) outData str endl; outData.close; inData.close; ofstream out(pperson.txt, ios:out); ifstream in(temp.txt, ios:in); if (!out | !in) cout endl 对不起不能打开文件! endl endl; system(pause); return; while (getline(in, str) out str endl; out.close;/ in.close; cout endl

16、 这个人的信息已经从你的通迅录中删除! endl endl; system(pause); 五、测试数据及其结果分析 1,运行中Dos界面 2,通讯录中录入联系人的信息 3,显示通讯录中联系人的信息 4,修改联系人的信息,包括姓名,电话号码,邮箱与籍贯 5,查找通讯录中的联系人信息 6,关闭通讯录 六,总结 1,进一步巩固了在C+与数据结构中所学的知识,进一步熟悉了数组,指针,结构体,文件数据类型等知识点的运用与掌握,加深了对高级语言基本语言要素和控制结构的理解,又一次锻炼了自己设计程序的能力。 2,面对运行时候出现的Error,要沉着冷静的一步步改错,这也是一种能力,不懂的地方也自己查阅资料,最后可以询问同学与老师。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号