C语言运动会计分程序编写(一)_第1页
C语言运动会计分程序编写(一)_第2页
C语言运动会计分程序编写(一)_第3页
C语言运动会计分程序编写(一)_第4页
C语言运动会计分程序编写(一)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务:参加运动会有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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论