资源描述:
《课程设计成绩分析系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、石家庄经济学院本科生课程设计报告书题目成绩分析系统姓名学号学院专业计算机指导教师完成日期:2011-XX-XX成绩分析系统1需求分析问题描述:录入、保存一个班级学生多门课程的成绩,并对成绩进行分析。基木要求:1、通过键盘输入各学生的多门课程的成绩,建立和应的文件input.dato2、对文件input.dat中的数据进行处理,要求具有如下功能:(1)按各门课程成绩排序,并生成相应的文件输出。(2)计算每人的平均成绩,按平均成绩排序,并生成文件。(3)求出各门课程的平均成绩、最高分、最低分、不及格人数、60〜69分人数、70〜79分人数、80-
2、89分人数、90分以上人数。(4)根据姓名或学号查询某人的各门课成绩,重名情况也能处理。3、界面美观。分析:(1)系统所需处理数据应有:学生姓名(char),学号(int),考试课程(ch如),课程分数(float),每人的平均分(float),各门课程的平均成绩(float)>最高分(float)>最低分(float)、不及格人数(int)、60〜69分人数(int)、70-79分人数(int)、80〜89分人数(int)、90分以上人数(int)、平均分排名(int)。(2)数据结构:顺序表是线性表的一种,存储结构特点是逻辑关系上和邻的两
3、个元素物理位置上也相邻,因此可以随机存取表中任一元素。顺序表的最大优点是对表的查找、排序操作比较方便,在此成绩分析系统中学生信息直接从表头插入,排序时用冒泡排序,查找时用顺序查找。因此采用顺序表來存储学生和关信息。(3)节点定义:typedefstructintnum;//2位学号charname[15];〃姓名floatscore[3];//3科成绩floatsum;〃总分floataverage;〃平均分intorder;〃排名}Student;(4)输入:学生姓名,学号,各门课程成绩,查找时输入学生姓名或者学号。(5)输Hh每人平均成绩
4、,各门课程成绩以及各个分数段人数。查找时输出该学生的信息。(6)测试用例:2概要设计抽象数据类型定义:ADTMark{数据对象:D={ai
5、aiGElemSet,i=l,2,....,n,n>=0}数据关系:Rl={
6、ai-1,aiED,i=2,...n)基本操作;TntList(&L)操作结果:构造一个空的线性表L。DestroyList(&L)初始条件:线性表L已存在。操作结果:销毁线性表L.ClearList(&L)初始条件:线性表L已存在。操作结果:将L重置为空表。ListEmpty(L)初始条件:线性表L已存在。操
7、作结果:若L为空表,则返回TRUE,否则返回FALSEoListLength(L)初始条件:线性表L已存在,l<=i<=ListLength(L)o操作结果:返回L中数据元素的个数。GetElem(L,i,&e)初始条件:线性表L已存在,l<=i<=ListLength(L)o操作结果:用e返回L中第i个数据元素的值。LocateElem(L,e,compare())初始条件:线性表L已存在。操作结果:返回L中第i个与e满足关系compare()的数据元素的位序。若这样的数据元素不存在,则返回值为0.ListTnsert(&L,N,e)初始条
8、件:线性表L已存在,l<=i<=ListLength(L)+lo操作结果:在表长为N的表L中末尾位置插入新的数据元素e,L的长度加1.ListTraverse(L,visit())初始条件:线性表L已存在。操作结果:依次对L的每个数据元素调用函数visitO,-旦visit()失败,则操作失败。}ADTMark系统原型:3详细设计上函数流程图:节点信息:typedefstruct{intnum;//2位学号charname[15];//姓名floatscore[3];//3科成绩floatsum;//总分floataverage;//平均分i
9、ntorder;//排名}Student;线性表定义:typedefstruct{Student*elem;int1ength;int1istsize;}SqList;//构造一个空的线性表LStatusInitListSq(SqList&L){〃操作结果:构造一个空的线性表L。L.elem=(Student*)malloc(LISTINITSIZE*sizeof(Student));if(!L.elem)returnOVERFLOW;L.length=0;L.listsize=LTST_TNTT_STZE;returnOK;}//销毁线性表
10、LStatusDestroyListSq(SqList&L){//初始条件:线性表L已存在。//操作结果:销毁线性表L。free(L.elem);L.1istsiz