c++通讯录程序设计

上传人:索**** 文档编号:142252263 上传时间:2020-08-18 格式:PDF 页数:18 大小:703.51KB
返回 下载 相关 举报
c++通讯录程序设计_第1页
第1页 / 共18页
c++通讯录程序设计_第2页
第2页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c++通讯录程序设计》由会员分享,可在线阅读,更多相关《c++通讯录程序设计(18页珍藏版)》请在金锄头文库上搜索。

1、1 C+ 程序设计课程设计报告 通讯录管理系统 班级: 1120551 学号: 03 姓名: 2 一 课程设计题目与要求 题目 通讯录管理系统 系统功能要求: (1)录入通讯录 (2)修改通讯录 (3)查询通讯录(可按姓名、电话、联系人类别查询) (4)删除通讯录 (5)按姓名对通讯录进行排序 3 一 课程设计题目与要求 题目 通讯录管理系统 系统功能要求: (1)录入通讯录 (2)修改通讯录 (3)查询通讯录(可按姓名、电话、联系人类别查询) (4)删除通讯录 (5)按姓名对通讯录进行排序 4 二 需求分析 21 问题描述 根据需求,该系统所应包含的信息有以下一些: 通讯录的基本信息: 姓名

2、、地址、电话 根据需求,该系统所应实现的功能有以下一些: 各种基本数据的录入。如:通讯录基本信息录入。 各种基本数据的修改。即:允许对已经录入的数据重新进行编辑、修改。例 如修改通讯录中张三的电话信息 各种基本数据的删除。例如将张三的信息从通讯录中删除 基于各种数据的查询。例如输入张三姓名,查询张三的电话和地址。 数据导出:将通讯录中信息导出到指定文件。 数据导入:从指定文件导入通讯录信息到。 系统环境 采用 C+ 语言实现,开发环境为VC+ ,可以运行在操作系统windows98 及以上皆可。 运行要求 能不受限制的录入通讯录信息 界面友好,操作方便,例如删除前需要提示用户是否删除 5 三

3、概要设计 系统流程设计 根据系统要求,设计如下的系统流程。 菜单显示 用户输入操作 判断用户选择的操作 执行相应的操作 退出 退出 系统模块设计 根据系统的功能设计,如下模块 学生通讯录 主 界 面 显 示 功 能 选 择 通 讯 录 信 息 录 入 通 讯 录 信 息 修 改 通 讯 录 信 息 查 询 通 讯 录 信 息 导 入 通 讯 录 信 息 导 出 通 讯 录 信 息 删 除 1. 主界面模块:完成系统菜单的显示 2. 功能选择模块:根据用户的选择,完成其相应的功能 (1)通讯录信息录入:完成用户从界面输入通讯录,保存入系统的功 能 (2)通讯录信息修改:完成用户从界面输入通讯录,

4、在系统中查询定 位,并将录入的数据保存入系统的功能 (3)通讯录信息查询:完成用户从界面输入查询条件,在系统查询符 合条件的通讯录信息,并在界面上显示的功能。 6 (4)通讯录信息导入:完成用户从界面输入需要导入的文件路径名称, 读取该文件的内容,保存入系统,并在界面上显示导入内容的功能。 (5)通讯录信息导出:完成用户从界面输入需要导出的文件路径名称, 将系统中通讯录信息保存入文件中。 (6)通讯录信息删除:完成用户从界面输入需要的通讯录信息的姓名, 并将其从系统中删除。 7 四 详细设计 数据结构设计 根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下: 数据项名 称 数据项系统

5、表示数据类 型 数 据 长 度 备注 姓名name字符串20 地址address字符串100 电话tele字符串20 界面设计 1. 主界面: 根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将 在每个菜单前显示该菜单项对应的数字用户输入菜单项前面的数字,主菜单消 失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。 2. 输入界面: 在光标下输入通讯录的信息,用空格将信息隔开 3. 修改界面: 首先输入通讯录的姓名, 显示该通讯录的详细信息, 输入修改后的信息, 将 8 原来信息修改。 4. 删除界面: 输入需要删除的姓名,将其从通讯录中删除 5. 导出界面: 输入

6、需要导出的文件路径,将通讯录信息导出到文件。 6. 列表显示页面: 将通讯录中所有记录显示,每页显示10 条 7. 导入页面: 相关功能的整合 8. 查询界面: 相关功能的整合 模块实现 1. 主界面实现: 调用 cout 函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用 9 system( “cls ”)函数将前面的界面清空。 对应的实现函数 menu_show(); 2. 功能选择模块实现: 接受从键盘输入的菜单选择, 判断并调用相应的功能函数, 完成其对应的功 能。实现功能选择。 对应的函数: menu_select(); (1)通讯录信息录入模块实现: 模块说明:从键盘接收输入

7、的通讯录信息, 在动态存储区中创建通讯录的节 点,遍历链表,将其插入到通讯录链表的最后位置。 模块流程: 清屏 遍历链表 找到最后一个节点 创建一个新节点 从键盘给新节点赋值 将新节点连接到链表 的最后一个节点上 对应函数: add(struct phone * head) (2) 通讯录信息修改模块实现: 模块说明:从键盘接收输入的需要修改通讯录的姓名,遍历链表, 判断节点 的姓名是否输入的姓名相等, 如果相等, 从键盘输入修改后的信息, 保存在该节 点中, 改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。 模块流程: 对应函数: update(struct phone *

8、 head) 10 (3) 通讯录信息删除模块实现: 模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表, 判断节点 的姓名是否输入的姓名相等, 如果相等, 从键盘输入删除后的信息, 保存在该节 点中, 改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。 模块流程: 对应函数: delete(struct phone * head) (4) 通讯录信息导入模块实现: 模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表, 判断节点 的姓名是否输入的姓名相等, 如果相等, 从键盘输入删除后的信息, 保存在该节 点中, 改变标识变量,最后判断标识变量判断是否在链表中找到该

9、姓名的通讯录。 模块流程: 11 对应函数: load(struct phone * head) (5) 通讯录信息导出模块实现: 模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节 点的姓名是否输入的姓名相等,如果相等, 从键盘输入删除后的信息, 保存在该 节点中,改变标识变量, 最后判断标识变量判断是否在链表中找到该姓名的通讯 录。 模块流程: 对应函数: save(struct phone * head) (6) 通讯录信息查询模块实现: 模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表, 判断节点 的姓名是否输入的姓名相等, 如果相等, 从键盘输入删除后的信息,

10、保存在该节 点中, 改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。 模块流程: 12 对应函数: search(struct phone * head) (7) 通讯录信息显示模块实现: 模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表, 判断节点 的姓名是否输入的姓名相等, 如果相等, 从键盘输入删除后的信息, 保存在该节 点中, 改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。 模块流程: 对应函数: list(struct phone * head) 13 五 测试 录入通讯录测试 1.测试数据:输入张吴波湖北汽车工业学院, ,8241470

11、 测试结果:程序运行出现错误,如下 原因 电话输入的长度超过了电话表示的长度 2. 测试数据:输入张吴波湖北汽车工业学院, 测试结果:程序运行正常,正确的插入到链表的最后位置 3. 测试数据:输入:张吴波湖北汽车工业学院 8241470 425 测试结果:程序运行不正常, 可以将张吴波湖北汽车工业学院, 8241470 插入到链表的最后位置,但是425 不能保存 原因:使用了 scanf( “%s ”) ,将空格作为截止符 修改通讯录测试 测试数据:在系统中存在4 个名称为 li的通讯录 测试结果:输入修改的姓名 li , 显示了第一个姓名为li的通讯录信息, 输入修改后的信息: 张吴波湖北汽

12、车工业学院将第一个姓名为 li的通讯录修 改成功 . 测试数据:在系统中不存在名称为张三的通讯录,输入后,提示姓名不存在, 14 如下图 导入通讯录测试 测试数据:输入路径(系统中不存在该文件) 测试结果:提示不能打开文件,不能导入 回车后程序结束 原因:不能打开文件文件使用了exit函数 测试数据:输入路径(系统中该文件,格式符合程序要求) 测试结果:提示能将文件中的数据正确导入 查询模块测试: 测试数据:输入路 测试结果:提示能将文件中的数据正确查询 15 删除模块测试 测试数据:输入路径 测试结果:提示能将文件中的数据正确删除 16 六 结论及改进设想 此通讯录管理系统的程序开发, 其亮

13、点主要是引用了类来宏观调运程序,使 得程序简单、明了、可读性强,在程序操作上也比较省事、方便。 通讯录程序无节点, 这是一个非常大的不足, 急需要改进, 但由于时间比较 紧,就没有想这部分程序。其实,这部分程序也就是退出,需要一个好的位置来 安放此程序。 通讯录程序是我做的第一个比较大的程序,在专业人士看来这不算什么, 但 对我来说有很大的意义, 他的做出激发着我更好的学好c+, 更好的学好专业课。 七 心得体会 对第一次用 C应用程序来做这么大课题的我来说,了解C语言的概 念是非常重要的, C+语言既保留了 C语言的有效性、 灵活性、 便于移植等全部 精华和特点, 又添加了面向对象编程的支持

14、,具有强大的编程功能, 可方便地构 造出模拟现实问题的实体和操作;编写出的程序具有结构清晰、 易于扩充等优良 特性,适合于各种应用软件、 系统软件的程序设计。 用 C+ 编写的程序可读性好, 生成的代码质量高。所谓C语言:是一种使用非常广泛的计算机编程语言。 任何一个优秀的程序,无非有以下几点:效率高,可读性高,可重用性强, 可移植性好。具体到C+ 程序,如果做面向对象那块,无非是合理的类的设计, 在类中合理安排数据和对数据的处理,信息隐藏的特性等等。 从 C 应用程序目前的活跃程度, 以及应用现状来说是完全能够肯定C 仍然是软件工业的基础,也不会退出历史舞台的。我们也能够看到C的 发展非常活

15、跃,对于新技术新思维非常激进,C 仍然广泛受到关注。 17 八. 参考文献 九 附录 程序源代码 : #include #include #include #include #include int n,m; using namespace std; class msg public: msg(); 添加新联系人 . 4. 修改信息 . endl tt endl tt 2. 删除联系人 . 5. 查询联系人 . endl tt endl tt 3.显示所有联系人. 0. 关闭通迅录 . endl tt endl tt*endl endl choose; return choose; 添加新联系人 . 4. 修改信息 . endl tt endl tt 2. 删除联系人 . 5. 查询联系人 . endl tt endl tt 3. 显示所有联系人. 0. 退出通迅录 . endl tt endl 18 tt*endl endl n; switch(n) case 1: ();/添加联系人 break; case 2: ();/删除联系人 break; case 3: ();/显示所有联系人 break; case 4: ();/修改信息 break; case 5: ();/查询联系人 break; defaul

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

当前位置:首页 > 资格认证/考试 > 计算机等级考试

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