数据结构课程设计运动会分数统计.docx

上传人:b****1 文档编号:2085825 上传时间:2023-05-02 格式:DOCX 页数:12 大小:280.99KB
下载 相关 举报
数据结构课程设计运动会分数统计.docx_第1页
第1页 / 共12页
数据结构课程设计运动会分数统计.docx_第2页
第2页 / 共12页
数据结构课程设计运动会分数统计.docx_第3页
第3页 / 共12页
数据结构课程设计运动会分数统计.docx_第4页
第4页 / 共12页
数据结构课程设计运动会分数统计.docx_第5页
第5页 / 共12页
数据结构课程设计运动会分数统计.docx_第6页
第6页 / 共12页
数据结构课程设计运动会分数统计.docx_第7页
第7页 / 共12页
数据结构课程设计运动会分数统计.docx_第8页
第8页 / 共12页
数据结构课程设计运动会分数统计.docx_第9页
第9页 / 共12页
数据结构课程设计运动会分数统计.docx_第10页
第10页 / 共12页
数据结构课程设计运动会分数统计.docx_第11页
第11页 / 共12页
数据结构课程设计运动会分数统计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构课程设计运动会分数统计.docx

《数据结构课程设计运动会分数统计.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计运动会分数统计.docx(12页珍藏版)》请在冰点文库上搜索。

数据结构课程设计运动会分数统计.docx

数据结构课程设计运动会分数统计

《数据结构》课程设计

题目:

运动会分数统计

 

课程名:

运动会分数统计

专业:

学号:

姓名:

学号:

姓名:

学号:

姓名:

学号:

姓名:

 

一、概要……..……………………………………………….3

1题目

2要求

二、分析……..……………………………………………….4

1整体设计

2数据结构的选择

三、设计……..……………………………………………….5

1模块设计

2整体流程图

3重点模块或算法流程图

四、调试分析和测试结果…………………………………..8

1程序测试进程

2程序调试进程

五、算法效率分析………………………………………….11

六、心得体会……..………………………………………...12

七、源程序……..…………………………………………...13

 

一、概要

1题目:

运动会分数统计

2要求:

任务:

参加运动会有n个学校,学校编号为1……n。

竞赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分别离为:

7、五、3、二、1,前三名的积分别离为:

五、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)

功能要求:

1)能够输入各个项目的前三名或前五名的成绩;

2)能统计各学校总分,

3)能够按学校编号或名称、学校总分、男女集体总分排序输出;

4)能够按学校编号查询学校某个项目的情形;能够按项目编号查询取得前三或前五名的学校。

5)数据存入文件并能随时查询

6)规定:

输入数据形式和范围:

能够输入学校的名称,运动项目的名称

输出形式:

有中文提示,各学校分数为整形

界面要求:

有合理的提示,每一个功能能够设立菜单,依照提示,能够完成相关的功能要求。

存储结构:

学生自己依照系统功能要求自己设计,可是要求运动会的相关数据要存储在数据文件中。

(数据文件的数据读写方式等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:

要求利用一、全数合法数据;二、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳固。

测试数据及测试结果请在上交的资料中写明。

 

二、分析

1整体设计

参赛人数即为顺序表表长,在顺序表节点中有成绩,在成立学生信息时可直接输入成绩,输入学生信息时编码是自动加的,统计学校总分或男女项目总分时都用2个for循环来实现,统计出来的得分都可放入另一个顺序表中以便于排序,在查询时用户输入要查询的学校代号或项目代号即可查询,在成立信息时会挪用保留在文件的函数来实现学生信息的保留。

2数据结构的选择

运动会分数统计程序用到的是顺序表的数据类型,由于一开始参赛人数确实是确信下来的,参赛人数即为顺序表表长,故顺序表的表长也就确信下来了,顺序表的要紧内容有学校数、男子项目数、女子项目数、总的参赛人数。

节点要紧内容包括:

学生的姓名、学校代号、项目代号和学生的成绩。

顺序表类型如下:

typedefstruct{

uexiao==i&&L->sc[j].xiangmu==n)ame,L->sc[j].score);}

}

按项目代号查取得成绩的学校是也是按编号查询,只要学校项目代号与输入要查的项目相同而且有成绩就输出。

函数如下:

voidsearch2(seqlist*L){iangmu==k&&L->sc[j].score!

=0)

printf("学校代号%d在该项目姓名%s取得成绩%d\n",L->sc[j].xuexiao,L->sc[j].name,L->sc[j].score);

}

}

(2)统计

在统计学校总分和各学校男女项目总分时思路大致相同,在统计男(女)项目总分时只需确信下是不是是男(女)子项目,若是是就加,判定方式确实是男子项目的项目代号小于等于男子项目数(即:

L->sc[j].xiangmu)<(L->m))而女子项目那么大于男子项目数(即L->sc[j].xiangmu)>(L->m))

统计各学校总分函数介绍如下:

voidtongfen(seqlist*L,list*s){uexiao==i){core;}iaohao=i;ey=sum;

和uexiao,&L->sc[i].xiangmu,&L->sc[i].name,&L->sc[i].score);

}

savefile(L);

printf("成立成功!

:

");

}

voidsearch1(seqlist*L){uexiao==i&&L->sc[j].xiangmu==n)

printf("该学校在该项目姓名为%s取得成绩%d\n",L->sc[j].name,L->sc[j].score);

}

}

voidsearch2(seqlist*L){iangmu==k&&L->sc[j].score!

=0)

printf("学校代号%d在该项目姓名%s取得成绩%d\n",L->sc[j].xuexiao,L->sc[j].name,L->sc[j].score);

}

}

voidtongfen(seqlist*L,list*s){uexiao==i){

sum=sum+L->sc[j].score;}

}

s->r[i].xiaohao=i;

s->r[i].key=sum;

printf("学校代号为%d的学校取得的总分为%d\n",i,sum);

}

}

voidtongfenboy(seqlist*L,list*s){uexiao==i){

if((L->sc[j].xiangmu)<(L->m)||(L->sc[j].xiangmu)==(L->m)){

sum=sum+L->sc[j].score;}

}

}

s->r[i].xiaohao=i;

s->r[i].key=sum;

printf("学校代号为%d在男子项目取得的总分为%d\n",i,sum);

}

}

voidtongfengirl(seqlist*L,list*s){uexiao==i){

if((L->sc[j].xiangmu)>(L->m)){

sum=sum+L->sc[j].score;}

}

}

s->r[i].xiaohao=i;

s->r[i].key=sum;

printf("学校代号为%d在女子项目取得的总分为%d\n",i,sum);

}

}

voidpaixu(seqlist*L,list*s){eyr[j].key){iaohao,s->r[k].key);

}

}

voidoutput(seqlist*L){

intj;

printf("学校代号编号项目号姓名成绩:

\n");

for(j=1;j<=L->r;j++){

printf("%d\t%d\t%d\t%s\t%d\n",L->sc[j].xuexiao,j,L->sc[j].xiangmu,L->sc[j].name,L->sc[j].score);

}

};

seqlist*loadfile()xt","r");

seqlist*s;

s=(seqlist*)malloc(sizeof(seqlist));

fscanf(fp,"%d%d%d%d",&s->r,&s->n,&s->m,&s->w);

for(inti=1;i<=s->r;i++)

{

fscanf(fp,"%s",buf);

strcpy(s->sc[i].name,buf);

fscanf(fp,"%d%d%d",&s->sc[i].xuexiao,&s->sc[i].xiangmu,&s->sc[i].score);

}

fclose(fp);

returns;

}

voidsavefile(seqlist*s)xt","a+"))==NULL)

{

printf("Cannotopenthefile!

\n");

return;

}

fprintf(fp,"%d\t",s->r);

fprintf(fp,"%d\t",s->n);

fprintf(fp,"%d\t",s->m);

fprintf(fp,"%d\n",s->w);

for(inti=1;i<=s->r;i++)

{

fprintf(fp,"%s\t",s->sc[i].name);

fprintf(fp,"%d\t",s->sc[i].xuexiao);

fprintf(fp,"%d\t",s->sc[i].xiangmu);

fprintf(fp,"%d\n",s->sc[i].score);

}

fclose(fp);

}

 

intmenu_select(){

inti,sn;

printf("------欢迎来到大学生运动会治理系统------\n");

printf("请您先建立参赛者信息并记录成绩

(1)\n");

printf("查询(按校查某个项目)

(2)\n");

printf("查询(按项目查取得成绩的学校)(3)\n");

printf("统计各学校总分并排序输出(4)\n");

printf("统计各学校男子项目总分并排序输出(5)\n");

printf("统计各学校女子项目总分并排序输出(6)\n");

printf("输出(7)\n");

printf("退出(0)\n");

printf("----------------请选择------------------\n");

for(i=0;i<100;i++){

scanf("%d",&sn);

if(sn<0||sn>7)

printf("\n\t输入错误,重选0-7:

\n");

elsebreak;}

returnsn;

}

voidmain(){

intm,n,w,r;

FILE*fp;

seqlistS,*L=&S;

listp,*s=&p;

if((fp=fopen("运动员系统.txt","r"))==NULL)

{

L=(seqlist*)malloc(sizeof(seqlist));

printf("------欢迎来到大学生运动会治理系统------\n");

printf("输入参赛的学校数,男子项目数,女子项目数,总的参赛人数:

\n");

scanf("%d%d%d%d",&n,&m,&w,&r);

printf("\n");

L->n=n;L->m=m;L->w=w;L->r=r;

}

else

L=loadfile();

for(;;){

switch(menu_select()){

case1:

set(L);break;

case2:

search1(L);break;

case3:

search2(L);break;

case4:

tongfen(L,s);paixu(L,s);break;

case5:

tongfenboy(L,s);paixu(L,s);break;

case6:

tongfengirl(L,s);paixu(L,s);break;

case7:

output(L);break;

case0:

break;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2