校运动会管理系统报告c语言含完整代码)

合集下载

运动会管理系统c语言程序设计

运动会管理系统c语言程序设计

运动会管理系统C语言程序设计
简介
运动会管理系统是一个用C语言编写的程序,用于管理学校或机构举办的各类
运动会活动。

该系统能够帮助组织者有效地安排赛程、记录成绩以及生成相关报表,提高管理效率和赛事质量。

功能模块
1. 用户登录
•提供管理员和裁判员两类用户登录选项
•管理者可以对比赛项目、队伍信息进行管理
•裁判员可以录入比赛成绩
2. 赛事管理
•管理者可以添加、编辑、删除赛事项目
•每个赛事项目包括项目名称、参赛队伍、赛程安排等信息
3. 队伍管理
•管理者可以添加、编辑、删除参赛队伍
•每个参赛队伍包括队名、队员信息等
4. 成绩录入
•裁判员可以录入每个队伍在各个项目中的成绩
•系统可以自动计算并显示队伍的总成绩
5. 报表生成
•系统可以根据录入的成绩数据生成成绩报表
•报表可以按照项目、队伍等不同维度展示成绩数据
技术实现
该系统基于C语言编写,采用了结构体、文件读写、数据处理等基本功能和技术。

通过数据结构的设计和文件操作,实现了用户登录、赛事管理、队伍管理、成绩录入、报表生成等功能。

系统优势
•界面简洁明了,操作便捷高效
•数据处理准确可靠,确保成绩数据的准确性
•面向对象的设计,方便扩展和维护
结语
运动会管理系统C语言程序设计为学校或机构举办运动会提供了一种高效的管理方式,使赛事组织更加顺畅和专业化。

通过不断的优化和改进,该系统能够更好地满足不同运动会的管理需求,为相关活动的顺利进行提供有力支持。

运动会分数统计___(实验报告+源程序)C++

运动会分数统计___(实验报告+源程序)C++

实验报告1实验名称:数据结构与软件设计实习题 目:运动会分数统计专业:生物信息学 班级:01 姓名: 学号:实验日期:2010.07.22一、 实验目的:掌握基本的输入输出方法,理解程序的分支结构,实现条件判断和循环程序的设计;掌握结构体的应用;二、 实验要求:生各学院的成绩单,包括各学院所取得的项目号、名次(成绩)、学生姓名(或学号)和得分;产生团体总分报表,包括学院号、男子团体总分、女子团体总分和团体总分。

二、 实验内容:参加运动会的的学院编号为1~n,比赛分成m 个男子项目和w 个女子项目,编号分别为1~m 和m+1~m+w ,所有项目都取前五名,得分顺序为7,5,3,2,1。

写一个统计程序产生各种成绩单和得分报表。

通过编程解决一些实际问题,并对程序进行测试,可设n=4,m=3,w=2进行测试,一般考虑n ≤20,m ≤30,w ≤20,姓名长度不超过20个字符,按名次顺序输入运动员姓名、学院名和成绩。

四、实验编程结果或过程:1. 数据定义(1)描述运动员的线性表typedef struct { int item[MAXSIZE]; //参赛项目号 char thletename[MAXSIZE][20];//姓名 char sex[MAXSIZE];//性别 int schoolnum[MAXSIZE];//所在学校编号 int num[MAXSIZE];//名次int last;}student; (2)描述学院的线性表typedef struct { int schoolnum[MAXSIZE];//学校编号 int Tgirl[MAXSIZE];//女生团体总分 int Tboy[MAXSIZE];//男生团体总分 int Tall[MAXSIZE];//学校总成绩 int last;2.初始化函数控制输入的函数算分的函数控制输出成绩的函数3. 运行测试结果,运行结果无误,如下图错误调试,能够正确处理错误,如下图调试分析1.用线性链表时应注意细节,指针的使用过程中很容易出错,从而达不到采用其起到的效果用线性链表时应注意细节,指针的使用过程中很容易出错,从而达不到采用其起到的效果。

c语言管理系统设计源代码

c语言管理系统设计源代码

c语言管理系统设计源代码以下是一个简单的C语言管理系统示例,用于管理学生信息。

该系统可以添加、删除、修改和查找学生信息。

c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct student {char name[50];int roll;float marks;};struct student students[100];int count = 0;void add_student() {struct student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter roll number: ");scanf("%d", &new_student.roll);printf("Enter marks: ");scanf("%f", &new_student.marks);students[count] = new_student;count++;}void delete_student() {int index;printf("Enter index of student to delete: ");scanf("%d", &index);for (int i = index; i < count - 1; i++) {students[i] = students[i + 1];}count--;}void modify_student() {int index;struct student new_student;printf("Enter index of student to modify: "); scanf("%d", &index);printf("Enter new name: ");scanf("%s", new_);printf("Enter new roll number: ");scanf("%d", &new_student.roll);printf("Enter new marks: ");scanf("%f", &new_student.marks);students[index] = new_student;}void find_student() {char name[50];printf("Enter name of student to find: "); scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("Roll number: %d\n", students[i].roll); printf("Marks: %.2f\n", students[i].marks); return;}}printf("Student not found.\n");}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Delete student\n");printf("3. Modify student\n");printf("4. Find student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case1: add_student(); break;case2: delete_student(); break;case3: modify_student(); break;case4: find_student(); break;case5: exit(0); break; // exit the program here, otherwise the loop will keep running indefinitely, as it is in the do-while loop above. We are not returning, but rather exiting the program completely, so we do not need to return anything. The return value of main is always 0, and this is how the program exits. If you want to return a value other than 0, you can do so like this: return 1; or return -1; or return any other integer value you want to represent an error condition. The operating system will interpret this as the program's exit status. In this case, it will be seen as successful, as it is returning 0. The return value of main is not used for anything in this program, but it can be used in other programs to determine whether the program exited successfully or with an error. For example, if you were writing a shell script that executed this program and needed to know if it was successful or not, you could check the return value of the program and act accordingly. This is a common practice in programming, and it is important to understand how it works so that you can use it effectively in your own programs.。

运动会管理系统源代码

运动会管理系统源代码

运动会管理系统源代码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语言程序设计》课题运动会分数统计系统专业班级电气工程及其自动化学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日第一部分《C语言课程设计》任务书前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。

是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。

通常,课程设计的课题比平时的习题复杂得多,也更接近实际。

课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。

为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。

学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。

学习委员将课程设计报告与磁盘收齐后交指导老师。

一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

运动会管理系统实验报告 陈琼暖

运动会管理系统实验报告 陈琼暖

综合实验:运动会奖牌榜管理系统院系:信息与通信学院级别:07级班级:计算机科学与技术姓名:陈琼暖学号:20070810104目录:一、系统简介>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 1 -二、实验目的>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 1 -三、基本数据结构设计>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 2 -四、系统结构设计>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 5-五、模块设计>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 7 -六、实验感想>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -12-附件:运动会奖牌榜管理系统部分操作界面详情(进行功能检测)运动会奖牌榜管理系统代码(代码中有较详细讲解各模块原理)一、系统简介:运动会奖牌榜管理系统应用软件给家庭成员提供了一个在Windows操作系统上运行的管理平台,主办方可以对其运动会过程中所涉及到的各运动项目名称、比赛状况、运动员成绩进行设置,运动员可以查看奖牌榜、查看总分排行榜、单项成绩排名,同时该系统还提供了运动员注册功能。

C语言课设之校级运动会管理系统

.C程序设计实习报告校际运动会管理系统一、题目要求(1)信息初始化输入:N─参赛学校总数,M─男子竞赛项目数,W─女子竞赛项目数;各项目名次取法有如下几种:错误!未找到引用源。

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

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

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

二.总体设计分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为以下五个模块:信息输入、录入比赛结果、查询信息、退出.1.总的模块图Saveathele()保存运动员信Information Saveschool()保存学校信息Saveprogram()保存项目信息Savescore()比赛结果录入MainTtzf()查询团体总分Search()Csxx()查询参赛学校信息Bsxm()查询团体总分Exi t(0)图1整体模块图三、详细设计1.主函数主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。

其中各功能模块用菜单式选择。

另外菜单部分也可以写成函数。

[流程图]显示一系列功能选项N输入n,判断n是否是1-4Y根据n的值调用各功能模块函数图2主函数流程图[程序]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("Choice your number(1-4):[]\b\b");scanf("%d",&n);if(n<1||n>4){w1=1;getchar();}else w1=0;}while(w1==1);switch(n){case1:Information();break;//输入信息case2:savescore();break;//比赛结果录入case3:Search();break;//查询模块case4:exit(0);}}2.各功能模块设计(1)信息输入模块一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存信息输入读入、显示参赛学校读入、显示运动员读入比赛项目图3信息输入模块流程图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;getchar();}else w=0;}while(w==1);switch(n){case1:saveathlete();break;//保存运动员信息子函数case2:saveschool();break;//保存学校信息子函数case3:saveprogram();break;//保存项目比赛信息子函数case4:exit(0);}}(2)结果录入模块录入运动员比赛得分分析计算各学校总分图4比赛结果录入模块流程图(3)查询信息模块[分析]查询信息模块提供按不同式查询各种信息机返回功能,其中各功能模块用菜单式选择。

校运动会管理系统

}
void find() //查找函数//
{
system("cls");
printf("\t************查找界面************\n");
char fs[20];
read();
printf("输入你要查找运动员的号码或姓名:");
scanf("%s",&fs);
for(int i=0;i<size;i++)
#include<string.h>
#include<conio.h>
#include <time.h>
#define load sizeof(student)
#define N 7
void read();
void save();
int size=3;
struct student
{
char num[10];
break;
}
else if(strcmp(stu[i].name,fs)==0)
{
printf("你要找的运动员已找到:\n");
printf("该生的号码,姓名,100米成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);
3.总体设计
根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。

运动会管理系统代码

(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语言程序

#i n c l u d e<s t d i o.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-女子竞赛项目数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
void find() //查找函数//
{
system("cls");
printf("\t************查找界面************\n");
char fs[20];
read();
printf("输入你要查找运动员的号码或姓名:");
scanf("%s",&fs);
for(int i=0;i<size;i++)
printf("输出运动员号码,姓名,100成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");
for(i=0;i<size;i++)
printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);
for(int i=0;i<size;i++)
{
for(int j=i+1;j<size;j++)
{
if(stu[i].scorem<stu[j].scorem)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("排序后:\n");
for(i=0;i<size;i++)
else if(stu[i].scoreq==2) y=2;
else if(stu[i].scoreq==3) y=1;
else y=0;
if(stu[i].scoreg==1) z=3;
else if(stu[i].scoreg==2) z=2;
else if(stu[i].scoreg==3) z=1;
}
}
save();
}
void defen()//得分函数
{
system("cls");
printf("\t************得分界面************\n");
int x,y,z,w,o,p,q,i;
char ch1[20]="ruanjian",ch2[20]="shumei",ch3[20]="guangdian";
根据用户输入各项成绩排名,进行得分运算
并得出学院排名
(9)删除函数
用于输入信息的删除
(10)插入函数
用于输入新的信息
(11)保存函数
将用户输入的信息保存到文本文件中
(12)显示函数
显示用户保存的信息
二、
三、
(此部分采用小五号宋体,行间距-固定值14)
#include<stdio.h>
#include<stdlib.h>
stu[i].scorey=scorey;
break;
}
case 7:
{
printf("输入你修改运动员系名:");
scanf("%s",&ximing);
strcpy(stu[i].ximing,ximing);
break;
}
default:
printf("你的输入有误:\n");
}
printf("修改后的运动员数据:\n");
printf("请输入运动员号码,姓名,100成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");
for(int i=0;i<size;i++)
scanf("%s%s%d%d%d%d%s",&stu[i].num,&stu[i].name,&stu[i].scorem,&stu[i].scoreq,&stu[i].scoreg,&stu[i].scorey,&stu[i].ximing);
/*for(int i=0;i<size;i++)
printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);*/
{
system("cls");
printf("\t************修改界面************\n");
char ch2[20],c;
char num[10],name[20];
int scorem,scoreq,scoreg,scorey,i;
char ximing[20];
printf("原始数据:\n");
(5)查找函数
提醒用户输入运动员的姓名或编号,根据姓名或编号逐一比对信息,若条件满足则输出该选手的数据,若不满足则返回‘你要找的运动员未找到’
(6)排序函数
根据运动员的百米成绩进行冒泡排序,并输出结果
(7)修改函数
提醒用户输入运动员的姓名,根据姓名逐一比对信息,若找到则提供修改选项,对数据进行覆盖
(8)得分计算函数
read();
printf("各系的得分总分排序:\n");
for(i=0;i<size;i++)
{
if(stu[i].scorem==1) x=3;
else if(stu[i].scorem==2) x=2;
else if(stu[i].scorem==3) x=1;
else x=0;
if(stu[i].scoreq==1) y=3;

一、程序分析与设计1
二、流程图1
三、源程序清单1
四、调试过程2
五、程序有待改进的地方2
六、本次实习的收获和建议3
附录3
一、程序分析与设计
(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)
1.题目描述
初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;即要求输入一些基础数据,如院系名称,每个院系参赛选手及选手编号。竞赛项目名称与代号。这些数据存储在文本文件中,不需要每次都单条录入。
(2)密码登陆函数
首先进入欢迎界面,提示用户输入密码进入系统,密码输入次数限制为三次,三次输入错误则退出系统,登陆成功显示菜单栏
(3)菜单函数
提醒用户根据要求选择功能,以及多次功能选取
(4)输入函数
进入该功能后提醒用户输入相应信息,即数据结构,数据结构采用结构体的形式,选手结构体成员包括选手的姓名、编号、各项目的成绩排名、选手所在学院等。
read();
printf("输入你要修改运动员的姓名:");
scanf("%s",ch2);
for(i=0;i<size;i+&#.name,ch2)==0)
{
printf("1.修改号码\n2.修改姓名\n3.修改100米成绩\n4.修改铅球成绩\n5.修改跳高成绩\n6.修改跳远成绩\n7.修改系名\n");
3.总体设计
根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。具体校际运动会管理系统分为 信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。
4.详细设计
(1)主函数
主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。其中功能模块用菜单方式选择。
break;
}
else
{
printf("你要找的运动员未找到:\n");
printf("该运动员缺赛或不存在!");
break;
}
}
}
void paixu() //排序函数//
{
system("cls");
printf("\t************排序界面************\n");
printf("对一百米的成绩排序:\n");
char name[20];
int scorem,scoreq,scoreg,scorey;
char ximing[20];
}stu[N],temp;
void input() //输入原始数据//
{
system("cls");
printf("\t************输入界面************\n");
break;
}
else if(strcmp(stu[i].name,fs)==0)
{
printf("你要找的运动员已找到:\n");
printf("该生的号码,姓名,100米成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);
scanf("%d",&c);
相关文档
最新文档