c通讯录程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c通讯录程序设计文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)
C++程序设计课程设计报告
——通讯录管理系统
班级:1120551
学号:03
姓名:
一课程设计题目与要求
题目
通讯录管理系统
系统功能要求:
(1)录入通讯录
(2)修改通讯录
(3)查询通讯录(可按姓名、电话、联系人类别查询)(4)删除通讯录
(5)按姓名对通讯录进行排序
一课程设计题目与要求
题目
通讯录管理系统
系统功能要求:
(1)录入通讯录
(2)修改通讯录
(3)查询通讯录(可按姓名、电话、联系人类别查询)(4)删除通讯录
(5)按姓名对通讯录进行排序
二需求分析
2.1问题描述
根据需求,该系统所应包含的信息有以下一些:
通讯录的基本信息:
姓名、地址、电话
根据需求,该系统所应实现的功能有以下一些:
各种基本数据的录入。如:通讯录基本信息录入。
各种基本数据的修改。即:允许对已经录入的数据重新进行编辑、修改。例如修改通讯录中张三的电话信息
各种基本数据的删除。例如将张三的信息从通讯录中删除
基于各种数据的查询。例如输入张三姓名,查询张三的电话和地址。
数据导出:将通讯录中信息导出到指定文件。
数据导入:从指定文件导入通讯录信息到。
系统环境
采用C++语言实现,开发环境为VC++,可以运行在操作系统windows98及以上皆可。
运行要求
能不受限制的录入通讯录信息
界面友好,操作方便,例如删除前需要提示用户是否删除
系统流程设计
根据系统要求,设计如下的系统流程。
系统模块设计
根据系统的功能设计,如下模块
1.主界面模块:完成系统菜单的显示
2.功能选择模块:根据用户的选择,完成其相应的功能
(1)通讯录信息录入:完成用户从界面输入通讯录,保存入系统的功能
(2)通讯录信息修改:完成用户从界面输入通讯录,在系统中查询定位,并将录入的数据保存入系统的功能
(3)通讯录信息查询:完成用户从界面输入查询条件,在系统查询符合条件的通讯录信息,并在界面上显示的功能。
(4)通讯录信息导入:完成用户从界面输入需要导入的文件路径名称,读取该文件的内容,保存入系统,并在界面上显示导入内容的功能。
(5)通讯录信息导出:完成用户从界面输入需要导出的文件路径名称,将系统中通讯录信息保存入文件中。
(6)通讯录信息删除:完成用户从界面输入需要的通讯录信息的姓名,并将其从系统中删除。
数据结构设计
根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下:
界面设计
1.主界面:
根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将在每个菜单前显示该菜单项对应的数字用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。
2.输入界面:
在光标下输入通讯录的信息,用空格将信息隔开
3.修改界面:
首先输入通讯录的姓名,显示该通讯录的详细信息,输入修改后的信息,将原来信息修改。
4.删除界面:
输入需要删除的姓名,将其从通讯录中删除
5.导出界面:
输入需要导出的文件路径,将通讯录信息导出到文件。
6.列表显示页面:
将通讯录中所有记录显示,每页显示10条
7.导入页面:
相关功能的整合
8.查询界面:
相关功能的整合
模块实现
1.主界面实现:
调用cout函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。
对应的实现函数menu_show();
2.功能选择模块实现:
接受从键盘输入的菜单选择,判断并调用相应的功能函数,完成其对应的功能。实现功能选择。
对应的函数:menu_select();
(1)通讯录信息录入模块实现:
模块说明:从键盘接收输入的通讯录信息,在动态存储区中创建通讯录的节点,遍历链表,将其插入到通讯录链表的最后位置。
模块流程:
对应函数:add(struct phone * head)
(2)通讯录信息修改模块实现:
模块说明:从键盘接收输入的需要修改通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入修改后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:
对应函数:update(struct phone * head)
(3)通讯录信息删除模块实现:
模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:
对应函数:delete(struct phone * head)
(4)通讯录信息导入模块实现:
模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:
对应函数:load(struct phone * head)
(5)通讯录信息导出模块实现:
模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:
对应函数:save(struct phone * head)
(6)通讯录信息查询模块实现:
模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:
对应函数:search(struct phone * head)