1、 C 语言课程设计 课程设计课程设计报告报告 题 目 通讯录管理系统 学 号 姓 名 年级专业 指导教师 完成日期 年 月 日 通讯录管理系统通讯录管理系统 一、问题描述 本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设 计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的 是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。我设计的这 个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的 功能。 二、基本要求 1) 每条记录包括:学号、姓名、专业、家庭住址、联系电话; 2) 能够实现添加、删除、修改功能; 3) 能够实现按学号
2、、姓名、专业等内容进行查找 三、系统分析和设计 【需求分析】 根据题目要求,通讯录数据以文本文件存储,故应提供文件的输入、输出等 操作;还应提供显示、查找、删除等操作;另外还应提供键盘式选择菜单实现功 能选择。 【总体设计】 通过对整个系统的分析, 根据上述要求, 可以将这个系统的设计分为三个模块 (见 图 1) :文件导入、通讯录编辑和退出。 图 1 系统功能模块 通讯录管理系统 新建菜单 浏览菜单 修改菜单 删除菜单 查找菜单 四、主要流程图 (1 1) 主菜单函数主菜单函数 此函数功能为提供键盘式选择菜单以调用不同函数。其流程如图 2 所示。 图 2 主菜单函数流程图 (2) (2) 新
3、建菜单函数新建菜单函数 该函数的功能是用户需要新建联系人记录, 从键盘输入并逐条写到原来的通讯录 文件中,注意采用新建而不是覆盖的方式。其流程如图 3 所示。 开始 新建联系人 是否继续新建?y/n 结束 n y 显示一系列功能选项 输入 n, 判断 n 是否是 1 5? 根据 n 的值调用各功能模块函数 结束 开始 n 图 3 新建函数流程图 (3) (3) 浏览菜单函数浏览菜单函数 此函数功能为提供浏览所有联系人记录。其流程如图 4 所示。 图 4 浏览模块流程图 (4 4) 查找菜单函数查找菜单函数 此模块的功能是用户可根据姓名或电话号码查询联系人信息。 查询菜单函数 功能为提供键盘式选
4、择菜单选择查找方法。 其流程如图 5 所示。 图 5 查找函数流程图 按姓名查找函数 其流程如图 6 所示。 开始 按姓名查找 按号码查找 结束 浏览全部联系人记录 开始 结束 图 6 按姓名查找函数流程图 按电话查找函数 其流程如图 7 所示。 图 7 按电话查找函数流程图 开始 输入联系人电话 是否找到此记录? 显示记录 提示未找到 结束 开始 输入联系人姓名 是否找到此记录? 是否查找相同姓名? 结束 显示此记录 提示未找到此记录 y n y n (5 5)删除函数)删除函数 此模块功能为用户可根据需要选择删除全部或单个联系人记录, 且可按姓名或电 话删除单个联系人。其流程如图 9 所示
5、。 删除菜单函数 提供键盘式选择菜单以调用相关函数以实现各功能 图 8 删除函数模块流程图 (6 6)文件导入函数)文件导入函数 此模块上导入原文件,若原文件无法打开,则需另行新建。其流程如图 2 所示 开始 删除全部 删除单个 按姓名删除 按电话删除 结束 图 2 文件导入函数流程图 五、运行结果 (1) 文件导入成功界面: (2) 主菜单函数: 开始 成功打开文件? 新建文件 文件导入成功 结束 n y (3) 新建菜单: (4) 浏览函数: (5) 查找函数: (6) 修改函数: (7) 删除函数: 【总结】 通过本次课程设计,我了解掌握了模块化程序设计方法,理解和运用结构化 程序设计的
6、思路和方法。学习了利用流程图表示算法,很大程度上提高了 C 语言 程序设计能力。 我了解到程序设计的过程就是确定就绝问题的详细步骤,即流程。而在程序 设计中理清整个问题的流程很重要,然后再采用逐步细化的方法实现整个程序。 一个较大的程序,一般不可能一次就设计出一个很完善的系统。通常要先设计出 满足基本要求的系统,然后在测试或使用过程中再不断完善。 对于我这次课程设计的作品 “通讯录管理系统 beta” , 觉得其拥有思路明了, 结构清晰,语言简单易读等优点,能流畅运行以满足题目要求。由于时间仓促, 缺少大量调试与优化,故此 beta 版还有很多有待改进之处,例如不能识别明显 的输入错误,当有重复记录时不能自动报警,另外还有界面粗糙等诸多不足,尚 待以后日臻完善! 【参考书目参考书目】 1 谭浩强,C 程序设计教程,清华大学出版社,2007 年 2 赵永哲,李雄飞,戴秀英编著, C 语言程序设计 ,科学出版社,2003 年 3 夏宽理,赵子正编著, C 语言程序设计 ,中国铁道出版社,2006 年 谭浩强编著, C 程