大数据结构实验运动会分数统计实验报告材料Word文档格式.docx
《大数据结构实验运动会分数统计实验报告材料Word文档格式.docx》由会员分享,可在线阅读,更多相关《大数据结构实验运动会分数统计实验报告材料Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
![大数据结构实验运动会分数统计实验报告材料Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/16/3e769e1c-03fc-4c6d-8af0-5ed432834e59/3e769e1c-03fc-4c6d-8af0-5ed432834e591.gif)
三:
详细设计
1:
数据结构的定义
元素类型、变量、指针类型
(1)项目数据表:
运动会开始前必须详细制定本次运动会所需的参赛项目为接下来报名、场地的准备提供依据。
本数据表根据要求设计存储每个项目的编号、名称、要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称及要取的名次,而各名次对应的学校编号将由系统自动统计。
这也有利于以后项目情况的查询。
3.1结构体
结构体名
数据类型
数据名
备注
School
char
name[20]
学校名称
int
schoolnum
学校编号
projectmane[50][20]
项目编号及名称
projectscouer[50]
项目得分
projectstudentmane[50][20]
获奖学生
sum
团体总分
menscouer
男子总分
womenscouer
女子总分
3.2子函数
函数名
入口参数
出口参数
功能介绍
main()
实现学校输入
项目输入
welcome()
调用主页面
选择各类操作以转至其他页面
input()
输入项目编号及名称
choose()
intj,chars[20]
intg;
1.判断所输项目是取前三或前五
2.返回经判断后的项目的编号与名称
three()
j
1.按名次判断得分,按项目编号判断男女得分
2.返回经判断后的项目的编号
five()
output()
按规定顺序查询n个学校中某一学校的得分信息
sumput()
按规定顺序产生团体总分报表
goodbye()
弹出退出界面并退出程序
3:
函数调用关系
四:
调试分析
在调试的过程中,我们发现了在查询成绩功能是只能按照各个学校的编号进行查询选手,学校的成绩信息,查询功能有待健壮完善。
五:
用户使用说明
(1)首先运行文件运动会统计分数系统
(2)输入信息:
1.输入学校数量→2.输入各个学校名称→3.男子运动项目数量→4.女子运动项目数量。
敲下回车后进入welcome界面中
进入1数据输入→输入运动会项目名称→输入该项目的打分规则→依次录入学校的排名情况
(2)输出信息:
输入3进行总体输出查询。
(3)查询信息:
按任意键返回主页面,输入2进行信息查询
查询结束后按任意键返回主界面输入4退出系统如下图所示
源代码
/**
***项目名称:
运动会统计系统
***设计者:
德龙,柴益新,少辉
***时间:
2015.10.16
***实现目标:
1.产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分;
2.产生团体总分报表,容包括校号、男子团体总分、女子团体总分和团体总分。
***
***/
#include<
stdio.h>
windows.h>
string.h>
conio.h>
/*
*n个学校编号为1~n
*m个男子项目,编号为1~m
*w个女子项目,编号为m+1~m+w
*/
intn,m,w;
*学校信息结构体
*目的:
1.按此结构体存贮数据
*2.产生各学校的成绩单,容包括各校所取得的每项成绩的项目号、名次(成绩)、和得分;
structschool
{
charname[20];
//学校名称
intschoolnum;
//学校编号
charprojectmane[50][20];
//项目编号及名称
intprojectscouer[50];
//项目得分
charprojectstudentmane[50][20];
//获奖学生
intsum;
//团体总分
intmenscouer;
//男子总分
intwomenscouer;
//女子总分
}num[20];
*主函数
*目的:
1.实现学校输入
*2.项目输入
intmain()
inti,j;
voidwelcome();
//调用主界面
printf("
请输入学校数量\n"
);
scanf("
%d"
&
n);
//输入学校名称,并初始化数据
for(i=1;
i<
=n;
i++)
{
printf("
请输入第%d学校的名称:
"
i);
scanf("
%s"
num[i].name);
num[i].schoolnum=i;
//学校编号初始
num[i].menscouer=0;
//男子团体分初始
num[i].womenscouer=0;
//女子团体分初始
num[i].sum=0;
//团体总分初始
for(j=1;
j<
=50;
j++)//各项目得分初始
num[i].projectscouer[j]=0;
}
请输入男子项目个数:
m);
请输入女子项目个数:
w);
welcome();
return0;
}
*主界面函数:
voidwelcome()
system("
cls"
intn;
voidinput();
voidoutput();
voidsumput();
voidgoodbye();
//读取这个welcome界面并显示
FILE*welcome;
welcome=fopen("
c:
//新建文件夹//welcome.txt"
"
r"
chars[60];
while(fgets(s,60,welcome))
s);
\n"
//选择进入子页面
while(scanf("
n)!
=EOF)
{
if(n==1)
input();
//调用输入函数
elseif(n==2)
output();
//调用输出函数
elseif(n==3)
sumput();
//调用求和函数
elseif(n==4)
goodbye();
//调用退出函数
else
printf("
输入有误,请重新输入:
//输入错误提示
}
*数据输入函数:
voidinput()
intj,k;
intchoose(intj,chars[20]);
chars[20];
for(j=1;
=w+m;
j++)
请输入第%d个项目名称:
j);
for(k=1;
k<
k++)
strcpy(num[k].projectmane[j],s);
//输入项目名称(将所输入的数组拷贝至项目组中)
j=choose(j,s);
//调用项目类型选择函数
*项目类型选择函数(3或5名)
2.返回经判断后的项目的编号与名称
intchoose(intj,chars[20])
intl;
intg;
intthree(intj,chars[20]);
intfive(intj,chars[20]);
//输入3,5分别调用不同的函数来判断
请选择此项目取前五还是前三(3或5):
l)!
if(l==3)
{
g=three(j,s);
returng;
}
elseif(l==5)
g=five(j,s);
输入错误,请重新输入:
*取前3的项目函数
2.返回经判断后的项目的编号
intthree(intj,chars[20])
//输入前三名获奖者信息,输入次序为学校编号加获奖者
intp,b;
for(p=1;
p<
=3;
p++)
请输入第%d名的校编号:
p);
b);
请输入获奖者:
num[b].projectstudentmane[j]);
//第一名得分为5
if(p==1)
num[b].projectscouer[j]=num[b].projectscouer[j]+5;
num[b].sum=num[b].sum+5;
if(j>
m)
num[b].womenscouer=num[b].womenscouer+5;
//从第m个开始为女子项目得分
else
num[b].menscouer=num[b].menscouer+5;
//前m个为男子项目得分
//第二名得分为3
elseif(p==2)
num[b].projectscouer[j]=num[b].projectscouer[j]+3;
num[b].sum=num[b].sum+3;
i