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