1、 - 1 - 一、一、 设计题目设计题目 通讯录通讯录 1. 设计要求: 基本功能: a) 添加个人信息 b) 查询个人信息 c) 删除个人信息 d) 修改个人信息 e) 信息排序 f) 输出全部信息 拓展功能: 采用文件形式对通讯录进行操作,包括: a) 写入文件 b) 读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 2. 设计要求具体说明 通讯录至少应该有以下数据项:姓名,家庭住址,手机号码,邮编,E-mail。 输入信息时要检查数据项手机、 邮编、 E-mail 的合法性, 手机号码: 11 位数字; 邮编: 6 位数字; E-mail: 包含字符,且两边都非空。 对通讯录
2、应该包含有以下操作(包括基本功能和拓展功能): a) 向通讯录中添加信息; b) 在通讯录中按姓名或手机号查找个人信息; c) 删除通讯录中的个人信息; d) 修改通讯录中的个人信息,并保存入文件; e) 按不同数据项排序后列表输出通讯录中所有人的信息。通讯录中记录的数量没有限制。 f) 将通讯录中的数据写入文件和从文件读入数据。 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;写入文件时有两种方式,一为 覆盖所有原有的内容; 二为只将本次操作所修改的个人信息写入文件 g) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示退出程序。 3. 设计提示 定义合适的结构体类型,使用
3、链表或数组的方式组织数据。 通讯录 1. 添加 2. 查询 3. 删除 4. 修改 5. 排序 6. 输出全部信息 7. 写入文件 8. 读取文件 0. 退出 程序的主界面程序的主界面 - 2 - 二、二、 系统功能模块结构图系统功能模块结构图 通通 讯讯 录录 结结 构构 体体 主主 程程 序序 ID 姓名 地址 E-mail 电话 邮政编码 添加 查询 删除 修改 排序 输出全部信息 写入文件 读取文件 退出程序 按 ID 查找 按姓名查找 按电话查找 删除单个 删除全部 按 ID 删除 按姓名删除 按 ID 排序 按姓名排序 相相 关关 功功 能能 初始加载功能 合法性录入验证功能 返回
4、主菜单功能 程序结束 11 位手机号码验证 邮箱合法性验证 6 位邮政编码验证 + 子菜单 + 子菜单 + 子菜单 + 子菜单 各级子菜单各级子菜单 按需求返按需求返 回上级菜单或主菜单回上级菜单或主菜单 互互 相相 调调 用用 通讯录系统功能模块结构图通讯录系统功能模块结构图 - 3 - 三、三、 各模块和子程序的说明各模块和子程序的说明 (一)(一) 结构体结构体 用 struct 创建名为 Info 包含了 ID、姓名、地址、E-mail、手机 电话和邮政编码的结构体 右图为该部分的程序截图, 如图,Id 是整型,因此是 int,其他均为 char 型。 用 person500写在变量名中,每个“person”都包含了上述 6 个信息。 (二)(二) 主程序主程序 1 1、 mainmain 主函数部分主函数部分 首先 20-36 行中声明了所有需要使用的函数 图中所有绿色部分均为该行行注释,其中+表示主菜单 中的子菜单,+则表示二级子菜单,*为子菜单中功能。 函数除了声明之外,有两个函数的调用组成。第一个