1、 数据结构课程设计报告数据结构课程设计报告 设计名称:1)简单个人电话号码查询系统 2)哈希表设计 程序设计与算法分析课程设计报告程序设计与算法分析课程设计报告 一、简单个人电话号码查询系统一、简单个人电话号码查询系统 1、需求分析、需求分析 1、程序的功能:实现一个简单的个人电话号码查询系统,根据 用户输入的信息进行排序(按电话号码)并且可以进行快速查询(按 姓名) ,同时还可以进行插入、删除、修改等维护功能 2、输入输出的要求:电话本中每个人的各项信息需要由键盘进 行输入,应用 getch 函数进行输入,printf 函数实现输出。 3、测试数据。 2、概要设计、概要设计 1、存储结构设计
2、说明: 应用结构体类型的数组对电话本中的记录进行存储。 struct record char name20; char phone20; char mailbox20; people60; 2、程序设计组成框图 3、详细设计、详细设计 1、主函数 函数功能:对写入文件函数及主菜单函数进行调用。实现主菜单 的显示 函数类型:未调用参数,且无返回值。 函数调用关系描述:调用主菜单函数及写入文件函数,实现主菜 个人电话本系统 主 菜 单 文 件 导 入 函 数 添 加 记 录 函 数 修 改 菜 单 按 姓 名 修 改 删 除 菜 单 删 除 函 数 查 找 菜 单 查 找 函 数 排 序 菜 单
3、排 序 函 数 显 示 所 有 写 入 文 件 单的显示。 2、从文件导入函数 函数功能:判断文件是否存在,存在进行导入,不存在进行文件 导入。 函数类型:未调用参数,且无返回值。 算法说明(流程图表示) 开始 是否为输入打开文件失败 是否为输出打开文件失败 建立失败 通 讯 录 已建立 返回主菜单 退出 指针调到文件尾 文 件 当 前 位 置 是 否 大 于 0 返回文件头部,遍历 向电话本中写入信 息 文件导入 成功 任意键回主 菜单 文件导入成功, 无任何记录, 任 意键回主菜单 返回主菜单 否 否 否 是 是 是 从文件导入函数流程图 3、主菜单函数 函数功能: 输出主菜单, 并利用多
4、分枝选择结构调用各功能函数。 函数类型:未调用参数,且无返回值。 算法说明: 利用多分枝选择结构实现程序中各程序之间的转换和 方便用户进行选择。调用各功能函数。 4、添加记录函数 函数功能:电话本为空时,实现电话本中信息的创建;电话本不 为空时,实现电话本信息的添加。 函数类型:未调用参数,且无返回值。 算法说明: ,从键盘输入联系人的姓名和电话、邮箱等信息,应 用系统 printf 函数输出,scanf 函数输入,继续添加递归调用 添加记录函数 5、显示所有函数 函数功能:遍历输出电话本中的所有信息。 函数类型:未调用参数,且无返回值。 算法说明: (流程图表示) 显示所有函数 开始 判断
5、num 是否为 0 通 讯 录 中 无 任何记录 I 是否num I=0 输出信息 I+ 返 回 主 菜 是 否 是 否 6、修改菜单函数 函数功能:显示修改菜单,实现修改函数与主菜单之间的转换。 函数类型:未调用参数,且无返回值。 算法说明:实现主函数与修改函数之间的转换,多分支选择结构 调用删除函数及主菜单函数。 7、修改函数 函数功能:实现电话本中记录的修改。 函数类型:未调用参数,且无返回值。 算法说明: (流程图表示) ,进行继续修改时递归调用修改函数。 开始 Num 是否为 0 输入要修改的人名 I=0 I 是否num 与 输 入 姓 名 是 否相等 I+; 输出联系 人信息 是否
6、修改 重新输入联 系人信息 返回菜单 是否确认 写入文件 通讯录中无 任何记录 中止 循环 无 该 记 录 修改函数 是 是 是 是 是 否 否 否 否 否 8、查询菜单函数 函数功能:显示查询菜单,实现查询函数与主菜单之间的转换。 函数类型:未调用参数,且无返回值。 算法说明:实现主函数与查询函数之间的转换,多分支选择结构 调用查询函数及主菜单函数。 9、查询函数 函数功能:实现对电话本中指定记录(按姓名)的查询。 函数类型:未调用参数,且无返回值。 算法说明: (流程图表示) 10、删除菜单函数 函数功能:显示删除菜单,实现删除函数与主菜单之间的转换。 函数类型:未调用参数,且无返回值。 算法说明:实现主函数与删除函数之间的转换,多分支选择结构 输入需要需要进 行查找的姓名 I=0 I 是否小于 num 是否 name 值相等 给 m 初始化为 0 开始 输出查找 人信息 M+ 返回菜单 I+ 没有该 人信息 返回菜单 查询函数 否 否 是 是 调用删除函数及主菜单函数。 11、删除函数 函数功能:实现对指定记录(按姓名)的