1、 课 程 设 计课 程 设 计 I 课 程 设 计 任 务 书课 程 设 计 任 务 书 院系:自动院系:自动 专业:自动专业:自动 班级:班级: 202202 学号:学号: 题目:学生成绩管理题目:学生成绩管理 1 1 一、课程设计时间一、课程设计时间 201112 第 1 学期第 4 周,共计 1 周,20 学时。 二、课程设计内容二、课程设计内容 用 C 语言编写软件完成以下任务: 一个文本文件(file15.txt,由指导教师提供)存储了若干位同学的数学 成绩,文件中每行的内容按照顺序为:学号,班级,数学成绩,姓名。请完 成以下问题: 1 将文件中的内容全部显示到窗体,并统计总人数;
2、2 统计数学成绩的平均分; 3 统计各个班级的平均分。 三、课程设计要求三、课程设计要求 1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“打印全部,并统计总人数” 、 “计算 总平均分” 、 “计算各个班的平均分” 、 “退出”4 项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2. 课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的格 式和内容参见提供的模板。 四、指导教师和学生签字四、指导教师和学生签字 指导教师:指导教师:_ 学生签名:学生签名:_ 五、说明书成绩五、说明书成绩 六、教师评
3、语六、教师评语 II 目录目录 一、需求分析一、需求分析 1 二、设计分析二、设计分析 1 三、主要界面截图三、主要界面截图 . 1 四、技术要点四、技术要点 5 五、个人总结五、个人总结 9 六、参考文献六、参考文献 .11 七、源程序七、源程序11 1 一、一、需求分析需求分析 通过分析可知, 此程序是对表格的信息的统计。很明显 程序可分为三个部分: 即打印并统计数据, 计算总平均 分, 计算各个平均分。 在此只须构件若干个函数进行编 程设计。 二、设计分析二、设计分析 1、程序总体结构图 当(1) 输入值 n=1? 真 假 显示所有学生信息 show() n=2? 真 假 计算平均分 a
4、verage() n=3? 真 假 各班平均分 aver() n=4? 真 假 退出 图 1 程序总体结构图 2具体功能函数流程图 2 (1)(1) 读取学生数据读取学生数据 readsreads 读方式打开 D 盘 file15.txt 文件不成功 真 假 打开文件失败 循环变量 i=0 当!feof(fp)时 读出一条学生记录到形参数组元素 stui return i+ 读出记录总数赋给形参*n 关闭文件 图 2. 读取学生数据 (2)显示所有学生信息显示所有学生信息 showshow 循环变量 i0 reads(stu, j!=m renj+ continue m+ strcpy(ban
5、m,stui.cla) i- renm=1 avam=stui.math; break i-; break 当 im 时 输出班级 bani,各班平均分 avai/reni 图 5.各班平均分 5 三、三、主要界面截图主要界面截图 程序主界面截图 四、四、技术要点技术要点 本程序 有主 函数 和三 个自 定义 的函数 组成 即 main 和 show,average,aver。这些是整个程序中最核心的部分,以下便是 对这些函数的说明; 1.定义函数 首先要知道读取数据的文件,定义一个文件指针,把所需的数 据读入到程序中,同时定义一个 l,每读入一个,l 加一来统计学 生数目;具体程序如下: #
6、include #include #include“stdlib.h“ 6 #define N 40 struct student char num20; char cla10; int math; char name10; ; void menu(); void show(); void average(); void aver(); void main() int n; while(1) menu(); printf(“n 请输入您要选择的操作序号, 按回车键确认: “); scanf(“%d“, switch(n) case 1: show();break; case 2: average();break; case 3: aver();break; case 4: exit