C语言通讯录管理系统程序设计
1 广西科技大学鹿山学院 课程设计报告 课程名称: c语言程序设计 课题名称:通讯录管理系统设计 指导教师:倪志平 班级:物联网 152 姓名:吴肖军 学号: 成绩评定: 指导教师签字: 二一六年七 月六日 2 目录 1 需求分析 . 3 2 总体分析与设计 . 3 总体设计方案 . 3 功能描述 . 错误! 未定义书签。 新增联系人模块. 错误! 未定义书签。 保存联系人模块. 4 查询联系人模块. 4 显示联系人模块. 4 修改联系人模块. 4 删除联系人模块. 错误! 未定义书签。 读取联系人模块. 5 退出系统模块. 错误! 未定义书签。 系统流程图 . . 5 3 系统实现. 6 4功能测试 . 11 新增联系人. 11 3 查询联系人. 13 显示联系人. 14 修改联系人. 15 删除联系人. 16 退出系统 . 17 总结 . 18 参考文献 . 18 课程设计目的 1 需求分析 通讯录档案信息采用文件存储,因而要提供文件的输入输出操作;根据联系人信息的变 动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号进项查询,所以要提供 文件的查找操作;高级编辑功能,就是提供文件的修改操作;显示功能就是显示出通讯录中 所有联系人的功能;另外还要提供键盘式选择菜单以实现功能选择。 2 总体分析与设计 1. 总体设计 总体设计目标:使用者可以利用本系统对通讯录的各项管理进行操作,根据用户要求自 动进行新增联系人,保存联系人,删除联系人,查找所要的联系人,修改所要的联系人,最 后将他们清楚地显示在屏幕中。 结合上述分析,该系统应包括一下模块:新增联系人,保存联系人,查询联系人,修改 联系人,显示联系人,删除联系人,退出系统。结构图如下。 总体设计方案 通讯录管理系统 4 图 2-1 系统功能模块图 功能描述 根据以上需求分析,通讯录管理系统划分为七个功能模块,分别是新增联系人模块,保 存联系人模块,查找联系人模块,修改联系人模块,显示联系人模块,删除联系人模块,读 取联系人模块。其中各功能模块的具体说明如下。 新 增 联 系 人 保 存 联 系 人 显 示 联 系 人 删 除 联 系 人 退 出 系 统 修 改 联 系 人 查 询 联 系 人 5 新增联系人模块 增加联系人模块:该模块的功能是增加新的联系人信息。信息包括联系人姓名,联系人所在单位,联 系人电话号码等。然后从键盘输入并逐条写入到的文件中。增加成功后提示增加联系人信息成功! 保存联系人模块 保存联系人模块: 该模块会保存所新增联系人, 修改联系人等信息到指定文件夹中。 查找联系人模块 查找人事信息模块:该模块的功能是,查找文件中的联系人信息记录,从键盘输入联系 人编号,输入时会判断该联系人编号是否存在,若不存在,则重新输入。若存在,则将该人 事信息输出到窗口。 修改联系人模块 修改人事信息模块:该模块的功能是由用户输入所需修改的联系人信息编号。然后对联 系人信息(姓名和电话号码等)进行修改,最后保存修改后的结果。 显示联系人模块 该模块将文件里的内容输出到电脑屏幕。用户可以通过该功能看到文件当中的所有联系 人的信息。 删除联系人模块 删除人事信息模块:该模块首先由用户输入要删除的联系人的编号,根据编号删除所需 的联系人信息,删除后提示联系人删除成功。删除的方法是将文件中的数据读入内存,赋给 相应的结构体,并将结构体数组中将删除的后面的数据赋给前一个结构体,然后将相应数据 写入文件并保存。 6 读取联系人模块 该模块将保存到文件中的联系人读取到内存中以供程序操作。 退出系统模块 若在系统最初运行时,选择退出系统,则系统退出运行。 系统流程图 开 选 显示主菜 1 新增 联系 2 保存 联系 3 查询 联系 4 修改 联系 5 显示 联系 7 退出 系统 退出系统 6 删除 联 7 3 系统实现 程序源码 #include #include #include #include struct BOOKS int id; 显示操作结果 结束 8 char tell12,phone12,name31,add20,email30,qq20; books100,*p; void page_title(char *menu_item) printf(tt*n,menu_item); printf(tt* 欢迎使用通讯录管理系统 *n,menu_item); printf(tt* *n,menu_item); printf(tt* 系统设计人:吴肖军 *n,menu_item); printf(tt* *n,menu_item); printf(tt*nn- %s -nn,menu_item); void return_confirm(void) printf(n按任意键返回n); getchar(); void books_add(void) d=0) break; printf(序号 :); scanf(%d, printf(姓名 :); scanf(%s, printf(单位 :); scanf(%s, printf(固定电话 :); scanf(%s, 9 printf(移动电话 :); scanf(%s, printf(邮件 :); scanf(%s, printf(QQ:); scanf(%s, return_confirm(); int books_search(void)ame,nam)=0) printf(序号 :%dt,booksn.id); printf(联系人 :%st,booksn.name); printf(单位 :%st,booksn.add); printf(固定电话 :%st,booksn.tell); printf(移动电话 :%st,booksn.phone); printf(邮件 :%st,booksn.email); printf(QQ:%sn,booksn.qq);i=n; if(i=-1) printf(n没有找到相关记录.n); getchar(); return i; 10 int books_change(void)d=i) printf(修改联系人: ); scanf(%s,booksn.name); printf(修改单位: ); scanf(%s,booksn.add); printf(修改固定电话:); scanf(%s,booksn.tell); printf(修改移动电话:); scanf(%s,booksn.phone); printf(修改邮件: ); scanf(%s,booksn.email); printf(修改 QQ :); scanf(%s,booksn.qq); printf(修改联系人信息成功.n); return n; printf(n没有找到相关记录.n); getchar(); return -1; int books_show(void)ame)!=0) 11 printf(序号 :%dt,booksn.id); printf(联系人 :%st,booksn.name); printf(单位 :%st,booksn.add); printf(固定电话 :%st,booksn.tell); printf(移动电话 :%st,booksn.phone); printf(邮件 :%st,booksn.email); printf(QQ:%sn,booksn.qq); i=0; if(i=1) printf(n没有找到相关记录.n); getchar(); return -1; int books_del(void)d=num) for(i=n;i<100;i+) booksi.id=booksi+1.id; strcpy(booksi.name,booksi+1.name); strcpy(booksi.email,booksi+1.email); 12 printf(该联系人已删除.n); return n; printf(没有找到相关记录n); getchar();