1、 高级语言课程设计报告书 系部名称系部名称 通信工程学院 学 生 姓 名学 生 姓 名 专 业 名 称专 业 名 称 电子信息科学与技术 班班 级级 学号学号 指 导 教 师指 导 教 师 时间时间 2010 年 11 月 22 日至 2010 年 12 月 03 日 实验题目实验题目 个人通讯录个人通讯录管理系统管理系统 一、实验目的一、实验目的 设计一个个人通讯录管理系统,拥有对数据的各种操作功 能,实现对通讯录的管理,从而巩固 C 语言程序设计 二、实验内容二、实验内容 个人通讯录管理系统需求分析 个人通讯录管理系统总体设计 个人通讯录管理系统详细设计 个人通讯录管理系统模块设计 个人通
2、讯录管理系统系统集成 个人通讯录管理系统测试运行 三、需求分析三、需求分析 对于一个通用的个人通讯录管理系统而言,用户首先要 能够对通讯录中的数据进行录入, 删除, 更新和输出等操作, 其次要求对通讯录中的数据进行查找操作。 根据上述分析,在后面给出该个人通讯录的主要实现功 能。 信息录入:即创建一个存储通讯录信息的数据结构,有用户 从键盘上录入信息,或从数据表文件中导入到该数据结构 中。 信息更新:对数据结构中已有的信息进行修改,并将结果保 存在数据结构中。 信息删除:删除数据结构中无用的信息,并将解雇保存在无 数据结构中。 信息查询;针对用户输入的目标值,在数据结构中查找对应 的记录,并将
3、其输出到用户屏幕。 信息导入:将某文件中的信息导入到创建的数据结构中,提 高数据的输入效率。 信息导出:将数据结构中的记录导出到文件中,已永久保存 下来。 信息输出:将数据结构中的信息或指定的信息输出到用户屏幕 中。 四、概要设计四、概要设计 1.数据类型 dnode *p,*rear,*q; /*定义指针结点*/ const char USER=w,a,l,d,e,n,PASSWORD=4,1,6,9,5,3; /*定 义用户密码*/ int OK=1,i; /*用作循环变量或返回值*/ FILE *fp; /*定义文件指针*/ 2、数据结构说明 /*data structure*/ typ
4、edef struct txl char name20; /*成员姓名,为通讯录管理的对象*/ char sex4; /*性别,可用于快速类别查询,区别数据成员*/ char city20; /*所在城市,可用于快速类别查询,区别数据成*/ char province20; /*省别*/ char qq11; /*QQ 号,管理查询主信息*/ char phone number11; /*对象电话号,管理查询主信息*/ dtxl; /*建立通讯录信息结构体*/ typedef struct dlnode dtxl data; /*定义数据域*/ struct dlnode*prior; /*前
5、驱指针*/ struct dlnode*next; /*后继指针*/ dnode; /*建立双向链表结构体*/ 程序中定义的数据类型结构体(各个成员的作用) 3、模块功能说明 信息录入功能模块:实现用户从键盘输入数据存储对应字段或该数据成员 中,并检查输入的合法性。 信息更新功能模块:首先更具用户输入找到需要修改的目标记录,再将用户 重新输入的信息存储到该记录中,以替代该记录原来的信息。 信息删除功能模块:该模块将通讯录中无用的信息从数据数据结构中删除, 不可再恢复。 信息查询功能模块;用户输入的待查询记录的某关键字, 在结构中查找对应的 记录,找到则输出相关信息,否则给出无法得提示信息。 信
6、息导入功能模块:该模块将文本文件或二进制中的数据导入到数据结构 中,以提高数据的输入效率。 信息导出功能模块:将数据结构中的记录导出到文件中,已永久保存下来。 信息输出:将数据结构中的信息或指定的信息输出到用户屏幕中。 信息输出功能模块:将数据结构中指定的信息输出在用户屏幕。 根据如上功能模块分析,通讯录信息管理系统的总体结构设计图如下所示。 五、详细设计及运行结果五、详细设计及运行结果 总体结构图: 信 息 导 入 模 块 信 息 录 入 模 信 息 更 新 模 信 息 删 除 模 信 息 输 出 模 信 息 查 询 模 个人通讯录管理系 删除流程图: 信息更新流程: 开始 定义结点指针 flag=Y|y是否成立 结束 建立头结点 插入新结点到链表中 输入flag的 建立新结点 首先建立一个