C语言程序设计运动会成绩统计系统_第1页
C语言程序设计运动会成绩统计系统_第2页
C语言程序设计运动会成绩统计系统_第3页
C语言程序设计运动会成绩统计系统_第4页
C语言程序设计运动会成绩统计系统_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

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

文档简介

1、程序设计工程训练报告运动会分数统计系统课程名称C语言程序设计工程训练姓 名院(系)信息科学与技术学院专业班级学 号指导教师教务处制1 需求分析12 系统总框图和功能模块说明 22.1 系统总框图 22.2 功能模块说明 23 系统设计33.1 主要结构体 33.2 主要功能函数 33.3 关键函数的流程图 44 系统调试45 总结76 源程序清单71需求分析1问题描述运动会分数统计参加运动会有n个学校,学校编号为1n0比赛分成m个男子项目,和w个女子 项目。项目编号为男子13 女子m+卜m+w不同的项目取前五名或前三名积分;取前 五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3

2、、2;哪些项目取前五 名或前三名由使用者设定。(m<=20,n<=2。2 .基本要求:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分;3) 可以按学校编号、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个项目的情况;5)可以按项目编号查询取得前三或前五名的学校。3 .测试数据1) 首先进入成绩录入界面,先输入参赛学校数,再输入男子组数和女子组数;2) 然后进入总目录;3) 输入:1输入成绩;4) 输入:2统计各校总分;5) 输入:3统计各校项目得分;6) 输入:4按学校总分排序输出;7) 输入:5按男团体总分排序输出;8) 输入:6按女团体总分

3、排序输出;9) 输入:7按学校编号查询学校某个项目的成绩;10)输入:8按项目编号查询取得前三名或前五名的学校;11)输入:0退出;2系统总框图和功能模块说明2.1 系统总框图按项目编号查询取得前三名或前五名的学校按学校编号查询学校某个项目的成绩按女团体总分排序输出按男团体总分排序输出按学校总分排序输出统计各校个项目得分2.2 功能模块说明1)输入:1输入成绩; 输入某一项目的成绩2) 输入:2统计各校总分; 统计各校所有项目总分之和3) 输入:3统计各校项目得分; 输出各校各项目得分4) 输入:4按学校总分排序输出;按照总分从大到小排序5) 输入:5按男团体总分排序输出;一仅按照男子团体总分

4、从大到小排序6) 输入:6按女团体总分排序输出;一仅按照女子团体总分从大到小排序7) 输入:7按学校编号查询学校某个项目的成绩;一输入学校编号及项目编号可查询该校的该项目成绩8) 输入:8按项目编号查询取得前三名或前五名的学校;一输入项目编号可查询该项目获得名次的学校9) 输入:0退出;退出系统3系统设计3.1 主要结构体菜单号choo学校:num项目:ab男团、de女团、ke3.2 主要功能函数void exit0()void input()void each()void biaohao()void zongfen()void nanzong()void nvzong()void xuexi

5、ao()void xiangmu()void main()3.3 关键函数的流程图void exit0()void input()void each() void biaohao() void zongfen() void nanzong() void nvzong()void xuexiao() void xiangmu()void main()4系统调试<1>开始界面,分别输入3、7、3.* * *运动会分数统计* * *费2个学校参赛,3 个男子组:?1 23456769*成各校目入本学男摹蛰充安贸的与子取 总询 的杀亍.、?口香 总总号号项或nujfi'J绩的f的五

6、输入1后显示请输人项目代号:iJfi1 是二 目一请吟那第一、第二、第三的名次侏次输入杂罢学校代号,I 输入完质,1 M W KM WK24mwkhwk 5*fl*MMWMHUS.S.号号的 !:0_查分 个 得出的出项或询询日前着石的五输入2后显示请选择,2学校代号:团体总成绩项或 个三得由靠前 :>悻学期 忠普.:询询针再查iows-lr人计争罢盅子由学即 总前囱氢号号 团?目 入Ttt学男盅子存出出某团 的-I绩的1的五RTF前请优择;输入3后显示请选择工3攀翡:123451S6e3623663632eH30输入4后显示学校代号:团体总成密1: 51 K-M-MKK-M交的总瀛目的

7、得分青男团界聚注E奇舞i瓶雕露校输入5后显示请选择,S学校代号;男子团体息成绩1: S校学 绩的 f 的五项或 个=出出某前的出学取 总询 的香一 4卷妆分日Jnogr-成各宾团团校目 、人学男/子二二二 二 士 二 二 M 二 二* *123456789输入6后显示请选播6学校代号;女子团体总成个一一得出出某前 的出 八学取 总询 的卷一查分总总号号 成各拿团露目 入t学男宣子输入7后显示? 8请选j圣:7,查询的学校J弋号,1克查询的项目代号;1I 1所享忌第1项目成绩为5绩 的学校f的五un刖项或个-得出出某前 的出 分nWttt学取 的香一 分总总号号成等有maH归目 入M学男豆子田

8、醺统按H 二 二输入8后显示12345678请选择:8零查询的项目代号;工曲项目史前3名学校成绩高到低依次为:5*! 勇q4.1 if7. x X U X x 七 f p校 绩的 的五 同我 项或 分 个一一 得出出某前 的出 分101学取 总图询 的<薯香一 上或悦分急急号号 成各嘉团团校目输入9»»»»退出5总结本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上 的知识,实践才是真理,在学习中实践,实践中去学习。学习的路很长。再有要多问, 几个人共同讨论会有意想不到的效果6源程序清单#include<stdio.

9、h>#include<stdlib.h>int a,b,c,d,i,j;struct nodeint num;;struct node *f22;void exit0()FILE *fp;int k;alp:if(fp=fopen("e:sore.txt","w")尸NULL)printf("creat errorn");printf(" 1*try again'n");printf(" 2*tui chu'n");printf(" 3*return

10、menu'n"); 回到主菜单alj: scanf("%d",&k);if(k=1)goto alp;else if(k=2)exit(0);else if(k=3) return;else printf("输入错误,请重新输入:");goto alj; printf(fp,"nn");fprintf(fp," *运动会分数统计表*nnn");printf(fp," * 项目代号 *");for(i=1;i<=c+d;i+)printf(fp,"%5d&

11、quot;,i);printf(fp,"");printf(fp,"n *学校代号 *");for(i=1;i<=a;i+)printf(fp,"%10d ",i);for(b=1;b<=c+d;b+)printf(fp,"%5d",fib.num);printf(fp,"n");注:本次运动会有d个学校参赛*/printf(fp,"n'n");printf(fp," the %d school numbersnn",a); /*其中1

12、 %间是男子组,%dprintf(fp," 1 %d组是男子组,%d %间是女子组 n",c,c+1,c+d); /* %d组是女子组*/printf("n*比赛成绩已保存到当前路径下的sore.txt 文件中*nn");/*比赛成绩已保存到当前路径下的"sore.txt" fclose(fp);exit(1);/*主菜单*/int choose()int choo;printf("nn 1*printf(" 2*文件中*/printf(" 3*printf(" 4*输入成绩n");统

13、计各学校的总分n");统计各学校各项目的得分n");按学校总分排序输出n");printf(" 5*按男团体总分排序输出n");printf(" 6*按女团体总分排序输出n");printf(" 7*按学校编号查询学校某个项目的成绩 n");printf(" 8*按项目编号查询取得前三或前五名的学校n");printf(" 9*退出 nn");printf("请选择:");scanf("%d",&choo);retur

14、n(choo-l);/*输入信息*/void input()int ab,ac,ae,af,g=1,get5=0,0,0,0,0;printf("n请输入项目代号:");ale:scanf("%d",&ab);if(ab>c+d|ab<1)printf("n 此项目代号不存在,重新输入:n");goto ale;ae=0;for(i=0;i<=a;i+)if(fiab.num!=0)ae=1;break;if(ae=1)此项目成绩曾经已被录入过,/al2: printf("n 此项目成绩已被录入过,

15、是否要重新录入:n"); 是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入)printf(" 1+ 是n");/ (若重新录入,以前的该项目成绩将被删除) printf(" 2+ 否n"); 不要,待查证后再录入 scanf("%d",&af);if(af=2)printf("已取消录入!n");return;else if(af=1)for(i=1;i<=a;i+)if(fiab.num!=0)fi0.num=fi0.num-fiab.num;if(ab<=c)fic

16、+d+1.num=fic+d+1.num-fiab.num; elsefic+d+2.num=fic+d+2.num-fiab.num;fiab.num=0;elsegoto al2;al: printf("n此项目是以前几名为胜出者:n"); 选择得分标准printf(" 3 以前三名 n");printf(" 5 以前五名 n");scanf("%d",&ac);if(ac=3)printf(" 请按照第一、第二、第三的名次依次输入获胜学校代号:”);af=5; for(i=0;i<3;

17、i+) alq: scanf("%d",&ae); if(ae>a|ae<1) printf(" %d学校代号不存在,重新输入第d名的学校代号:",ae,g);goto alq;for(b=0;b<5;b+) if(ae=getb) printf("同一个学校不能在同一项目中有两个名次,请重新输入第名的学校代号:",g);goto alq; else getb=ae;fae0.num=fae0.num+af;faeab.num=af;if(ab<=c)faec+d+1.num=faec+d+1.num+

18、af; elsefaec+d+2.num=faec+d+2.num+af;if(af>3) af=af-2;else af-; g+;else if(ac=5)printf("请按照第一、第二、第三、第四、第五的名次依次输入获胜学校代号:”);af=7;for(i=0;i<5;i+)alw: scanf("%d",&ae);if(ae>a|ae<1)printf(" %d学校代号不存在,重新输入第d名的学校代号:",ae,g);goto alw;for(b=0;b<5;b+) if(ae=getb) pri

19、ntf("同一个学校不能在同一项目中有两个名次,请重新输入第名的学校代号:",g);goto alw; else getb=ae;fae0.num=fae0.num+af;faeab.num=af; if(ab<=c)faec+d+1.num=faec+d+1.num+af; elsefaec+d+2.num=faec+d+2.num+af;if(af>3) af=af-2;else af-; g+;elsegoto al;printf(" 输入完成! n");/*学校成绩*/void each()printf("n学校彳弋号:团体

20、总成绩n");for(i=1;i<=a;i+)printf(" %d : %dn",i,fi0.num);/*各项目成绩*/void biaohao()printf("n 项目代号:");for(i=1;i<=c+d;i+)if(i>9)printf(" %d ",i);elseprintf("%5d ",i);printf("n 学校代号:n");for(i=1;i<=a;i+)printf("%7d ",i);for(b=1;b<=

21、c+d;b+)if(fib.num>9)printf("%6d",fib.num);elseprintf("%7d",fib.num);printf("n");/*按学校总分排序输出*/void zongfen()struct nodint ke;int num;;int ha;struct nod *de;de=(struct nod *)malloc(sizeof(struct nod)*a+1);printf("n学校彳弋号:团体总成绩n");for(i=1;i<=a;i+)dei.ke=i;de

22、i.num=fi0.num;for(i=1;i<=a;i+)for(b=i;b<=a;b+)if(deb.num>dei.num)ha=deb.ke;deb.ke=dei.ke;dei.ke=ha;ha=deb.num;deb.num=dei.num;dei.num=ha;for(i=1;i<=a;i+)printf(" %d : %dn",dei.ke,dei.num);/*按男子团队总分排序*/void nanzong()struct nodint ke;int num;int ha;struct nod *de;de=(struct nod *

23、)malloc(sizeof(struct nod)*a+1);printf("n学校彳弋号:男子团体总成绩n");for(i=1;i<=a;i+)dei.ke=i;dei.num=fic+d+1.num;for(i=1;i<=a;i+)for(b=i;b<=a;b+)if(deb.num>dei.num)ha=deb.ke;deb.ke=dei.ke;dei.ke=ha;ha=deb.num;deb.num=dei.num;dei.num=ha;for(i=1;i<=a;i+) printf(" %d : %dn",dei

24、.ke,dei.num); /*按女子团队总分排序*/void nvzong()struct nodint ke;int num;;int ha;struct nod *de;de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf("n学校彳弋号:女子团体总成绩n");for(i=1;i<=a;i+)dei.ke=i;dei.num=fic+d+2.num;for(i=1;i<=a;i+)for(b=i;b<=a;b+)if(deb.num>dei.num)ha=deb.ke;deb.ke=de

25、i.ke;dei.ke=ha;ha=deb.num;deb.num=dei.num; dei.num=ha;for(i=1;i<=a;i+) printf(" %d : %dn",dei.ke,dei.num);/*按学校编号查询学校某个项目的成绩 */void xuexiao()int dr,dt;printf("n要查询的学校代号:");aly:scanf("%d",&dr);if(dr>a|dr<1)printf("学校代号不存在,重新输入:");goto aly;printf(&q

26、uot;要查询的项目代号:");alo:scanf("%d",&dt);if(dt>c+d|dt<1)printf("项目代号不存在,重新输入:");goto alo;printf("第 %d 所学校的第 %d 项目成绩为 dn",dr,dt,fdrdt.num);/*按项目编号查询取得前三或前五名的学校*/void xiangmu()int ge,sedy=0;printf("n 要查询的项目代号:");all:scanf("%d",&ge);if(ge&

27、gt;c+d|ge<1)printf("没有此项目代号,重新输入:n");goto all;for(i=1;i<=a;i+)if(fige.num=2)sedy=1;if(sedy=0)printf("此项目没有录入成绩n");return;for(i=1;i<=a;i+)if(fige.num=7)printf(" 此项目取前5名学校成绩高到低依次为:n");break;if(i=a+1)printf(" 此项目取前3名学校成绩高到低依次为:n ");for(i=7;i>0;i-)for(b=1;b<=a;b+)if(fbge.num=i)printf(" %d号学校 n",b);void(*g口)()=input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0;/*主函数*/void main()int choos;printf(&q

温馨提示

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

最新文档

评论

0/150

提交评论