1、学生运动会成绩数据库数据结构课程设计报告设计题目:学生运动会成绩数据库专 业 运算机科学与技术 班 级 计092 学 生 母双敏 学 号 39 指导教师 李兵 起止时刻 2020-7-42020-7-8 2007 年 春天 学期 一、具体任务(3)二、评语(教师填写)(3)三、软件环境(3)四、算法设计思想及流程图(4-5)1、算法设计二、模块功能介绍3、主程序阅读图五、源代码(5-12)六、运行结果(12-14)七、收成及体会(15)八、参考文献(15)一、具体任务:学生运动会成绩数据库系统记录某校运动会上全数运动项目,各系取得的分数及排名的情形,包括50、100、200,400,1500米
2、,跳高,跳远,标枪,铅球铁饼等。进入系统后能够输入和修改某个项目的结果情形,能够按各系院编号输出总分;按总分排序;按男集体总分排序 ;按系院编号查询;按项目编号查询;按女集体总分排序。分步实施:1)初步完成整体设计,搭好框架,确信人机对话的界面,确信函数个数;2)完成最低要求:成立一个文件,包括某个系,5个项目的得分情形,能对文件中的信息进行扩充(追加),修改和删除;3)进一步要求:完成对多个系,多个项目的得分排序,和完成系统查询功能。有爱好的同窗能够自己扩充系统功能。键盘输入:系院数量,男子项目数女子项目数,(每项目取前三名,别离为10,5,2分)要求:1)界面友好,函数功能要划分好2)整体
3、设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序必然要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。二、评语(教师填写) 三、软件环境 Microsoft Visual C+ 四、算法设计思想及流程图一、算法设计 项目一项目二男女男女计算机52105管院25210水院101052上图即为运动会设计的表格,据此表格即可概念Academy和score两个结构体,概念且完成数据输入操作后在对其添加系院和项目、更改数据、查询总分、按(男子、女子、系院)总分排名等操作2、模块功能介绍1)Push 添加学院或项目和取得的成绩2)2)Correct 更改某一个系
4、院项目男女的分数3)Addupscore 核算各个系院的总分4)Sort 核算各个系院的总分并按分数高低排名 5)Malesort 核算各个系院的男子项目总分并按分数高低排名6)Femalesort 核算各个系院的女子项目总分并按分数高低排名7)Acasearch 查找特定系院所有项目的分数8)Itemsearch 查找特定项目的所有系院分数3、主程序阅读图7五、源代码#include#include#include#define Maxnum 50typedef struct /*包括学院名称和编号的代表学院的结构体*/ char name10; int num;Academy;typede
5、f struct /*分数结构体*/ Academy AcaMaxnum; struct int male; int female; scoreMaxnumMaxnum; int m,n,b,g;Score;typedef struct /*互换变量结构体*/ int score; char name20;change;void Mainmenu(Score *p); /*主菜单*/void Push(Score *p) int flag,i,j,f,b=0,g=0; printf(please put in flag and number:n); scanf(%d %d,&flag,&f);
6、 if(flag=0) printf(请输入新增的学院分数n); for(i=p-m+1;im+f;i+) for(j=1;jn;j+) scanf(%d%d,&p-scoreij.male,&p-scoreij.female); printf(请输入新的学院名字和编号:n); for(i=p-m+1;im+f;i+) scanf(%s %d,p-Acai.name,&p-Acai.num); p-m+=f; if(flag=1) printf(请输入新增的项目分数n); for(j=p-n ;jn+f;j+) for(i=0;im;i+) scanf(%d %d,&p-scoreij.mal
7、e,&p-scoreij.female); if(p-scoreij.male!=-1)b+; if(p-scoreij.female!=-1)g+; p-n+=f; p-b+=b; p-g+=g; Mainmenu(p);void Correct(Score *p) /*更改某一个系院项目的分数*/ int i,j,sex,f; printf(请输入学院编号,项目编号:n); scanf(%d %d,&i,&j); printf(输入修改后的成绩n); scanf(%d,&f); printf(1修改男子得分n 0修改女子得分n); scanf(%d,&sex); if(sex=0)p-sc
8、oreij.male=f; if(sex=1)p-scoreij.female=f; Mainmenu(p);void Addupscore(Score *p) /*核算各个系院的总分*/ int i,j,f; printf(各个系院的总分n); for(i=1;im;i+) f=0; for(j=1;jn;j+) if(p-scoreij.male!=-1) f=p-scoreij.male+f; if(p-scoreij.female!=-1) f=p-scoreij.female+f; printf(%s%10dn,p-Acai.name,f); Mainmenu(p);void Sor
9、t(Score *p) /*核算各个系院的总分*/ int i,j; change aMaxnum,t; for(i=1;im;i+) ai.score=0; strcpy(ai.name,p-Acai.name); for(j=1;jn;j+) if(p-scoreij.male!=-1)ai.score+=p-scoreij.male; if(p-scoreij.female!=-1)ai.score+=p-scoreij.female; for(i=1;im-1;i+) for(j=i+1;jm;j+) if(ai.scoreaj.score) =aj.score;strcpy,aj.n
10、ame); aj.score=ai.score;strcpy(aj.name,ai.name); ai.score=;strcpy(ai.name,; for(i=1;im;i+) printf(%s:%10dn,ai.name,ai.score); Mainmenu(p);void Malesort(Score *p) /*核算各个系院的男子项目总分并按分数高低排名*/ int i,j; change aMaxnum,t; for(i=1;im;i+) ai.score=0; strcpy(ai.name,p-Acai.name); for(j=1;jn;j+) if(p-scoreij.m
11、ale!=-1) ai.score+=p-scoreij.male; for(i=1;im-1;i+) for(j=i+1;jm;j+) if(ai.scoreaj.score) =aj.score;strcpy,aj.name); aj.score=ai.score;strcpy(aj.name,ai.name); ai.score=;strcpy(ai.name,; for(i=1;im;i+) printf(%s:%10dn,ai.name,ai.score); Mainmenu(p);void Femalesort(Score *p) /*核算各个系院的女子项目总分并按分数高低排名*/
12、 int i,j; change aMaxnum,t; for(i=1;im;i+) ai.score=0; strcpy(ai.name,p-Acai.name); for(j=1;jn;j+) if(p-scoreij.female!=-1)ai.score+=p-scoreij.female; for(i=1;im-1;i+) for(j=i+1;jm;j+) if(ai.scoreaj.score) =aj.score;strcpy,aj.name); aj.score=ai.score;strcpy(ai.name,aj.name); ai.score=;strcpy(ai.name
13、,; for(i=1;im;i+) printf(%s:%10dn,ai.name,ai.score); Mainmenu(p);void Acasearch(Score *p) /*查找特定系院所有项目的分数*/ int i,j; printf(请输入学院编号:n); scanf(%d,&i); for(j=1;jn;j+) printf(%10d %10d,p-scoreij.male,p-scoreij.female); Mainmenu(p);void Itemsearch(Score *p) /*查找特定项目的所有系院分数*/ int i,j; printf(请输入项目编号:n);
14、scanf(%d,&i); for(j=1;jm;j+) printf(%10d %10d,p-scoreji.male,p-scoreji.female); Mainmenu(p);void save(Score *p) int i,j; FILE *fp; fp=fopen(D:,w); fprintf(fp,学院名称 学院编号 项目号 男子得分 女子得分n); for(i=1;im;i+) for(j=1;jn;j+) ale,p-scoreij.female); ame,p-Acai.num,p-scoreij.male,p-scoreij.female); fprintf(fp,%3
15、s%10d%10d%10d%10dn,p-Acai.name,p-Acai.num,j,p-scoreij.male,p-scoreij.female); ame,p-Acai.num,j,p-scoreij.male,j,p-scoreij.female); fclose(fp);void Mainmenu(Score *p) int ch,exit=1; printf(n menu n); printf( n); printf( scoren); printf( scoren); printf( scoren); printf( scoren); printf( n); printf( n
16、); printf( n); printf( n); printf( n); printf(n menu n); while(exit!=0) printf(please choose:(0-9) n); scanf(%d,&ch); switch(ch) case 0: exit=0;break; case 1:Push(p);break; case 2:Correct(p);break; case 3:Addupscore(p);break; case 4:Sort(p);break; case 5:Malesort(p);break; case 6:Femalesort(p);break
17、; case 7:Acasearch(p);break; case 8:Itemsearch(p);break; case 9:save(p);break; default: printf(put in the wrong number!); void main() Score *p; int t; int i,j; p=(Score *)malloc(sizeof(Score); if(p) printf(请输入学院数,项目数,男子集体数,女子集体数:n); scanf(%d %d %d %d,&p-m,&p-n,&p-b,&p-g); printf(请输入学院名字和编号:n); for(t
18、=1;tm;t+) scanf(%s%d,p-Acat.name,&p-Acat.num); printf(请输入学院各项男女成绩:n); for(i=1;im;i+) for(j=1;jn;j+) scanf(%d%d,&p-scoreij.male,&p-scoreij.female); Mainmenu(p);六、运行结果七、收成及体会通过一个周的课程设计,我发觉了我平常学习方面的许多不足。仅仅通过半学期的数据结构学习是不能够轻松完成任务的,咱们必需在课外多多学习一些其他的函数来充实自己和将书本上的一些思想融会贯通成为自己的知识。另外学习是一个不中断的进程,咱们应该适时温故而知新,不然学
19、过的东西会专门快遗忘。就像这次的课设,编程之前我把数据结构书和C语言、C+书又前前后后的翻看了两遍,才回忆起好多原先学习过的知识,但在编程时仍然感觉很费力。后来咱们在网上搜到了一些程序,结果有好多咱们没有学过的函数,为此咱们又一边编程一边学习一些能够对程序起一些作用的函数,如此咱们才勉强把程序编完。同时,让我体会到编程序难,调试程序更难,调试程序需要足够的耐心,在那个进程中需要咱们一遍又一遍的修改数据或是结构,直抵达到咱们的目的。那个进程让我学到了很多知识,也让我感觉好有成绩感。一个周的课设已经完了,可是它带给我的冲击尚未散去,在接下来的日子里我会继续深切地学习c语言,C+,数据结构等,仅仅有讲义上的知识是远不能达到需求的,我应该多学习,多实践,希望能在学习上更上一层楼。八、参考文献
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1