1、 计算机科学与技术系 课程设计报告 20122013 学年第二学期 课程课程 面向过程综合设计 课 程 设 计 名 称课 程 设 计 名 称 C 语言成绩簿 学生姓名学生姓名 学号学号 专业班级专业班级 指导教师指导教师 2013 年 6 月 第一章第一章 需求分析需求分析 1.1 1.1 任务要求:任务要求: 编制一个 C 语言成绩记录簿,每个学生信息包括:学号、姓名、C 语言成绩。具体功能: (1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的成绩; (3)按学号或姓名查询成绩; (4)添加成绩记录; (5)修改指定姓名或学号的学生的成绩并可存盘; (6)显示输出
2、60 分以下、6079、8089、90 分以上各分数段的学生信息(可选项)。 1.21.2 任务问题:任务问题: 如何运用我们已学的 c 语言知识完成要求?如何制作相应界面?switch 的应用该如何实 现?如何完成相应的数组或链表的实现与应用?怎样进行相应的文件的读写? 1.31.3 任务的解决步骤:任务的解决步骤: 步骤: 1.建立一个主界面。 2.用 switch 语句进行分类讨论。 3.分别进入录入,查询,修改,学生分数段统计等子函数。 4.将子函数与主函数相连即可。 第二第二章章 算法设计算法设计 1 1、设计思想设计思想 2.1 程序结构(流程图) No Yes 开始 输入口令 主
3、菜单 选择的序号是否 符合需求 添 加 学 生 成 绩 修 改 学 生 成 绩 查 询 学 生 成 绩 写 入 文 件 读 取 文 件 退 出 系 统 各 分 数 段 成 绩 输 出 2.2 重要的数据结构 按 照 姓 名 修 改 按 照 学 号 修 改 添 加 学 生 学 号 添 加 学 生 姓 名 添 加 学 生 成 绩 查询学生成绩 学 号 查 询 姓 名 查 询 查询分数段 按 各 分 数 段 输 出 修改成绩 添加成绩 主函数 求平均值 查询 退出 添加成绩 修改成绩 按分数段显示 信息 2.3 主要算法思想(文字描述) 本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功
4、能,并设计了 简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关 操作,包括结构体链表的创建、输入、输出、查找、修改等。我设计的这个通讯录系统也 初步实现了人员信息的显示、修改、查找、等必要的功能,并通过子函数与主函数相连来 完成相应的功能。 2 2设计表示设计表示 int Student_Insert( ); (添加学生成绩)(添加学生成绩) void edit( ); (修改)(修改) void Student_Search( );(查找)(查找) void WriteFile( ); (写入文件)(写入文件) void ReadFile( ); (读取文件)(
5、读取文件) void Student_Select( );(分数段选择)(分数段选择) void PrintMark( );(打印学生分数)(打印学生分数) void NameChange( );(按姓名修改)(按姓名修改) void NumberChange( );(按学号修改)(按学号修改) 3 3实现注释实现注释 除了没有用链表进行实验的缺点外,基本可以实现任务要求,界面简洁, 程序简单,易操作。 4 4算法设计中一些新的想法:算法设计中一些新的想法: 本程序主要包含了结构体与动态变量的相关知识; 其中也多次用到了循环和判断结构; 本程序还可以通过子函数实现删除,排序等操作。用链表,指针
6、也可以实现相应的任务要 求。 第三章第三章 用户手册用户手册 3.13.1 使用说明使用说明 主程序提供一个界面,允许用户选择。使用 switch 语句,用时直接输入数字即可。 增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时结束。 修改函数,功能是修改,分为两步,先插入学生成绩后才能进行修改。修改用 strcmp 函数来做。如果找到记录 i 值,反之记为-1;修改可以从 i 项开始将数组的后一项的新的 数值赋值给前一项。前一项自动被替换。这样完成修改。 查询函数与之类似,用 strcmp 函数将修改变为输出即可; 求各分数段的学生的相应成绩数据时,引用 if-else 语句可进行有效筛选。 退出函数什么都不写,即可。 所有修改,添加程序都可以用姓名,学号两种方式实现,可以实际情况实现。输入的 数据应按照固定的格式和顺序“姓名-学号-成绩” ,否则会出现错误,无法输出。 注: 输入项: char name10 定义学生名称为字符型 long number 定义学号为长整型 int scor