教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

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

来源:网络收集 时间:2026-08-28
导读: 一 题目要求 课题:校运动会管理系统的设计与实现 具体要求: (1)信息初始化,依次输入: N—参赛学校总数 M—男子竞赛项目数 W—女子竞赛项目总数 各项目名次取法有以下几种: ①取前五名:第一名得分7分,第二名得分5分,第三名得分3分,第四名2分,第五

一 题目要求

课题:校运动会管理系统的设计与实现 具体要求:

(1)信息初始化,依次输入:

N—参赛学校总数 M—男子竞赛项目数 W—女子竞赛项目总数 各项目名次取法有以下几种:

①取前五名:第一名得分7分,第二名得分5分,第三名得分3分,第四名2分,第五名得分1分。

②取前三名:第一名得分5分,第二名得分3分,第三名得分2分。 ③用户自定义:各名次权值由用户定义。

(2)提醒用户填写比赛结果,输入各项目获奖运动员的信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。

二 需求分析

根据题目要求,将学校的信息和比赛项目等信息存放到指定的文件中,并能实现相关信息的浏览功能,故在程序中应提供输入,输出,显示,查找,排序等操作。

三 总体设计

由需求分析可讲系统分为信息输入模块,比赛录入模块和查询模块三个模块,并追加一些辅助模块以增加程序的功能,方便使用。

四 详细设计

1

主函数

主要通过main()函数及choose()函数实现.

void main() /***************主函数**************/ {

int choos

printf("\n\n * * * 运动会分数统计 * * *\n\n\n"); printf("共有多少个学校参赛:");

scanf("%d",&a); while(a<=0||a>20) {

if(a<=0) {

printf("\n 参赛学校个数不能是负数或零\n\n");

printf("共有多少个学校参赛:"); scanf("%d",&a); }

if(a>20) {

printf("\n 参赛学校个数不能大于20\n\n"); printf("共有多少个学校参赛:"); scanf("%d",&a); } }

printf("有几个男子组:");

scanf("%d",&c); printf("有几个女子组:"); scanf("%d",&d); for(i=0;i<=a;i++) {

f[i]=(struct node *)malloc(sizeof(struct node)*(c+d+3)); for(j=0;j<=c+d+2;j++) f[i][j].num=0; }

choos=choose();

while(1) {

while(choos<0||choos>8) choos=choose(); (*g[choos])(); printf("\n"); choos=choose(); } }

int choose() {

int choo;

printf("\n\n 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*退出\n\n"); printf("请选择:");

scanf("%d",&choo);

2 成绩输入

当选择1 时进行成绩的输入.实现的功能函数为input(),相关实现如下:

{ void input()

int ab,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"); goto ale; } 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\n"); scanf("%d",&af); if(af==2) {

printf("您已取消录入!!!!!\n"); return; }

else if(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; else

f[i][c+d+2].num=f[i][c+d+2].num-f[i][ab].num; }

f[i][ab].num=0; }

}

else

goto al2; }

al: printf("\n此项目是以前几名为胜出者:\n\n"); printf(" 3-------以前三名\n"); printf(" 5-------以前五名\n\n"); 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==get[b]) {

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!!!\n",g); goto alq; } else

get[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; else

f[ae][c+d+2].num=f[ae][c+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==get[b])

{

printf("同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号!!!\n",g); goto alw; }

else

get[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; else

f[ae][c+d+2].num=f[ae][c+d+2].num+af; …… 此处隐藏:2503字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言课程设计之校运动会管理系统的设计与实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/109528.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)