广州XX学院课程设计(实训)报告课程C语言课程设计题目学生成绩管理系统专业计算机科学与技术指导教师XX班级181学号201822姓名李XX2019年5月30日1目录1需求分析·····························································································22设计思路...........................................................................................................................23详细设计...........................................................................................................................33.1编译预处理..............................................................................................................33.2数据结构定义..........................................................................................................33.3菜单函数界面的设计..............................................................................................33.4添加学生信息模块..................................................................................................43.5显示学生信息.........................................................................................................53.6按学号排序.............................................................................................................63.7按总成绩排序..........................................................................................................73.8删除单个学生..........................................................................................................73.9查找指定学生..........................................................................................................93.10修改学生信息........................................................................................................93.11查看各门课程的成绩情况..................................................................................103.12保存并退出...........................................................................................................114调试分析.........................................................................................................................124.1运行工具介绍........................................................................................................124.2调试操作................................................................................................................125测试结果.........................................................................................................................135.1添加学生信息.......................................................................................................135.2显示学生信息.......................................................................................................135.3查看各门课程的成绩情况...................................................................................146用户使用说明.................................................................................................................147参考资料.........................................................................................................................1521、需求分析学校工作流程分析:学校工作总体规划由教务人员在学生成绩管理系统中输入学生的基本信息并对其进行维护管理,包括对信息的增加、修改及对信息的各项处理操作等。新的学年,教务人员首先编排班级,再对在校学生进行基本的信息录入,新生入学后由教务人员在管理系统中完成新学生信息的维护。在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任,并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,并对本年级各科成绩及总成绩进行排名。教务处、班主任及任课老师跟据实际情况对录入的成绩进行维护管理,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。而且,学生管理系统可以对数据库中的信息进行有效处理,防止数据错乱。也能够按照用户选择的不同条件进行简单查询,方便用户操作,并减少用户的操作。2、设计思路(l)系统主界面允许用户选择想要的操作,包括输入学生信息、显示学生信息、查询学生信息、修改学生信息、删除学生信息、计算成绩以及成绩的排序等。通过输入相应的序号选择相应的操作。(2)录入学生成绩信息,用户根据提示输入学生的学号、姓名、以及三门课的成绩,高等数学的成绩、大学英语的成绩和C语言的成绩。输入完成一条学生记录,可根据提示信息继续输入下一条学生记录或者继续其他的操作。允许输入多条学生的成绩信息记录。输入完的学生记录暂时保持在电脑内存中,等待下一步的操作。(3)查询学生信息,用户可以根据学号或者姓名从系统保存的文件中对学生所有的信息进行查询,如果没有查询到任何信息,系统会提示信息。(4)修改学生信息,首先提示用户输入要进行修改的学生的名字,如果文件中有该学生的信息存在,则提示用户输入要修改的学生的基本信息、各科成绩等,并将修改结果重新存储在文件中。如果用户没有找到要修改的学生信息,系统将给出提示。(5)删除学生信息,首先提示用户输入要删除学生的名字,系统根据用户输入的信息在文件中查找,如果找到,直接删除该学生全部信息,如果没有找到,系统给出提示信息。(6)计算各科成绩平均分,主要进行学生成绩的平均分计算,进入计算界面,并选择相对应的序号,系统自动对各科进行平均分计算。(7)显示学生信息,用户在选择了显示学生信息后,将刚输入的学生信息从文件中调出来显示,如果没有数据,则提示无“没有该学生”。(8)学生排序,成绩信息输入完整后,根据学生的总分或者学号对学生从小到大进行排序,在显示学生信息的时候可以看到学生的其他信息。(10)操作完成后对操作结果进行保存。运行完毕,退出系统。33、详细设计3.1编译预处理C语言的预处理功能主要有:(1)宏定义;(2)文件包含;(3)条件编译。#includestdio.h#includestdlib.h#includestring.h3.2数据结构定义学生成绩管理系统中的变量有学号,性别,名字和三科成绩,这些数据类型各不相同,因此需要定义结构体类型。typedefstruct{charnum[10];/*学号*/charname[20];/*姓名*/charsex[2];/*性别*/intscore[3];/*成绩*/floatavg;/*平均分*/intsum;/*总成绩*/}Student;StudentstudentAll[80];/*结构体数组变量*/3.3菜单函数界面的设计系统与用户交换的界面是通过菜单实现的,菜单按预定义格式显示主菜单界面,等待用户输入0-8中的任一数据,系统会根据用户的输入调用相应的功能模块,实现用户所要求的操作。菜单主要通过printf函数显示一些文本选项来构建一个简单的字符界面,并且让用户通过输入关键字从0-8之间选择相应的操作,函数通过switch调用各功能模块:/*菜单函数*/intmenu_select(){intcheck_number;do{system(cls);/*运行前清屏*/printf(\t************学生成绩管理系统*************\n);/*菜单选择*/printf(\t*|1.添加学生信息*\n);printf(\t*|2.显示学生信息*\n);printf(\t*|3.按学号排序*\n);printf(\t*|4.按总成绩排序*\n);4printf(\t*|5.查找单个学生*\n);printf(\t*|6.删除指定学生*\n);printf(\t*|7.修改学生信息*\n);printf(\t*|8.查看各门课程的成绩情况*\n);printf(\t*|9.待定功能*\n);printf(\t*|0.保存退出*\n);printf(\t*****************************************\n);printf(请输入选择(0-9):);scanf(%d,&check_number);/*读入选择*/}while(check_number0||check_number9);return(check_number);/*返回选择*/}3.4添加学生信息模块创建学生信息函