版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务:参加运动会有n个学校,学校编号为1……n0比赛分成m个男子工程,和w个女子工
程。工程编号为男子1……m,女子m+1……m+we不同的工程取前五名或前三名积分:取前五名的
积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己
设定。(水二20,水二20)
功能要求:1).可以输入各个工程的前三名或前五名的成绩;
2).能统计各学校总分,
3).可以按学校编号、学校总分、男女团体总分排序输出;
4).可以按学校编号查询学校某个工程的情况;可以按工程编号查询取得前三或前五名的学校。
规定:输入数据形式和范闱:20以内的整数(如果做得更好可以输入学校的名称,运动工程
的名称)
输出形式;有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,艰据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文
件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的
上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以
保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
#include<stdio.h>
ttinclude<string>
#includo<iomanip>
#include<fstream>
usingnamespacestd;
intn,m,w;
structpro〃表示工程的结构体
{
stringname;〃工程名称
intsnum[6];〃前5名学校的编号
}p[21];
structschool〃表示学校的结构体
(
intnum;
stringname;〃学校名称
intscore;〃学校总分
intmale;〃男子总分
intfemale;〃女子总分
)sch[21];
intintegral1[5]={7,5,3,2,1};//前五名得分
intintegral2[3]={5,3,2};〃前三名得分
voidinput()
{
inti,j,y,x;
printf(〃输入学校数目:〃);
y=0;
scanf(飞d",&n);
if(n>=l&&n<=20)
y=i;
if(y)break:
else
printf("输入数据有误,请重新输入:“);
for(i=l;i<=n;i++)
(
printf("输入第%d个学校的名称:”,i);
scanf("*s”,&sch[i].name);
sch[i].score=0;
sch[i].female=();
sch[i].malc-O;
sch[i].num=i;
)
printf("输入男子工程数和女子工程数:“);
y-0;
scanf("%d%d”,&m,&w);
if(m<=20&&m>=1&&w<=20&&w>=l)y=l;
if(y)break;
elseprintf("输入数据有误,请重新输入:“);
)
for(i=l;i<=m+w;i++)
(
printf("输入第%d个工程的名称:\n”,i);
scanf("s”,&p[i].name);
printf("输入第%d个工程的前5名的学校编号八n〃,i);
for(j=l;j<=5;j++)
(
y=0;
while(l)
(
,,,,
scanf(%d,&x);
if(x>=l&&x<=20)y=l;
if(y)break;
elseprintf("输入数据有误,请重新输入
)
p[i].snum[j]=x;
sch[x].score+=intcgral[j-1];
if(i<=m)sch[x].male+=integral[j-1];
elsesch[x].female+=integral[j-1];
)
)
)
voidprint(inti)
printf(z,%d%d%s%d%d%d%d%d%dz,,sch.i],num,setw(10),sch[i].name,setw(8),sch[i].score,setw(9)
,sch[i].male,setw(10),sch[i].female);
)
voidhianhaoO//按编号排序
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[ij.num>sch[j].num)
{t=sch[i];sch[i]=sch[j];sch[j]=:;}
)
printfC\n按编号排列:\n");
printf(〃编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
print(i);
)
voidzongfenO〃按学校总分排序
(
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[i].score<sch[j].score)
{t=sch[i];sch[i]=sch[j];sch[j]=:;}
)
printf('An按学校总分排列:\n");
printf(“编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
print(i);
ofstreamfout;
fout.open("运动会分数统计.txt");
fout«〃编号学校名称总分男子总分女子总分“<<endl;
for(i=l;i<=n;i++)
{fout«sch[i].num«setw(13)<<sch[i].name«setw(8)«sch[i].score«setw(9)
<<sch[i].male«setw(10)«sch[i].female<<endl;}
fout.close();
)
voidmalezf()〃按学校男总分排序
(
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[iLmale<sch[j].male)
{t=sch[i];sch[i]=sch[j];sch[j]=7;}
)
printfC\n按学校男子总分排列:\n〃);
printf("编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
print(i);
)
voidfemalezf()〃按学校女总分排序
(
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[i].female<sch[j].female)
{t=sch[i];sch[i]=sch[j];sch[j]=:;}
}
printfC\n按学校女子总分排列:\n〃);
printf(“编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i+十)
print(i);
printf;
)
voidcxsch()//查询学校信息
(
inti,y,s;
printf("输入需要查询的学校编号:");
y=0;
while(l)
(
scanf&s);
if(s>=l&&s<=n)y=l;
if(y)break;
elseprintf("输入数据有误,请重新输入
)
printf(〃该学校相关信息:\n");
printf("编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
(
if(sch[i].num==s)
(
print(i);
break;
}
)
printf('\n");
)
voidr.xxmO〃查询T程信息
{
inti,y,s;
printf("输入需要查询的工程编号:");
y=0;
whi1e(1)
(
scanf("%d",&s);
if(s>=l&&s<=n)y=l;
if(y)break;
elseprintf(〃输入数据有误,请重新输入
)
printfC%s前5名学校编号及名称为\n”,p[s].name);
printf(“名次编号学校名称\n〃);
for(i=l;i<=5;i++)
printf(*%d%d%d%s\n/z,i,p[s].snum[i],setw(12),sch[p[s].snum[i]].name);
printf;
)
voidsolve()〃菜单函数
(
intz;
while(l)
(
printfC\n选择您需要的操作(选择序号):\n");
printf(*1.按学校编号排序输出\n");
printf("2.按学校总分排序输出\n〃);
printf("3.按学校男总分排序输出\n");
printf(〃4.按学校女总分排序输出\n〃);
printf("5.查询某个学校成绩\n〃);
printfC6.查询某个工程成绩\n");
printf("7.结束\n\n");
scanf("%d",&z);
if(z==l)bianhao();
if(z~2)zongfen();
if(z==3)malezf();
if(z==4)femalezf();
if(z==5)cxsch();
if(z==6)cxxm();
if(z==7)break;
)
)
intmain()〃主函数
inputO;
solveO;
return0:
)
#include<stdio.h>
#include<string>
#include<iomanip>
#include<fstream>
usingnamespacestd;
intn;//n个学校
int叫〃m个男子工程
intw;〃w个女子工程
structpro〃表示工程的结构体
(
stringname;〃工程名称
intsnum[6];〃前5名学校的编号
structschool〃表示学校的结构体
{
intnum;
stringname;〃学校名称
intscore;〃学校总分
intmale;〃男子总分
intfemale;〃女子总分
}sch[21];
intintegral[5]={7,5,3,2,1};〃前五名得分
voidinput()
(
inti,j,y,x;
printf(〃输入学校数目:〃);
y=0;
while(l)
(
scanf&n);
if(n>=l&&n<=20)y=l;
if(y)break;
elseprintf("输入数据有误,请重新输入:");
)
for(i=l;i<=n;i++)
(
printf("输入第%d个学校的名称:〃,i);
scanf("$s”,&sch[i].name);
sch[i].score=0;
sch[i].female=O;
sch[i].male=O;
sch[i].num=i;
)
printf(〃输入男子工程数和女子工程数:〃);
y=0;
whi1e(1)
(
scanf(飞d%d",&m,&w);
if(m<=20&&m>=1&&w<=20&&w>=l)y=l;
if(y)break;
elseprintf("输入数据有误,请重新输入:“);
)
for(i=l;i<=m+w;i++)
(
printf("输入第%d个工程的名称:\n”,i);
scanf("s”,&p[i].name);
printf("输入第%d个工程的前5名的学校编号八n〃,i);
for(j=l;j<=5;j++)
(
y=0;
while(l)
(
,,,,
scanf(%d,&x);
if(x>=l&&x<=20)y=l;
if(y)break;
elseprintf("输入数据有误,请重新输入
)
p[i].snum[j]=x;
sch[x].score+=intcgral[j-1];
if(i<=m)sch[x].male+=integral[j-1];
elsesch[x].female+=integral[j-1];
)
)
)
voidprint(inti)
printf(z,%d%d%s%d%d%d%d%d%dz,,sch.i],num,setw(10),sch[i].name,setw(8),sch[i].score,setw(9)
,sch[i].male,setw(10),sch[i].female);
)
voidhianhaoO//按编号排序
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[ij.num>sch[j].num)
{t=sch[i];sch[i]=sch[j];sch[j]=:;}
)
printfC\n按编号排列:\n");
printf(〃编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
print(i);
)
voidzongfenO〃按学校总分排序
(
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[i].score<sch[j].score)
{t=sch[i];sch[i]=sch[j];sch[j]=:;}
)
printf('An按学校总分排列:\n");
printf(“编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
print(i);
ofstreamfout;
fout.open("运动会分数统计.txt");
fout«〃编号学校名称总分男子总分女子总分“<<endl;
for(i=l;i<=n;i++)
{fout«sch[i].num«setw(13)<<sch[i].name«setw(8)«sch[i].score«setw(9)
<<sch[i].male«setw(10)«sch[i].female<<endl;}
fout.close();
)
voidmalezf()〃按学校男总分排序
(
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[iLmale<sch[j].male)
{t=sch[i];sch[i]=sch[j];sch[j]=7;}
)
printfC\n按学校男子总分排列:\n〃);
printf("编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
print(i);
)
voidfemalezf()〃按学校女总分排序
(
inti,j;
schoolt;
for(i=l;i<n;i++)
(
for(j=i;j<=n;j++)
if(sch[i].female<sch[j].female)
{t=sch[i];sch[i]=sch[j];sch[j]=:;}
}
printfC\n按学校女子总分排列:\n〃);
printf(“编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i+十)
print(i);
printf;
)
voidcxsch()//查询学校信息
(
inti,y,s;
printf("输入需要查询的学校编号:");
y=0;
while(l)
(
scanf&s);
if(s>=l&&s<=n)y=l;
if(y)break;
elseprintf("输入数据有误,请重新输入
)
printf(〃该学校相关信息:\n");
printf("编号学校名称总分男子总分女子总分\n〃);
for(i=l;i<=n;i++)
(
if(sch[i].num=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年永嘉县保安服务有限公司公开招聘1名劳务派遣的备考题库及1套完整答案详解
- 广东省城市技师学院2025年公开招聘工作人员备考题库附答案详解
- 2026年浙江特产集团有限公司公开招聘备考题库及答案详解(考点梳理)
- 2025年图们市安置委培生招聘员额制工作人员备考题库带答案详解
- 国网浙江电力2026年度高校毕业生招聘1170人备考题库及参考答案详解1套
- 2026年温岭市第五人民医院招聘备考题库及完整答案详解
- 2026年山东高速四川产业发展有限公司招聘备考题库完整答案详解
- 2025年成都东部新区公开(考核)招聘高层次教育人才备考题库及一套完整答案详解
- 2026年泉州市惠安县总医院(第四季度)编外、外包卫技等人员招聘的备考题库含答案详解
- 2026年山东高速四川产业发展有限公司招聘备考题库含答案详解
- 中康科技腾讯健康:2024年消费者健康洞察呼吸系列报告-鼻炎鼻窦炎篇预览版
- 2025年6月浙江普通高中学业水平选择性考试英语试题(原卷)含答案
- 医院科室情况介绍
- 加速康复外科中国专家共识及治疗路径管理指南(2023版)
- QGDW11970.1-2023输变电工程水土保持技术规程第1部分水土保持方案
- 购物中心招商策略与运营管理
- 药品共线生产质量风险管理指南(官方2023版)
- 2025年教科新版九年级历史上册阶段测试试卷含答案
- 中高净值人群财富管理法律服务白皮书
- 血透尿毒症脑病
- 巴彦淖尔市老年康复护理院朗润园网点建设项目环境影响报告表(2021年新版环评)
评论
0/150
提交评论