欢迎来到中博奥技术有限公司官网

奥赛运动会管理系统

时间:2023-02-06 作者:老师 来源:网络 点击量:

奥赛运动会管理系统

安全

奥赛运动会管理系统

运动会控制控制系统按照结构可以分为哪几类?其特点是什么?

奥赛运动会管理系统

运动会管理系统可以这样设计
1 数据库文档设计
2 数据结构设计
3 程序 (对数据库的管理)
1 数据库文档 信息 存储格式
运动会管理系统 首先要有运动员,参赛单位,运动会运动项目
可以分三个库存放(这里的库是广义的,可以使用数据库软件系统的库,可以使用自己定义的库形式,或是文本文件)
运动员库信息:
ID (唯一标示符)
姓名,性别,出生年月,(身高,体重,籍贯 等)
本次参赛项目: 项目1{项目ID 比赛时间 名次 破纪录} 项目2...
参赛历史: {运动会届 单位 项目 名次 破纪录} ...
(如果不实现历史查询功能,可去掉参赛历史记录)
参赛单位:
单位ID
单位名称
参赛运动员{ID } ...
参赛项目{项目ID }...
往届参赛{运动员,项目及成绩,}
运动项目:
项目ID
项目名称
比赛时间
参赛运动员ID
名次1 2 3 4 5 6
运动会纪录{运动会届,纪录年月日,纪录,保持者ID}
省(地区)运动会纪录{运动会届,纪录年月日,纪录,保持者}
全运会纪录{运动会届,纪录年月日,纪录,保持者ID}
亚运会纪录...
世界纪录...
三个库文件最好采用固定纪录长度存储,方便存取管理操作,尤其是运动员信息库
2 数据结构设计
设计三个类分别对应三个库,数据成员与库字段设置相同
运动员信息类中的参赛项目可以采用链表形式 或数组形式
参赛历史采用链表形式
Class 运动员
成员函数实现
构造函数(有参 无参)
析构函数 (回收动态分配单元)
读取数据库(读取当前纪录)
读取数据库(读取本运动员的历史记录)
保存入数据(本运动员信息创建保存,覆盖保存)
本次运动会参赛项目及成绩( 可设 成绩为 -1 为参加项目 0 为无取得名次)
本次代表单位
往届运动会参赛项目及成绩
往届代表单位
...
等等
Class 参赛单位
数据成员与库字段设置相同
参赛运动员ID可以用数组或链表
参赛项目可以用数组或链表
成员函数
构造函数(有参,无参),析构函数
读库,写库
本届运动会成绩统计,项目统计,运动员统计
往届运动会成绩统计,
Class 项目
数据成员设置与库对应
成员函数
构造函数析构函数
库存取
项目统计(各单位得分统计)
纪录查询
3 主程序
声明类对象
打开数据库
菜单功能
参赛单位管理
添加修改参赛单位
查询参赛单位
运动员,项目,积分统计
运动会项目管理
项目计划安排
项目结果录入
项目历史查询
运动员档案管理
添加
修改
查询
删除
不完善,楼主清自己再根据需要和要求完善

C语言程序设计。。设计一个运动会管理系统,用于管理比赛时体操、跳水、滑冰等赛事裁判员对赛事的评分。

这需要找一个学过编程的来设计哦

设计一个运动会管理系统,要求如下:

这是源代码哦,要加分的!~~~~~
#include <stdio.h>

#include <stdlib.h>

#include <ctype.h>

#include<string.h>

int a,b,c,d,i,j;

struct node

{

int num;

};

struct node *f[22];

void exit0()

{

FILE *fp;

int k;

alp:if((fp=fopen("sore.txt","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,"\n\n");

fprintf(fp,"运动会分数统计表\n\n\n");

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",f[i][b].num);

}

fprintf(fp,"\n");

}

fprintf(fp,"\n\n");

fprintf(fp," 注:本次运动会有%d个学校参赛\n\n",a);

fprintf(fp," 其中1 ~ %d组是男子组,%d ~ %d组是女子组\n",c,c+1,c+d);

printf("\n比赛成绩已保存到当前路径下的sore.txt文件中\n\n");

fclose(fp);

exit(1);

}

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);

return(choo-1);

}

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;

if(af>3)

af=af-2;

else

af--;

g++;

}

}

else

goto al;

printf("\n\n 输入完成 ! ! ! ! \n");

}

void each()

{

printf("\n 对应的格式为:\n 学校代号:团体总成绩\n\n ");

for(i=1;i<=a;i++)

{

printf("%2d:%3d ",i,f[i][0].num);

if(i%3==0)

printf("\n ");

}

}

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(f[i][b].num>9)

printf("%4d",f[i][b].num);

else

printf("%5d",f[i][b].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 按学校编号排序输出\n\n");

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("%13d%8d\n",de[i].ke,de[i].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 按男子团体总分排序输出\n\n");

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("%13d%12d\n",de[i].ke,de[i].num);

}

}

void nvzong()

{

struct nod

{

int ke;

int num;

};

int ha;

struct nod *de;

de=(struct nod *)malloc(sizeof(struct nod)*a+1);

printf(" 按女子团体总分排序输出\n\n");

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("%15d%13d\n",de[i].ke,de[i].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("\n\n %3d 学校的%3d 项目成绩为%3d\n",dr,dt,f[dr][dt].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(f[b][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");

printf("\n 获胜名单由成绩高到低依次为:\n\n ");

for(i=7;i>0;i--)

{

for(b=1;b<=a;b++)

{

if(f[b][ge].num==i)

printf("%5d",b);

}

}

}

void(*g[])()={input,each,biaohao,zongfen,nanzong,nvzong,xuexiao,xiangmu,exit0};

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();

}

}

标签

相关资讯

我是中博奥客服:小奥
中博奥技术有限公司& 版权所有工信部备案号:豫ICP备11015869号-8 Copyright © 2023-2024

档案整理档案数字化

档案扫描档案管理软件系统

TEL:18937133779

To Top