1、 本科生本科生 C C 语言课程设计报告书语言课程设计报告书 题 目 通讯录管理系统 学生姓名 指导教师 学 院 信息科学与工程学院 专业班级 学号 一:需求分析一:需求分析 二:总体设计二:总体设计 三:详细设计三:详细设计 四:调试与测试四:调试与测试 五;测试结果五;测试结果 六:本次课程设计的心得体会六:本次课程设计的心得体会 七:附录七:附录 本程序设计亮点介绍(及)改进方面 目目 录录 1.在修改函数中,可以实现单条记录修改(运用 switch) 2.查询函数中,能返回该函数继续查询(运用了递归) 3.使用变量少, 仅通过变量 i 的递加和表示成员数的变量 n 就实现了 数据结构体
2、之间的联系 4.界面美观,使用方便 5.允许编号输入为字符 6.在显示函数上能够分屏显示(换页) 缺点 在输入数据时,未输完一个成员的所有信息不能退出输入 一:需求分析 A需要实现的功能有:输入功能、输出功能、显示功能、查找 功能、以及增加、删除、修改功能。输入功能要求一次完成若干信息 的输入;显示功能要能完成所有信息的显示,并且自动分页;查找可 以通过多种方式进行。 按需求的功能,应该设计出输入函数、输出函数、显示函数、查 找函数、修改函数。另需要一个标准界面。 B B数据存储问题 这个系统数据庞大复杂, 需要需要适当应用数组, 循环, 结构体, 文件操作等基本语句及稍有难度的语句。 因此要
3、求我们熟练掌握结构 化程序设计的基本思路和方法,在所掌握的基本知识和技能的基础 上,迚一步提高自学能力和查找资料的能力,解决一定程度的复杂的 结构化程序设计问题, 加深对所学知识的理解不掌握,利用自己所学 知识解决实际问题的能力,为以后的程序开发打下基础。 二:总体设计二:总体设计 主要结构图示 本程序由主函数和多个子函数组成,可执行多种数据管理的功 能。具体通过 c 语言中结构体数组来实现。 主函数主体为定义的结构 体,和一个 switch 函数,以提供多种程序操作功能。 主要需运用到结构体数组、文件、函数等内容知识。 子函数有六个,分别负责添加、显示、删除、查询、修改、保存的功 能。通过变
4、量 i 使结构体数组乊间达成数据链表的功能,利用该方法 主要考虑到成员中对于结构体指针尚未熟练掌握, 而这种方法更加便 捷易懂。 子函数功能介绍 1. 添加:输入成员信息,依次输入编号、姓名、QQ、电话号码、 单位、电子邮箱、身份。 2. 显示:以表格形式输出所有通讯记录 3. 删除:叧需输入该成员姓名,便删除其所有记录 4. 查询:可选用姓名、电话、单位身份 4 种方式来查询 5. 修改:输入该成员姓名后,再依次输入更新信息完成修改 6. 保存:输入文件名(带后缀)后保存。C-free 中会默认以 txt 文件保存至 c-free standard/temp 文件夹中 三:详细设计三:详细设
5、计 1. 主函数 完成变量的初始化与函数的定义之后,运用 for( ; ; )来开启一个无限循 环。循环内有 switch 函数来实现函数的选择功能,case1、case2 等分别执行不 同的函数操作,每个函数中调用了相应的函数,并采用函数 system( “pause” ) ; 暂停等待按键。在 case6 中采用函数 exit(0)跳出循环。 下面在讲一下主函数中定义的 n 的作用,n 的初值是 1,当执行完 case1 中 的函数 input( )后返回值为 n+i,i 为输入的成员数,返回值重新赋给 n,n 变 为成员数,从而确定了之后 display()等函数循环中的终止条件。 2.
6、 分函数 【1】添加 【2】显示 【3】删除 【4】查询 【5】修改 保存函数: 【1】定义一个文件指针 fp 【2】输入想创建的文件名称,如 filename 【3】开辟文件,用 fopen 以“写”的方式打开,并把 fp 指针指向该文件 【4】在文件中输入信息 【5】保存(即 fclose(filename) ) 查询函数:运用了 if 来实现选择,并通过递归返回继续查询。 注:身份以及单位的查询方式有所不同,单位只能查找一条符合的记录,而按身 份查询可显示所有符合的信息。若查找不到,则返回继续查询,选择 5 返回则退 出查询。 四四:调试与测试调试与测试 我们编写的函数具有一定的容错能力。具体表现为 【1】如 select 函数中输入 0-6 以外的数,则循环继续迚行,直到输入 0-6 为止 【2】sign!=n scanf(“%c“, 保证了输入正确 【4】当输入的成员信息错误时,可通过修改函数迚行改动 五五:测试结果测试结果 1主函数运行正常。通过 for 语句是