学士学位论文数据结构课程设计运动会Word格式文档下载.docx

上传人:b****5 文档编号:19671679 上传时间:2023-01-08 格式:DOCX 页数:29 大小:292.75KB
下载 相关 举报
学士学位论文数据结构课程设计运动会Word格式文档下载.docx_第1页
第1页 / 共29页
学士学位论文数据结构课程设计运动会Word格式文档下载.docx_第2页
第2页 / 共29页
学士学位论文数据结构课程设计运动会Word格式文档下载.docx_第3页
第3页 / 共29页
学士学位论文数据结构课程设计运动会Word格式文档下载.docx_第4页
第4页 / 共29页
学士学位论文数据结构课程设计运动会Word格式文档下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

学士学位论文数据结构课程设计运动会Word格式文档下载.docx

《学士学位论文数据结构课程设计运动会Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学士学位论文数据结构课程设计运动会Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。

学士学位论文数据结构课程设计运动会Word格式文档下载.docx

10以内的整数(如果做得更好可以输入学校的名称和运动项目的名称)

输出形式:

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

界面要求:

有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:

学生自己根据系统功能要求自己设计。

请在最后的上交资料中指明你用到的存储结构;

测试数据:

要求使用1、全部合法数据;

2、整体非法数据;

3、局部非法数据。

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

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

1.存储结构设计:

主菜单

1

2

3

4

5

6

7

8

输入各个项目成绩并存储文件

统计各学校总分

按学校编号排序输出

按学校总分排序输出

按男团体总分排序输出

按女团体总分排序输出

按学校编号查询学校某个项目情况

按项目编号查询取得名次的学校

退出

1输入各个项目成绩并存储文件

输入男子项目总数m

输入女子项目总数w

输入参加运动会的学校总数n

男子项目

女子项目

输入项目:

0返回主菜单界面

输入项目编号(如1)

输入项目编号(如m)

输入项目编号(如m+1)

输入项目编号(如m+n)

2.统计各学校的总分

显示:

各学校的总分

退出:

按enter键

3.按学校编号排序输出

输入学校编号

退出(返回菜单主界面):

按enter

显示按学校排序输出结果

返回到主界面

4.按学校总分排序输出

显示按学校总分排序结果

5.按男团体总分排序输出

显示按学校编号排序结果

6.按女团体总分排序输出

显示按女团体总分排序结果

7.按学校编号查询学校某个项目情况

输入要查询的学校编号

输入要查询的项目编号

显示要查询学校的某个项目的获奖情况

8.按项目编号查询取得名次的学校(前三名或前五名)

显示某个项目编号的学校名次(前三或前五)

0.退出

按任意键可以推出

2.流程程图设计:

Main()函数流程图

Funct1()函数流程图

 

Save()函数流程图

Funct2()函数流程图

Funct3()函数流程图

Funct4()函数流程图

Funct5()函数流程图

Funct6()函数流程图

Funct7()函数流程图

Funct8()函数流程图

#include<

stdio.h>

stdlib.h>

string.h>

io.h>

//#include<

conio.h>

屏幕操作函数

#defineMAX50

//#defineNULL0

typedefstructnode1{

intschool;

学校编号

intrecord;

项目成绩

structnode1*next;

链域

}Schools;

typedefstruct{

intitem;

项目编号

Schools*firstschool;

链域指向链表中第一个结点

}ITEM;

intz;

项目总数

ITEMa[MAX];

}ALLitems;

typedefstructnode2{

该学校获奖的项目

structnode2*next;

}Items;

/*学校编号*/

intscore;

/*学校总分*/

intboys;

/*男团体总分*/

intgirls;

/*女团体总分*/

Items*firstitem;

链域指向链表中第一个获奖项目的结点

}SCHNode;

intn;

/*学校总数*/

SCHNodeb[MAX];

}ALLNode;

ALLitems*g1;

ALLNode*g2;

voidfunct1(ALLitems*g1,ALLNode*g2)输入各个项目成绩

{Schools*p1;

Items*p2;

inti,k,m,w,h,x;

p1=(Schools*)malloc(sizeof(Schools));

p2=(Items*)malloc(sizeof(Items));

if(!

p1||!

p2)

exit

(1);

printf("

\n"

);

\n\n\n"

\n******输入各个项目信息******\n\n"

输入男子项目总数m:

"

scanf("

%d"

&

m);

while(m<

0||m>

10)

{printf("

输入有误,m是10以内的整数,请重新输入:

}

输入女子项目总数w:

w);

while(w<

0||w>

输入有误,w是10以内的整数,请重新输入:

输入参加运动会的学校总数n:

g2->

n);

while(g2->

n<

0||g2->

n>

输入有误,n是10以内的整数,请重新输入:

}

g1->

z=m+w;

则项目编号为男子1-%d,女子%d-%d"

m,m+1,g1->

z);

\n\n****记录运动会成绩****"

\n\n(输入0标志结束)\n"

for(k=1;

k<

=g1->

z;

k++)/*对两个邻接表置初态*/

{g1->

a[k].item=k;

a[k].firstschool=NULL;

=g2->

n;

k++)

{g2->

b[k].school=k;

g2->

b[k].firstitem=0;

b[k].score=0;

b[k].boys=0;

b[k].girls=0;

b[0].score=0;

b[0].boys=0;

b[0].girls=0;

while(i!

=0)

\n项目:

i);

while(i<

0||i>

m+w)

{printf("

输入有误,无此项目编号,请重新输入数字:

}

{

if(i!

{h=3;

do{printf("

第%d名:

学校(学校编号为数字)"

h);

x);

while(x<

0||x>

n)

输入有误,无此学校编号,请重新输入数字:

p1=(Schools*)malloc(sizeof(Schools));

p1->

school=x;

p2=(Items*)malloc(sizeof(Items));

p2->

item=i;

if(h==3)p2->

record=p1->

record=2;

if(h==2)p2->

record=3;

if(h==1)p2->

record=5;

next=g1->

a[i].firstschool;

a[i].firstschool=p1;

next=g2->

b[x].firstitem;

b[x].firstitem=p2;

g2->

b[x].score=g2->

b[x].score+p2->

record;

累计总分

if(i<

=m)g2->

b[x].boys=g2->

b[x].boys+p2->

累计男团体总分

elseg2->

b[x].girls=g2->

b[x].girls+p2->

累计女团体总分

h--;

}while(x!

=0&

&

h!

=0);

voidsave()存储数据文件

{FILE*fp1,*fp2;

fp1=(FILE*)malloc(sizeof(FILE));

fp2=(FILE*)malloc(sizeof(FILE));

if((fp1=fopen("

sports1"

"

wb"

))==NULL)

cannotopenfile.\n"

return;

}

if(fwrite(g1,sizeof(ALLitems),1,fp1)!

=1)

filewriteerror.\n"

fclose(fp1);

if((fp2=fopen("

sports2"

if(fwrite(g2,sizeof(ALLNode),1,fp2)!

=1)

fclose(fp2);

voidfunct2(ALLNode*g2)输出各学校总分

{intk;

学校编号\t总分\n"

%d\t\t\t%d\n"

k,g2->

b[k].score);

\n"

system("

pause"

按任意键返回主菜单......"

getchar();

voidfunct3(ALLNode*g2)按学校编号排序输出

{

intk;

\n\n"

\n\n******按学校编号排序输出******\n"

学校编号\t\t\t获奖情况\n"

\t\t\t\t\t\t%d\t"

k);

p2=g2->

b[k].firstitem;

while(p2!

=NULL)

项目%d:

得%d分"

p2->

item,p2->

record);

p2=p2->

next;

按任意键返回主菜单......"

voidfunct4(ALLNode*g2)按学校总分排序输出

{inti,j,k;

Items*p2;

\n\n******按学校总分排序输出******\n"

学校编号\t\t总分\n"

按1继续\n"

k);

//printf("

输入要查询的项目编号:

for(i=2;

i<

i++)

{

%d\t"

%d\t\t%d\n"

g2->

b[k].school,g2->

b[0].score=g2->

b[i].score;

b[0].boys=g2->

b[i].boys;

b[0].girls=g2->

b[i].girls;

b[0].school=g2->

b[i].school;

j=i-1;

b[0].score<

b[j].score&

j>

0)

b[j+1].score=g2->

b[j].score;

b[j+1].boys=g2->

b[j].boys;

b[j+1].girls=g2->

b[j].girls;

b[j+1].school=g2->

b[j].school;

j--;

b[0].score;

b[0].boys;

b[0].girls;

b[0].school;

voidfunct5(ALLNode*g2)按男团体总分排序输出

\n\n******按男团体总分排序输出******\n"

学校编号\t\t男团体总分\n"

printf("

输入要查询的学校编号:

%d\t\t%d\n"

b[k].boys);

b[0].boys<

b[j].boys&

//暂停等待

voidfunct6(ALLNode*g2)按女团体总分排序输出

\n\n******按女团体总分排序输出******\n"

学校编号\t\t女团体总分\n"

b[k].girls);

b[0].girls<

b[j].girls&

{g2->

voidfunct7(ALLNode*g2)按学校编号查询学校某个项目情况

{inti,j;

\n******按学校编号查询学校某个项目情况******\n"

输入要查询的学校编号:

输入要查询的项目编号:

j);

b[i].firstitem;

{if(p2->

item==j)

学校编号:

%d\t项目%d:

得%d分\n"

i,p2->

voidfunct8(ALLitems*g1)按项目编号查询取得名次的学校

{inti;

Schools*p1;

\n***按项目编号查询取得名次的学校***\n"

项目编号\t\t\t取得名次的学校\n"

i);

p1=g1->

while(p1!

学校%d:

p1->

school,p1->

p1=p1->

\n\n"

syst

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1