2022年C语言大作业设计-.pdf
C语言大作业设计- CHANGZHOU INSTITUTE OF TECHNOLOGY C语言大作业设计说明书题目: 通 讯 录 管 理 系 统二级学院 (直属学部 ): 计 算 机 信 息 工 程 学 院专业 : 软件工程 (中英合作 ) 班级 : 1 2软件二姓名 : 学号 : 2013 年 7 月目录1 概述、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、11、2 设计分析、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、1 1、3 开发工具、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、1 1、4 应用平台、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、1 2 系统设计、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、22、1 功能模块设计、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、22、2 数据结构设计、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、4 2、3 函数功能设计、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、4 3 实现与测试、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、73、1 关键技术实现、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、7 3、2 测试运行结果、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、8 4 开发日志、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、145 设计总结、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、146 参考文献、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、14精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 13 页 - - - - - - - - - - C语言大作业设计- 1 概述1、1 小组构成及分工1、2 设计分析本程序设计共包含六个函数模块,分别就是添加记录、显示记录、删除记录、查询记录、修改记录、保存记录等信息模块, 完成通讯录的功能。在主函数中可以以1、2、3、4、 5 、6 数字键分别可以执行某个功能模块。1、3 开发工具Visual C+ 6、0 与 window32 1、4 应用平台Windows XP 32位2 系统设计2、1 功能模块设计1、系统模块图本系统包括 6 个模块, 分别就是添加模块、显示模块、删除模块、查询模块、修改模块、保存模块等, 各模块的功能如图2、1 所示。各个模块的功能描述如下 :(1) 添加模块 : 可以添加通讯录记录 , 依次输入姓名、 年龄、电话号码、地址、电子邮箱后 ,并会提示就是否继续添加。(2) 显示模块 : 可以以表格形式输出所有通讯录里的记录。(3) 删除模块 : 输入欲删除的那个人的名字后, 会自动删除她 ( 她)的记录内容。(4) 查询模块 : 可以选择用姓名、电话、地址三种方式查询。(5) 修改模块 : 输入欲修改的那个人的名字后, 再依次输入姓名、 年龄、电话号码、地址、电子邮箱完成修改。(6) 保存模块 : 输入文件名 (带后缀名 )后, 即可将通讯录信息保存到文件。图 2、1 系统模块图2、任务执行流程图定义主函数 main 函数与一系列的功能函数, 只有通过这些函数才可实现程序的功能。每次使用都会调用主函数。流程图如图2、2 所示: 通讯录管理系统添加记显示记删除记查询记修改记保存记退出系统精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 13 页 - - - - - - - - - - C语言大作业设计- 图 2、2 系统流程图2、2 数据结构设计1、根据描述的基本信息含有多个属性, 其中包括姓名、年龄、号码、地址、邮箱 ,为此可根据信息建立结构体, 类型定义如下 : typedef struct char name10; /*姓名*/ char num15; /*号码*/ char email20; /* 邮箱*/ char age8; /* 年龄*/ char adds20; /* 住址*/ Person; 2、Person 结构体数组开始请选择06 保存记录添加记录显示记录删除记录查询记录修改记录结束精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 13 页 - - - - - - - - - - C语言大作业设计- Person pe80; 2、3 函数功能描述1、Input( ) 函数原型 int Input(Person per , int n) 选择添加联系人 , 程序在 Input( )函数下输入添加联系人的信息。其中,n 表示存储的 n 条记录 ,Person per 就是结构体数组变量。2、Display( ) 函数原型 void Display(Person per , int n) Display( )函数显示所有联系人的信息到屏幕上。其中,n 表示存储的 n 条记录 ,Person per 就是结构体数组变量。3、Delete_a_record( )函数原型 int Delete_a_record(Person per , int n) Delete_a_record( )函数输入删除的联系人的姓名。其中,n 表示存储的 n 条记录,Person per 就是结构体数组变量。如图 2、3所示: 图 2、3 删除记录流程图精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 13 页 - - - - - - - - - - C语言大作业设计- 4、Query_a_record( )函数原型 void Query_a_record(Person per , int n) 在 void Query_a_record( )函数中查找联系人 , 根据输入要查联系人的姓名、电话或地址 , 程序输出此人的信息。其中,n 表示存储的 n 条记录,Person per 就是结构体数组变量。如图2、4 所示, 以查询姓名为例 : 图 2、4 查询记录流程图5、Change( ) 函数原型 void Change(Person per , int n) void Change( )函数输入欲修改的联系人, 重新输入联系人信息即可完成联系人的修改 ,其中,n 表示存储的 n 条记录 ,Person per 就是精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 13 页 - - - - - - - - - - C语言大作业设计- 结构体数组变量。6、WritetoText( ) 函数原型 void WritetoText(Person per , int n) void WritetoText( )函数保存经过一系列操作之后的联系人的信息。其中,n 表示存储的 n 条记录 ,Person per 就是结构体数组变量。3 实现与测试3、1 关键技术实现通过 switch 函数来控制主菜单 , 进行操作选择各项功能 , 从而完成通讯录系统的操作。switch(menu_select() case 1: printf(nt添加记录到通讯录 n); n=Input(pe,n); break; case 2: printf(nttt 通讯录记录表 n); Display(pe,n); break; case 3: printf(nt从通讯录中删除记录 n); n=Delete_a_record(pe,n); printf(t); system(pause); break; case 4: printf(nt在通讯录中查找记录 n); Query_a_record(pe,n); printf(t); system(pause); break; case 5: printf(nt修改通讯录中的记录 n); Change(pe,n); printf(t); system(pause); break; case 6: printf(nt保存功能 n); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 13 页 - - - - - - - - - - C语言大作业设计- WritetoText(pe,n); printf(t); system(pause); break; case 0: printf(ntt谢谢使用 , 再见!n); printf(ntt); system(pause); exit(0); 3、2 测试运行结果1、显示主菜单界面 : 程序开始运行时 , 显示通讯录主菜单 , 通过输入 0-6 来操作通讯录的各个功能。如图 3.2.1 所示: 图 3.2.1 显示主菜单界面2、添加记录界面 : 在输入 1 后, 显示添加记录的界面 , 依次输入姓名、年龄、电话号码、通讯地址、电子邮箱。如图3.2.2 所示: 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 13 页 - - - - - - - - - - C语言大作业设计- 图 3.2.2 添加记录界面3、 显示记录界面 : 在输入 2 后, 界面显示通讯录记录表 , 如图 3.2.3 所示: 图 3.2.3 显示记录界面4、删除记录界面 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 13 页 - - - - - - - - - - C语言大作业设计- 在输入 3 后, 显示删除记录界面 , 输入想删除的姓名 : 王小斌, 即可删除该人的信息。如图3.2.4 、1 所示: 图 3.2.4 、1 删除记录界面删除后 , 通讯录里的显示记录。如图3.2.4 、2 所示: 图 3.2.4 、2 删除后的显示记录界面5、 查询记录界面 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 13 页 - - - - - - - - - - C语言大作业设计- 在输入 4 后, 显示查询记录界面 , 选择您想查询的方式。如图3.2.5 、1 所示: 图 3.2.5 、1 查询记录界面以姓名查询为例 , 输入杨玥 , 则显示杨玥的信息。 如图 3.2.5 、2 所示: 图 3.2.5 、2 姓名查询记录界面6、修改记录界面 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 13 页 - - - - - - - - - - C语言大作业设计- 在输入 5 后, 显示修改记录界面 , 输入想修改的姓名 : 杨玥, 重新输入信息, 完成修改通讯录。如图3.2.6 所示: 图 3.2.6 修改记录界面7、保存记录界面 : 在输入 6 后, 显示保存记录界面 , 输入所保存的文件名 , 如 tongxunlu 、txt 、如图 3.2.7 、1 所示: 图 3.2.7 、1 保存记录界面tongxunlu 、txt 文件截图 , 如图 3.2.7 、2 所示: 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 13 页 - - - - - - - - - - C语言大作业设计- 图 3.2.7 、2 通讯录系统文件界面4 开发日志第一天 , 确定课题 , 对所选系统进行分析 , 小组成员进行分工。第二天 , 对系统总体设计 , 各自完成自己的任务 , 并交流沟通。第三天 , 对程序模块设计 , 程序调试与测试 , 成员互相讨论。第四天 , 对程序综合测试 , 然后系统改进完善 ,完成程序并写好设计总结与说明书报告。5 设计总结这次的程序课程设计让我进步很大。自己动手, 自己发现与解决问题。发现了自己的许多不足, 平时没有掌握好的知识在这次实验中彻底暴露出来 , 经过不断思考 , 不断查阅资料与上机运行, 解决其中大部分问题 , 当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但就是 ,我不仅对 C的操作有了进一步的掌握, 还了解到程序设计的书写风格及其注释的格式。总之, 通过这一次课程设计我学习到了很多, 深刻的体会到了 , 复杂的系统就是一个个简单构建的统一协作。6 参考文献1 、贾宗璞、许合利 ,C 语言程序设计 M、人民邮电出版社 ,2012 年9 月2 、鲁沐浴 ,C 语言最新编程技巧200 例M、电子工业出版社 ,2010精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 13 页 - - - - - - - - - - C语言大作业设计- 年 5 月3 、王小科、王军 ,visual C+ 编程宝典 M 、人民邮电出版社 ,2011年 1 月精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 13 页 - - - - - - - - - -