运动会分数统计Word文档下载推荐.docx
- 文档编号:17004722
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:97.52KB
运动会分数统计Word文档下载推荐.docx
《运动会分数统计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《运动会分数统计Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
=20,n<
=20)
2)基本要求
(1)可以输入各个项目的前三名或前五名的成绩;
(2)能统计各学校总分,
(3)可以按学校编号、学校总分、男女团体总分排序输出;
(4)可以按学校编号查询学校某个项目的情况;
可以按项目编号查询取得前三或前五名的学校。
规定:
输入数据形式和范围:
20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:
有中文提示,各学校分数为整型
界面要求:
有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:
学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:
要求使用1、全部合法数据;
2、整体非法数据;
3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;
四、参考资料
[1]王红梅.数据结构C++.北京:
清华大学出版社,2005.
[2]王红梅.数据结构C++实验指导书.北京:
[3]严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社
指导教师(签字):
教研室主任(签字):
批准日期:
年月日
一、需求分析
(1)程序功能
(a)可以输入各个项目的前三名或前五名的成绩;
(b)能统计各学校总分,
(c)可以按学校编号、学校总分、男女团体总分排序输出;
(d)可以按学校编号查询学校某个项目的情况;
(2)输入输出要求
输入形式:
数据形式和范围:
二、概要设计
1.运动会记分系统功能模块图
2.程序类图
三、详细设计
1.学校类设计
学校基础信息:
定义了学校类,以及各种学校类的基础信息,如:
学校名称、编号、学校总分,男子运动员总分,女子运动员总分。
通过学校类对象数组调用参数和函数。
classSchool
{
private:
intid;
//学校编号
stringname;
//学校名称
inttotal;
//学校总分
intmale;
//男子总分
intfemale;
//女子总分
public:
School()//初始化
{
id=0;
male=0;
female=0;
total=0;
}
voidsetName(strings)
name=s;
stringgetName()
returnname;
voidsetId(inti)
id=i;
intgetId()
returnid;
voidsetTotal(inta)
total=a;
intgetTotal()
returntotal;
voidsetMale(inta)
male=a;
voidsetFemale(inta)
female=a;
intgetMale()
returnmale;
intgetFemale()
returnfemale;
};
2.运动会项目类设计
运动项目基础信息:
定义了运动项目类,以及各种运动项目类的基础信息,如:
运动项目名称、男子运动项目,女子运动项目。
通过运动项目类对象数组调用参数和函数。
classItem
Schoolsc[20];
SchoolgetSchool(inti)
returnsc[i];
School*getSchools()
returnsc;
voidsetSchool(Schoolsch,inti)
sc[i]=sch;
3.统计总分信息类设计
统计总分信息:
定义了统计类,各个名次的积分及规则,还定义了与总分相关的各种函数,如:
录入函数,打印函数,排序函数,菜单函数。
统计类为整体核心,通过统计类对象,把录入的实参赋值给各个变量。
最后再通过类对象数组调用各个函数实现整体的功能。
classCount
Itemitem[20];
intintegral[5];
intn,m,f;
Count()
n=0;
integral[0]=7;
integral[1]=5;
integral[2]=3;
integral[3]=2;
integral[4]=1;
voidinput();
//输入基本信息
voidinput1();
//录入成绩
voidOpen();
//载入
voidprint(int);
//打印
voidstatisticsForTotal();
//按总分排序
voidstatisticsForId();
//按编号排序
voidstatisticsForMale();
//按男子总分排序
voidstatisticsForFemale();
//按女子总分排序
voidschoolInfo();
//显示学校信息
voiditemInfo();
//显示项目信息
voidmenu();
//显示菜单
voidsort(School*,string,int);
//排序操作
4.录入信息函数设计
录入信息函数:
实现录入学校信息和运动项目信息功能。
学校信息包括:
学校编号、学校名称;
运动项目信息包括:
男子项目和女子项目数,各个项目名称。
voidCount:
:
input()
inti;
School*sch;
Item*it;
strings;
cout<
<
"
输入学校数目"
;
cin>
>
n;
for(i=0;
i<
i++)
sch=newSchool;
cout<
请输入第"
<
i+1<
个学校名称:
"
cin>
s;
sch->
setName(s);
setId(i+1);
sc[i]=*sch;
输入男子和女子项目数:
m;
f;
while(m>
20||m<
1||f>
20||f<
1)
输入有误,请重新输入!
\n"
m+f;
个项目的名称"
it=newItem;
it->
item[i]=*it;
}
录入成绩函数:
实现录入运动项目成绩信息功能。
input1()
inti,k,j,id;
id=sc[i].getId();
for(k=0;
k<
k++)
for(j=0;
j<
n;
j++)
{
cout<
k+1<
个项目成绩(按学校编号):
endl;
cin>
id;
if(k<
m)
{
sc[id-1].setMale(sc[id-1].getMale()+integral[j]);
}
elseif(k<
m+f)
sc[id-1].setFemale(sc[id-1].getFemale()+integral[j]);
sc[id-1].setTotal(sc[id-1].getTotal()+integral[j]);
item[i].setSchool(sc[id-1],j);
}
5.排序的设计
排序函数:
实现将录入运动项目成绩按总分按从大到小的顺序进行排序。
sort(School*sch,stringmode,intnum)//排序函数
inti,j,exchange;
Schoolt;
if(mode=="
total"
)
exchange=0;
for(i=0;
num-1;
for(j=num-2;
j>
=0;
j--)
if(sch[j+1].getTotal()>
sch[j].getTotal())
{
exchange=1;
t=sc[j+1];
sch[j+1]=sch[j];
sch[j]=t;
}
if(!
exchange)
return;
return;
id"
num;
for(j=i+1;
if(sch[i].getId()>
sch[j].getId())
t=sch[i];
sch[i]=sch[j];
male"
if(sch[j+1].getMale()>
sch[j].getMale())
female"
if(sch[j+1].getFemale()>
sch[j].getFemale())
6.输出设计
打印函数:
输出用户需要的信息。
print(inti)
sc[i].getId()<
setw(10)<
sc[i].getName()<
setw(8)<
sc[i].getTotal()
<
setw(9)<
sc[i].getMale()<
sc[i].getFemale()<
四、调试分析
测试图:
五、关键源程序清单和执行结果
1.关键源程序
Count类为程序的核心,一切功能都围绕它进行实现。
录入的信息通过构造函数Count()按积分规则取积分后进行排序操作,最终通过调用打印函数print()输出。
2.执行结果
六、参考资料
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 分数 统计