学生运动会成绩数据库.docx
《学生运动会成绩数据库.docx》由会员分享,可在线阅读,更多相关《学生运动会成绩数据库.docx(16页珍藏版)》请在冰豆网上搜索。
学生运动会成绩数据库
数据结构
课程设计报告
设计题目:
专业运算机科学与技术
班级计092
学生母双敏
学号39
指导教师李兵
起止时刻2020-7-4——2020-7-8
2007年春天学期
一、具体任务………………………………………………(3)
二、评语(教师填写)………………………………………(3)
三、软件环境………………………………………………(3)
四、算法设计思想及流程图………………………………(4-5)
1、算法设计
二、模块功能介绍
3、主程序阅读图
五、源代码………………………………………………(5-12)
六、运行结果…………………………………………(12-14)
七、收成及体会…………………………………………(15)
八、参考文献………………………………………………(15)
一、具体任务:
学生运动会成绩数据库系统记录某校运动会上全数运动项目,各系取得的分数及排名的情形,包括50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。
进入系统后能够输入和修改某个项目的结果情形,能够按各系院编号输出总分;按总分排序;按男集体总分排序;按系院编号查询;按项目编号查询;按女集体总分排序。
分步实施:
1)初步完成整体设计,搭好框架,确信人机对话的界面,确信函数个数;
2)完成最低要求:
成立一个文件,包括某个系,5个项目的得分情形,能对文件中的信息进行扩充(追加),修改和删除;
3)进一步要求:
完成对多个系,多个项目的得分排序,和完成系统查询功能。
有爱好的同窗能够自己扩充系统功能。
键盘输入:
系院数量,男子项目数女子项目数,(每项目取前三名,别离为10,5,2分)
要求:
1)界面友好,函数功能要划分好
2)整体设计应画一流程图
3)程序要加必要的注释
4)要提供程序测试方案
5)程序必然要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
二、评语(教师填写)
三、软件环境
MicrosoftVisualC++
四、算法设计思想及流程图
一、算法设计
项目一
项目二
男
女
计算机
5
2
10
管院
水院
上图即为运动会设计的表格,据此表格即可概念Academy和score两个结构体,概念且完成数据输入操作后在对其添加系院和项目、更改数据、查询总分、按(男子、女子、系院)总分排名等操作
2、模块功能介绍
1)Push添加学院或项目和取得的成绩
2)2)Correct更改某一个系院项目男女的分数
3)Addupscore核算各个系院的总分
4)Sort核算各个系院的总分并按分数高低排名
5)Malesort核算各个系院的男子项目总分并按分数高低排名
6)Femalesort核算各个系院的女子项目总分并按分数高低排名
7)Acasearch查找特定系院所有项目的分数
8)Itemsearch查找特定项目的所有系院分数
7
五、源代码
#include<>
#defineMaxnum50
typedefstruct/*包括学院名称和编号的代表学院的结构体*/
{
charname[10];
intnum;
}Academy;
typedefstruct/*分数结构体*/
AcademyAca[Maxnum];
struct
intmale;
intfemale;
}score[Maxnum][Maxnum];
intm,n,b,g;
}Score;
typedefstruct/*互换变量结构体*/
intscore;
charname[20];
}change;
voidMainmenu(Score*p);/*主菜单*/
voidPush(Score*p)
intflag,i,j,f,b=0,g=0;
printf("pleaseputinflagandnumber:
\n");
scanf("%d%d",&flag,&f);
if(flag==0)
printf("请输入新增的学院分数\n");
for(i=p->m+1;i<=p->m+f;i++)
for(j=1;j<=p->n;j++)
scanf("%d%d",&p->score[i][j].male,&p->score[i][j].female);
printf("请输入新的学院名字和编号:
scanf("%s%d",p->Aca[i].name,&p->Aca[i].num);
p->m+=f;
}
if(flag==1)
printf("请输入新增的项目分数\n");
for(j=p->n;jn+f;j++)
for(i=0;im;i++)
if(p->score[i][j].male!
=-1)b++;
if(p->score[i][j].female!
=-1)g++;
p->n+=f;
p->b+=b;
p->g+=g;
Mainmenu(p);
voidCorrect(Score*p)/*更改某一个系院项目的分数*/
inti,j,sex,f;
printf("请输入学院编号,项目编号:
scanf("%d%d",&i,&j);
printf("输入修改后的成绩\n");
scanf("%d",&f);
printf("1修改男子得分\n"
"0修改女子得分\n");
scanf("%d",&sex);
if(sex==0)p->score[i][j].male=f;
if(sex==1)p->score[i][j].female=f;
voidAddupscore(Score*p)/*核算各个系院的总分*/
inti,j,f;
printf("各个系院的总分\n");
for(i=1;i<=p->m;i++)
f=0;
=-1)f=p->score[i][j].male+f;
=-1)f=p->score[i][j].female+f;
printf("%s%10d\n",p->Aca[i].name,f);
voidSort(Score*p)/*核算各个系院的总分*/
inti,j;
changea[Maxnum],t;
a[i].score=0;
strcpy(a[i].name,p->Aca[i].name);
=-1)a[i].score+=p->score[i][j].male;
=-1)a[i].score+=p->score[i][j].female;
for(i=1;i<=p->m-1;i++)
for(j=i+1;j<=p->m;j++)
if(a[i].score{=a[j].score;strcpy,a[j].name);a[j].score=a[i].score;strcpy(a[j].name,a[i].name);a[i].score=;strcpy(a[i].name,;}for(i=1;i<=p->m;i++)printf("%s:%10d\n",a[i].name,a[i].score);Mainmenu(p);}voidMalesort(Score*p)/*核算各个系院的男子项目总分并按分数高低排名*/{inti,j;changea[Maxnum],t;for(i=1;i<=p->m;i++){a[i].score=0;strcpy(a[i].name,p->Aca[i].name);for(j=1;j<=p->n;j++){if(p->score[i][j].male!=-1)a[i].score+=p->score[i][j].male;}}for(i=1;i<=p->m-1;i++)for(j=i+1;j<=p->m;j++)if(a[i].score{=a[j].score;strcpy,a[j].name);a[j].score=a[i].score;strcpy(a[j].name,a[i].name);a[i].score=;strcpy(a[i].name,;}for(i=1;i<=p->m;i++)printf("%s:%10d\n",a[i].name,a[i].score);Mainmenu(p);}voidFemalesort(Score*p)/*核算各个系院的女子项目总分并按分数高低排名*/{inti,j;changea[Maxnum],t;for(i=1;i<=p->m;i++){a[i].score=0;strcpy(a[i].name,p->Aca[i].name);for(j=1;j<=p->n;j++){if(p->score[i][j].female!=-1)a[i].score+=p->score[i][j].female;}}for(i=1;i<=p->m-1;i++)for(j=i+1;j<=p->m;j++)if(a[i].score{=a[j].score;strcpy,a[j].name);a[j].score=a[i].score;strcpy(a[i].name,a[j].name);a[i].score=;strcpy(a[i].name,;}for(i=1;i<=p->m;i++)printf("%s:%10d\n",a[i].name,a[i].score);Mainmenu(p);}voidAcasearch(Score*p)/*查找特定系院所有项目的分数*/{inti,j;printf("请输入学院编号:\n");scanf("%d",&i);for(j=1;j<=p->n;j++){printf("%10d%10d",p->score[i][j].male,p->score[i][j].female);}Mainmenu(p);}voidItemsearch(Score*p)/*查找特定项目的所有系院分数*/{inti,j;printf("请输入项目编号:\n");scanf("%d",&i);for(j=1;j<=p->m;j++){printf("%10d%10d",p->score[j][i].male,p->score[j][i].female);}Mainmenu(p);}voidsave(Score*p){inti,j;FILE*fp;fp=fopen("D:\\","w");fprintf(fp,"学院名称学院编号项目号男子得分女子得分\n");for(i=1;i<=p->m;i++)for(j=1;j<=p->n;j++){ale,p->score[i][j].female);ame,p->Aca[i].num,p->score[i][j].male,p->score[i][j].female);fprintf(fp,"%3s%10d%10d%10d%10d\n",p->Aca[i].name,p->Aca[i].num,j,p->score[i][j].male,p->score[i][j].female);ame,p->Aca[i].num,j,p->score[i][j].male,j,p->score[i][j].female);}fclose(fp);}voidMainmenu(Score*p){intch,exit=1;printf("\nmenu\n");printf("\n");printf("score\n");printf("score\n");printf("score\n");printf("score\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\nmenu\n");while(exit!=0){printf("pleasechoose:(0--9)\n");scanf("%d",&ch);switch(ch){case0:exit=0;break;case1:Push(p);break;case2:Correct(p);break;case3:Addupscore(p);break;case4:Sort(p);break;case5:Malesort(p);break;case6:Femalesort(p);break;case7:Acasearch(p);break;case8:Itemsearch(p);break;case9:save(p);break;default:printf("putinthewrongnumber!");}}}voidmain(){Score*p;intt;inti,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=1;t<=p->m;t++)scanf("%s%d",p->Aca[t].name,&p->Aca[t].num);printf("请输入学院各项男女成绩:\n");for(i=1;i<=p->m;i++)for(j=1;j<=p->n;j++)scanf("%d%d",&p->score[i][j].male,&p->score[i][j].female);Mainmenu(p);}六、运行结果 七、收成及体会通过一个周的课程设计,我发觉了我平常学习方面的许多不足。仅仅通过半学期的数据结构学习是不能够轻松完成任务的,咱们必需在课外多多学习一些其他的函数来充实自己和将书本上的一些思想融会贯通成为自己的知识。另外学习是一个不中断的进程,咱们应该适时温故而知新,不然学过的东西会专门快遗忘。就像这次的课设,编程之前我把数据结构书和C语言、C++书又前前后后的翻看了两遍,才回忆起好多原先学习过的知识,但在编程时仍然感觉很费力。后来咱们在网上搜到了一些程序,结果有好多咱们没有学过的函数,为此咱们又一边编程一边学习一些能够对程序起一些作用的函数,如此咱们才勉强把程序编完。同时,让我体会到编程序难,调试程序更难,调试程序需要足够的耐心,在那个进程中需要咱们一遍又一遍的修改数据或是结构,直抵达到咱们的目的。那个进程让我学到了很多知识,也让我感觉好有成绩感。一个周的课设已经完了,可是它带给我的冲击尚未散去,在接下来的日子里我会继续深切地学习c语言,C++,数据结构等,仅仅有讲义上的知识是远不能达到需求的,我应该多学习,多实践,希望能在学习上更上一层楼。八、参考文献<><<数据结构>>
=a[j].score;strcpy,a[j].name);
a[j].score=a[i].score;strcpy(a[j].name,a[i].name);
a[i].score=;strcpy(a[i].name,;
printf("%s:
%10d\n",a[i].name,a[i].score);
voidMalesort(Score*p)/*核算各个系院的男子项目总分并按分数高低排名*/
if(a[i].score{=a[j].score;strcpy,a[j].name);a[j].score=a[i].score;strcpy(a[j].name,a[i].name);a[i].score=;strcpy(a[i].name,;}for(i=1;i<=p->m;i++)printf("%s:%10d\n",a[i].name,a[i].score);Mainmenu(p);}voidFemalesort(Score*p)/*核算各个系院的女子项目总分并按分数高低排名*/{inti,j;changea[Maxnum],t;for(i=1;i<=p->m;i++){a[i].score=0;strcpy(a[i].name,p->Aca[i].name);for(j=1;j<=p->n;j++){if(p->score[i][j].female!=-1)a[i].score+=p->score[i][j].female;}}for(i=1;i<=p->m-1;i++)for(j=i+1;j<=p->m;j++)if(a[i].score{=a[j].score;strcpy,a[j].name);a[j].score=a[i].score;strcpy(a[i].name,a[j].name);a[i].score=;strcpy(a[i].name,;}for(i=1;i<=p->m;i++)printf("%s:%10d\n",a[i].name,a[i].score);Mainmenu(p);}voidAcasearch(Score*p)/*查找特定系院所有项目的分数*/{inti,j;printf("请输入学院编号:\n");scanf("%d",&i);for(j=1;j<=p->n;j++){printf("%10d%10d",p->score[i][j].male,p->score[i][j].female);}Mainmenu(p);}voidItemsearch(Score*p)/*查找特定项目的所有系院分数*/{inti,j;printf("请输入项目编号:\n");scanf("%d",&i);for(j=1;j<=p->m;j++){printf("%10d%10d",p->score[j][i].male,p->score[j][i].female);}Mainmenu(p);}voidsave(Score*p){inti,j;FILE*fp;fp=fopen("D:\\","w");fprintf(fp,"学院名称学院编号项目号男子得分女子得分\n");for(i=1;i<=p->m;i++)for(j=1;j<=p->n;j++){ale,p->score[i][j].female);ame,p->Aca[i].num,p->score[i][j].male,p->score[i][j].female);fprintf(fp,"%3s%10d%10d%10d%10d\n",p->Aca[i].name,p->Aca[i].num,j,p->score[i][j].male,p->score[i][j].female);ame,p->Aca[i].num,j,p->score[i][j].male,j,p->score[i][j].female);}fclose(fp);}voidMainmenu(Score*p){intch,exit=1;printf("\nmenu\n");printf("\n");printf("score\n");printf("score\n");printf("score\n");printf("score\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\nmenu\n");while(exit!=0){printf("pleasechoose:(0--9)\n");scanf("%d",&ch);switch(ch){case0:exit=0;break;case1:Push(p);break;case2:Correct(p);break;case3:Addupscore(p);break;case4:Sort(p);break;case5:Malesort(p);break;case6:Femalesort(p);break;case7:Acasearch(p);break;case8:Itemsearch(p);break;case9:save(p);break;default:printf("putinthewrongnumber!");}}}voidmain(){Score*p;intt;inti,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=1;t<=p->m;t++)scanf("%s%d",p->Aca[t].name,&p->Aca[t].num);printf("请输入学院各项男女成绩:\n");for(i=1;i<=p->m;i++)for(j=1;j<=p->n;j++)scanf("%d%d",&p->score[i][j].male,&p->score[i][j].female);Mainmenu(p);}六、运行结果 七、收成及体会通过一个周的课程设计,我发觉了我平常学习方面的许多不足。仅仅通过半学期的数据结构学习是不能够轻松完成任务的,咱们必需在课外多多学习一些其他的函数来充实自己和将书本上的一些思想融会贯通成为自己的知识。另外学习是一个不中断的进程,咱们应该适时温故而知新,不然学过的东西会专门快遗忘。就像这次的课设,编程之前我把数据结构书和C语言、C++书又前前后后的翻看了两遍,才回忆起好多原先学习过的知识,但在编程时仍然感觉很费力。后来咱们在网上搜到了一些程序,结果有好多咱们没有学过的函数,为此咱们又一边编程一边学习一些能够对程序起一些作用的函数,如此咱们才勉强把程序编完。同时,让我体会到编程序难,调试程序更难,调试程序需要足够的耐心,在那个进程中需要咱们一遍又一遍的修改数据或是结构,直抵达到咱们的目的。那个进程让我学到了很多知识,也让我感觉好有成绩感。一个周的课设已经完了,可是它带给我的冲击尚未散去,在接下来的日子里我会继续深切地学习c语言,C++,数据结构等,仅仅有讲义上的知识是远不能达到需求的,我应该多学习,多实践,希望能在学习上更上一层楼。八、参考文献<><<数据结构>>
voidFemalesort(Score*p)/*核算各个系院的女子项目总分并按分数高低排名*/
if(a[i].score{=a[j].score;strcpy,a[j].name);a[j].score=a[i].score;strcpy(a[i].name,a[j].name);a[i].score=;strcpy(a[i].name,;}for(i=1;i<=p->m;i++)printf("%s:%10d\n",a[i].name,a[i].score);Mainmenu(p);}voidAcasearch(Score*p)/*查找特定系院所有项目的分数*/{inti,j;printf("请输入学院编号:\n");scanf("%d",&i);for(j=1;j<=p->n;j++){printf("%10d%10d",p->score[i][j].male,p->score[i][j].female);}Mainmenu(p);}voidItemsearch(Score*p)/*查找特定项目的所有系院分数*/{inti,j;printf("请输入项目编号:\n");scanf("%d",&i);for(j=1;j<=p->m;j++){printf("%10d%10d",p->score[j][i].male,p->score[j][i].female);}Mainmenu(p);}voidsave(Score*p){inti,j;FILE*fp;fp=fopen("D:\\","w");fprintf(fp,"学院名称学院编号项目号男子得分女子得分\n");for(i=1;i<=p->m;i++)for(j=1;j<=p->n;j++){ale,p->score[i][j].female);ame,p->Aca[i].num,p->score[i][j].male,p->score[i][j].female);fprintf(fp,"%3s%10d%10d%10d%10d\n",p->Aca[i].name,p->Aca[i].num,j,p->score[i][j].male,p->score[i][j].female);ame,p->Aca[i].num,j,p->score[i][j].male,j,p->score[i][j].female);}fclose(fp);}voidMainmenu(Score*p){intch,exit=1;printf("\nmenu\n");printf("\n");printf("score\n");printf("score\n");printf("score\n");printf("score\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\nmenu\n");while(exit!=0){printf("pleasechoose:(0--9)\n");scanf("%d",&ch);switch(ch){case0:exit=0;break;case1:Push(p);break;case2:Correct(p);break;case3:Addupscore(p);break;case4:Sort(p);break;case5:Malesort(p);break;case6:Femalesort(p);break;case7:Acasearch(p);break;case8:Itemsearch(p);break;case9:save(p);break;default:printf("putinthewrongnumber!");}}}voidmain(){Score*p;intt;inti,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=1;t<=p->m;t++)scanf("%s%d",p->Aca[t].name,&p->Aca[t].num);printf("请输入学院各项男女成绩:\n");for(i=1;i<=p->m;i++)for(j=1;j<=p->n;j++)scanf("%d%d",&p->score[i][j].male,&p->score[i][j].female);Mainmenu(p);}六、运行结果 七、收成及体会通过一个周的课程设计,我发觉了我平常学习方面的许多不足。仅仅通过半学期的数据结构学习是不能够轻松完成任务的,咱们必需在课外多多学习一些其他的函数来充实自己和将书本上的一些思想融会贯通成为自己的知识。另外学习是一个不中断的进程,咱们应该适时温故而知新,不然学过的东西会专门快遗忘。就像这次的课设,编程之前我把数据结构书和C语言、C++书又前前后后的翻看了两遍,才回忆起好多原先学习过的知识,但在编程时仍然感觉很费力。后来咱们在网上搜到了一些程序,结果有好多咱们没有学过的函数,为此咱们又一边编程一边学习一些能够对程序起一些作用的函数,如此咱们才勉强把程序编完。同时,让我体会到编程序难,调试程序更难,调试程序需要足够的耐心,在那个进程中需要咱们一遍又一遍的修改数据或是结构,直抵达到咱们的目的。那个进程让我学到了很多知识,也让我感觉好有成绩感。一个周的课设已经完了,可是它带给我的冲击尚未散去,在接下来的日子里我会继续深切地学习c语言,C++,数据结构等,仅仅有讲义上的知识是远不能达到需求的,我应该多学习,多实践,希望能在学习上更上一层楼。八、参考文献<><<数据结构>>
a[j].score=a[i].score;strcpy(a[i].name,a[j].name);
voidAcasearch(Score*p)/*查找特定系院所有项目的分数*/
printf("请输入学院编号:
scanf("%d",&i);
printf("%10d%10d",p->score[i][j].male,p->score[i][j].female);
voidItemsearch(Score*p)/*查找特定项目的所有系院分数*/
printf("请输入项目编号:
for(j=1;j<=p->m;j++)
printf("%10d%10d",p->score[j][i].male,p->score[j][i].female);
voidsave(Score*p)
{inti,j;
FILE*fp;
fp=fopen("D:
\\","w");
fprintf(fp,"学院名称学院编号项目号男子得分女子得分\n");
ale,p->score[i][j].female);
ame,p->Aca[i].num,p->score[i][j].male,p->score[i][j].female);
fprintf(fp,"%3s%10d%10d%10d%10d\n",p->Aca[i].name,p->Aca[i].num,j,p->score[i][j].male,p->score[i][j].female);
ame,p->Aca[i].num,j,p->score[i][j].male,j,p->score[i][j].female);
fclose(fp);
voidMainmenu(Score*p)
intch,exit=1;
printf("\nmenu\n");
printf("\n");
printf("score\n");
while(exit!
=0)
{printf("pleasechoose:
(0--9)\n");
scanf("%d",&ch);
switch(ch)
case0:
exit=0;break;
case1:
Push(p);break;
case2:
Correct(p);break;
case3:
Addupscore(p);break;
case4:
Sort(p);break;
case5:
Malesort(p);break;
case6:
Femalesort(p);break;
case7:
Acasearch(p);break;
case8:
Itemsearch(p);break;
case9:
save(p);break;
default:
printf("putinthewrongnumber!
");
voidmain()
Score*p;
intt;
p=(Score*)malloc(sizeof(Score));
if(p)
printf("请输入学院数,项目数,男子集体数,女子集体数:
scanf("%d%d%d%d",&p->m,&p->n,&p->b,&p->g);
printf("请输入学院名字和编号:
for(t=1;t<=p->m;t++)
scanf("%s%d",p->Aca[t].name,&p->Aca[t].num);
printf("请输入学院各项男女成绩:
六、运行结果
七、收成及体会
通过一个周的课程设计,我发觉了我平常学习方面的许多不足。
仅仅通过半学期的数据结构学习是不能够轻松完成任务的,咱们必需在课外多多学习一些其他的函数来充实自己和将书本上的一些思想融会贯通成为自己的知识。
另外学习是一个不中断的进程,咱们应该适时温故而知新,不然学过的东西会专门快遗忘。
就像这次的课设,编程之前我把数据结构书和C语言、C++书又前前后后的翻看了两遍,才回忆起好多原先学习过的知识,但在编程时仍然感觉很费力。
后来咱们在网上搜到了一些程序,结果有好多咱们没有学过的函数,为此咱们又一边编程一边学习一些能够对程序起一些作用的函数,如此咱们才勉强把程序编完。
同时,让我体会到编程序难,调试程序更难,调试程序需要足够的耐心,在那个进程中需要咱们一遍又一遍的修改数据或是结构,直抵达到咱们的目的。
那个进程让我学到了很多知识,也让我感觉好有成绩感。
一个周的课设已经完了,可是它带给我的冲击尚未散去,在接下来的日子里我会继续深切地学习c语言,C++,数据结构等,仅仅有讲义上的知识是远不能达到需求的,我应该多学习,多实践,希望能在学习上更上一层楼。
八、参考文献
<><<数据结构>>
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1