1、 计算机科学与应用系程序类课程设计 设计报告书 题 目: 设计并实现简单的通讯录 指导教师: 姓 名: 学 号: 日 期: 2012 年 5 月 27 日 计算机科学与应用系 2011-2012 学年第二学期 一、一、 需求分析需求分析 设计简单通讯录, 对人员的姓名和电话号码进行存储, 文件保存, 和进行不同的操作,有增加、 删除、查询、显示等,对人员进行管理。 输入部分,根据程序运行的目录提示,选择要进行的操作,18 是对通讯录的操作,0 是退出系统。 程序执行具体步骤时,会根据所选内容,调用不同的执行函数, 然后根据,不同函数的提示,进行具体操作。 每执行了不同函数,按任意键继续,系统会
2、自动进行清屏处理, 再进行选择操作,便于操作。 想退出系统时,可以选择 0,便可退出系统。 二、二、 系统主要功能系统主要功能 1.增加记录 2.删除一条记录 3.显示所有记录 4.按姓名查找并显示一条记录 5.按号码查找并显示一条记录 6.按姓名查找并修改一条记录 7.从文件中添加数据到库表中 8.将库表中的数据写入文件 0.退出系统 三、三、 流程图流程图 程序流程图如下图所示: 四、四、 数据结构和类设计数据结构和类设计 为了设计并实现简单的通讯录,要求使用数组实现,设计了数组元素 的类型,数据元素类型即 Node,封装了姓名和号码以及对其操作的 函数;数组这个类即 array,封装了
3、node 即 Node1000,和计算数据 元素个数的计数变量 len,以及对其操作的各个函数。 输入选择序号 判断序号 1. 添 加 记 录 2. 删 除 记 录 3. 全 部 显 示 4. 按 姓 名 查 找 并 显 示 记 录 5. 按 号 码 查 找 并 显示 6. 按 姓 名 查 找 并 修改 7.从 文 件 中 添 加 数 据 到 库 表 8. 将 库 表 中 的 数 据 写 入文 件 0. 退 出 系 统 4. 按 姓 名 查 找 并 显示 结束 开 始 其中的函数都为接口函数,要实现具体的功能,在主函数中还要 要点用具体的自定义函数。 1.数据元素类型即数据元素类型即 Node
4、 程序大概代码如下(附有解释) :程序大概代码如下(附有解释) : class Node private: char name10,number20; /分别存储姓名和号码 public: Node(char *p=“,char *q=“) / 构造函数 strcpy(name,p); strcpy(number,p); char *getname() /得到姓名 return name; char *getnumber() /得到号码 return number; void setname(char *p) / 建立姓名 strcpy(name,p); void setnumber(char
5、 *p) / 建立号码 strcpy(number,p); void display() / 显示信息 coutc; while(c8); return(c-0); /因为返回值为 int 型 5.2、增加记录函数 增加记录函数 Add 有点用了 array 中的 add()接口函数。 具体代码如下: void Add(array int n,m=0; coutpq; list.add(p,q); coutp; i=list.locatename(p); if(i!=-1) list.delate(i); coutp; i=list.locatename(p); if(i!=-1) list.
6、showone(i); 5.5、按号码查找并显示一条记录函数 此函数又调用了类array中的接口函数locatenumber()函数和showone() 函数。 具体程序代码如下: void locnumbershow(array char p20; coutp; i=list.locatename(p); if(i!=-1) coutp; list.setname(i,p); coutp; list.setnumber(i,p); coutfname; ifstream inf(fname,ios:in|ios:binary); if(!inf) cerrj; t=list.len; for(i=0;inamenumber; list.setname(t+i,name);