1、青岛农业大学课程设计报告题 目: 学生成绩管理系统 姓 名: 学 院: 工程系 专 业: 电子信息工程技术 班 级: 学 号: 指导教师: 1目 录一 设计目的.1二 课程设计的内容.2三 课程设计的要求与数据.3四 课程设计应完成的工作.4五 总体设计(包含几大功能模块).5六 详细设计(各功能模块的具体实现算法流程图).6七 调试分析(包含各模块的测试用例,及测试结果).7八 总结.8十 参考资料.92一 设计目的进一步加深、巩固所学专业课程(C 语言程序设计 )的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用 C语言独立地编写、调试应用程序和进行其它相关
2、设计的技能。二 课程设计的内容对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用 C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。三 课程设计的要求与数据1、用C语言实现系统;2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.3、学生信息包括:其内
3、容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 每一条记录包括一个学生的学号、姓名、3门课成绩(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。)(3)、成绩信息显示浏览功能:完成全部学生记录的显示。(4)、查询功能:完成按姓名查找学生记录,并显示。(5)成绩信息的删除:按学号进行删除某学生的成绩.(6)、排序功能:按学生平均成绩进行排序。(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!3四 课程设计应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。内容包括:1)
4、封面扉页2) 设计任务书3) 目录4) 总体设计方案(包括流程图)5) 使用说明及运行实例(包括界面)6) 成员设计内容简介7) 项目源程序代码(注意注释的使用)8) 指导教师评语五 总体设计(包含几大功能模块)1、成绩录入功能2、成绩输出功能3、成绩查询功能4、删除模块5、排序功能6、统计功能 7、退出系统六 详细设计(各功能模块的具体实现算法流程图)6.1各函数的功能和实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数 void input(STUDENT *data, int *len)来实现此操作。42、成绩输出模块:输出学生的信息以及成绩 vo
5、id output(STUDENT *data, int len):通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和 comaverage() 来输出成绩的平均分数、最高和最低分数。3、成绩查询模块:可用 void find(STUDENT *data, int len) 来实现。找到就输出此学生全部信息。4、删除模块:用函数 void delete_item(STUDENT *data, int *len)来实现5、排序模块:用函数 void sort(STUDENT *data, int len)来实现6、统计功
6、能能:用函数 void stat(STUDENT *data, int len) 来实现7、退出系统:可用一个函数 exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。如图 6.1结束开始输出菜单根据菜单输入 n 的值选择程序输入退出输出保存查找排序统计插入删除图 6.15七 调试分析(包含各模块的测试用例,及测试结果)7.1 源程序#include #include #include #define MAXN 35#define MAX_NAME 256typedef struct student /学生信息int no;char nameMAX_NAME;do
7、uble Chinese;double math;double English;double mark_ave;double mark_tot; STUDENT;/*-输入信息子程序-*/void input(STUDENT *data, int *len)int no;putchar(n);printf(“%sn“, “请输入新的记录,如果需要退出当前菜单请输入-1.“);printf(“%sn“, “格式:n 学号n“);printf(“%sn“, “姓名 语文 数学 英语“);putchar(n);printf(“如:n“);printf(“1n“);printf(“杨江彬 93 95
8、89n“);scanf(“%d“, while(no != -1) data*len.no = no;scanf(“%s %lf %lf %lf“, data*len.name, data*len.mark_ave=(data*len.Chinese+data*len.math+data*len.English)/3.0;data*len.mark_tot=data*len.Chinese+data*len.math+data*len.English;(*len)+;scanf(“%d“, 6/*-输出信息子程序-*/void output(STUDENT *data, int len)int
9、 i;system(“cls“);printf(“%8s“, “学号“);printf(“%8s“, “姓名“);printf(“%8s“, “语文“);printf(“%8s“, “数学“);printf(“%10s“, “英语“);printf(“%12s“, “平均分“);printf(“%10s“, “总分“);putchar(n);for (i =0; i dataj.mark_ave) k=j;if (k != i) 7temp = datai;datai = datak;datak = temp;/*-搜索子程序-*/void find(STUDENT *data, int le
10、n)int find_no, result ;int i;lab: result=0;printf(“%sn“, “请输入需要查找的学生的学号,退出当前菜单请输入 -1.“);scanf(“%d“, if (find_no = -1) return; /*exit the fine sub program*/while( dataresult.no != find_no goto lab;else system(“cls“);printf(“%sn“, “查询信息如下:“);for (i =0; i = pos; i-)datai+1 = datai;datapos.no = no;strcpy(datapos.name, name);datapos.Chinese = Chinese;datapos.math = math;datapos.English = English;datapos.mark_ave = mark_ave;datapos.mark_tot = mark_tot;(*len)+;goto lab;/*-删除子程序-*/void delete_item(STUDENT *data, int *len)int no, i, pos;lab: pos=0;printf(“%sn“, “输入需要删除的学生的学号,退出当前菜单请输入-1.“)