通讯录是现代日常生活中不可或缺的部分,除了常规的姓名、电话外,通讯录还能存储联系人的所在城市、所在单位、家庭地址等,从而提高工作与社交的效率。鉴于此,单条通讯录信息可被定义为一个结构体。 本实验要求设计一个简单的通讯录管理系统,涉及函数、结构体、链表、文件等方面的知识,学习利用链表处理数据的方法,熟练掌握文件操作,构建综合程序设计的思路及框架,提高综合设计软件系统的能力。 1. 数据格式与功能描述
1.1 数据文件格式
每条通讯录记录包括如下信息:序号、姓名、性别、年龄、电话号码、所在城市、所在单位、住址。多条通讯录信息存储在一个txt文件中,本系统涉及多个这样的txt文件。单条通讯录示例格式如图1-1所示。
图1-1 单条通讯录信息
本实验中,要求自行创建5个txt文件,分别命名为a.txt, b.txt.. e.txt,分别表示5个人的通讯录信息,每一个人的通讯录中,既可以有其他4人中部分人(1-3人)的信息,也可以有此5人之外其他人的信息,通讯录具体内容可以自行设定。
1.2 功能描述
设计一个通讯录管理系统,利用单链表来处理联系人信息,要求实现如下系统功能。
(1) 初始化菜单
程序开始运行后显示菜单,要求菜单能完全展示本系统的功能,尽力做到设计美观。
(2) 选择待操作的文件
考虑到本系统有多个文件,需要提示用户输入来选择需要操作的通讯录文件。
(3) 查询通讯录信息
选择通讯录文件后,按姓名、性别、城市查询联系人所有信息。提示用户输入待查人员的姓名、性别、城市,显示符合条件的联系人所有信息。如果没有满足要求的联系人,输出提示信息。
可输出全部联系人信息,若当前通讯录没有联系人,输出提示信息。
(4) 删除通讯录记录信息
按指定的姓名、工作单位、城市删除通讯录中对应记录,删除时应删除该联系人的所有信息并提示删除成功。若此联系人不存在,输出提示信息。
(5) 修改通讯录记录信息
修改指定通讯录的信息。提示用户输入要修改的姓名,若此人存在,则提示选择修改通讯录中的电话号码、所在单位、所在城市或者家庭地址。若该联系人不存在,输出提示信息。
(6) 增加通讯录记录信息
通过控制台增加通讯录信息,提示用户输入联系人的编号,如果编号存在,提示编号已经存在;如果不存在,则逐项录入通讯录的每一条信息。
(7) 保存通讯录记录信息
将当前通讯录信息保存到txt文件中。
(8) 构建联系人关系网络
在5个txt通讯录文件中,若a有b的,记为,若a有b的且b也有a的,记为,若a没有b的且b也没有a的,则记为。现根据此规定构建联系人关系网络M,分别对应0,1…4,若满足,则对应,若满足,则对应,若满足,对应。打印输出五人的关系矩阵。
(9) 退出系统
用户可通过输入特定指令来退出程序,在用户输入退出指令之前,程序不得自行退出。
1.3 要求
(1) 源程序编写要求
根据系统功能描述,采用模块化程序设计方法进行程序设计,要求程序结构清晰。上述各个功能模块要求分别用函数实现,在主函数中通过调用这些函数,完成系统功能的要求。代码书写规范,有简要的注释,给出函数说明。
(2) 设计报告撰写要求
设计报告内容包括题目内容和要求、总体设计、详细设计、源代码、调试过程中的问题、总结等。
总体设计:对程序的整体设计思路进行描述,画出图书管理系统的总体功能模块图,说明系统使用的主要数据结构,列表给出需要用到的函数并描述其功能。
详细设计:分析实现各函数功能的算法,描述函数的功能。
调试过程中的问题:记录程序编写和调试过程中遇到的各种问题,以及解决这些问题的途径和方法。
总结:回顾整个综合程序设计的过程,对学习到的设计方法和思路进行总结,写出个人体会。