学校运动会管理系统_第1页
学校运动会管理系统_第2页
学校运动会管理系统_第3页
学校运动会管理系统_第4页
学校运动会管理系统_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*问题描述已知某学校运动会上有5个系部(编号、名称)和10个运动项目,各项目名次取法有如下几种:取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;编写一程序,完成以下功能:从键盘输入系部编号、运动员姓名、运动项目编号、获取名次。需要判断系部编号是否存在、参赛项目是否存在、获取名次是否合法,同一系部的同一个人,不能在同一个项目中出现两次。按照比赛成绩从高到底输出系部和其比赛成绩查询指定系部编号的获奖记录查询指定运动项目的获奖记录所有数据符合实际应用要求提示:定义一个结构体数组,保存5个系部的信息,具体为:编号、名称,比赛成绩(最开始为0)定义一个结构体数组,保存10个运动项目的信息,具体为:编号、名称定义一个获奖链表,保存运动员的获奖信息,具体为:系部编号、运动员姓名、运动项目编号、获取名次,得分,查询系部数组和运动项目数组,如果存在,查询获奖链表,是否存在该系部、该姓名、该项目的记录,如果不存在,根据获取的名次,计算获奖的得分,插入获奖链表,并将得分累加到系部的比赛成绩。对系部数组按照比赛成绩排序*/#include<stdio.h>#include<time.h>#include<string.h>#include<malloc.h>#include<stdlib.h>#include<conio.h>#include<windows.h>#defineLENsizeof(structstudent)typedefstructxibu{intnum;charname[20];intchengji;typedefstructxiangmu{intnum;charname[20];}MU;structstudent{intxinum;charname[30];intmunum;intMC;intscore;structstudent*next;};XIxi⑸={{1,"电信学院",0}, {2,1汽车学院",0},{3,"材工学院",0}, {4,"机械学院",0},{5,"英语学院",0}};MUmu[10]={{1,"100米"}, {2,"200米"},{3,"400米"},{4,"800米"},{5,"1500米"},{6,"跳高"},{7,"跳远"}, {8,"铅球"}, {9,"三级跳"},{10,"4x100接力"}};intn=0;voidwelcome();voidprinttimu();intmenu_select();voidshuru();voidshuchu();voidxibu();voidxiangmu();voidTiShi();voiddaoruxi();intpanduan();voidexit0();//欢迎界面////本题题目要求////主菜单////输入获奖运动员信息////按照比赛成绩从高到底输出系部和其比赛成绩////查询系部获奖情况////查询项目获奖情况////提示题目所需数据////导入获奖运动员成绩到系部////判断所输入信息是否有错误////退出//structstudent*head=NULL,*p1,*p2,*p3;/*定义结构体指针head为头指针pl为输入数据缓存空间指针p2为尾指针p3*//*运动员记录保存标志全局变量*/intwriteinfo_flag=0;/*主函数*/intmain(){system("colorF2");welcome();TiShi();for(;;){switch(menu_select()){case1:system("cls");printtimu();break;case2:system("cls");shuru();break;case3:system("cls");shuchu();break;case4:system("cls");xibu();break;case5:system("cls");xiangmu();break;case0:system("cls");exit0();return0;default:{getchar();printf("\n选择错误,请正确输入你的选择(0~5),:\n");printf("\n按任意键返回 \n");getchar();getchar();system("cls"); /*清屏*/}}}return0;}//定义数据//voidTiShi(){inti=0,m=0;printf("\n\n\t请按学校院系及奖项设置输入获奖人员,院系及奖项设置如下\n\n");printf("\n\t\t\t编号 系部\n");while(i<5){

*/printf("\t\t\t%di++;}printf("\n\n\t\t\t编号while(m<10){printf("\t\t\t%d*/printf("\t\t\t%di++;}printf("\n\n\t\t\t编号while(m<10){printf("\t\t\t%d%s\n",xi[i].num,xi[i].name);项目\n");%s\n",mu[m].num,mu[m].name);m++;}printf("\n\n数据已输出,按任意键进入系统...");/*清屏\t\t\t\t\t\t**\n");\t\t\t\t\t\t**\n");\t欢迎使用学校运动会管理系统!\t\t\t\t\t\t**\n");\t\t\t\t\t\t**\n");\t欢迎使用学校运动会管理系统!\t**\n");\t\t\t\t\t\t**\n");\t\t\t\t\t\t**\n");\t\t指导老师:老师\t\t**\n");\t\t\t\t\t\t**\n");\t\t制作人:* *\t\t\t**\n");\t\t\t\t\t\t**\n");\t\t短号:619444\t\t**\n");\t\t\t\t\t\t**\n");\t\tQQ号:961358207\t\t**\n");\t\t\t\t\t\t**\n");voidwelcome(){printf("\n\n\n\n\t\t***************************************************\n");printf("\t\t**************************\n");printf("\t\t**************************\n");printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**************************\n");printf("\t\t******请按任意键进入系统******\n");printf("\t\t***************************************************\n");getch();system("cls");

rewind(stdin);//本题题目要求//voidprinttimu(){printf("\n题目描述\n");printf("\t已知某学校运动会上有5个系部(编号、名称)和10个运动项目,各项目\t\t名次取法有如下几种\n\n");printf("\t取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名\t\t得分1;\n");printf("\n\t\t\t 编写一程序,完成以下功能\n\n");printf("(1)从键盘输入系部编号、运动员姓名、运动项目编号、获取名次。需要判断\t\t系部编号是否存在、参赛项目是否存在、获取名次是否合法,同一系部的同一个\t\t人,不能在同一个项目中出现两次。\n");printf("(2)按照比赛成绩从高到底输出系部和其比赛成绩\・");printf("(3)查询指定系部编号的获奖记录\n");printf("(4)查询指定运动项目的获奖记录\n");printf("(5)所有数据符合实际应用要求\n");printf("(6) 系统以菜单方式工作(用键盘输入1~5之间的数来选择功能,其中6为退出)\n");rewind(stdin);printf("\n\n\t\t\t题目已输出,按任意键进入系统..."); /*清屏*/getch();system("cls");}//主菜单//intmenu_select(){intc;printf("\n\n\n\n");菜单l\n");菜单l\n");|\n");printf("\t\t\t|printf("\t\t\t| 1.查看本题题目|\n");printf("\t\t\t| 2.输入获奖运动员信息|\n");printf("\t\t\t|3.按顺序输出系部和其比赛成绩|\n");printf("\t\t\t|4.查询指定系部编号的获奖记录|\n");printf("\t\t\t| 5.查询指定运动项目的获奖记录|\n");printf("\t\t\t| 0•退出(任何情况下按Ctrl+C退出程序|\n");printf("\t\t\t|请输入你的选择(0~4): |\n"););printf("\t\t\tprintf("\n\t\t\t我选择:");scanf("%d",&c););returnc;}//输入获奖运动员信息//voidshuru(){inti=0;chara;if(writeinfo_flag==1){getchar();printf("\n\n\n\n\n\n\n\n\t\t运动员信息数据已经输入完成不能再输入,按任意键将返回:\n");getch();system("cls"); /*清屏*/return;}head=(structstudent*)malloc(LEN); /*开辟一个新单元*/head->next=NULL;p1=head;do{n++;do{system("cls");printf("\n\n\n\n\n\n\n\t请输入第%4个获奖运动员的系部编号、运动员姓名、运动项目编号、获取名次\n",n);fflush(stdin);scanf("%d%s%d%d",&p1->xinum,p1->name,&p1->munum,&p1->MC);while(p1->xinum>5||p1->xinum<1||p1->munum>10||p1->munum<1||p1->MC<1||p1->MC>5){printf("您输入的信息不合法或者项目不存在,请检查后按任意键返回重新输入\n");getchar();getchar();system("cls");printf("\n\n\n\n\n\n\n\t请输入第%4个获奖学生的系部编号、运动员姓名、运动项目编号、获取名次\n",n);fflush(stdin);scanf("%d%s%d%d",&p1->xinum,p1->name,&p1->munum,&p1->MC);}switch(p1->MC){case1:p1->score=7;break;case2:p1->score=5;break;case3:p1->score=3;break;case4:p1->score=2;break;case5:p1->score=1;break;}if(writeinfo_flag==1)i=panduan();writeinfo_flag=1; /*设置保存记录标志*/}while(i==1);printf("\n\n\t\t请问您是否输入完毕,是(Y),否(N),请给出您的选择\n\n");fflush(stdin);scanf("%c",&a);fflush(stdin);if(a=='N'||a=='n'){system("cls");p2=(structstudent*)malloc(LEN); /*开辟一个新单元*/p1->next=p2;p3=p1;p1=p2;p1->next=NULL;}}while(a=='N'||a=='n');system("cls");printf("\n\n\n\n\n\n\t\t%d项信息输入完毕,按任意键返回......\n",n);getch();system("cls"); /*清屏*/}//判断输入数据是否符合题意//intpanduan(){intd=0,m=1;p2=head;for(;m<n;p2=p2->next){if(p1->xinum==p2->xinum&&p1->munum==p2->munum&&strcmp(p1->name,p2->name)==0)d=1;if(d==1){printf("\n\n\n\t您输入的数据中存在同一个人在同一个项目中有两种信息的情况,请任意键返回并重新输入");getchar();getchar();system("cls"); /*清屏*/}m++;}returnd;}//导入获奖运动员成绩到系部//voiddaoruxi(){inti,m=0;p2=head;while(p2!=NULL){for(i=1;i<6;i++){if(i==p2->xinum)xi[i-1].chengji+=p2->score;}p2=p2->next;}}//按照比赛成绩从高到底输出系部和其比赛成绩//voidshuchu(){inti,j,m=0,temp;chara[20];if(writeinfo_flag==0){getchar();printf("\n\n\n\n\n\n\n\n\t\t运动员信息数据库为空,不能显示 ,按任意键将返回:\n");getchar();system("cls"); /*清屏*/return;}daoruxi();for(i=0;i<4;i++){for(j=0;j<5;j++)if(xi[j].chengji<xi[j+1].chengji){temp=xi[j].chengji;strcpy(a,xi[j].name);xi[j].chengji=xi[j+1].chengji;strcpy(xi[j].name,xi[j+1].name);xi[j+1].chengji=temp;strcpy(xi[j+1].name,a);}}printf("\n\n\n\n\n\n\t\t\t按照比赛成绩从高到底输出系部和其比赛成^\n\n");printf("\t\t\t\t系部 成绩\n");while(m<5){printf("\t\t\t\t%s%d\n",xi[m].name,xi[m].chengji);m++;}printf("\n\n\n\n\n\t\t\t各系部得分从高到低展示完毕,按任意键返回……\n");getchar();getch();system("cls"); /*清屏*/}//查询系部获奖情况//voidxibu(){inti=0,d=0;if(writeinfo_flag==0){getchar();printf("\n\n\n\n\n\n\n\n\t\t运动员信息数据库为空,不能显示,按任意键将返回:\n");getch();system("cls"); /*清屏*/return;}printf("\n\n\n\n\n\n\t\t\t请输入要查询的系部编号\n\n");printf("\t\t\t我选择:");fflush(stdin);scanf("%d",&d);if(d<0||d>5){system("cls");printf("\n\n\n\n\n\n\t\t\t编号为%d的项系部不存在,按任意键将返回:\n",d);getch();system("cls"); /*清屏*/return;}p2=head;printf("\n\n\n\n\t\t\t\t%s获奖记录为\n\n",xi[d-1].name);printf("\t\t\t运动员姓名参加项目 名次\n");while(p2!=NULL){if(d==p2->xinum){printf("\t\t\t%s %s%d\n",p2->name,mu[p2->munum-1].name,p2->MC);i++;}p2=p2->next;}printf("%d",i);if(i==1)printf("\n\n\n\n\t\t\t%s获奖情况展示完毕,按任意键返回 \n",xi[d-1].name);elseprintf("\n\n\n\n\t\t\t%s没有运动员参赛,按任意键返回 \n",xi[d-1].name);getch();system("cls"); /*清屏*/}//查询项目获奖情况//voidxiangmu(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论