1、* 实践教学实践教学 * 软件学院 算法与数据结构算法与数据结构 课程设计课程设计 题 目: 通讯录 专业班级: 软件 2 班 姓 名: 学 号: 指导教师: 成 绩: I 摘要摘要 本课程设计可加深对课堂理论学习的理解,增强动手能力,以培养学生合作的能力,为 毕业设计作好实践环节上的准备。通讯录系统是在学校常见的计算机信息管理系统。它的主 要任务是对学生信息进行管理,如学生信息的输入、查询、修改、增加、删除,迅速准确地 完成各种学生信息的统计和查询。 本系统有分 7 个功能: (1)写入数据 (2)读取数据 (3)追加数据 (4)查找数据(5) 备份数据(6)删除数据 (7)还原数据。其主要
2、利用结构类型,指针,数组,函数等 C 语 言知识来实现。 II 目目 录录 摘要 I 一、算法分析 . 1 1.1 主函数 1 1.2 写入函数 1 1.3 读取数据 2 1.4 追加数据 3 1.5 查找数据 3 1.6 备份数据 4 1.7 删除数据 5 1.8 还原数据 6 二、主要流程图 . 7 三、程序运行测试 . 8 3.1 写入数据函数测试 8 3.2 读取数据函数测试 8 3.3 追加数据函数测试 9 3.4 查找数据函数测试 10 3.5 备份数据函数测试 10 3.6 删除数据函数测试 10 3.7 还原数据函数测试 11 3.8 退出程序测试: 11 四、设计总结 . 1
3、1 参考文献 . 12 致谢 . 13 附录: . 14 1 一、一、算法算法分析分析 整个系统共分为 8 模块,主函数加 7 个子函数,从而实现 7 大功能:写入数据,读取 数据,追加数据,查找数据,备份数据,删除数据,还原数据;各个程序的算法分析如下: 1.1 主函数 main(): 利用 for( )和 switch( )实现主界面的显示与各选项的连接; 流程图如图 1.1 所示: 图图 1.11.1 主函数流程图主函数流程图 1.2 写入函数 void input1(): 利用文件的 fwrite()语句来实现数据的保存; 流程图如图 1.2 所示: 开始 输入要运行的功 能的序号 判
4、断用 户的 输入 写 入 数 据 读 取 数 据 追 加 数 据 查 找 数 据 备 份 数 据 删 除 数 据 还 原 数 据 结束 2 图图 1.21.2 写入函数流程图写入函数流程图 1.3 读取数据 void read1(): 利用文件的 fread()语句来实现数据的读取; 流程图如图 1.3 所示: 图图 1.3 1.3 读取数据流程图读取数据流程图 开始 输入 y 或 n 用 if 判断输入 了 y 还是 n y n 输 入 要 输 入 的资料 将数据保 存到指 定的文件里 结束 开始 打开文件 定义变量 int i for(i=0;i数据的行数;i+) fread()读出 i
5、行数据 结束 3 1.4 追加数据 void append1(): 利用 fread()来读出文件里的数据,从而确定数据的数量,再在最后一条数据后通过 fopen(“文件名”,”ab”)来实现追加; 流程图如图 1.4 所示: 图图 1.4 1.4 追加数据流程图追加数据流程图 1.5 查找数据 void find1() 通过 strcmp()=0 来实现数据的查找; 流程图如图 1.5 所示: 开始 定义变量 int i,sum=0; for(i=0;i数据行数;i+) 读去 i 行的数据 sum=sum+1 for(i=sum;i通讯录数据上限;i+) 将数据加入到文件 用户输入要增加的数
6、据 结束 4 图图 1.5 1.5 查找数据流程图查找数据流程图 1.6 备份数据 void backup1(): 通过将数据复制到另一个文件里的方法来实现备份功能; 流程图如图 1.6 所示: 判断 strcmp(i 行数 据,输入名字)=0 Y 输出该行数据 结束 开始 定义变量 int i; 输入要查找 的名字 for(i=0;i数据的行数;i+) N 5 图图 1.6 1.6 备份数据流程图备份数据流程图 1.7 删除数据 void delete1(): 通过将后一行数据覆盖前一行数据的方法来实现删除功能; 流程图如图 1.7 所示: 开始 打开保存数据的原文件 打开一个新文件 for(i=0;i数据的行数;i+) 定义变量 int i; 读取原文件里第 i 行的数据 将读到的数据写入到新文件里 结束 6 图图 1.7 1.7 删除数据流程图删除数据流程图 1.8 还原数据 come