校级运动会管理系统c语言程序
- 格式:docx
- 大小:17.68 KB
- 文档页数:10
运动会管理系统C语言程序设计
简介
运动会管理系统是一个用C语言编写的程序,用于管理学校或机构举办的各类
运动会活动。
该系统能够帮助组织者有效地安排赛程、记录成绩以及生成相关报表,提高管理效率和赛事质量。
功能模块
1. 用户登录
•提供管理员和裁判员两类用户登录选项
•管理者可以对比赛项目、队伍信息进行管理
•裁判员可以录入比赛成绩
2. 赛事管理
•管理者可以添加、编辑、删除赛事项目
•每个赛事项目包括项目名称、参赛队伍、赛程安排等信息
3. 队伍管理
•管理者可以添加、编辑、删除参赛队伍
•每个参赛队伍包括队名、队员信息等
4. 成绩录入
•裁判员可以录入每个队伍在各个项目中的成绩
•系统可以自动计算并显示队伍的总成绩
5. 报表生成
•系统可以根据录入的成绩数据生成成绩报表
•报表可以按照项目、队伍等不同维度展示成绩数据
技术实现
该系统基于C语言编写,采用了结构体、文件读写、数据处理等基本功能和技术。
通过数据结构的设计和文件操作,实现了用户登录、赛事管理、队伍管理、成绩录入、报表生成等功能。
系统优势
•界面简洁明了,操作便捷高效
•数据处理准确可靠,确保成绩数据的准确性
•面向对象的设计,方便扩展和维护
结语
运动会管理系统C语言程序设计为学校或机构举办运动会提供了一种高效的管理方式,使赛事组织更加顺畅和专业化。
通过不断的优化和改进,该系统能够更好地满足不同运动会的管理需求,为相关活动的顺利进行提供有力支持。
运动会管理系统源代码include<stdio.h>#include<stdlib.h>#include<string.h>struct student /* 定义链表 */{long num;char name[10];char danwei[10];int xiangmu;int chengji;struct student *next;};struct student *creat(struct student *h); /*s 输入函数 */struct student *findstudent(struct student *h); /* 查找函数 */struct student *sort(struct student *h); /* 排序函数 */main(){int b,c=1;struct student *head,*p,*f; /* 定义表头指针 */head=NULL; /* 创建一个空表 */printf("\t\t\t**********************\n");printf("\t\t\t****运动会管理系统****\t\t\n");printf("\t\t\t**********************\n");do /* 循环使用系统中的功能 */{printf("*************************************************************************\n");printf("\t\t请输入1或2或3进行功能选择\n");printf("\t\t输入1---------------------进行输入功能\n");printf("\t\t输入2---------------------进行查找功能\n");printf("\t\t输入3---------------------进行排序功能\n");printf("*************************************************************************\n"); scanf("%d",&b);switch(b) /* 进入函数 */{case 1:head=creat(head);break;case 2:p=findstudent(head);break;case 3:f=sort(head);break;default:printf("输入错误,请从新输入");}printf("*************************************************************************\n");printf("否进行其他功能?\n");printf("是输入------1,否输入------2:\n");scanf("%d",&c);}while(c==1);}/* 输入功能 */struct student *creat(struct student *h){struct student *p1,*p2; /* 定义链表指针 */p1=p2=(struct student*)malloc(sizeof(struct student)); /* 申请新结点*/printf("\n-------------------------------------------------------\n");printf("请依次输入运动员的号码、姓名、单位、项目(run为1,jump为2,swim为3)、成绩\n学号输入0时,结束输入!\n");printf("\n-------------------------------------------------------\n");if(p2!=NULL)printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("---------------------------------------------------\n");}while(p2->num!=0){if(h==NULL)h=p2; /* 若为空表,接入表头 */elsep1->next=p2; /* 若为非空表,接入表尾 */p1=p2;p2=(struct student*)malloc(sizeof(struct student)); /* 申请下一个新结点 */if(p2!=NULL){printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("-----------------------------------------------\n");}}}return h;}/* 查找功能 */struct student *findstudent(struct student *h){int a;struct student *q; /* 定义链表指针 */q=(struct student*)malloc(sizeof(struct student));q=h; /* 接入表头 */printf("输入运动项目:run则输入1 jump则输入2 swim则输入3:\n");scanf("%d",&a);while(q!=NULL){if(a==1) /* 若项目为run则进行查找输出 */{if(q->xiangmu==1){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else if(a==2) /* 若项目为jump则进行查找输出 */{if(q->xiangmu==2){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else /* 若项目为swim则进行查找输出 */ {if(q->xiangmu==3){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */ }}}/* 排序功能 */struct student *sort(struct student *h){int d;int g1=0,e1=0,i1,j1,temp1,a[60];int g2=0,e2=0,i2,j2,temp2,b[60];int g3=0,e3=0,i3,j3,temp3,c[60];struct student *s; /* 定义链表指针 */s=h;printf("按项目排序:\n");printf("请输入项目,run----输入1,jump----输入2,swim----输入3:\n");scanf("%d",&d);printf("-----------------------------------------------------------------\n");printf("学生排序结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");if(d==1) /* 对项目为run的运动员进行排序 */{while(s!=NULL) /* 计算e1大小也就是项目为run的运动员的多少 */ {if(s->xiangmu==1){a[e1]=s->chengji;e1=e1+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i1=1;i1<e1;i1++) /* 冒泡法开始 */{for(j1=e1-1;j1>=1;j1--){if(a[j1]<a[j1-1]){temp1=a[j1-1];a[j1-1]=a[j1];a[j1]=temp1;}}} /* 冒泡结束 */s=h;while(g1<e1) /* 循环从小到大输出项目为run的运动员的信息 */{if(s->xiangmu==1){if(s->chengji==a[g1]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji); s=h;g1=g1+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else if(d==2) /* 若项目为jump则进行排序 */{while(s!=NULL) /* 计算e2大小也就是项目为jump的运动员的多少 */ {if(s->xiangmu==2){b[e2]=s->chengji;e2=e2+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }for(i2=1;i2<e2;i2++) /* 冒泡开始 */{for(j2=e2-1;j2>=1;j2--){if(b[j2]<b[j2-1]){temp2=b[j2-1];b[j2-1]=b[j2];b[j2]=temp2;}}} /* 冒泡结束 */s=h;while(g2<e2) /* 循环从小到大输出项目为jump的运动员的信息*/{if(s->xiangmu==2){if(s->chengji==b[g2]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g2=g2+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else /* 若项目为swim则进行排序 */{while(s!=NULL) /* 计算e3大小也就是项目为swim的运动员的多少*/{if(s->xiangmu==3){c[e3]=s->chengji;e3=e3+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i3=1;i3<e3;i3++) /* 冒泡开始 */{for(j3=e3-1;j3>=1;j3--){if(c[j3]<c[j3-1]){temp3=c[j3-1];c[j3-1]=c[j3];c[j3]=temp3;}}} /* 冒泡结束 */s=h;while(g3<e3) /* 循环从小到大输出项目为swim的运动员的信息 */{if(s->xiangmu==3){if(s->chengji==c[g3]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g3=g3+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }}}。
课程设计报告课程名称《C语言程序设计》课题名称运动会分数统计系统专业电气工程及其自动化班级电气工程学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称《C语言程序设计》课题运动会分数统计系统专业班级电气工程及其自动化学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日第一部分《C语言课程设计》任务书前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘收齐后交指导老师。
一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
运动会管理系统源代码include<stdio.h>#include<stdlib.h>#include<string.h>struct student /* 定义链表 */{long num;char name[10];char danwei[10];int xiangmu;int chengji;struct student *next;};struct student *creat(struct student *h); /*s 输入函数 */struct student *findstudent(struct student *h); /* 查找函数 */struct student *sort(struct student *h); /* 排序函数 */main(){int b,c=1;struct student *head,*p,*f; /* 定义表头指针 */head=NULL; /* 创建一个空表 */printf("\t\t\t**********************\n");printf("\t\t\t****运动会管理系统****\t\t\n");printf("\t\t\t**********************\n");do /* 循环使用系统中的功能 */{printf("*************************************************************************\n");printf("\t\t请输入1或2或3进行功能选择\n");printf("\t\t输入1---------------------进行输入功能\n");printf("\t\t输入2---------------------进行查找功能\n");printf("\t\t输入3---------------------进行排序功能\n");printf("*************************************************************************\n"); scanf("%d",&b);switch(b) /* 进入函数 */{case 1:head=creat(head);break;case 2:p=findstudent(head);break;case 3:f=sort(head);break;default:printf("输入错误,请从新输入");}printf("*************************************************************************\n");printf("否进行其他功能?\n");printf("是输入------1,否输入------2:\n");scanf("%d",&c);}while(c==1);}/* 输入功能 */struct student *creat(struct student *h){struct student *p1,*p2; /* 定义链表指针 */p1=p2=(struct student*)malloc(sizeof(struct student)); /* 申请新结点*/printf("\n-------------------------------------------------------\n");printf("请依次输入运动员的号码、姓名、单位、项目(run为1,jump为2,swim为3)、成绩\n学号输入0时,结束输入!\n");printf("\n-------------------------------------------------------\n");if(p2!=NULL)printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("---------------------------------------------------\n");}while(p2->num!=0){if(h==NULL)h=p2; /* 若为空表,接入表头 */elsep1->next=p2; /* 若为非空表,接入表尾 */p1=p2;p2=(struct student*)malloc(sizeof(struct student)); /* 申请下一个新结点 */if(p2!=NULL){printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("-----------------------------------------------\n");}}}return h;}/* 查找功能 */struct student *findstudent(struct student *h){int a;struct student *q; /* 定义链表指针 */q=(struct student*)malloc(sizeof(struct student));q=h; /* 接入表头 */printf("输入运动项目:run则输入1 jump则输入2 swim则输入3:\n");scanf("%d",&a);while(q!=NULL){if(a==1) /* 若项目为run则进行查找输出 */{if(q->xiangmu==1){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else if(a==2) /* 若项目为jump则进行查找输出 */{if(q->xiangmu==2){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else /* 若项目为swim则进行查找输出 */ {if(q->xiangmu==3){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */ }}}/* 排序功能 */struct student *sort(struct student *h){int d;int g1=0,e1=0,i1,j1,temp1,a[60];int g2=0,e2=0,i2,j2,temp2,b[60];int g3=0,e3=0,i3,j3,temp3,c[60];struct student *s; /* 定义链表指针 */s=h;printf("按项目排序:\n");printf("请输入项目,run----输入1,jump----输入2,swim----输入3:\n");scanf("%d",&d);printf("-----------------------------------------------------------------\n");printf("学生排序结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");if(d==1) /* 对项目为run的运动员进行排序 */{while(s!=NULL) /* 计算e1大小也就是项目为run的运动员的多少 */ {if(s->xiangmu==1){a[e1]=s->chengji;e1=e1+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i1=1;i1<e1;i1++) /* 冒泡法开始 */{for(j1=e1-1;j1>=1;j1--){if(a[j1]<a[j1-1]){temp1=a[j1-1];a[j1-1]=a[j1];a[j1]=temp1;}}} /* 冒泡结束 */s=h;while(g1<e1) /* 循环从小到大输出项目为run的运动员的信息 */{if(s->xiangmu==1){if(s->chengji==a[g1]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji); s=h;g1=g1+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else if(d==2) /* 若项目为jump则进行排序 */{while(s!=NULL) /* 计算e2大小也就是项目为jump的运动员的多少 */ {if(s->xiangmu==2){b[e2]=s->chengji;e2=e2+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }for(i2=1;i2<e2;i2++) /* 冒泡开始 */{for(j2=e2-1;j2>=1;j2--){if(b[j2]<b[j2-1]){temp2=b[j2-1];b[j2-1]=b[j2];b[j2]=temp2;}}} /* 冒泡结束 */s=h;while(g2<e2) /* 循环从小到大输出项目为jump的运动员的信息*/{if(s->xiangmu==2){if(s->chengji==b[g2]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g2=g2+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else /* 若项目为swim则进行排序 */{while(s!=NULL) /* 计算e3大小也就是项目为swim的运动员的多少*/{if(s->xiangmu==3){c[e3]=s->chengji;e3=e3+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i3=1;i3<e3;i3++) /* 冒泡开始 */{for(j3=e3-1;j3>=1;j3--){if(c[j3]<c[j3-1]){temp3=c[j3-1];c[j3-1]=c[j3];c[j3]=temp3;}}} /* 冒泡结束 */s=h;while(g3<e3) /* 循环从小到大输出项目为swim的运动员的信息 */{if(s->xiangmu==3){if(s->chengji==c[g3]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g3=g3+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }}}。
(1)输入信息函数void inputinformation() //输入信息,建立系统{int i,j,k,s;for(i=0;i<n;i++){h[i].score=0;h[i].mscore=0;h[i].wscore=0;} //初始化学校成绩for(i=0;i<n;i++){printf("*****学校编号:");scanf("%d",&h[i].schoolnum); //输入学校成绩数组中下标为i的学校编号for(j=0;j<m+w;j++) //对每一个项目输入项目成绩{printf("*****项目编号:");scanf("%d",&h[i].c[j].itemnum); //输入学校成绩数组下标为i的学校成绩项中项目数组下标为j的项目编号printf("*****取前3名or前5名:");scanf("%d",&h[i].c[j].top); //输入学校成绩数组下标为i的学校成绩项中项目数组下标为j的取名次数printf("*****获得几个名次:");scanf("%d",&k); //输入该学校该项目获得的名次数目for(s=0;s<5;s++){h[i].c[j].range[s]=0;h[i].c[j].mark[s]=0;} //初始化排名和分数 for(s=0;s<k;s++) //根据获得的名次数目逐一输入获奖名次{printf("*****名次:");scanf("%d",&h[i].c[j].range[s]); //输入所获名次信息 if(h[i].c[j].top==3) //如果取前三名switch(h[i].c[j].range[s]){case 0: h[i].c[j].mark[s]=0; break;case 1: h[i].c[j].mark[s]=5; break;case 2: h[i].c[j].mark[s]=3; break;case 3: h[i].c[j].mark[s]=2; break;}elseswitch(h[i].c[j].range[s]){case 0: h[i].c[j].mark[s]=0; break;case 1: h[i].c[j].mark[s]=7; break;case 2: h[i].c[j].mark[s]=5; break;case 3: h[i].c[j].mark[s]=3; break;case 4: h[i].c[j].mark[s]=2; break;case 5: h[i].c[j].mark[s]=1; break;}//按取前三名还是取前五名分别记分h[i].score=h[i].score+h[i].c[j].mark[s];//把该项目所获的分数记录到学校总分中if(j<=m-1)h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子项目则记到男子分数里面去elseh[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子项目则记到女子项目里面去}printf("\n");}}}(2)输出函数void output() //输出函数{int choice,i,j,k;int remember[n];int sign;do{printf("*******************1.按学校编号输出.*******************\n"); printf("*******************2.按学校总分输出.*******************\n"); printf("*******************3.按男团总分输出.*******************\n"); printf("*******************4.按女团总分输出.*******************\n");printf("\n\n******************* 请选择编号*************************\n\n:");scanf("%d",&choice);switch(choice){case 1:for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[i].schoolnum);printf("*****学校总分:%d\n" ,h[i].score);printf("*****男团总分:%d\n",h[i].mscore);printf("*****女团总分: %d\n\n\n",h[i].wscore);} //按编号顺序输出break;case 2:for(i=0;i<n;i++)remember[i]=i; //用remember数组记录下标值for(i=0;i<n;i++){for(j=i+1;j<n;j++) //总分进行比较if(h[remember[i]].score<h[remember[j]].score){k=remember[i];remember[i]=remember[j];remember[j]=k;}} // 用冒泡排序方法,用辅助数组记住头结点下标for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);//按所记下标顺序输出} //按学校总分输出break;case 3:for(i=0;i<n;i++)remember[i]=i;for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(h[remember[i]].mscore<h[remember[j]].mscore){k=remember[i];remember[i]=remember[j];remember[j]=k;} }for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore); } //按男团总分输出break;case 4:for(i=0;i<n;i++)remember[i]=i;for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(h[remember[i]].wscore<h[remember[j]].wscore){k=remember[i];remember[i]=remember[j];remember[j]=k;}}for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore); }break; //按女团总分输出}printf("请选择 2 继续,0 跳出\n");scanf("%d",&sign);}while(sign==2); //循环执行输出语句}(3)查询函数void inquiry() //查询函数{int choice;int i,j,k,s;printf("\n*****1:按学校编号查询\n");printf("\n*****2:按项目编号查询\n");printf("\n\n*****请选择查询方式:"); //提供两种查询方式 scanf("%d",&choice);switch(choice){case 1:do{printf("要查询的学校编号:");scanf("%d",&i);if(i>n)printf("错误:这个学校没有参加此次运动会!\n\n\n");{printf("要查询的项目编号:");scanf("%d",&j);if(j>m+w||j==0)printf("此次运动会没有这个项目\n\n\n");//学校编号超出范围,则输出警告else{printf("这个项目取前 %d名,该学校的成绩如下:\n", h[0].c[j-1].top);for(k=0;k<5;k++)if(h[i-1].c[j-1].range[k]!=0)printf("名次:%d\n",h[i-1].c[j-1].range[k]); //输出要查询学校项目的成绩}}printf("请选择 2 继续 , 0 跳出\n");scanf("%d",&s);printf("\n\n\n");}while(s==2); //循环执行输出语句break;case 2:do{printf("要查询的项目编号:");scanf("%d",&s);if(s>m+w||s==0)printf("此次运动会不包括这个项目.\n\n\n");//项目编号超出范围则输出警告{printf("该项目取前 %d名,取得名次的学校\n",h[0].c[s-1].top);for(i=0; i<n;i++)for(j=0;j<5;j++)if(h[i].c[s-1].range[j]!=0)printf("学校编号:%d,名次:%d\n",h[i].schoolnum,h[i].c[s-1].range[j]);} //输出该项目取得名次学校的成绩 printf("\n\n\n继续 2,跳出 0\n");scanf("%d",&i);printf("\n\n\n");}while(i==2);break;}}void writedata() //把数据存储在文件中{FILE *report; //定义文件型指针int i;if((report=fopen("sportsdata.txt","w"))==null){printf("不能打开文件\n");exit(1);}for(i=0;i<n;i++)fwrite(&h[i],sizeof(headnode),1,report);fclose(report);} //按头结点块写入(把学校成绩逐一写入到程序中(4)数据存储与读出A.void writedata() //把数据存储在文件中{FILE *report; //定义文件型指针int i;if((report=fopen("sportsdata.txt","w"))==null){printf("不能打开文件\n");exit(1);}for(i=0;i<n;i++)fwrite(&h[i],sizeof(headnode),1,report);fclose(report);} //按头结点块写入(把学校成绩逐一写入到程序中B. void readdata() //读出文件中数据的函数{FILE *report;int i,j,k,s;if((report=fopen("sportsdata.txt","r"))==null){printf("file can not be opened\n");exit(1);}for(i=0;i<n;i++){printf("******学校编号:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******学校总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******男团总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******女团总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("\n\n\n");getch();for(j=0;j<m+w;j++){printf("******项目编号:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******所取名次数量:");fread(&k,sizeof(int),1,report);printf("%d\n",k);for(s=0;s<5;s++){fread(&k,sizeof(int),1,report); if(k!=0)printf("******名次:"),printf("%d\n",k);}for(s=0;s<5;s++){fread(&k,sizeof(int),1,report);if(k!=0) printf("******分数:"),printf("%d\n",k);}}printf("\n\n\n");getch();}fclose(report); //关闭文件} //按照读一个数据就输出一个数据的方式显示数据内容(5)主函数void main(){int choice;printf("======================欢迎使用======================\n"); printf("\n\n*****************运动会分数统计系统********************\n");printf("\n\n********************1.输入信息*************************\n");printf("********************2.输出信息*************************\n");printf("********************3.查询信息*************************\n");printf("********************4.调用信息*************************\n");printf("********************5.退出系统*************************\n\n\n");printf("================================================\n\n");printf("********请选择要实现步骤的编号:\n\n");scanf("%d",&choice);switch(choice){case 1:inputinformation();writedata();readdata();main();case 2:output();main();case 3:inquiry();main(); case 4:readdata();main(); case 5:exit(0);default:exit(0);}}。
C语言课程设计体育管理一、课程目标知识目标:1. 理解C语言在体育管理中的应用,掌握基本的数据结构和算法。
2. 学习使用C语言实现体育数据的存储、查询和统计功能。
3. 了解体育管理系统的基本框架和设计思路。
技能目标:1. 能够运用C语言编写简单的体育管理程序,如运动员信息录入、比赛成绩统计等。
2. 掌握基本的编程技巧,如变量定义、条件语句、循环语句等。
3. 能够分析体育管理需求,设计合适的算法和数据结构解决问题。
情感态度价值观目标:1. 培养学生对C语言编程的兴趣,激发学生主动探索精神。
2. 培养学生的团队合作意识,学会与他人共同解决问题。
3. 增强学生对体育管理工作的认识,提高社会责任感。
课程性质:本课程为实践性较强的课程,以项目为导向,结合体育管理实际需求,培养学生运用C语言解决实际问题的能力。
学生特点:学生已具备一定的C语言基础,具有一定的编程能力,但对体育管理方面的知识了解较少。
教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重实践操作,提高学生的编程能力和解决问题的能力。
在教学过程中,注重启发式教学,引导学生主动思考,培养学生独立分析和解决问题的能力。
同时,关注学生的情感态度价值观培养,使学生在掌握知识技能的同时,形成积极向上的价值观。
二、教学内容1. C语言基础知识回顾:数据类型、运算符、控制语句(章节1.1-1.3)- 简要回顾C语言基础知识,为后续编程打下基础。
2. 函数与模块化编程:函数定义、调用、参数传递(章节2.1-2.3)- 学习如何将程序划分为多个函数,提高代码的可读性和可维护性。
3. 数组与字符串:数组定义、操作、字符串处理(章节3.1-3.3)- 掌握数组的使用,为处理体育数据(如运动员信息、比赛成绩)打下基础。
4. 指针与动态内存管理:指针概念、操作、动态内存分配(章节4.1-4.3)- 理解指针在编程中的重要性,为高效处理体育数据提供支持。
5. 结构体与文件操作:结构体定义、使用、文件读写(章节5.1-5.3)- 学习使用结构体存储复杂数据,以及如何读写文件,实现数据的持久化。
摘要运动会管理系统是典型的信息管理系统,我们所做的该系统属简易类型,可以完成运动会管理中的基本操作。
本文首先使用VC++6.0为编程工具进行编写,程序合理,简单易懂。
同时,对系统的开发原理,系统的功能特点和设计方案进行了介绍。
介绍了开发背景,通过流程图和截图说明了系统的运行情况。
在这简易系统的原理下,可以进一步增加数据,提高实用性。
关键词:运动会;管理系统;VC;ABSTRACTGames Management System is a typical Information Management System , we havedone that the system is easy to type, you can complete the basic operation of sports management . Firstly, using VC + +6.0 programming tools for the preparation , the program is reasonable, easy to understand. Meanwhile, the development of the principleof the system , the system's features and designs were introduced. Describes the development background , through the flow chart and screenshots illustrate the operation of the system . In this simple principle of the system , the data can be further increased to improve the usability.Keyword: sports competition;management system ; VC;目录1.概述 (3)1.1设计题目及要求: (3)1.2系统功能需求分析: (3)2.总体设计 (4)2.1系统功能模块图: (4)3.具体设错误!未定义书签。
沈阳航空工业学院课程设计任务书院系:电子信息工程专业:电子信息工程班级:7402101学号:200704021019 题目:运动会成绩管理系统(1)一、课程设计时间2008~09第1学期第2周,共计1周,20学时。
二、课程设计内容用C语言编写软件完成以下任务:1录入运动员信息;2按所参加的项目添加成绩;3某一项目按成绩排名。
三、课程设计要求1. 程序质量:✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“运动员信息录入”、“按项目添加成绩”、“按成绩排名(某一项目)”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、说明书成绩六、教师评语目录一、需求分析 (1)二、程序流程图 (1)三、核心技术的实现说明及相应程序段 (2)四、个人总结 (5)五、参考文献 (12)六、源程序 (12)一、需求分析经过对程序设计题目的分析可知,整个程序的实现大致分为三个模块,其中每一个模块对应一个或多个函数,他们的功能分别是:添加运动员信息(add),排序函数(sort) ,添加运动员成绩(change)。
这三个功能分别对应题目的三个要求:1、添加运动员信息函数主要实现程序最初运行时运动员信息的录入;2、排序函数按照题目的具体要求实现的是单项成绩的排序以及名次显示,其中总成绩相同者名次相同;3、添加运动员成绩函数可以实现对运动员按项目添加成绩除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个运动员的记录都包括序号、系别、姓名、年龄、性别以及短跑、跳高和游泳三项比赛成绩,在程序当中,将运动员记录类型定义为结构体类型,添加的运动员信息直接写入E盘的student.dat文件中,其他函数每次对运动员记录的访问,其数据来源都是student.dat文件,这样做不但可以保证运动员数据的一致性,而且可以对运动员数据进行永久保存,保证每次运行程序都可以采用原来的数据。
校级运动会管理系统c语言程序文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)#i n c l u d e<> #include<>#include<>#include<>#define SIZE 9#define N 3#define WM 3void bsxm(); ame);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;i<SIZE;i++){if(fwrite(&at[i],sizeof(struct athlete),1,fp1)!=1)printf("File write error!\n");}fclose(fp1);fp1=fopen("ath","r");printf("\n现在各运动员的信息如下:\n\n");printf("姓名学校项目名次得分\n");for(i=0;i<SIZE;i++){fread(&at[i],sizeof(struct athlete),1,fp1);printf("%-10s%-10s%-18s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].sc ore);}fclose(fp1);printf_back();}void saveschool() niv);printf("参赛的项目:");scanf("%s",xx[i].prog);printf("参赛者数:");scanf("%d",&xx[i].num_athlete);}fp3=fopen("xxiao","w");for(i=0;i<N;i++){if(fwrite(&xx[i],sizeof(struct xuexiao),1,fp3)!=1)printf("File write error!\n");}fclose(fp3);printf_back();}void saveprogram() rog);printf("取分情况:");scanf("%d",&pro[i].quming);printf("参赛者1:");scanf("%s",pro[i].ath1);printf("所属学校:");scanf("%s",pro[i].univ1);printf("参赛者2:");scanf("%s",pro[i].ath2);printf("所属学校:");scanf("%s",pro[i].univ2);}fp4=fopen("pr","w");for(i=0;i<N;i++){if(fwrite(&pro[i],sizeof(struct program),1,fp4)!=1)printf("File write error!\n");}fclose(fp4);printf_back();}void savescore() niv);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;i<N;i++){if(fwrite(&zf[i],sizeof(struct zongfen),1,fp2)!=1)printf("File write error!\n");}fclose(fp2);printf_back();}void Search()niv,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score);}fclose(fp2);printf_back();}void csxx() niv,xx[i].prog,xx[i].num_athlete);}fclose(fp3);printf_back();}void bsxm()rog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro [i].univ2);}fclose(fp4);printf_back();}void main(){menu();}void menu()xit \t2).menu:[ ]\b\b");scanf("%d",&w);if(w==1)exit(0);else menu();}。
c语言课程设计运动会比赛计分系统(含任务书)第一篇:c语言课程设计运动会比赛计分系统(含任务书)一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。
(6)熟练掌握C语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。
二、课程设计名称及内容课程设计名称:运动会比赛计分系统设计内容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管理和维护。
三、任务和要求要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:(1)取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;(2)取前3名:第一名得分5,第二名得分3,第三名得分2;(3)用户自定义:各名次权值由用户指定。
四、设计方案提示(1)界面系统以菜单方式工作(2)输入数据并存入文件使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
对输入的信息进行合法性判断,直到输入正确为止。
都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。
目录一课程设计目的 (1)二课程设计任务和内容 (1)三系统设计方案 (2)3.1系统详细描述 (2)3.1.1系统设计背景 (2)3.1.2系统设计详细信息 (2)3.2功能模块划分 (2)3.2.1功能模块描述 (2)3.2.2输入项 (4)3.2.3输出项 (4)四系统实现与测试 (4)4.1主菜单实现 (5)4.1.1流程图 (5)4.1.2代码 (6)4.1.3主菜单测试 (7)4.2查询模块实现 (7)4.2.1流程图 (7)4.2.2代码 (8)4.2.3模块测试 (11)4.3显示数据模块实现 (12)4.3.1流程图 (12)4.3.2代码 (13)4.3.3模块测试 (15)4.4文件输出模块 (16)4.4.1代码 (16)4.4.2模块测试 (17)4.5显示排名模块 (17)4.5.1流程图 (17)4.5.2代码 (18)4.5.3模块测试 (19)五程序调试及错误 (19)六参考文献 (20)七附录 (20)一、课程设计的目的1)学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。
2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3)掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。
4)在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。
二、课程设计任务和内容按照如下要求,运用C++语言,编写一套可用的较为完善的校际运动会管理系统软件(两人分模块合作)要求:初始化输入:学校总数及名字,运动员总数及运动员基本信息,运动会项目(为方便测试暂定为男女分别为4项,以项目一,项目二,项目三,项目四代表)各项目名次取法有以下几种:取前五名:第一名 7分,第二名 5分,第三名 3分,第四名2分,第五名 1分;取前三名:第一名 5分,第二名 3分,第三名 2分;用户自定义。
运动会成绩管理系统1.绪论运动会成绩管理程序设计的开发是为了方便记录比赛成绩,运动员的状况和成绩,对比赛成绩进行排名。
这个系统以快捷,简便为原则,更加方便了对运动会成绩的记录。
运动会是很早以前就有的一项组织性活动,它的存在使人们的身体得到了锻炼。
运动会是一项必不可少的活动,所以开发这个系统可以使运动会成绩的记录变的更加方便。
设计一个运动会成绩管理程序,主要实现以下功能:1、检录功能,登录参赛运动员的信息;2、记录成绩功能,每项比赛结束后记录参赛运动员的成绩;3、针对不同比赛对运动员的成绩排名次;4、可对运动员的信息和成绩进行修改、删除、查询操作。
2.系统分析2.1功能需求本系统要求对运动员的信息进行登录修改,记录,查询,要求可以对运动员的成绩进行单项排名。
主要实现程序最初运行时运动员数据的录入以及其后的运行数据的追加功能,实现的功能是按照号码对运动员的数据记录进行修改、记录、查询、删除,按照题目的具体要求实现的是某项成绩的递减排序以及名次显示。
2.2数据需求在这些函数当中,添加运动员数据函数例如运动员序号、运动员名称、百米赛跑成绩、三级跳成绩和撑杆跳成绩。
2.3性能需求本系统的性能需求:要求运行稳定、数据可靠、输出准确、响应速度快、可安全运行、能很好的保存、删除、修改。
可以及时保存存储删除数据,可对成绩进行排名,显示即时成绩3.总体设计3.1功能模块设计经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,每一个模块对应一个函数。
在这些函数当中,添加运动员数据函数,删除数据函数,某项成绩排序函数的实现严格按照题目的要求,而更改数据函数和显示函数属于附加功能。
读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。
录入信息模块是录入运动员信息、查询信息模块是查询运动员信息的、修改信息模块可以对运动员信息进行修改、删除模块可对运动员信息进进行删除、成绩排名是对运动员的成绩进行排名,功能模块见图1所示。
#define PRINT0 printf("name:%s\nsex:%s\nage:%d\nID_card:%d\naddress:%s\n",st[i].name,st[i].sex,st[i].age,st[i] .ID_card,st[i].addr)#define PRINT1 printf("prefession:%s\nstudent_number:%d\n*****score*****\nwuli:%d\n",st[i].prefession,st[i] .student_number,st[i].score.wuli)#define PRINT2 printf("gaoshu:%d\nyingyu:%d\ntiyu:%d\naverage: %d\n",st[i].score.gaoshu,st[i].score.yingyu,st[i ].score.tiyu,st[i].score.aver)#define print1 printf("________________________________")#define N 2#include "string.h"#include "stdio.h"int sum=0;struct score{int wuli;int gaoshu;int yingyu;int tiyu;int aver;};struct message{ char name[10];int age;char sex[5];int ID_card;char addr[30];char prefession[30];int student_number;struct score score;}st[100];/*************write message*************/write_message(){ int flag;char chioce;do{system("cls");flag=2; sum++;printf("_______________________________");printf("please input student's message:\n");printf("\n");print1;printf("%dth student message:",sum);print1;printf("\nname:");scanf("%s",st[sum].name);printf("\nsex:");scanf("%s",st[sum].sex);printf("\nage:");scanf("%d",&st[sum].age);printf("\nID_card:");scanf("%d",&st[sum].ID_card);printf("\naddress:");scanf("%s",st[sum].addr);printf("\nprefession:");scanf("%s",st[sum].prefession);printf("\nschool number:");scanf("%d",&st[sum].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[sum].score.wuli);printf("\ngaoshu:");scanf("%d",&st[sum].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[sum].score.yingyu);printf("\ntiyu:");scanf("%d",&st[sum].score.tiyu);printf("\naverage:");scanf("%d",&st[sum].score.aver);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*************save message****************/save_message(){ FILE *fp;int i;if((fp=fopen("student.txt","wb"))==NULL){printf("read error \n");printf("press any key back to menu\n");getch();exit(1);}for(i=0;i<sum;i++)if(fwrite(&st[i],sizeof(struct message),1,fp)!=1){printf("write error\n");fclose(fp);}fclose(fp);printf("\n********___OK!___**********\n___press any key back___");sum=i;bioskey(0);}/***************add message*****************/add_message(){int i,j,flag; char chioce;i=0;j=sum-1;flag=0;do{ system("cls");i++; j++;print1;printf("add %dth student's meaasge\n",i);print1;printf("\nname:");scanf("%s",st[j].name);printf("\nsex:");scanf("%s",st[j].sex);printf("\nage:");scanf("%d",&st[j].age);printf("\nID_card:");scanf("%d",&st[j].ID_card);printf("\naddress:");scanf("%s",st[j].addr);printf("\nprefession:");scanf("%s",st[j].prefession);printf("\nstudent_number:");scanf("%d",&st[j].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[j].score.wuli);printf("\ngaoshu:");scanf("%d",&st[j].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[j].score.yingyu);printf("\ntiyu:");scanf("%d",&st[j].score.tiyu);printf("\naverage:");scanf("%d",&st[j].score.aver);printf("\n\nweather add %dth student's message: \n",i+1);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;}while(1);}while(flag==1);sum=j+1;save_message();}/**********inqiure message******/inqiure_message(){int chioce;do{system("cls");printf("**********choose 0-3**********\n\n\n");printf(" 1:name inquire\n\n\n");printf(" 2:IDcard inqiure\n\n\n");printf(" 3:student_number\n \n\n");printf(" 0:back menu\n\n\n");scanf("%d",&chioce);switch(chioce){case 1: name_inqiure();break;case 2: ID_card_inqiure();break;case 3: grade_inqiure();break;case 0:break;}}while(chioce!=0);}/**********name inqiure*********/name_inqiure(){char NAME[30];int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nname:");scanf("%s",NAME);getchar();printf("\n");for(i=0;i<sum;i++){if(strcmp(st[i].name,NAME)==0){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/**********IDcard inqiure*********/ID_card_inqiure(){int card;int i; int flag,k;char chioce;do{ clrscr(); k=0;printf("please input the message you inqiure");printf("\nIDcard:");scanf("%d",&card);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].ID_card==card){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********grade inqiure***********/grade_inqiure(){int GRADE;int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nstudent_number:");scanf("%d",&GRADE);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].student_number==GRADE){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********change message**********/change_message(){char pre[30],chioce;int i,gra,flag,num,s;s=0;do{system("cls");printf("please input message you want to change\n ");printf("student_number:");scanf("%d",&gra); getchar();for(i=0;i<sum;i++){if(st[i].student_number==gra){PRINT0;PRINT1;PRINT2;printf("\n********input message you want to change********\n");printf("0:name***1:sex***2:age***3:ID_card***4:address***\n5:prefession***6:wuli***7:stud ent_number***8\n:gaoshu***9:yingyu***10:tiyu***11:average***________\n");printf("choose 0-11\n");scanf("%d",&num); getchar();switch(num){case 0: printf("input the name changed\n");scanf("%s",st[i].name); getchar(); break;case 1: printf("input the sex changed\n");scanf("%s",st[i].sex); getchar(); break;case 2: printf("input the age changed\n");scanf("%d",&st[i].age); getchar(); break;case 3: printf("input the ID_card changed\n");scanf("%d",&st[i].ID_card); getchar(); break;case 4: printf("input the address changed\n");scanf("%s",st[i].addr); getchar(); break;case 5: printf("input the prefession changed\n");scanf("%s",st[i].prefession); getchar(); break;case 6: printf("input the wuli_score changed\n");scanf("%d",&st[i].score.wuli); getchar(); break;case7: printf("input the student_number changed\n");scanf("%d",&st[i].student_number); getchar(); break;case 8: printf("input the gaoshu_score changed\n");scanf("%d",&st[i].score.gaoshu); getchar(); break;case 9: printf("input the yingyu_score changed\n");scanf("%d",&st[i].score.yingyu); getchar(); break;case 10: printf("input the tiyu_score changed\n");scanf("%d",&st[i].score.tiyu); getchar(); break;case 11: printf("input the average_score changed\n");scanf("%d",&st[i].score.aver); getchar(); break;default: printf("input error\n"); break;}printf("\n*********the changed message*********\n\n");PRINT0;PRINT1;PRINT2;s=1;}}if(s!=1) printf("without message you want to change\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********delete message**********/delete_message(){ int GRADE;int i,j,flag1,flag;char chioce1,chioce2;flag1=3;flag=3;do{ system("cls");printf("please input student's student_number you want to delete\n");printf("student_number:");scanf("%d",&GRADE); getchar();for(i=0;i<sum;i++)if(st[i].student_number==GRADE){do{PRINT0;PRINT1;PRINT2;printf("\n******************************\n_________________ _________________\n");printf("press y/Y deleted:\npress n/N cancel:\n");scanf("%c",&chioce1);getchar();system("cls");if(chioce1=='y'||chioce1=='Y') flag1=1;else if(chioce1=='n'||chioce1=='N') return;else {printf("***input error***\n___press any ker return___\n"); bioskey(0);}}while(flag1!=1);for(j=i;j<sum;j++){ st[j]=st[j+1];flag=2;printf("message was deleted\n");sum-=1; }}if(flag!=2) printf("without message you want to delete\n");do{printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce2);printf("****************************\n");if(chioce2=='y'||chioce2=='Y') {flag=1; break;}else if(chioce2=='n'||chioce2=='N') {flag=0; break;}else {system("cls");printf("input error\n");}print1;printf("\n");}while(1);}while(flag==1);save_message();}/************insert message*************/insert_message(){ int chioce,flag,i; flag=2;do{system("cls");printf("please input the number of people you insert\n");scanf("%d",&chioce);if(chioce>=sum){printf("xin xi pai zai zui hou ");chioce=sum;}for(i=sum;i>chioce;i--) st[i]=st[i-1];printf("\nplease input message you insert");printf("\nname:");scanf("%s",st[i].name);printf("\nsex:");scanf("%s",st[i].sex);printf("\nage:");scanf("%d",&st[i].age);printf("\nID_card:");scanf("%d",&st[i].ID_card);printf("\naddress:");scanf("%s",st[i].addr);printf("\nprefession:");scanf("%s",st[i].prefession);printf("\ngrade:");scanf("%d",&st[i].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[i].score.wuli);printf("\ngaoshu:");scanf("%d",&st[i].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[i].score.yingyu);printf("\ntiyu:");scanf("%d",&st[i].score.tiyu);printf("\naverage:");scanf("%d",&st[i].score.aver);sum+=1;do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********school_number_order***********/grade_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].student_number>st[j].student_number){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("grade order from min to max\n");for(i=0;i<sum;i++){ print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);bioskey(0);}/***********wuli score order***************/wuli_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("wuli score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********gaoshu score order***************/gaoshu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.gaoshu>st[j].score.gaoshu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("gaoshu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********yingyu score order***************/yingyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.yingyu>st[j].score.yingyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yingyu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********tiyu score order***************/tiyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.tiyu>st[j].score.tiyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yitu order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********average score order***************/average_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("average score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/********order message****************/order_message(){int chioce;do{system("cls");printf("**********choose 0-6**********\n\n");printf(" 1:grade order\n\n");printf(" 2:wuli score order\n\n");printf(" 3:gaoshu score order\n \n");printf(" 4:ying yu score order\n\n");printf(" 5:tiyu score order\n\n");printf(" 6:average score order\n\n");printf(" 0:back menu\n\n");scanf("%d",&chioce);switch(chioce){case 1: grade_order();break;case 2: wuli_order();break;case 3: gaoshu_order();break;case 4: yingyu_order();break;case 5: tiyu_order();break;case 6: average_order();break;case 0:break;}}while(chioce!=0);}/**********answer secretory***********/mima_message(){int flag;char answer[10];char secret[10]="abcd";flag=2;do{system("cls");printf("\n______________________mi ma wei 'abcd'________________\n\n");printf("______________________qing shu ru mi ma:");scanf("%s",answer);getchar();if(strcmp(secret,answer)==0){flag=1;printf("\n\n =====throngh=====\n\n\n");printf("____________________press any key into next:\n");bioskey(0);}else{flag=0;printf("______________________input error:\n");printf("______________________press any key to return:\n");bioskey(0);}}while(flag!=1);}/*********read message****************/read_message(){int i;system("cls");if(sum<=0){ printf("without message\n");getch();return;}for(i=0;i<sum;i++){system("cls");print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;printf("\n********press any key -show the next one********\n ");getch();}printf("________________totle num :%d________________\n",sum); printf("_____________press any key return______________\n"); bioskey(0);}/*************************************/main(){int chioce,flag;mima_message();do{system("cls");chioce=9;printf("**********************************************\n");printf("****welcome to system of managing students****\n");printf("**********************************************\n\n");printf("-------------------choose 0-8-----------------\n\n");printf(" 1:write message\n\n");printf(" 2:add message\n\n");printf(" 3:inqiure name\n\n");printf(" 4:change message\n\n");printf(" 5:insert message\n\n");printf(" 6:order message\n\n");printf(" 7:delete message\n\n");printf(" 8:read messaeg\n\n");printf(" 0:***exit***\n\n");scanf("%d",&chioce);getchar();switch(chioce){case 1: write_message();break;case 2: add_message();break;case 3: inqiure_message();break;case 4: change_message();break;case 5: insert_message();break;case 6: order_message();break;case 7: delete_message();break;case 8: read_message();break;case 0: printf("___sure press y/Y:___\n\n___no sure press n/N:___");scanf("%c",&chioce);getchar();if(chioce=='y'||chioce=='Y') flag=0;else flag=1;break;default : printf("\n ___input error___\n\n");printf("***press any key to go on***\n");getch();break;}}while(flag!=0);save_message();system("cls");printf("\n\n___message was saved___\n\n\n*****file name is student.txt*****\n");bioskey(0);}。
项目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,xx,等。
试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)---输入学生信息浏览功能---输出查询、排序功能---算法按学号查询、按姓名查询、学生信息得删除与修改(可选项)(2)功能要求界面比较美观;有一定得容错能力,比如输入得成绩不在0~100之间,就提示不合法,要求重新输入;最好用链表得方式实现。
(3)算法分析首先,一个学生包括这么多得属性,应该考虑定义一个结构,其次,我们应该考虑数据得存储形式:就是定义一个数组来存储,还就是定义一个链表呢?在这里假如我们以数组得方式来存储,当然可以,但就是我们知道,假如我们定义一个数组得话,我们首先必须知道学生人数大概就是多少,以便我们确定数组得大小,但就是题目中没有给出,而且题目要求中有大量得删除、插入操作,所以用链表得方式比较方便。
对于菜单得实现,其实也比较简单,首先我们用printf语句把程序得功能列出来,然后等待用户输入而执行不同得函数,执行完了一个功能后又回到菜单。
文件得读写操作大家参照书中得有关文件得章节。
项目2、学生综合测评系统每个学生得信息为:学号、姓名、性别、家庭住址、联系xx、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分得60%,10%,10%,20%。
A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系xx,按学号以小到大得顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入得同学信息,然后再打开源文件并建立新文件,把源文件与输入得信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定就是否删除将删除后得信息写到文件中。
#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#define SIZE 9#define N 3#define WM 3void bsxm(); //比赛项目void csxx(); //参赛学校void ttzf() ;//团体总分void Information();void main();void menu();void printf_back();void saveathlete();void saveprogram();void saveschool();void savescore();void Search();int i;FILE *fp1,*fp2,*fp3,*fp4;struct athlete //定义运动员信息{char univ[5];char name[8];char prog[15];char mingci[5];int score;}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("\t\t***^__^ Welcome to load 信息录入system! ^__^***\n");puts("\t\t*************************MENU*************************\n");puts("\t\t******** 1.saveathlete **************\n");//运动员姓名录入puts("\t\t******** 2.saveschool **************\n");//运动员学校录入puts("\t\t******** 3.saveprogram() **************\n");//参加项目录入puts("\t\t******** 4.back **************\n");//退出puts("\t\t******************************************************\n");printf("Choic your number(1-4):[ ]\b\b");scanf("%d",&n);if (n<1||n>4){w=1;printf("\n\n\t\t----------------------DATAERROR!----------------------\n\n\n");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;i<SIZE;i++){printf("\n请输入第%d个运动员的信息:\n",i+1);printf("姓名:");scanf("%s",at[i].name);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;i<SIZE;i++){if(fwrite(&at[i],sizeof(struct athlete),1,fp1)!=1)printf("File write error!\n");}fclose(fp1);fp1=fopen("ath","r");printf("\n现在各运动员的信息如下:\n\n");printf("姓名学校项目名次得分\n");for(i=0;i<SIZE;i++){fread(&at[i],sizeof(struct athlete),1,fp1);printf("%-10s%-10s%-18s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].score);}fclose(fp1);printf_back();}void saveschool() //保存学校信息子函数{printf("\n请输入各参赛学校的信息:");for(i=0;i<N;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;i<N;i++){if(fwrite(&xx[i],sizeof(struct xuexiao),1,fp3)!=1)printf("File write error!\n");}fclose(fp3);printf_back();}void saveprogram() //保存项目比赛信息子函数{printf("\n请输入关于比赛项目的信息:");for(i=0;i<WM;i++){printf("\n请输入第%d项比赛的信息:\n",i+1);printf("项目:");scanf("%s",pro[i].prog);printf("取分情况:");scanf("%d",&pro[i].quming);printf("参赛者1:");scanf("%s",pro[i].ath1);printf("所属学校:");scanf("%s",pro[i].univ1);printf("参赛者2:");scanf("%s",pro[i].ath2);printf("所属学校:");scanf("%s",pro[i].univ2);}fp4=fopen("pr","w");for(i=0;i<N;i++){if(fwrite(&pro[i],sizeof(struct program),1,fp4)!=1)printf("File write error!\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;i<N;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;i<N;i++){if(fwrite(&zf[i],sizeof(struct zongfen),1,fp2)!=1)printf("File write error!\n");}fclose(fp2);printf_back();}void Search() //进入查询系统子函数{int n,w2;do{puts("\t\t***^__^ Welcome to load search system! ^__^***\n");puts("\t\t*************************MENU*************************\n");puts("\t\t******** 1.search ttzf **************\n");//查看团体总分puts("\t\t******** 2.search csxx **************\n");//查看参赛学校信息!puts("\t\t******** 3.search bsxm **************\n");//查看比赛项目信息!puts("\t\t******** 4.Exit **************\n");//退出puts("\t\t***************************************\n");printf("Choose your number(1-4):[ ]\b\b");scanf("%d",&n);if (n<1||n>4){w2=1;printf("\n\n\t\t----------------------DATAERROR!----------------------\n\n\n");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;i<N;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;i<N;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;i<N;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("\t\t***^__^ Welcome to load sports system! ^__^***\n");puts("\t\t*************************MENU*************************\n");puts("\t\t******** 1.Enter the information **************\n");//进入信息录入puts("\t\t******** 2.Score **************\n");//进入比赛结果录入puts("\t\t******** 3.Search **************\n");//进入查询功能puts("\t\t******** 4.Exit **************\n");//退出puts("\t\t******************************************************\n");printf("Choose your number(1-4):[ ]\b\b");scanf("%d",&n);if (n<1||n>4){w1=1;printf("\n\n\t\t----------------------DATAERROR!----------------------\n\n\n");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();}。