运动会分数统计_第1页
运动会分数统计_第2页
运动会分数统计_第3页
运动会分数统计_第4页
运动会分数统计_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

1、#include#include#include #define N 20 /*学校最大数目*/ #define M 20 /*男子工程最大数目*/ #define W 20 /*女子工程最大数目*/typedef struct int inum; /*工程编号*/ int top; /*取名次的数目*/ int range5; /*名次*/ int mark5; /*分数*/itemnode; /*存放工程信息*/typedef struct int snum; /*学校编号*/ int score; /*学校总分*/ int mscore; /*男团体总分*/ int wscore; /*

2、女团体总分*/ itemnode tM+W; /*工程数组*/snode; /*存放学校信息*/snode aN; /* 定义一个学校数组*/void menu(int n,int m,int w) /*菜单函数*/ int c; void input(int n,int m,int w);void output(int n,int m,int w);void sortput(int n,int m,int w);void search(int n,int m,int w);printf(ttt欢送使用ttttnn); printf(t*运动会分数统计系统*nn); printf(tt*1.信

3、息输入*n); printf(tt*2.统计输出*n); printf(tt*3.排序输出*n); printf(tt*4.信息查询*n); printf(tt*0.退出系统*nn); printf(=nn);printf(请选择要实现步骤的编号(0-4):); scanf(%d,&c);switch(c) case 1: input(n,m,w);break; case 2: output(n,m,w);break; case 3: sortput(n,m,w);break; case 4: search(n,m,w);break; case 0:printf(谢谢使用,再见!n); exi

4、t(0); default: printf(输入错误,请重试!n);menu(n,m,w); void savetofile() /*信息存入文件file*/FILE *fp; int i; if(fp=fopen(file.txt,w)=NULL) printf(cannot open the filen);return; for(i=0;iN;i+) if(ai.snum!=0)if(fwrite(&ai,sizeof(snode),1,fp)!=1)printf(file write errorn);return; fclose(fp);void readfromfile() /*信息从

5、文件file中取出*/ int i;FILE *fp; if(fp=fopen(file.txt,rb)=NULL) printf(cannot open the filen);return; for(i=0;iN;i+)fread(&ai,sizeof(snode),1,fp); fclose(fp);void input(int n,int m,int w) /*1.信息输入*/int i,j,s,k,q=0; for(i=0;in;i+) printf(学校编号:); scanf(%d,&ai.snum); /*输入学校信息*/ for(j=0;jm+w;j+) printf(工程编号:

6、); scanf(%d,&ai.tj.inum);printf(工程取前3名或前5名(3或者5):); scanf(%d,&ai.tj.top);if(ai.tj.top=3)printf(获得名次个数(1-3):);elseprintf(获得名次个数(1-5):); scanf(%d,&k); /*输入工程信息*/ for(s=0;sk;s+) if(ai.tj.top=3)printf(所获名次(1-3):);elseprintf(所获名次(1-5):); scanf(%d,&ai.tj.ranges); /*输入所获名次信息*/ printf(n); for(i=0;in;i+) ai.

7、score=0; ai.mscore=0; ai.wscore=0; /*初始化分数*/for(i=0;in;i+)for(j=0;jm+w;j+)for(s=0;s5;s+) if(ai.tj.top=3)switch(ai.tj.ranges) case 0: ai.tj.marks=0; break; case 1: ai.tj.marks=5; break; case 2: ai.tj.marks=3; break; case 3: ai.tj.marks=2; break;else if(ai.tj.top=5)switch(ai.tj.ranges) case 0: ai.tj.m

8、arks=0; break; case 1: ai.tj.marks=7; break; case 2: ai.tj.marks=5; break; case 3: ai.tj.marks=3; break; case 4: ai.tj.marks=2; break; case 5: ai.tj.marks=1; break;else printf(信息有误!);printf(n);exit(0);ai.score=ai.score+ai.tj.marks; /*记学校总分*/if(j=m-1)ai.mscore=ai.mscore+ai.tj.marks; /*记男子团体总分*/elseai

9、.wscore=ai.wscore+ai.tj.marks; /*记女子团体总分*/printf(输入完毕!返回? 1是 2否n); /*返回菜单*/scanf(%d,&q);printf(n);if(q!=1)printf(不能再添加信息!);printf(n);savetofile(); /*将信息存入文件file*/menu(n,m,w);void output(int n,int m,int w) /*2.统计输出*/ readfromfile();int i,j,s,q=0; for(i=0;in;i+) /*显示结果*/printf(学校编号:%d 学校总分:%d 男团总分:%d

10、女团总分:%dn,ai.snum,ai.score,ai.mscore,ai.wscore); for(j=0;jm+w;j+)printf(工程编号:%d 所取名次数量:%dn,ai.tj.inum,ai.tj.top);for(s=0;s5;s+) if(ai.tj.ranges!=0)printf(名次:%d 分数:%dn,ai.tj.ranges,ai.tj.marks);printf(n);printf(n);printf(统计完毕!返回? 1是 2否); /*返回菜单*/scanf(%d,&q);printf(n);if(q!=1)printf(统计已经结束!);printf(n)

11、; menu(n,m,w);void sortput(int n,int m,int w) /*3.排序输出*/ readfromfile();int c,i,j,k,q=0;int tempN; printf(t*排序输出系统*nn); printf(tt*1.按学校编号输出*n); printf(tt*2.按学校总分输出*n); printf(tt*3.按男团总分输出*n); printf(tt*4.按女团总分输出*n); printf(=nn);do printf(请选择要实现功能的编号(1-4):); scanf(%d,&c);switch(c)case 1: for(i=0;in;i

12、+)tempi=i; for(i=0;in;i+) for(j=i+1;jaj.snum) k=tempi; tempi=tempj; tempj=k; /* 用冒泡排序方法排序*/ for(i=0;in;i+) printf(学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%dn,atempi.snum,atempi.score,atempi.mscore,atempi.wscore); /*按学校编号输出*/ break; case 2: for(i=0;in;i+)tempi=i; for(i=0;in;i+) for(j=i+1;jn;j+)if(atempi.scoreaj

13、.score) k=tempi;tempi=tempj;tempj=k; /* 用冒泡排序方法排序*/for(i=0;in;i+)printf(学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%dn,atempi.snum,atempi.score,atempi.mscore,atempi.wscore); /*按学校总分输出*/break;case 3: for(i=0;in;i+)tempi=i;for(i=0;in;i+) for(j=i+1;jn;j+)if(atempi.mscoreaj.mscore) k=tempi;tempi=tempj;tempj=k; /* 用冒泡

14、排序方法排序*/for(i=0;in;i+)printf(学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%dn,atempi.snum,atempi.score,atempi.mscore,atempi.wscore); /*按男团总分输出*/break; case 4: for(i=0;in;i+)tempi=i;for(i=0;in;i+) for(j=i+1;jn;j+)if(atempi.wscoreaj.wscore) k=tempi;tempi=tempj;tempj=k; /* 用冒泡排序方法排序*/for(i=0;in;i+)printf(学校编号:%d 学校总分:

15、%d 男团总分:%d 女团总分:%dn,atempi.snum,atempi.score,atempi.mscore,atempi.wscore); /*按女团总分输出*/break; default: printf(输入错误,请重试!n);printf(请选择 1 返回主菜单 0继续); /*返回菜单或继续排序*/scanf(%d,&q);printf(n);while(q=0);printf(n);if(q!=0)menu(n,m,w);void search(int n,int m,int w) /*查询函数*/ readfromfile();int c,i,j,k,d,l,q=0; p

16、rintf(t*查询系统*nn); printf(tt*1.按学校编号查询*n); printf(tt*2.按工程编号查询*n); printf(=nn);do k=-1;d=-1;l=-1;printf(请选择要实现功能的编号(1-2):); scanf(%d,&c);switch(c)case 1: printf(要查询的学校编号:); /*查找学校编号下标*/scanf(%d,&c);for(i=0;in;i+)if(ai.snum=c)k=i;if(k=-1)printf(错误:这个学校没有参加此次运动会!n);elseprintf(要查询的工程编号:); /*查找工程编号下标*/ s

17、canf(%d,&c);for(j=0;jm+w;j+)if(ak.tj.inum=c)d=j;if(d=-1)printf(此次运动会没有这个工程n);else /*显示结果*/ printf(这个工程取前 %d名,该学校的成绩如下:n, ak.td.top);for(i=0;i5;i+)if(ak.td.rangei!=0)printf(名次:%dn,ak.td.rangei); break; case 2:printf(要查询的工程编号:); /*查找工程编号下标*/scanf(%d,&c);for(i=0;in;i+)for(j=0;jm+w;j+)if(ai.tj.inum=c)l=j;if(l=-1)printf(此次运动会没有这个工程n);else /*显示结果*/printf(该工程取前 %d名,取得名次的学校n,a0.tl.top);for(i=0; in;i+)for(j=0;j5;j+)if(ai.tl.rangej!=0) printf(学校编号:%d,名次:%dn,ai.snum,ai.tl.rangej); break;default: printf(输入错误,请重试!n);printf(请选择:1.返回主菜单 0.继续); /*返回菜单或继续查询*/scanf(%d,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论