您的位置:

c语言开发的运动会计分系统,运动会比赛计分系统c语言课程设计

本文目录一览:

C++运动会比赛计分系统!求助!

#includestdio.h

#includestdlib.h

#define n 2 //参赛学校数

#define m 1 //男子竞赛项目数

#define w 1 //女子竞赛项目数

typedef struct sco

{

int mark[5];//分数

int itmnum;//项目编号

char name[10];//运动员姓名

int l; //获奖名次数

int range[5];//排名

}sc;

typedef struct node

{

int sclnum;//学校编号

sc a[m+w];

int mscore;//男子团体总分

int wscore;//女子团体总分

int sum;//学校项目总分

struct nd *next;

}nd;

nd *p,*q,*head,*g,*s,*u;//全局指针变量

/*****************************************************************************************************************************************************************/

/***********************************************************************菜 单 函 数****************************************************************************/

menu()

{

system("cls");

printf("★================运动会比赛计分系统=================★\n");

printf("*********************** welcome *********************\n");

printf("********************* 金建业 编制 ********************\n");

printf("** 1-------------------键盘输入 **\n");

printf("** 2-------------------文件读入 **\n");

printf("** 3---------------------输出 **\n");

printf("** 4---------------------查询 **\n");

printf("** 5---------------------退出 **\n");

printf("**男子前五名依次得分:7分 5分 3分 2分 1分**\n");

printf("**女子前三名依次得分:5分 3分 2分 **\n");

printf("*******************************************************\n");

printf("=======================================================\n");//菜单

}

/*****************************************************************************************************************************************************************/

/********************************************************************计 分 函 数****************************************************************************/

void compute(int i,int x,int k)

{

if(k==3) //女子项目取前三名

{

switch(p-a[x].range[i])

{

case 0: p-a[x].mark[p-a[x].range[i]]=0;break;

case 1: p-a[x].mark[p-a[x].range[i]]=5;break;

case 2: p-a[x].mark[p-a[x].range[i]]=3;break;

case 3: p-a[x].mark[p-a[x].range[i]]=2;break;

default: puts("输入有误!");exit(0);

}

}

else

{

switch(p-a[x].range[i]) //男子项目取前五名

{

case 0: p-a[x].mark[p-a[x].range[i]]=0;break;

case 1: p-a[x].mark[p-a[x].range[i]]=7;break;

case 2: p-a[x].mark[p-a[x].range[i]]=5;break;

case 3: p-a[x].mark[p-a[x].range[i]]=3;break;

case 4: p-a[x].mark[p-a[x].range[i]]=2;break;

case 5: p-a[x].mark[p-a[x].range[i]]=1;break;

default: puts("输入有误!");break;

}

}

}

/*****************************************************************************************************************************************************************/

/******************************************************************输 入 函 数***************************************************************************/

nd *input() //创建链表输入函数

{

int i,x,y=1,k;

p=(nd*)malloc(sizeof(nd));

/*************************************************************************************/

{ //头结点的初始化

printf("\n**按如下格式输入(相同学校编号不重复输入)**\n");

printf("**项目编号有:111---男子 222---女子 **\n");

printf("**学校编号\n**项目编号获得名次数名次姓名\n");

p-mscore=0;p-wscore=0;

scanf("%d",p-sclnum);

for(x=0;xm+w;x++)

{

scanf("%d",p-a[x].itmnum); //项目编号

scanf("%d",p-a[x].l);

for(i=0;ip-a[x].l;i++)

{

scanf("%d",p-a[x].range[i]);

scanf("%s",p-a[x].name);

}

if(p-a[x].itmnum==222)

k=3;

else

k=5;

for(i=0;ip-a[x].l;i++)

{ compute(i,x,k);

if(p-a[x].itmnum==222 ) //共俩个项目: 111(男子项目) 222(女子项目)

p-wscore+=p-a[x].mark[p-a[x].range[i]];

else

p-mscore+=p-a[x].mark[p-a[x].range[i]];

}

}

p-sum=p-mscore+p-wscore; //求学校总成绩

head=p;

q=p;

}

/****************************************************************************************/

while(yn) //创建新节点

{

y++; //计数:控制输入学校的个数

p=(nd*)malloc(sizeof(nd));

p-mscore=0;

p-wscore=0;

scanf("%d",p-sclnum);

for(x=0;xm+w;x++)

{

scanf("%d",p-a[x].itmnum);

scanf("%d",p-a[x].l);

for(i=0;ip-a[x].l;i++)

{

scanf("%d",p-a[x].range[i]);

scanf("%s",p-a[x].name);

}

if(p-a[x].itmnum==222)

k=3;

else

k=5;

for(i=0;ip-a[x].l;i++)

{

compute(i,x,k);

if(p-a[x].itmnum==222)

p-wscore+=p-a[x].mark[p-a[x].range[i]];

else

p-mscore+=p-a[x].mark[p-a[x].range[i]];

}

}

p-sum=p-mscore+p-wscore;

q-next=p;

q=p;

}

/*****************************************************************************************/

p-next=NULL;

menu();

return head;

}

/*****************************************************************************************************************************************************************/

/***********************************************************************输 出 函 数**********************************************************************/

void output(nd *head) //输出成绩

{

nd *q=head;

int i,x,y=1,k;

FILE *fp;

int co;

printf("****1---------不输出,存入文件\n");

printf("****2---------输出,不存入文件\n");

scanf("%d",co);

switch(co)

{

case 1:

{

fp=fopen("d:\\abc.txt","w+");

if(fp==NULL)

{printf("无法打开文件!");exit(0);}

while(q!=NULL)

{

fprintf(fp,"%d\n",q-sclnum);

for(x=0;xm+w;x++)

{

fprintf(fp,"%d\t\n",q-a[x].itmnum);

fprintf(fp,"%d\t\n",q-a[x].l);

for(i=0;iq-a[x].l;i++)

fprintf(fp,"%d\t",q-a[x].range[i]);

fprintf(fp,"\n");

}

q=q-next;

}

fclose(fp);

}break;

case 2:

//system("cls");

while(q!=NULL)

{

printf("===================================\n");

printf(" 学校编号:\t");

printf("%d\n",q-sclnum);

for(x=0;xm+w;x++)

{

printf(" 项目编号:\t");

printf("%d\t\n",q-a[x].itmnum);

printf(" 有%d个获奖名次:\t",q-a[x].l);

for(i=0;iq-a[x].l;i++)

{

printf("第%d名\t",q-a[x].range[i]);

}

printf("\n\n");

}printf("男子团体项目总分:\t%d\n",q-mscore);

printf("女子团体项目总分:\t%d\n",q-wscore);

printf(" 学校项目总得分:\t%d\n\n",q-sum);

printf("\n");

q=q-next;

}break;

default :

puts("输入有误!");exit(0);

}

}

/**********************************************************************************************/

/**************************************文 件 读 入 函 数***************************************/

nd *read()

{

FILE *fpa=NULL;

int i,x,y=1,k;

p=(nd *)malloc(sizeof(nd));

p-mscore=0;p-wscore=0;

fpa=fopen("d:\\abc.txt","r+");//打开文件

if(fpa==NULL)

{puts("对不起,无法打开文件!");exit(0);}

fscanf(fpa,"%d",p-sclnum);

for(x=0;xm+w;x++)

{

printf("已读入%d个项目\n",x+1);

fscanf(fpa,"%d%d",p-a[x].itmnum,p-a[x].l);

for(i=0;ip-a[x].l;i++)

fscanf(fpa,"%d",p-a[x].range[i]);

if(p-a[x].itmnum==222)

k=3;

else

k=5;

for(i=0;ip-a[x].l;i++)

{

compute(i,x,k);

if(p-a[x].itmnum==222)

p-wscore+=p-a[x].mark[p-a[x].range[i]];

else

p-mscore+=p-a[x].mark[p-a[x].range[i]];

}

}

p-sum=p-mscore+p-wscore;

head=p;

q=p;

while(yn)//控制输入学校个数

{

y++;

p=(nd *)malloc(sizeof(nd));

p-mscore=0;

p-wscore=0;

fscanf(fpa,"%d",p-sclnum);

for(x=0;xm+w;x++)

{

printf("已读入%d个项目\n",x+1);

fscanf(fpa,"%d",p-a[x].itmnum);

fscanf(fpa,"%d",p-a[x].l);

for(i=0;ip-a[x].l;i++)

fscanf(fpa,"%d",p-a[x].range[i]);

if(p-a[x].itmnum==222)

k=3;

else

k=5;

for(i=0;ip-a[x].l;i++)

{

compute(i,x,k);

if(p-a[x].itmnum==222)

p-wscore+=p-a[x].mark[p-a[x].range[i]];

else

p-mscore+=p-a[x].mark[p-a[x].range[i]];

}

}

p-sum=p-wscore+p-mscore;

q-next=p;

q=p;

}

p-next=NULL;

fclose(fpa);//关闭文件

return head;

}

/******************************************************************************************************************************************************************/

/*********************************************************************查 找 函 数*************************************************************************/

void find(nd *head)

{

nd *q=head;

int num,x,i,flag=0;

printf("请输入你要查询的学校编号:");

scanf("%d",num);

while(q!=NULL)

{

if(num==q-sclnum)

{

printf("===================================\n");

printf("学校编号\n");

printf("%d\n",q-sclnum);

for(x=0;xm+w;x++)

{

printf("项目编号\n");

printf("%d\t\n",q-a[x].itmnum);

printf("有%d个获奖名次:\t",q-a[x].l);

for(i=0;iq-a[x].l;i++)

{

printf("第%d名\t",q-a[x].range[i]);

}

printf("\n\n");

}

printf("男子团体项目总分:%d\n",q-mscore);

printf("女子团体项目总分:%d\n",q-wscore);

printf(" 学校项目总得分:%d\n\n",q-sum);

printf("\n");

flag=1;

printf("\n");

}

q=q-next;

}

if(flag==0)

puts("对不起!没有您要查询的对象");

}

/*****************************************************************************************************************************************************************/

/********************************************************************主 函 数*******************************************************************************/

void main() //主函数

{

int ch;

menu();

while(1)

{

printf("请选择\t");

scanf("%d",ch);

switch(ch)

{

case 1: menu();g=input(); break;

case 2: menu();g=read(); break;

case 3: menu();output(g); break;

case 4: menu();find(g); break;

case 5: menu();puts("*********************谢谢您的使用!");exit(0);

default: menu();puts("对不起!输入有误");exit(0);

}

}

}

/*******************************************************************************************************************************************************************/

这个是我用C语言做的 刚提交过 答辩也过了 你看看行不行 相信稍作修改您就能够用了!

用C语言帮我编个运动会计分系统小程序 高分急求

这个用C难度过大。即使用VB.NET去写,工作量也很打。首先数据库的设计,需求、功能、模式等,编码前需要考虑的问题就非常多。而后在具体编码中肯定又多少会遇到些难题。我觉得这不应该是一个个人项目,应该以小组课程设计比较恰当。 这个任务量很大,会很花时间,不然也不会作为你们的学期作业。 这个我建议你还是多向身边同学寻求帮助,同时能够踏实参与完成若干课程设计,对你的问题分析个编码能力都有很大的提高。

用C语言设计开发学校运动会管理系统。

#includestdio.h#includeconio.h#includestdlib.h#includestring.h

#define SIZE 16#define N 4#define WM 3

void bsxm();void csxx();void Information();void main();void menu();void printf_back();void saveathlete();void saveprogram();void saveschool();void savescore();void Search();void ttzf();

int i;FILE *fp1,*fp2,*fp3,*fp4;

struct athlete //定义运动员信息{ char univ[5]; char name[16]; char prog[15]; char mingci[5]; int score; int age[16];} at[SIZE];

struct xuexiao //定义系{ char univ[5]; char prog[15]; int num_athlete;} xx[N];

struct program //定义项目信息

{ char prog[5]; int quming; char ath1[5]; char ath2[5]; char univ1[5]; char univ2[5];} pro[WM];struct zongfen //定义系得分信息

{

char univ[5]; char prog1[5]; char prog2[5]; char prog3[5]; int score1; int score2; int score3; int total_score;} zf[N];

void Information(){ int n,w; do { puts("\n\n\n"); puts("欢迎进入信息录入功能!\n"); puts("目录\n"); puts("1.录入运动员信息\n"); puts("2.录入系信息\n"); puts("3.录入项目信息()\n"); puts("4.后退\n"); puts("\n"); printf("选择功能(1-4):[ ]\b\b"); scanf("%d",n); if (n1||n4) { w=1; getchar(); } else w=0; } while (w==1); switch(n) { case 1 :saveathlete();break;// 保存运动员信息子函数 case 2 :saveschool();break;//保存系信息子函数 case 3 :saveprogram();break;//保存项目比赛信息子函数 case 4 :exit(0); }}

void saveathlete() //保存运动员信息子函数

{ printf("\n请输入各项目获奖运动员的信息:"); for(i=0; iSIZE; i++) { printf("\n请输入第%d个运动员的信息:\n",i+1); printf("姓名:"); scanf("%s",at[i].name); printf("年龄: "); scanf("%d",at[i].age); printf("系:"); scanf("%s",at[i].univ); printf("参赛项目:"); scanf("%s",at[i].prog); printf("名次:"); scanf("%s",at[i].mingci); printf("得分:"); scanf("%d",at[i].score); }

fp1=fopen("ath","w"); for(i=0; iSIZE; i++) { if(fwrite(at[i],sizeof(struct athlete),1,fp1)!=1) printf("错误!\n"); } fclose(fp1); fp1=fopen("ath","r for(i=0; iSIZE; i++)"); printf("\n现在各运动员的信息如下:\n\n"); printf("姓名 年龄 系别 项目 名次 得分\n");

{ fread(at[i],sizeof(struct athlete),1,fp1); printf("%-10%ds%-10s%-18s%-10s%d\n",at[i].name,at[i].age,at[i].univ,at[i].prog,at[i].mingci,at[i].score); } fclose(fp1); printf_back();}

void saveschool() //保存系信息子函数

{ printf("\n请输入各参赛系别的信息:"); for(i=0; iN; i++) { printf("\n请输入第%d个系别的信息:\n",i+1); printf("系:"); scanf("%s",xx[i].univ); printf("参赛的项目:"); scanf("%s",xx[i].prog); printf("参赛者数:"); scanf("%d",xx[i].num_athlete); }

fp3=fopen("xxiao","w"); for(i=0; iN; i++) { if(fwrite(xx[i],sizeof(struct xuexiao),1,fp3)!=1) printf("错误!\n"); } fclose(fp3); printf_back();}

void saveprogram() //保存项目比赛信息子函数{ printf("\n请输入关于比赛项目的信息:"); for(i=0; iWM; i++) { printf("\n请输入第%d项比赛的信息:\n",i+1); printf("项目:"); scanf("%s",pro[i].prog); printf("取分情况:"); scanf("%d",pro[i].quming); printf("参赛者:"); scanf("%s",pro[i].ath1); printf("所属学校:"); scanf("%s",pro[i].univ1); printf("参赛者:"); scanf("%s",pro[i].ath2); printf("所属学校:"); scanf("%s",pro[i].univ2); }

fp4=fopen("pr","w"); for(i=0; iN; i++) { if(fwrite(pro[i],sizeof(struct program),1,fp4)!=1) printf("错误!\n"); } fclose(fp4); printf_back();}

void savescore() //保存学校得分情况子函数{ printf("N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。\n"); printf("W.100-女子一百米比赛,M.100-男子一百米,M.200-男子两百米。\n"); printf("\n各项名次得分权值如下:\n"); printf("取前三名:第一名5分 第二名3分 第三名2分\n"); printf("\n请输入各学校的得分情况:"); for(i=0; iN; i++) { printf("\n请输入第%d个得分情况:\n",i+1); printf("学校:"); scanf("%s",zf[i].univ); printf("参赛项目1:"); scanf("%s",zf[i].prog1); printf("得分:"); scanf("%d",zf[i].score1); printf("参赛项目2:"); scanf("%s",zf[i].prog2); printf("得分:"); scanf("%d",zf[i].score2); printf("参赛项目3:"); scanf("%s",zf[i].prog3); printf("得分:"); scanf("%d",zf[i].score3); zf[i].total_score=zf[i].score1+zf[i].score2+zf[i].score3; } fp2=fopen("zfen","w"); for(i=0; iN; i++) { if(fwrite(zf[i],sizeof(struct zongfen),1,fp2)!=1) printf("错误!\n"); } fclose(fp2); printf_back();}

void Search(){ int n,w2; do { puts("欢迎进入查询功能!\n"); puts("目录\n"); puts("1.查询团体总分\n");//查看团体总分 puts("2.查询参赛学校信息\n");//查看参赛学校信息! puts("3.查询比赛项目信息\n");//查看比赛项目信息! puts("4.退出\n");//退出 puts("\n"); printf("选择功能(1-4):[ ]\b\b"); scanf("%d",n); if (n1||n4) { w2=1; getchar(); } else w2=0; } while (w2==1); switch(n) { case 1:ttzf();break; case 2:csxx();break; case 3:bsxm();break; case 4:exit(0);break; default:printf("未进行任何操作!"); }}void ttzf() //查看学校团体总分子函数{ fp2=fopen("zfen","r"); printf("\n各学校的团体总分情况如下:\n\n"); printf("学校 参赛项目 总分\n"); for(i=0; iN; i++) { fread(zf[i],sizeof(struct zongfen),1,fp2); printf("%-8s%s,%s,%-12s%-12d\n",zf[i].univ,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score); } fclose(fp2); printf_back();}

void csxx() //查看参赛学校信息子函数{ fp3=fopen("xxiao","r"); printf("\n各参赛学校的情况如下:\n\n"); printf("学校 参赛项目 参赛者数\n"); for(i=0; iN; i++) { fread(xx[i],sizeof(struct xuexiao),1,fp3); printf("%-8s%-20s%-12d\n",xx[i].univ,xx[i].prog,xx[i].num_athlete); } fclose(fp3); printf_back();}

void bsxm() //查看比赛项目子函数{ fp4=fopen("pr","r"); printf("\n各比赛项目的信息如下:\n\n"); printf("项目 取分情况 赛者1 所属学校 参赛者2 所属学校\n"); for(i=0; iN; i++) { fread(pro[i],sizeof(struct program),1,fp4); printf("%-12s%-10d%-10s%-12s%-10s%-12s\n",pro[i].prog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro[i].univ2); } fclose(fp4); printf_back();}

void main(){ menu();}void menu(){ int n,w1; do { puts("欢迎进入运动会管理系统!\n"); puts("目录\n"); puts("1.输入信息\n"); puts("2.比赛结果录入\n"); puts("3.查询\n"); puts("4.退出\n"); puts("\n"); printf("选择功能(1-4):[ ]\b\b"); scanf("%d",n); if (n1||n4) { w1=1; getchar(); } else w1=0; } while (w1==1); switch(n) { case 1:Information();break; //输入信息 case 2:savescore();break;//比赛结果录入 case 3:Search();break;//查询模块 case 4:exit(0); }}

//公共函数void printf_back(){ int w; printf("\n\n\tSUCCESSFUL!\n\n"); printf("What do you want to do next?\n\n\t1).exit \t2).menu:[ ]\b\b"); scanf("%d",w); if(w==1) exit(0); else menu();}

C语言 运动会计分系统 急求!!

#include "stdio.h"

#pragma warning(disable:4996)

struct School {

char name;

int totalScore;

struct Item* next;

};

struct School* sch[5];

struct Item {

char id;

int score;

struct Item* next;

};

int atoi(char c)

{

return c - '0';

}

int DataValidation(char* str)

{

int tmpItem[10], tmpScore[100], a, b, c,i;

for (i = 0; i  10; i++)

{

tmpItem[i] = tmpScore[i] = 0;

}

for (i = 0; i  27; i += 3)

{

a = atoi(str[i]);

b = atoi(str[i + 1]);

c = atoi(str[i + 2]);

if ((a  1 || a3) || (b  1 || b5) || (c != 5  c != 3  c != 1  c != 0))

{

return 0;

}

else

{

tmpItem[a]++;

tmpScore[a] += c;

}

}

for (i = 1; i = 3; i++)

{

if (tmpItem[i] != 3)

{

return 0;

}

}

for (i = 1; i = 3; i++)

{

if (tmpScore[i] != 9)

return 0;

}

return 1;

}

void insert(char itemId, char schoolId, int score)

{

int i;

for (i = 0; i  5; i++)

{

if (sch[i]-name == schoolId)

{

struct Item *item = (struct Item*)malloc(sizeof(struct Item));

item-id = itemId;

item-score = score;

item-next = sch[i]-next;

sch[i]-next = item;

}

}

}

void updateTotalScore()

{

int i = 0;

struct Item *tmp;

for (i = 0; i  5; i++)

{

tmp = sch[i]-next;

while (tmp != NULL)

{

sch[i]-totalScore += tmp-score;

tmp = tmp-next;

}

}

}

void sort()

{

int i, j;

struct School* tmp;

for (i = 0; i  5; i++)

{

for (j = 0; j  i; j++)

{

if (sch[i]-totalScore  sch[j]-totalScore)

{

tmp = sch[i];

sch[i] = sch[j];

sch[j] = tmp;

}

}

}

}

void print()

{

int i;

struct Item *tmp;

for (i = 0; i  5; i++)

{

printf("college%d : %2d  ", sch[i]-name, sch[i]-totalScore);

tmp = sch[i]-next;

while (tmp != NULL)

{

printf("item%c(%d)  ", tmp-id,tmp-score);

tmp = tmp-next;

}

printf("\n");

}

}

int main()

{

int i;

char str[50], tmp1, tmp2;

for (i = 0; i  5; i++)

{

sch[i] = (struct School*)malloc(sizeof(struct School));

sch[i]-name = i + 1+'0';

sch[i]-next = NULL;

sch[i]-totalScore = 0;

}

for (i = 0; i  27; i++)

{

scanf("%c", str[i]);

}

str[27] = '\0';

while (DataValidation(str) == 0)

{

printf("输入的数据不合法,请全部重新输入\n");

for (i = 0; i  27; i++)

{

scanf("%c", str[i]);

}

}

for (i = 1; i = 25; i = i + 3)

{

int convert = atoi(str[i + 1]);

insert(str[i - 1], str[i], convert);

}

updateTotalScore();

sort();

print();

while (1);

return 0;

}