题目
参加运动会,有n个学校,学校编号为1, 2, …, n,比赛分为m个男子项目和w个女子项目,项目编号为男子1, 2, …, n,女子m + 1, m + 2, ,…, m + w.不同的项目,取前五名或前三名积分与前五名的积分分为7,5, 3, 2, 1,前三名的积分分别5, 3, 2;
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
#include<conio.h>
using namespace std
;
int n
;
int m
;
int w
;
struct pro
{
string name
;
int snum
[6];
}p
[21];
struct school
{
int num
;
string name
;
int score
;
int male
;
int female
;
int info
;
}sch
[21];
int integral1
[5]={7,5,3,2,1};
void inputInfo()
{
int i
,j
,y
,x
;
printf("输入学校数目:");
y
=0;
while(1) {
scanf("%d",&n
);
if(n
>=1&&n
<=20)
y
=1;
if(y
)
break;
else
printf("输入数据有误, 请重新输入:");
}
for(i
=1;i
<=n
;i
++) {
printf("输入第 %d 个学校的名称:", i
);
cin
>>sch
[i
].name
;
sch
[i
].score
=0;
sch
[i
].female
=0;
sch
[i
].male
=0;
sch
[i
].info
=0;
sch
[i
].num
=i
;
}
printf("输入男子项目数和女子项目数:");
y
=0;
while(1){
scanf("%d%d",&m
,&w
);
if(m
<= 20 && m
>= 1 && w
<= 20 && w
>= 1)
y
=1;
if(y
)
break;
else
printf("输入数据有误, 请重新输入:");
}
for(i
=1;i
<=m
+w
;i
++){
printf("输入第 %d 个项目的名称:\n",i
);
cin
>>p
[i
].name
;
printf("输入第 %d 个项目的前 5 名的学校编号:\n",i
);
for(j
=1;j
<=5;j
++){
y
=0;
while(1){
scanf("%d",&x
);
if(x
>=1&&x
<=20)
y
=1;
if(y
)
break;
else
printf("输入数据有误, 请重新输入:");
}
p
[i
].snum
[j
]=x
;
sch
[x
].score
+=integral1
[j
-1];
if(i
<=m
)
sch
[x
].male
+=integral1
[j
-1];
else sch
[x
].female
+=integral1
[j
-1];
}
}
}
void order() {
cout
<<"请按任意键返回主菜单"<<endl
;
getch();
}
void print(int i
)
{
cout
<<sch
[i
].num
<<setw(10)<<sch
[i
].name
<<setw(8)<<sch
[i
].score
<<setw(9)
<<sch
[i
].male
<<setw(10)<<sch
[i
].female
<<endl
;
}
void Numbering()
{
int i
;
printf("\n 按编号排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i
=1;i
<=n
;i
++)
print(i
);
order();
}
void totalScore()
{
int i
,j
,k
,a
;
printf("\n 按学校总分排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i
=1;i
<=n
;i
++){
sch
[i
].info
=0;
}
for(k
=1;k
<=n
;k
++){
for(i
=1;i
<=n
;i
++){
if(sch
[i
].info
==0)
break;
}
{
a
=i
;
for(j
=1;j
<=n
;j
++){
if(sch
[j
].info
==0) {
if(sch
[i
].score
<sch
[j
].score
){
a
=j
;
}
}
}
}
print(a
);
sch
[a
].info
=1;
};
order();
}
void malezf()
{
int k
,i
,j
,a
;
printf("\n 按学校男子总分排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i
=1;i
<=n
;i
++){
sch
[i
].info
=0;
}
for(k
=1;k
<=n
;k
++){
for(i
=1;i
<=n
;i
++){
if(sch
[i
].info
==0)
break;
}
{
a
=i
;
for(j
=1;j
<=n
;j
++){
if(sch
[j
].info
==0){
if(sch
[i
].male
<sch
[j
].male
){
a
=j
;
}
}
}
}
print(a
);
sch
[a
].info
=1;cout
<<"";
}
order();
}
void femalezf(){
int i
,j
,a
,k
;
printf("\n 按学校女子总分排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i
=1;i
<=n
;i
++){
sch
[i
].info
=0;
}
for(k
=1;k
<=n
;k
++){
for(i
=1;i
<=n
;i
++){
if(sch
[i
].info
==0) break;
}
{
a
=i
;
for(j
=1;j
<=n
;j
++){
if(sch
[j
].info
==0){
if(sch
[i
].female
<sch
[j
].female
){
a
=j
;
}
}
}
}
print(a
);
sch
[a
].info
=1;
}
cout
<<endl
;
order();
}
void schScore()
{
int i
,y
,s
;
printf("输入需要查询的学校编号:");
y
=0;
while(1) {
scanf("%d",&s
);
if(s
>=1&&s
<=n
)
y
=1;
if(y
)
break;
else
printf("输入数据有误, 请重新输入:");
}
printf("该学校相关信息:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i
=1;i
<=n
;i
++){
if(sch
[i
].num
==s
){
print(i
);
break;
}
}
cout
<<endl
;
order();
}
void project()
{
int i
,y
,s
;
printf("输入需要查询的项目编号:");
y
=0;
while(1){
scanf("%d",&s
);
if(s
>=1&&s
<=n
)y
=1;
if(y
)
break;
else
printf("输入数据有误, 重新输入:");
}
cout
<<p
[s
].name
<<"前 5 名学校编号及名称为:"<<endl
;
printf("名次 编号 学校名称\n");
for(i
=1;i
<=5;i
++)
cout
<<" "<<i
<<" "<<p
[s
].snum
[i
]<<setw(12)<<sch
[ p
[s
].snum
[i
] ].name
<<endl
;
cout
<<endl
;
order();
}
void menu()
{
int num
;
while(1){
printf("\n运动会计分系统\n");
printf("1.学校编号排序输出结果\n");
printf("2.学校总分排序输出结果\n");
printf("3.学校男子总分排序输出结果\n");
printf("4.学校女子总分排序输出结果\n");
printf("5.查询某个学校成绩\n");
printf("6.查询某个项目成绩\n");
printf("7.结束\n\n");
printf("\n 选择需要的操作(选择序号):\n");
scanf("%d",&num
);
if(num
==1)
Numbering();
if(num
==2)
totalScore();
if(num
==3)
malezf();
if(num
==4)
femalezf();
if(num
==5)
schScore();
if(num
==6)
project();
if(num
==7)
break;
}
}
int main()
{
inputInfo();
menu();
return 0;
}
文档在这里,需要的小伙伴可以拿去参考一下 (里面有两个选题,因为我们老师当初就是让我们做两个选题的) 😛😛😛😛😛 链接:https://pan.baidu.com/s/1m83uA6DoLkxoF_H9947uJA 提取码:hb18
转载请注明原文地址:https://ipadbbs.8miu.com/read-58544.html