欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    C语言课程设计之校运动会管理系统的设计与实现.doc

    • 资源ID:6178166       资源大小:568.50KB        全文页数:31页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课程设计之校运动会管理系统的设计与实现.doc

    一 题目要求课题:校运动会管理系统的设计与实现具体要求:(1)信息初始化,依次输入: N参赛学校总数 M男子竞赛项目数 W女子竞赛项目总数 各项目名次取法有以下几种: 取前五名:第一名得分7分,第二名得分5分,第三名得分3分,第四名2分,第五名得分1分。 取前三名:第一名得分5分,第二名得分3分,第三名得分2分。 用户自定义:各名次权值由用户定义。(2)提醒用户填写比赛结果,输入各项目获奖运动员的信息。(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。二 需求分析根据题目要求,将学校的信息和比赛项目等信息存放到指定的文件中,并能实现相关信息的浏览功能,故在程序中应提供输入,输出,显示,查找,排序等操作。三 总体设计由需求分析可讲系统分为信息输入模块,比赛录入模块和查询模块三个模块,并追加一些辅助模块以增加程序的功能,方便使用。四 详细设计 1 主函数主要通过main()函数及choose()函数实现.void main() /*主函数*/ int choos printf("nn * * * 运动会分数统计 * * *nnn"); printf("共有多少个学校参赛:"); scanf("%d",&a); while(a<=0|a>20) if(a<=0) printf("n 参赛学校个数不能是负数或零nn"); printf("共有多少个学校参赛:"); scanf("%d",&a); 图1 主函数流程图 if(a>20) printf("n 参赛学校个数不能大于20nn"); printf("共有多少个学校参赛:"); scanf("%d",&a); printf("有几个男子组:"); scanf("%d",&c); printf("有几个女子组:"); scanf("%d",&d); for(i=0;i<=a;i+) fi=(struct node *)malloc(sizeof(struct node)*(c+d+3); for(j=0;j<=c+d+2;j+) fij.num=0; choos=choose(); while(1) while(choos<0|choos>8) choos=choose(); (*gchoos)(); printf("n"); choos=choose(); int choose() int choo; printf("nn 1*输入成绩n");printf(" 2*统计各学校的总分n"); printf(" 3*按学校编号排序输出n"); printf(" 4*按学校总分排序输出n"); printf(" 5*按男团体总分排序输出n"); printf(" 6*按女团体总分排序输出n"); printf(" 7*按学校编号查询学校某个项目的成绩n"); printf(" 8*按项目编号查询取得前三或前五名的学校n"); printf(" 9*退出nn"); printf("请选择:"); scanf("%d",&choo); 2 成绩输入结束输入运动项目代号输入评分制度依次输入获奖学校开始是否在范围是否为三或五图2 运动会成绩输入流程图当选择1 时进行成绩的输入.实现的功能函数为input(),相关实现如下: 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此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入):n"); printf(" 1+重新录入(若重新录入,以前的该项目成绩将被删除)n"); printf(" 2+不要,待查证后再录入nn"); 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+d+1.num=fic+d+1.num-fiab.num; else fic+d+2.num=fic+d+2.num-fiab.num; fiab.num=0; else goto al2; al: printf("n此项目是以前几名为胜出者:nn"); printf(" 3-以前三名n"); printf(" 5-以前五名nn"); scanf("%d",&ac); if(ac=3) printf("n请依次输入获胜学校代号:"); af=5; for(i=0;i<3;i+) alq: scanf("%d",&ae); if(ae>a|ae<1) printf("%d学校代号不存在,重新输入第%d名的学校代号n",ae,g); goto alq; for(b=0;b<5;b+) if(ae=getb) printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!n",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+af; else faec+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名的学校代号n",ae,g); goto alw; for(b=0;b<5;b+) if(ae=getb) printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!n",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; else faec+d+2.num=faec+d+2.num+af; if(af>3) af=af-2; else af-; g+; else goto al; printf("nn 输入完成 ! ! ! ! n"); 3 成绩统计当选择2 时进行成绩的输入.实现的功能函数为each (),相关实现如下:void each() printf("n 对应的格式为:n 学校代号:团体总成绩nn "); for(i=1;i<=a;i+) printf("%2d:%3d ",i,fi0.num); if(i%3=0) printf("n "); 4 按照各种方式输出 主要有按学校编号输出,按学校总分输出,按男团输出,按女团输出.相关实现分别如下:void biaohao() printf("n项目代号 "); for(i=1;i<=c+d;i+) if(i>9) printf("%4d ",i); else printf("%5d ",i); printf("n"); printf("学校代号 n"); for(i=1;i<=a;i+) printf(" %d ",i); for(b=1;b<=c+d;b+) if(fib.num>9) printf("%4d",fib.num); else printf("%5d",fib.num); printf("n"); void zongfen() struct nod int ke; int num; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1);printf("n 按学校编号排序输出nn"); printf(" 学校代号 总分nn"); for(i=1;i<=a;i+) dei.ke=i; dei.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("%13d%8dn",dei.ke,dei.num); void nanzong() struct nod int ke; int num; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf("n 按男子团体总分排序输出nn"); printf(" 学校代号 男子团体总分nn"); 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("%13d%12dn",dei.ke,dei.num); void nvzong() struct nod int ke; int num; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf(" 按女子团体总分排序输出nn"); printf(" 学校代号 女子团体总分nn"); 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=dei.ke; dei.ke=ha; ha=deb.num; deb.num=dei.num; dei.num=ha; for(i=1;i<=a;i+) printf("%15d%13dn",dei.ke,dei.num); void xuexiao() int dr,dt; printf("n请输入您要查询的学校代号:"); aly:scanf("%d",&dr); if(dr>a|dr<1) printf("学校代号不存在,重新输入n"); goto aly; printf("请输入您要查询的项目代号:"); alo:scanf("%d",&dt); if(dt>c+d|dt<1) printf("项目代号不存在,重新输入n"); goto alo; printf("nn %3d 学校的%3d 项目成绩为%3dn",dr,dt,fdrdt.num); 5查询功能开始输入学校编号查询输入项目编号查询是否符合要求是否符合要求输入要查询项目代号输入要查询学校代号是否符合要求是否符合要求继续查询或返回主菜单继续查询或返回主菜单结束图3 查询流程图按学校编号查询学校某个项目的成绩以xuexiao()及按项目编号查询取得前三或前五名的学校void xuexiao() int dr,dt; printf("n请输入您要查询的学校代号:"); aly:scanf("%d",&dr); if(dr>a|dr<1) printf("学校代号不存在,重新输入n"); goto aly; printf("请输入您要查询的项目代号:"); alo:scanf("%d",&dt); if(dt>c+d|dt<1) printf("项目代号不存在,重新输入n"); goto alo; printf("nn %3d 学校的%3d 项目成绩为%3dn",dr,dt,fdrdt.num); void xiangmu() int ge,sedy=0; printf("n 请输入您要查询的项目代号:"); all:scanf("%d",&ge); printf("n");if(ge>c+d|ge<1) printf("没有此项目代号,重新输入n"); goto all; for(i=1;i<=a;i+) if(fbge.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"); printf("n 获胜名单由成绩高到低依次为:nn "); for(i=7;i>0;i-) for(b=1;b<=a;b+) if(fbge.num=i) printf("%5d",b); 6 保存退出void exit0() FILE *fp; int k; alp:if(fp=fopen("","w")=NULL) printf("创建文件失败n"); printf(" 1*重试n"); printf(" 2*强制退出(数据将不会保存到文件)n"); printf(" 3*回到主菜单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; fprintf(fp,"nn"); fprintf(fp,"运动会分数统计表nnn"); fprintf(fp,"项目代号"); for(i=1;i<=c+d;i+) fprintf(fp,"%5d",i); fprintf(fp," "); fprintf(fp,"n 学校代号n"); for(i=1;i<=a;i+) fprintf(fp,"%10d",i); for(b=1;b<=c+d;b+) fprintf(fp,"%5d",fib.num); fprintf(fp,"n"); fprintf(fp,"nn"); fprintf(fp," 注:本次运动会有%d个学校参赛nn",a); fprintf(fp," 其中1 %d组是男子组,%d %d组是女子组n",c,c+1,c+d); printf("n比赛成绩已保存到当前路径下的文件中nn"); fclose(fp); exit(1); 五 原程序代码#include <>#include <>#include <>#include<>int a,b,c,d,i,j; struct node int num; ; struct node *f22; void exit0() /*保存退出*/ FILE *fp; int k; alp:if(fp=fopen("","w")=NULL) printf("创建文件失败n"); printf(" 1*重试n"); printf(" 2*强制退出(数据将不会保存到文件)n"); printf(" 3*回到主菜单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; fprintf(fp,"nn"); fprintf(fp,"*运动会分数统计表*nn");fprintf(fp,"*统计者:可输入个人姓名");fprintf(fp,"项目代号 "); for(i=1;i<=c+d;i+) fprintf(fp," %d",i); fprintf(fp," "); fprintf(fp,"n学校代号n"); for(i=1;i<=a;i+) fprintf(fp,"%10d",i); for(b=1;b<=c+d;b+) fprintf(fp,"%5d",fib.num); fprintf(fp,"n"); fprintf(fp,"nn"); fprintf(fp," 注:本次运动会有%d个学校参赛nn",a); fprintf(fp," 其中1 %d组是男子组,%d %d组是女子组n",c,c+1,c+d); printf("n比赛成绩已保存到当前路径下的文件中nn"); fclose(fp); exit(1); int choose() /*进行项目选择*/ int choo; printf("nn 1*输入成绩n"); printf(" 2*统计各学校的总分n"); printf(" 3*按学校编号排序输出n"); printf(" 4*按学校总分排序输出n"); printf(" 5*按男团体总分排序输出n"); printf(" 6*按女团体总分排序输出n"); printf(" 7*按学校编号查询学校某个项目的成绩n"); printf(" 8*按项目编号查询取得前三或前五名的学校n"); printf(" 9*退出nn"); printf("请选择:"); scanf("%d",&choo); return(choo-1); 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此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入):n"); printf(" 1+重新录入(若重新录入,以前的该项目成绩将被删除)n"); printf(" 2+不要,待查证后再录入nn"); 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+d+1.num=fic+d+1.num-fiab.num; else fic+d+2.num=fic+d+2.num-fiab.num; fiab.num=0; else goto al2; al: printf("n此项目是以前几名为胜出者:nn"); printf(" 3-以前三名n"); printf(" 5-以前五名nn"); scanf("%d",&ac); if(ac=3) printf("n请依次输入获胜学校代号:"); af=5; for(i=0;i<3;i+) alq: scanf("%d",&ae); if(ae>a|ae<1) printf("%d学校代号不存在,重新输入第%d名的学校代号n",ae,g); goto alq; for(b=0;b<5;b+) if(ae=getb) printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!n",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+af; else faec+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名的学校代号n",ae,g); goto alw; for(b=0;b<

    注意事项

    本文(C语言课程设计之校运动会管理系统的设计与实现.doc)为本站会员(大张伟)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开