版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/程序设计工程训练报告运动会分数统计系统课程名称C语言程序设计工程训练姓名院〔系信息科学与技术学院专业班级学号指导教师教务处制目录1需求分析12系统总框图和功能模块说明22.1系统总框图22.2功能模块说明23系统设计33.1主要结构体33.2主要功能函数33.3关键函数的流程图44系统调试45总结76源程序清单71需求分析1问题描述运动会分数统计参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1~m,女子m+1~m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由使用者设定。〔m<=20,n<=202.基本要求:1>可以输入各个项目的前三名或前五名的成绩;
2>能统计各学校总分;3>可以按学校编号、学校总分、男女团体总分排序输出;
4>可以按学校编号查询学校某个项目的情况;5>可以按项目编号查询取得前三或前五名的学校。3.测试数据首先进入成绩录入界面,先输入参赛学校数,再输入男子组数和女子组数;然后进入总目录;输入:1输入成绩;输入:2统计各校总分;输入:3统计各校项目得分;输入:4按学校总分排序输出;输入:5按男团体总分排序输出;输入:6按女团体总分排序输出;输入:7按学校编号查询学校某个项目的成绩;输入:8按项目编号查询取得前三名或前五名的学校;输入:0退出;2系统总框图和功能模块说明2.1系统总框图启动程序录入学校数,男、女子组数启动程序录入学校数,男、女子组数显示主目录输入成绩统计各校分数统计各校个项目得分按男团体总分排序输出按女团体总分排序输出按学校总分排序输出按学校编号查询学校某个项目的成绩按项目编号查询取得前三名或前五名的学校用户选择某命令,产生相应的操作显示结果,用户选择返回主目录或退出退出程序2.2功能模块说明输入:1输入成绩;···························输入某一项目的成绩输入:2统计各校总分;···········统计各校所有项目总分之和输入:3统计各校项目得分;·······输出各校各项目得分输入:4按学校总分排序输出;·······按照总分从大到小排序输入:5按男团体总分排序输出;····仅按照男子团体总分从大到小排序输入:6按女团体总分排序输出;····仅按照女子团体总分从大到小排序输入:7按学校编号查询学校某个项目的成绩;···输入学校编号及项目编号可查询该校的该项目成绩输入:8按项目编号查询取得前三名或前五名的学校;···输入项目编号可查询该项目获得名次的学校输入:0退出;······退出系统3系统设计3.1主要结构体菜单号choo学校:num项目:ab男团、de女团、ke3.2主要功能函数voidexit0<>voidinput<>voideach<>voidbiaohao<>voidzongfen<>voidnanzong<>voidnvzong<>voidxuexiao<>voidxiangmu<>voidmain<>3.3关键函数的流程图voidexit0<>voidinput<>voidexit0<>voidinput<>voideach<>voidbiaohao<>voidzongfen<>voidnanzong<>voidnvzong<>voidxuexiao<>voidxiangmu<>voidmain<>4系统调试<1>开始界面,分别输入3、7、3.输入1后显示输入2后显示输入3后显示输入4后显示输入5后显示输入6后显示输入7后显示输入8后显示输入9》》》》退出5总结本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。学习的路很长。再有要多问,几个人共同讨论会有意想不到的效果源程序清单#include<stdio.h>#include<stdlib.h>inta,b,c,d,i,j;structnode{intnum;};structnode*f[22];voidexit0<>{FILE*fp;intk;alp:if<<fp=fopen<"e:\\sore.txt","w">>==NULL>{printf<"createrror\n">;printf<"1*****tryagain\n">;printf<"2*****tuichu\n">;printf<"3*****returnmenu\n">;//回到主菜单//alj:scanf<"%d",&k>;if<k==1>gotoalp;elseif<k==2>exit<0>;elseif<k==3>return;else{printf<"输入错误,请重新输入:">;gotoalj;}}printf<fp,"\n\n">;fprintf<fp,"*运动会分数统计表*\n\n\n">;printf<fp,"*项目代号*">;for<i=1;i<=c+d;i++>printf<fp,"%5d",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",f[i][b].num>;}printf<fp,"\n">;}printf<fp,"\n\n">;printf<fp,"the%dschoolnumbers\n\n",a>;/*注:本次运动会有%d个学校参赛*/printf<fp,"1~%d组是男子组,%d~%d组是女子组\n",c,c+1,c+d>;/*其中1~%d组是男子组,%d~%d组是女子组*/printf<"\n*比赛成绩已保存到当前路径下的sore.txt文件中*\n\n">;/*比赛成绩已保存到当前路径下的"sore.txt"文件中*/fclose<fp>;exit<1>;}/*主菜单*/intchoose<>{intchoo;printf<"\n\n1******输入成绩\n">;printf<"2******统计各学校的总分\n">;printf<"3******统计各学校各项目的得分\n">;printf<"4******按学校总分排序输出\n">;printf<"5******按男团体总分排序输出\n">;printf<"6******按女团体总分排序输出\n">;printf<"7******按学校编号查询学校某个项目的成绩\n">;printf<"8******按项目编号查询取得前三或前五名的学校\n">;printf<"9******退出\n\n">;printf<"请选择:">;scanf<"%d",&choo>;return<choo-1>;}/*输入信息*/voidinput<>{intab,ac,ae,af,g=1,get[5]={0,0,0,0,0};printf<"\n请输入项目代号:">;ale:scanf<"%d",&ab>;if<ab>c+d||ab<1>{printf<"\n此项目代号不存在,重新输入:\n">;gotoale;}ae=0;for<i=0;i<=a;i++>{if<f[i][ab].num!=0>{ae=1;break;}}if<ae==1>{al2:printf<"\n此项目成绩已被录入过,是否要重新录入:\n">;//此项目成绩曾经已被录入过,是否要重新录入〔您输入的项目代号可能有误,强烈建议您查证后再录入//printf<"1++++是\n">;//〔若重新录入,以前的该项目成绩将被删除//printf<"2++++否\n">;//不要,待查证后再录入//scanf<"%d",&af>;if<af==2>{printf<"已取消录入!\n">;return;}elseif<af==1>{for<i=1;i<=a;i++>{if<f[i][ab].num!=0>{f[i][0].num=f[i][0].num-f[i][ab].num;if<ab<=c>f[i][c+d+1].num=f[i][c+d+1].num-f[i][ab].num;elsef[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num;}f[i][ab].num=0;}}elsegotoal2;}al:printf<"\n此项目是以前几名为胜出者:\n">;//选择得分标准//printf<"3以前三名\n">;printf<"5以前五名\n">;scanf<"%d",&ac>;if<ac==3>{printf<"请按照第一、第二、第三的名次依次输入获胜学校代号:">;af=5;for<i=0;i<3;i++>{alq:scanf<"%d",&ae>;if<ae>a||ae<1>{printf<"%d学校代号不存在,重新输入第%d名的学校代号:",ae,g>;gotoalq;}for<b=0;b<5;b++>{if<ae==get[b]>{printf<"同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号:",g>;gotoalq;}elseget[b]=ae;}f[ae][0].num=f[ae][0].num+af;f[ae][ab].num=af;if<ab<=c>f[ae][c+d+1].num=f[ae][c+d+1].num+af;elsef[ae][c+d+2].num=f[ae][c+d+2].num+af;if<af>3>af=af-2;elseaf--;g++;}}elseif<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>;gotoalw;}for<b=0;b<5;b++>{if<ae==get[b]>{printf<"同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号:",g>;gotoalw;}elseget[b]=ae;}f[ae][0].num=f[ae][0].num+af;f[ae][ab].num=af;if<ab<=c>f[ae][c+d+1].num=f[ae][c+d+1].num+af;elsef[ae][c+d+2].num=f[ae][c+d+2].num+af;if<af>3>af=af-2;elseaf--;g++;}}elsegotoal;printf<"输入完成!\n">;}/*学校成绩*/voideach<>{printf<"\n学校代号:团体总成绩\n">;for<i=1;i<=a;i++>{printf<"%d:%d\n",i,f[i][0].num>;}}/*各项目成绩*/voidbiaohao<>{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<=c+d;b++>{if<f[i][b].num>9>printf<"%6d",f[i][b].num>;elseprintf<"%7d",f[i][b].num>;}printf<"\n">;}}/*按学校总分排序输出*/voidzongfen<>{structnod{intke;intnum;};intha;structnod*de;de=<structnod*>malloc<sizeof<structnod>*a+1>;printf<"\n学校代号:团体总成绩\n">;for<i=1;i<=a;i++>{de[i].ke=i;de[i].num=f[i][0].num;}for<i=1;i<=a;i++>{for<b=i;b<=a;b++>{if<de[b].num>de[i].num>{ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for<i=1;i<=a;i++>{printf<"%d:%d\n",de[i].ke,de[i].num>;}}/*按男子团队总分排序*/voidnanzong<>{structnod{intke;intnum;};intha;structnod*de;de=<structnod*>malloc<sizeof<structnod>*a+1>;printf<"\n学校代号:男子团体总成绩\n">;for<i=1;i<=a;i++>{de[i].ke=i;de[i].num=f[i][c+d+1].num;}for<i=1;i<=a;i++>{for<b=i;b<=a;b++>{if<de[b].num>de[i].num>{ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for<i=1;i<=a;i++>{printf<"%d:%d\n",de[i].ke,de[i].num>;}}/*按女子团队总分排序*/voidnvzong<>{structnod{intke;intnum;};intha;structnod*de;de=<structnod*>malloc<sizeof<structnod>*a+1>;printf<"\n学校代号:女子团体总成绩\n">;for<i=1;i<=a;i++>{de[i].ke=i;de[i].num=f[i][c+d+2].num;}for<i=1;i<=a;i++>{for<b=i;b<=a;b++>{if<de[b].num>de[i].num>{ha=de[b].ke;de[b].ke=de[i].ke;de[i].ke=ha;ha=de[b].num;de[b].num=de[i].num;de[i].num=ha;}}}for<i=1;i<=a;i++>{printf<"%d:%d\n",de[i].ke,de[i].num>;}}/*按学校编号查询学校某个项目的成绩*/voidxuexiao<>{intdr,dt;printf<"\n要查询的学校代号:">;aly:scanf<"%d",&dr>;if<dr>a||dr<1>{printf<"学校代号不存在,重新输入:">;gotoaly;}printf<"要查询的项目代号:">;alo:scanf<"%d",&dt>;if<dt>c+d||dt<1>{printf<"项目代号不存在,重新输入:">;gotoalo;}printf<"第%d所学校的第%d项目成绩为%d\n",dr,dt,f[dr][dt].num>;}/*按项目编号查询取得前三或前五名的学校*/voidxiangmu<>{intge,sedy=0;printf<"\n要查询的项目代号:">;all:scanf<"%d",&ge>;if<ge>c+d||ge<1>{printf<"没有此项目代号,重新输入:\n">;gotoall;}for<i=1;i<=a;i++>{if<f[i][ge].num==2>sedy=1;}if<sedy==0>{printf<"此项目没有录入成绩\n">;return;}for<i=1;i<=a;i++>{if<f[i][ge].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<f[b][ge].num==i>printf<"%d号学校\n",b>;}}}void<*g[]><>={input,each,biaohao,zongfen,nanzong,nvzong,xuexia
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 简单土方工程合同书
- 税务代理及税务争议解决合同04
- 牛羊肉买卖合同书
- 学生意外伤害赔偿协议
- 2024年度车辆租赁平台服务运营合同3篇
- 2024版设备租赁与维护保养协议3篇
- 商铺出售合同范本
- 世界经济的区域集团化课件
- 家长与孩子的劳动协议书
- 购买房屋协议合同
- GB 15763.1-2009建筑用安全玻璃第1部分:防火玻璃
- 2023年赣州市赣县区乡村振兴发展有限公司招聘笔试题库及答案解析
- 信息技术与聋校数学课堂深度融合的实践与探索获奖科研报告
- -牡丹亭《惊梦》课件
- 慢性贫血中西医治课件
- 医疗集团运营管理解决方案课件
- 外科休克课件
- 展览展示广告制作实施方案
- 《水循环》-完整版课件
- 《分式的通分》导学案
- 植树造林课件介绍
评论
0/150
提交评论