数据结构课程设计----通讯录管理系统.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
数据结构C++课程设计 题 目: 通讯录管理系统 学生姓名: 学 号: 院 系: 计算机与信息工程学院 专业年级: 信息安全2010级 2012年6月28日 一、设计题目 通讯录管理系统 实现一个通讯录管理系统。通讯录内容包括姓名及电话、QQ、E_mail四项内容。系统功 能包括实现按姓名升序存放通讯录内容,查询某人信息,并在插入或修改一项新的信息 后依然保持有序。最后将通讯录信息保存到数据文件中。 二、需求分析 1)运行环境(软、硬件环境) 使用语言:C++ 软件环境:运行软件Microsoft Visual C++ 6.0 SP6 系统软件 Windows 7 旗舰版 2)输入的形式和输入值的范围 输入姓名和邮箱为字符型,范围为-128~+127 输入电话号码和QQ号为整型,范围为-2147483648~+2147483647 3)输出的形式描述 程序运行后经过屏幕输出 4)功能描述 通讯录内容包括每个人的姓名及电话、QQ、E_mail四项内容; 通讯录中的内容按姓名顺序(升序)存放; 插入一项新的信息或修改一项信息后通讯录任然有序; 查询某人的信息时,如果找到了,则显示该人的信息,如果未找到,则提示 通讯录中没有此人的信息; 修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信 息; 删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信 息; 能显示通讯录中的所有记录; 采用菜单操作。 通讯录的内容保存到数据文件中。 5)测试数据 姓名1:smj 电话1:123 QQ:123 邮箱:123@163.com 姓名2:yyf 电话2:456 QQ:456 邮箱:456@163.com 姓名3:vigoss 电话3:789 QQ:789 邮箱:789@163.com 修改用:姓名:cold 电话:1 QQ:1 邮箱:1@163.com 三、概要设计 1)抽象数据类型定义描述 (对各类的成员及成员函数进行抽象描述,参见书或ppt及实验) 1、student类:成员类型有姓名,电话号码,QQ号及邮箱地址。 2、input函数: 输入:无 前置条件:无 功能:添加联系人信息 输出:无 3.output函数: 输入:无 前置条件:表存在 功能:用来排序并输出所有联系人的信息 输出:依次输出联系人信息 后置条件:表不变 4、友元类AddressBook类:定义头指针,存放数据key 5、input函数: 输入:无 前置条件:无 功能:录入函数 输出:无 后置条件:若添加成功,表中增加一个新元素,并且写入文件 6、find函数: 输入:无 前置条件:found函数中有 功能:子查找函数 输出:当调用删除、修改操作时,如果找到了,则进入find函数找出该联系人的信息 ;如果未找到,则提示通讯录中没有此人的信息 7、found函数: 输入:无 前置条件:表存在 功能:查找函数 输出:当调用查找操作时,如果找到了,则进入find函数找出该联系人的信息;如果 未找到,则提示通讯录中没有此人的信息 8、del函数: 输入:无 前置条件:表存在 功能:删除函数 输出:如果找到了,则删除该联系人信息,如果未找到,则提示通讯录中没有此人的 信息 9、show函数: 输入:无 前置条件:表存在 功能:显示函数 输出:依次输出联系人信息 10、mend函数: 输入:无 前置条件:表存在 功能:修改函数 输出:如果找到了则显示该联系人信息并修改,如果未找到,则提示通讯录中没有此 人的信息 11、save函数 输入:无 前置条件:表存在 功能:保存函数 输出:将数据保存到数据文件中 12、begin函数: 输入:无 前置条件:表存在 功能:初始化函数 输出:无 13、clear函数: 输入:无 前置条件:表存在 功能:清空函数 输出:无 14、mainmenu函数: 输入:无 前置条件:表存在 功能:主选菜单函数 输出:无 15、main函数: 输入:无 前置条件:表存在 功能:主函数 输出:无 2)功能模块设计(如主程序模块设计) 1.添加联系人信息模块: void AddressBook::input() 2.排序并显示所有联系人信息模块: void AddressBook::show() 3.查询联系人信息模块: void AddressBook::find() void AddressBook::found() 4.查找并修改联系人信息模块: void book::mend() 5.查找并删除联系人信息模块: void book::del() 6.联系人信息写入文件模块: void book::save() 7.主程序模块: void main() 3)模块层次调用关系图 四、详细设计 实现概要设计中定义的所有的类的定义 数据结构课程设计的目标是创建一个通讯录管理系统,该系统基于C++编程,使用Microsoft Visual C++ 6.0 SP6开发环境,在Windows 7 旗舰版操作系统上运行。该系统的核心功能是存储和管理包括姓名、电话、QQ号和E_mail在内的个人信息,且能按照姓名的升序排列数据。系统提供了添加、查询、修改、删除联系人信息以及显示所有记录的功能,并且能够将通讯录数据保存到文件中。 系统主要分为以下几个部分: 1. **数据结构**:设计一个名为`student`的类,包含姓名(字符型)、电话号码(整型)、QQ号(整型)和邮箱地址(字符型)作为成员变量,用于存储单个联系人的信息。 2. **输入处理**:通过`input`函数,用户可以输入新联系人的信息,程序应确保数据在合法范围内(姓名和邮箱为字符型,电话和QQ号为整型,且在各自的数值范围内)。输入成功后,数据需按姓名升序排列。 3. **输出展示**:`output`函数用于排序和显示所有联系人的信息,它首先对通讯录进行排序,然后依次输出每个联系人的信息,不改变原有数据结构。 4. **搜索功能**:`find`和`found`函数协同工作,实现查找特定联系人。`find`是子查找函数,用于在执行删除或修改操作时找到特定联系人;`found`函数用于一般的查找操作,若找到匹配信息,调用`find`,否则给出未找到的提示。 5. **修改操作**:`mend`函数允许用户修改已存在的联系人信息。如果找到要修改的联系人,显示信息供用户确认或更改,否则提示未找到信息。 6. **删除操作**:`del`函数根据用户输入的姓名删除对应联系人,找不到时给出相应提示。 7. **显示所有记录**:`show`函数遍历整个通讯录并显示所有联系人的信息。 8. **文件操作**:`save`函数负责将通讯录内容保存到数据文件,确保数据持久化。 9. **初始化与控制**:`begin`函数初始化通讯录,`clear`函数清空通讯录,`mainmenu`函数提供用户交互的主菜单,而`main`函数是程序的入口点,控制整个流程。 10. **模块调用**:程序由多个功能模块组成,如添加联系人信息模块(`AddressBook::input()`),显示所有联系人信息模块(`AddressBook::show()`),查询模块(`AddressBook::find()`和`AddressBook::found()`),修改模块(`book::mend()`),删除模块(`book::del()`),以及写入文件模块(`book::save()`)。这些模块通过菜单系统进行交互,用户可以通过菜单选择相应的操作。 为了满足上述功能,设计中还需要考虑数据结构的选用,比如可能使用链表或二分查找树等数据结构来保证插入、删除和查找操作的高效性。同时,为了保证通讯录在插入和修改后的有序性,可能需要在插入或修改操作后进行重新排序。此外,文件操作需要考虑数据的序列化和反序列化,以便正确地读取和保存数据。 这个通讯录管理系统设计涵盖了数据结构、算法和文件操作等多个核心的计算机科学概念,是学习和实践C++编程以及数据结构知识的好项目。
剩余23页未读,继续阅读
- Jelloreal2023-06-17发现一个宝藏资源,资源有很高的参考价值,赶紧学起来~
- 粉丝: 105
- 资源: 9354
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java 代码覆盖率库.zip
- Java 代码和算法的存储库 也为该存储库加注星标 .zip
- 免安装Windows10/Windows11系统截图工具,无需安装第三方截图工具 双击直接使用截图即可 是一款免费可靠的截图小工具哦~
- Libero Soc v11.9的安装以及证书的获取(2021新版).zip
- BouncyCastle.Cryptography.dll
- 5.1 孤立奇点(JD).ppt
- 基于51单片机的智能交通灯控制系统的设计与实现源码+报告(高分项目)
- 什么是 SQL 注入.docx
- Windows 11上启用与禁用网络发现功能的操作指南
- Java Redis 客户端 GUI 工具.zip