运动会分数统计系统设计报告
运动会分数统计系统-c语言课程设计报告书
课程设计报告课程名称《C语言程序设计》课题名称运动会分数统计系统专业电气工程及其自动化班级电气工程学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称《C语言程序设计》课题运动会分数统计系统专业班级电气工程及其自动化学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日第一部分《C语言课程设计》任务书前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘收齐后交指导老师。
一、目的全面熟悉、掌握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.用线性链表时应注意细节,指针的使用过程中很容易出错,从而达不到采用其起到的效果用线性链表时应注意细节,指针的使用过程中很容易出错,从而达不到采用其起到的效果。
运动会分数统计系统报告
课题:运动会分数统计系统一、问题分析和任务定义1、任务描述:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1~m,女子m+1~m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定。
(m<=20,n<=20)2、功能要求:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分;3) 可以按学校编号、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个项目的情况;5) 可以按项目编号查询取得前三或前五名的学校。
二、软件设计1、本系统的流程图如下:2、本系统采用的存储结构为结构化设计理念,这是数据库的最基本的设计要求,主要包括三个数据表:(1) 项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项目为接下来报名、场地的准备提供依据。
本数据表根据要求设计存储每个项目的编号、名称、要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称及要取的名次,而各名次对应的学校编号将由系统自动统计。
这也有利于以后项目情况的查询。
typedef struct{int itemnum; //项目编号int top; //取名次的数目int range[5]; //名次int mark[5]; //分数}itemnode; //定义项目结点的类型 Y N NN Y Case1 Case3 N Y Y 开始---初始化输入 输入某项目各名次成绩 输入学校及男女项目范围 继续输查询各学校成绩 Case2 查询团体总分 成绩查询 输出查询学校成绩 继续 结束—退出继续(2)学校数据表:本数据表储存了各个参赛学校的总体情况,包括学校的编号、名称、男子团体总分、女子团体总分和学校总分。
其中学校编号和名称是提前输入的,而其他三项内容将由系统进行自动统计。
运动会分数统计系统设计报告
} for(i=1;i<=N;i++){
printf("请输入第%02d 个学校名称:",i); scanf("%s",parr[i].Sname); parr[i].Snumber=i; } printf("按任意键继续\n"); getch(); while(1){ system("cls"); printf("\n\n\n\n"); printf("\t\t|******************************************|\n"); printf("\t\t|------------ 运动会分数统计系统 ----------|\n"); printf("\t\t|-------------- 1.比赛成绩录入 ------------|\n"); printf("\t\t|-------------- 2.比赛成绩统计 ------------|\n"); printf("\t\t|-------------- 3.比赛成绩排序 ------------|\n"); printf("\t\t|-------------- 4.比赛成绩查询 ------------|\n"); printf("\t\t|-------------- 5.比赛成绩保存 ------------|\n"); printf("\t\t|-------------- 0.退出统计系统 ------------|\n"); printf("\t\t|******************************************|\n"); printf("\t\t\n"); scanf(" %c",&ch); switch(ch){
运动会分数统计系统实验报告【精选文档】
运动会分数统计系统的实现09计科(2)班E10914044杨素传一、设计要求1、问题描述参加运动会有n个学校,学校编码为1,2,…,n,比赛分成m个男子项目和w个女子项目.项目编号为男子1,2,…,m,女子m+1,m+2,…,m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为7,5,3,2,1;前三名的积分分别5,3,2;哪些取前五名或前三名由学生自己设定(m〈=20,n〈=20)。
2、需求分析(1)可以输入各个项目的前三名或前五名成绩;(2)能统计各学校成绩;(3)可以按学校编号、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某项目情况,可以按项目编号查询取得前三名或前五名的学校。
二、概要设计1、主界面设计为了实现运动会分数统计系统,设计一个含有多个菜单项的主控菜单子程序以连接系统的各项子程序,方便用户使用本程序。
本系统主控菜单运行界面图1所示.图1 运动会分数统计系统程序主菜单2、存储结构设计本程序采用链式存储类型(LNode)存储运动会分数统计系统的节点信息。
运动会分数统计系统的链表中的结点包括8个域:项目编号域(objnum)、项目类型(objtype)、运动员编号(athnum)、运动员姓名(athname[20])、学校编号(schnum)、校名(schname[30])、运动员分数(athscore)和指向下一个节点的指针欲(struct LNode *next)。
3、系统功能设计本系统设置了8个子功能菜单。
8个子功能的设计描述如下:(1)录入各项目的成绩。
由函数creatLink()实现.当用户选择该功能时,系统会以用户输入的数据运动会分数统计链表.(2)统计各学校分数.由函数schoolScore()实现。
当用户选择该功能时,系统会统计各学校分数。
(3)按学校编号顺序输出。
由函数printfSchoolNumber()实现。
当用户选择该功能时,系统会按学校编号顺序输出数据。
(完整word版)数据结构 运动会分数统计系统
数据结构课程设计报告题目:运动会分数统计系统学生姓名:学号:班级:指导教师:2010年 5 月28 日目录一、题目 (3)二、时间 (3)三、地点 (3)四、程序要求 (3)五、数据结构设计 (4)1.概述 (4)2.关键算法 (5)3.查询操作 (7)六、详细代码 (8)七、测试结果 (20)1.主菜单窗口 (20)3. 统计各学校总分 (21)4. 按学校编号排序输出 (22)5. 按学校总分排序输出 (22)6. 按男团体总分排序输出 (23)7. 按女团体总分排序输出 (23)8. 按学校编号查询学校某个项目情况 (24)9. 按项目编号查询取得名次的学校 (24)八、测试非法数据 (24)九、课程设计总结 (25)一、题目:运动会分数统计系统二、时间:2010.05.24~05.28三、地点:软件楼606四、程序要求:任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前前三名积分;前三名的积分分别为:5、3、2。
(m、w<=20,n<=10)功能要求:1).可以输入各个学校、各项目、以及各项目前三名的数据信息;2).能统计各学校总分、男子项目和女子项目总分;3).可以按学校编号(或学校名称)、学校总分、男女团体总分排序输出;4).可以按学校编号(或学校名称)查询学校某个项目的情况;可以按项目编号查询取得前三的学校。
规定:输入数据形式和范围:10以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计。
请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
运动会分数统计实验报告
目录一.设计要求 (1)二.设计分析 (1)三.设计实现 (3)四.实验心得 (8)五.参考文献 (8)一.设计要求:任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1).可以输入各个项目的前三名或前五名的成绩;2).能统计各学校总分,3).可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;二.设计分析:本程序中学校的存储结构为数组.运动项目结构体:图1 运动项目结构体学校结构体:图2学校机构体主菜单结构:图3主菜单结构主要结构:typedef struct //项目结构{char xmm[100]; //项目名称char num[5]; //项目编号int score; //项目得分}xiangm;typedef struct school{int num; //学校编号char schoolname[20]; //学校名称int manscore; //男子得分int womenscore; //女子得分int sum; //总分xiangm man[MAX]; //男子项目int man_num; //男子项目个数int man_score; //男子团体总分xiangm women[MAX]; //女子项目int women_num; //女子项目个数int women_score; //女子团体总分}school;主要函数:void fun1_1() //对学校和项目进行初始化操作void fun1_lurum1(int flag)//录入男子取前3名的项目成绩void fun1_luruw1(int flag) //录入女子取前3名的项目成绩void fun1_lurum2(int flag) //录入男子取前5名的项目成绩void fun1_luruw2(int flag) //录入女子取前5名的项目成绩void fun1_sum() //计算学校总得分以及男子团体总分女子团体总分void fun1() //输入各个项目成绩,调用前面的函数void fun2() //按学校编号排序输出void fun3() //按学校总分排序并输出结果void fun4() //分别进行男子团体总分排序和女子团体排序并输出void fun5() //输入一个学校的编号查询该学校取得的成绩void fun6() //输入一个项目的编号查询该项目的得分学校情况void save() //将数据写到school.txt文件中void load() //从school.txt文件中读取数据三.设计实现:1.程序主界面:图4程序主界面2.输入功能:图5输入功能完成3.按学校编号排序输出:图6按学校编号排序输出4.按学校总分排序输出:图7按学校总分排序输出5.按男女团体总分排序输出:图8按男女团体总分排序输出6.按学校编号查询某个项目的情况:图9按学校编号查询某个项目的情况7.按项目编号查询取得名次的学校:图10按项目编号查询取得名次的学校8.存储数据:图11存储数据9.存储的数据:图12存储的数据10.读取数据:图13读取数据四.实验心得:课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际能力的具体训练和考察过程.写之前有第一感觉是用链表写.但是上次的课程设计写的就是链表,所以想尝试一下用数组写这个题目.写完之后两者对比起来处理这种题目还是用链表比较方便.用数组太花存储空间了,处理太多数据的话就不现实了.在文件读写的时候由于数据太多写入和读取都要一个一个处理.通过这次课程设计使我懂得了理论与实际相结合是很重要的,从而提高自己的实际动手编程能力和独立思考能力.而对于程序。
运动会分数统计课设报告
运动会分数统计课设报告英文回答:Introduction:In this report, I will discuss the score statistics ofa sports meet. The purpose of this report is to analyze the scores of different events and identify any trends or patterns. By doing so, we can gain insights into the performance of the participants and evaluate the success of the sports meet.中文回答:介绍:在这份报告中,我将讨论一次运动会的分数统计情况。
本报告的目的是分析不同项目的分数并找出任何趋势或规律。
通过这样做,我们可以了解参与者的表现,并评估运动会的成功程度。
Score Distribution:To begin with, let's examine the distribution of scores across different events. By analyzing the scores, we can identify the range and spread of performance levels. For example, in the sprint event, the scores may range from 10to 20 seconds, with most participants falling within the 12 to 15-second range. On the other hand, in the long jump event, the scores may range from 5 to 8 meters, with a majority of participants achieving scores between 6 and 7 meters. These score distributions provide a comprehensive view of the performance levels in each event.分数分布:首先,让我们来看看不同项目的分数分布情况。
数据结构课程设计报告--运动会分数统计
实验报告(数据结构)学院:信息科学与技术学院班级:姓名:日期:课题一运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1~m,女子m+1~m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分;3) 可以按学校编号、学校总分、男女团体总分排序输出;4) 可以按学校编号查询学校某个项目的情况;5) 可以按项目编号查询取得前三或前五名的学校。
需求分析:本演示程序中,用户可以对运动会的的成绩一不同的方式进行输入输出等操作。
首先由用户输入运动会的成绩及相关的信息,然后程序会自动将输入的信息进行统计处理。
用于测试程序的数据如下所示:学校数据项目数据:概要设计:void Scanf(); 输入学校运动会成绩void Grade(); 查询成绩void Show(); 输出void Rank(); 查询名次void Show_sumscore();学校总分排序输出void Show_boyscore();男团总分排序输出void Show_girlscore();女团总分排序输出void Show_num(); 学校编号排序输出void Menu(); 总菜单程序图:主函数Scanf 输入函数Init 初始化函数Menu总菜单详细设计:#include<stdio.h>#include<stdlib.h>#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量#define LISTINCREMENT 10 //线性表存储空间的分配增量const int n=5; //参加运动会的学校个数const int m=5; //男子项目个数const int w=5; //女子项目个数void Init();//初始化学校总分、男女团体总分void Scanf();//输入学校运动会成绩void Grade();//查询成绩void Show();//输出void Rank();//查询名次void Show_sumscore();//学校总分排序输出void Show_boyscore();//男团总分排序输出void Show_girlscore();//女团总分排序输出void Show_num();//学校编号排序输出void Menu(); //总菜单typedef struct{char *event;int num;int sumscore;int boyscore;int girlscore;int length;int listsize; //当前分配的存储容量}SqList;// 初始化自定大小的线性表Lvoid InitList_Sq(SqList &L,int LIST_SIZE){L.event=(char *)malloc(LIST_SIZE* sizeof(char));if(!L.event) exit (0);L.length=0;L.listsize=LIST_SIZE;}//初始化默认大小的线性表Lvoid InitList_Sq(SqList &L){L.event=(char *)malloc(LIST_INIT_SIZE* sizeof(char)); if(!L.event)exit (0); //存储分配失败L.length=0; //空表长度为0L.listsize=LIST_INIT_SIZE; //初始存储容量}void ShowList_Sq(SqList &L,int Lenth){int i;for (i=0;i<Lenth;i++)printf("项目%d 成绩:%d\n",i+1,L.event[i]);}SqList School[n];void Init(){int i,j;for(i=0;i<n;i++){InitList_Sq(School[i],m+w);School[i].sumscore=0;School[i].boyscore=0;School[i].girlscore=0;School[i].num=i+1;for(j=0;j<m+w;j++){School[i].event[j]=0;}}}void Scanf(){int i,j,x;int a[3]={5,3,2};int b[5]={7,5,3,2,1};int c[10],d[10];printf("\n\n 输入各个项目的前三名或前五名的成绩\n\n\n"); for(i=0;i<m+w;i++){if(i<m){for(j=1;j<=5;j++){do{printf("项目%d 第%d名学校编号:",i+1,j);scanf("%d",&x);printf("\n");if(x>n||x<=0)printf("输入错误,请重新输入!\n");}while(x>n||x<=0);School[x-1].event[i]=b[j-1];}}else{for(j=1;j<=3;j++){do{printf("项目%d 第%d名学校编号:",i+1,j);scanf("%d",&x);printf("\n");if(x>n||x<=0)printf("输入错误,请重新输入!\n");}while(x>n||x<=0);School[x-1].event[i]=a[j-1];}}}printf("\n");//统计各校总分for(i=0;i<n;i++){for(j=0;j<m+w;j++){School[i].sumscore+=School[i].event[j];}}//统计男子总分for (i=0;i<n;i++){for(j=0;j<m;j++){School[i].boyscore+=School[i].event[j];}}//统计女子总分for(i=0;i<n;i++){for(j=m;j<m+w;j++){School[i].girlscore+=School[i].event[j];}}}void Grade(){int k,t;do{printf("\n请输入需要查询的学校编号:");scanf("%d",&k);if(k>n||k<=0)printf("输入出错,请重新输入!\n\n");}while(k>n||k<=0);do{printf("\n请输入需要查询的项目编号:");scanf("%d",&t);printf("\n");if(t>m+w||t<=0)printf("输入出错,请重新输入!\n\n");}while(t>m+w||t<=0);int i=0;while(School[i++].num!=k);printf("第%d个学校项目%d 积分为:%d\n",k,t,School[--i].event[t-1]); }void Show(){for(int i=0;i<n;i++){printf("第%d个学校:\n\n",i+1);ShowList_Sq(School[i],m+w);printf(" 男子总分为:%d\n",School[i].boyscore);printf(" 女子总分为:%d\n",School[i].girlscore);printf(" 学校总分为:%d\n",School[i].sumscore);printf("\n\n");}}void Rank(){int i,j,t;do{printf("请输入需要查询的项目编号:");scanf("%d",&t);if(t>m+w||t<=0)printf("输入出错,请重新输入!\n\n");}while(t>m+w||t<=0);for(i=n-1;i>=0;i--){for(j=0;j<i;j++){if(School[j].event[t-1]<School[i].event[t-1]){SqList temp=School[i];School[i]=School[j];School[j]=temp;}}}//冒泡排序if(t<=m){printf("项目%d 前五名:\n",t);for(i=0;i<5;i++){printf("第%d个学校\n",School[i].num);}}else if(t>m&&t<=m+w){printf("项目%d 前三名:\n",t);for(i=0;i<3;i++){printf("第%d个学校\n",School[i].num);}}elseprintf("输入错误,请重新输入!\n");}void Show_sumscore(){int i,j;for(i=n-1;i>=0;i--){for(j=0;j<i;j++){if(School[j].sumscore<School[i].sumscore) {SqList temp=School[i];School[i]=School[j];School[j]=temp;}}}printf("按学校总分排列:\n\n");Show();}void Show_boyscore(){int i,j;for(i=n-1;i>=0;i--)for(j=0;j<i;j++)if(School[j].boyscore<School[i].boyscore){SqList temp=School[i];School[i]=School[j];School[j]=temp;}printf("按男子总分排列:\n\n");Show();}void Show_girlscore(){int i,j;for(i=n-1;i>=0;i--)for(j=0;j<i;j++)if(School[j].girlscore<School[i].girlscore) {SqList temp=School[i];School[i]=School[j];School[j]=temp;}printf("按女子总分排列:\n\n");Show();}void Show_num(){int i,j;for(i=n-1;i>=0;i--)for(j=0;j<i;j++)if(School[j].num>School[i].num){SqList temp=School[i];School[i]=School[j];School[j]=temp;}printf("按学校编号排列:\n\n");Show();void Menu() //菜单函数{int choose;while(1){printf(" 运动会统计系统\n\n");printf("*****************************************************************\n"); printf(" 1、按学校编号排序输出\n");printf(" 2、按学校总分排序输出\n");printf(" 3、按男团总分排序输出\n");printf(" 4、按女团总分排序输出\n");printf(" 5、按学校编号查询学校某个项目的情况\n");printf(" 6、按项目编号查询取得前三名或前五名的学校\n");printf(" 7、退出\n");printf("*****************************************************************\n"); printf("\n\n -------------选择编号------------\n");scanf("%d",&choose);if(choose==1)Show_num();if(choose==2)Show_sumscore();if(choose==3)Show_boyscore();if(choose==4)Show_girlscore();if(choose==5)Grade();if(choose==6)Rank();if(choose==7)break;}}int main(){ int i=0;for(i=0;i<80;i++)printf("*");printf("\n 编号运动会项目 \n"); printf(" 1 男子100米 \n"); printf(" 2 男子200米 \n"); printf(" 3 男子400米 \n"); printf(" 4 男子跳高 \n"); printf(" 5 男子跳远 \n"); printf(" 6 女子跳高 \n"); printf(" 7 女子跳远 \n"); printf(" 8 女子铅球 \n"); printf(" 9 女子100米 \n");printf(" 10 女子400米\n\n");for(i=0;i<80;i++)printf("*");printf("\n");printf(" 编号参与运动会的学校 \n");printf(" 1 东华大学 \n");printf(" 2 上海交大 \n");printf(" 3 复旦大学 \n");printf(" 4 同济大学 \n");printf(" 5 华东师范大学 \n\n"); for(i=0;i<80;i++)printf("*");printf("\n");Init();Scanf();Menu();return 0;}调试分析:1,在编译过程中使用了结构体来存储航班和客户的相关信息,注意到使用结构体可以定义自己需要的类型,同时还可以对其成员进行各种操作,有效地解决了数据的建立和修改;2,在编程时建立了文件,将自己输入的文件和系统内部存入文档,有效地实现了大容量数据的操作;3,运用菜单功能,是程序和实际生活中的情况更加接近,有利于程序的广泛利用;4,在编程中学习到了编程的很多好的习惯,养成了添加注释的习惯。
运动会分数统计系统 数据结构课程设计
课程设计说明书(数据结构(C语言版))班级: 姓名: X X X设计题目:运动会分数统计系统设计时间:指导教师: XX XX XX评语:_______________________________________________________________________________________________________________________________________________________________________________________________评阅成绩: 评阅教师:《数据结构(C语言版)》课程设计实验报告运动会分数统计系统一、题目与要求(一)、运动会分数统计(限1 人完成)任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
运动会成绩统计 实验报告
实验说明题目:运动会分数统计一.需求分析:1.在该程序中,参赛学校编号为1~n(n<=20)。
比赛分成m(m<=30)个男子项目和w(w<=20)个女子项目,分别编号为1~m和m+1~m+w,姓名长度不超过20个字符;2.输入各个项目信息的详细信息,包括项目号,姓名,性别,学校和名次。
3.对于项目编号为奇数的取前五名,得分顺序为7,5,3,2,1;为偶数的取前三名,得分顺序为5,3,2。
4.程序执行的命令包括:1)构造线性表的存储结构。
2)根据每个学生的名次确定相应的得分。
3)输出各个学校的成绩单和男子团体总分,女子团体总分和团体总分。
二.概要设计1.该程序包含两个结构体分别为:结构体(1)运动员信息结构体(2)学校信息2.本程序包括4个模块:1>初始化学校信息。
2>依次输入每个运动员的信息。
3>根据每个学生的成绩计算对应的得分,及个学校的总得分、男团总分、女团总分。
4>生成个学校的成绩单,并输出。
三.详细设计1.数据结构的定义:○1描述运动员的线性表typedef struct{int item[MAXSIZE]; //参赛项目号char thletename[MAXSIZE][20];//姓名char sex[MAXSIZE];//性别int schoolnum[MAXSIZE];//所在学校编号int num[MAXSIZE];//名次int point[MAXSIZE];//得分int last;}Thlete;○2描述学校的线性表typedef struct{int schoolnum[MAXSIZE];//学校编号int Tgirl[MAXSIZE];//女生团体总分int Tboy[MAXSIZE];//男生团体总分int Tall[MAXSIZE];//学校总成绩int last;}School;○3.控制输入的函数int input(Thlete *S1,int n,int m,int w){cout<<"项目号"<<'\t' <<"姓名"<<'\t' <<"性别"<<'\t' <<"学校号"<<'\t' <<"名次"<< '\t' <<endl;int i=0,j=1,k=0;if(S1->last==MAXSIZE-1){cout<<"运动员人数已满,无法继续输入!"<<endl;return RIGHT;}while(cin>>S1->item[i]&&S1->item[i]!=0){cin>>S1->thletename[i]>>S1->sex[i]>>S1->schoolnum[i]>>S1->num[i];i++;if(i==100-1){cout<<"运动员人数已满,无法继续输入!"<<endl;return RIGHT;}}S1->last=i;for(i=0;i<S1->last;i++){if(S1->schoolnum[i]>n){cout<<"您的输入有误,输入学校个数不能超过"<<n<<",请重新输入!"<<endl;input(S1,n,m,w);return ERROR;}if(S1->sex[i]!='g'&&S1->sex[i]!='b'){cout<<"您的输入有误,输入运动员性别只能用'g'(女)或'b'(男)表示请重新输入!"<<endl;input(S1,n,m,w);return ERROR;}if(S1->item[i]>=0&&S1->item[i]<=m&&S1->sex[i]!='b'){cout<<"您的输入有误,项目号与性别不匹配,请重新输入!"<<endl;input(S1,n,m,w);return ERROR;}if(S1->item[i]>=m+1&&S1->item[i]<=m+w&&S1->sex[i]!='g'){cout<<"您的输入有误,项目号与性别不匹配,请重新输入!"<<endl;input(S1,n,m,w);return ERROR;}}return RIGHT;}○3.用于计算学校各项成绩的函数void mark(Thlete *L1,School *L2,int n,int m,int w){int i,j;for(i=0;i<L1->last+1;i++){if(L1->item[i]%2==1)//项目编号为奇数的按第一种评分方法计算得分{if(L1->num[i]==1)L1->point[i]=7;if(L1->num[i]==2)L1->point[i]=5;if(L1->num[i]==3)L1->point[i]=3;if(L1->num[i]==4)L1->point[i]=2;if(L1->num[i]==5)L1->point[i]=1;if(L1->num[i]>5)L1->point[i]=0;}if(L1->item[i]%2==0)//项目编号为偶数的按第二种评分方法计算得分{if(L1->num[i]==1)L1->point[i]=5;if(L1->num[i]==2)L1->point[i]=3;if(L1->num[i]==3)L1->point[i]=2;if(L1->num[i]>3)L1->point[i]=0;}}for(i=0;i<L2->last+1;i++){for(j=0;j<L1->last+1;j++){if(L2->schoolnum[i]==L1->schoolnum[j]){if(L1->sex[j]=='b'){L2->Tboy[i]=L2->Tboy[i]+L1->point[j];//累加各学校的男团总分}if(L1->sex[j]=='g'){L2->Tgirl[i]=L2->Tgirl[i]+L1->point[j];//累加各学校的女团总分}}}L2->Tall[i]=L2->Tgirl[i]+L2->Tboy[i]; //计算个学校的集体总分}}○4.控制输出成绩的函数void output(Thlete L1,School L2){int i,j;for(i=0;i<st+1;i++){cout<<" 第"<<i+1<<"号学校的成绩"<<endl;cout<<endl;cout<<"学校"<<'\t' <<"项目"<<'\t' <<"姓名"<<'\t' <<"性别"<<'\t' <<"名次"<<'\t' <<"得分"<<endl;for(j=0;j<st+1;j++){if(L2.schoolnum[i]==L1.schoolnum[j]){cout<<L1.schoolnum[j]<<'\t' <<L1.item[j]<<'\t'<<L1.thletename[j]<<'\t' <<L1.sex[j]<<'\t'<<L1.num[j]<<'\t' <<L1.point[j]<<endl;}}cout<<i+1<<"号学校的女子团体总分为:"<<L2.Tgirl[i]<<endl;cout<<i+1<<"号学校的男子团体总分为:"<<L2.Tboy[i]<<endl;cout<<i+1<<"号学校的全体运动员总分为:"<<L2.Tall[i]<<endl;cout<<endl;}}2、函数调用关系:开始InitSCH(&S2,n)input(&S1,n,m,w)mark(&S1,&S2,n,m,w)output(S1,S2)结束四.调试分析1.用线性链表时应注意细节,指针的使用过程中很容易出错,从而达不到采用其起到的效果。
运动会分数统计课设报告
运动会分数统计课设报告英文回答:As part of my sports scoring project for my course, I was tasked with creating a report on the statistics of a sports event. In this report, I will analyze the scores of the participants and provide insights into their performance. Through this analysis, we can gain a better understanding of the strengths and weaknesses of the athletes and identify any patterns or trends in their scores.To begin with, I collected the scores of all the participants in different events of the sports meet. I then organized the data and calculated various statistical measures such as the mean, median, and standard deviation of the scores. These measures help us understand thecentral tendency and dispersion of the scores, providing a comprehensive overview of the participants' performance.For example, in the 100-meter sprint event, I foundthat the mean score was 10.5 seconds, with a standard deviation of 0.5 seconds. This indicates that most participants completed the race within a similar time frame, with only a small variation in their scores. However, there were a few outliers who finished the race much faster or slower than the average time.Furthermore, I conducted a comparative analysis of the scores across different events to identify any standout performers or consistent underperformers. By comparing the scores of athletes in multiple events, we can assess their overall performance and identify any areas where they excel or struggle.For instance, I noticed that one particular athlete consistently scored high in the long jump, but consistently scored low in the high jump. This suggests that the athlete has a natural talent for the long jump but struggles with the high jump. Such insights can be valuable for coachesand trainers in identifying areas for improvement and tailoring training programs to enhance the athlete'sperformance.In addition to analyzing individual scores, I also looked at the team scores to evaluate the overall performance of each team. By summing up the individual scores of team members, we can determine which team performed the best overall.For example, in the basketball event, Team A had atotal score of 80 points, while Team B had a total score of 70 points. This indicates that Team A performed better overall in the basketball event. However, it is important to note that individual scores within a team may vary, and it is not solely based on the team's total score.In conclusion, through my analysis of the scores in the sports meet, I have gained valuable insights into the performance of the participants. By calculating statistical measures and conducting comparative analysis, I was able to identify patterns, trends, and individual strengths and weaknesses. This information can be used by coaches, trainers, and teams to optimize training programs andimprove overall performance.中文回答:作为我的课程中体育比赛评分项目的一部分,我被要求撰写一份关于运动会分数统计的报告。
运动会分数统计课设报告
运动会分数统计课设报告英文回答:As part of my sports scoring project, I was tasked with creating a report on the statistics of a sports event. The purpose of this report is to analyze the scores and performance of the participants in the event. In order to provide a comprehensive analysis, I will be using both English and Chinese languages to answer the questions.The first step in this project was to collect the scores of all the participants in the sports event. I created a spreadsheet where I recorded the scores for each participant in each event. This allowed me to easily calculate the total score for each participant and analyze their performance.Next, I calculated the average score for each event. This helped me identify the participants who performed exceptionally well in a particular event. For example, inthe 100-meter race, participant A scored an average of 9.8 seconds, while participant B scored an average of 10.2 seconds. This indicates that participant A performed better in this event.Furthermore, I calculated the overall average score for each participant. This gave me an idea of their overall performance in the sports event. For instance, participant A had an overall average score of 8.5, while participant B had an overall average score of 7.9. This suggests that participant A performed better overall.Additionally, I analyzed the distribution of scores for each event. This allowed me to identify any outliers or participants who consistently scored high or low in a particular event. For instance, in the long jump event, participant C consistently scored above 7 meters, while participant D consistently scored below 5 meters. This indicates that participant C has a strong performance in the long jump event, while participant D struggles in this event.In conclusion, the scoring project involved collecting and analyzing the scores of participants in a sports event. By calculating average scores, overall average scores, and analyzing score distributions, I was able to gain insights into the performance of the participants. This information can be used to identify top performers, areas for improvement, and make informed decisions for future sports events.中文回答:作为运动积分项目的一部分,我被要求撰写一份关于运动会分数统计的报告。
运动会分数统计报告
问题描述(1).可以输入各个项目的前三名或前五名的成绩;(2).能统计各学校总分;(3).可以按学校编号、学校总分、男女团体总分排序输出;(4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
设计:程序包含两个模块(1) 主程序模块,其中主函数为int main() //主函数{printf("***********************欢迎使用***********************\n");printf("*****************运动会分数统计系统********************\n");input();solve();return 0;}(2) 选择操作模块——实现具体选择的对应操作及输出操作。
两模块之间的简单调用关系图2-1 两模块之间的调用图2-2 函数主模块之间的调用测试:心得:在本次课程设计当中,我加深了对以往掌握不够熟练或者是使用较少而易忽略的知识点,设计前对整个计分系统进行的全面分析,使我对面向对象的结构化程序设计有了更深一层次的认识。
在设计程序的过程中,我更加合理的构建了能够最大限度的满足校运会成绩管理人员的多功能便捷操作。
在编写代码的过程当中,我通过查阅有关的资料和分析实例,从中学到了很多能够不断优化自己代码,可以提高代码利用率的知识,并且更加合理的构建了各个知识点、模块之间的联系,充分的利用了循环和选择性语句。
其次,在代码的编写过程中,遇到了许多问题,我通过自身的努力去改正它们,在这个过程中我也学到了很多东西,在代码的调试过程中,我碰到了许多以前所没有碰到过的错误,在老师的悉心指导和自己的努力思考下,我最终把这些问题一一解决掉,并把教训牢记在心,努力使自己得到更大的收获和提高在设计程序时,我感受到了作为一名软件开发者所必须具备的统筹安排,注重层次与结构的素养,为我以后从事软件开发工作标明了方向,自己设计的最终实现为自己以后的努力树立了信心,这次数据结构课程设计使我受益匪浅。
运动会分数统计系统设计报告1
目录1 设计内容及要求 (1)2 总体设计 (1)2.1 系统设计方案 (1)2.2 功能模块设计 (2)3 详细设计 (3)3.1 数据结构的定义 (3)3.2比赛数据输入模块 (3)3.3比赛成绩输出模块 (4)3.4比赛成绩查询模块 (5)4 调试与测试 (5)4.1 输入数据 (5)4.2 按学校编号排序输出 (6)4.3 按学校总分排序输出 (6)4.4 按学校男子团队总分排序输出 (7)4.5 按学校女子团队总分排序输出 (7)4.6按学校编号查询成绩 (8)4.7按项目编号查询成绩 (8)5 心得体会 (9)参考文献 (9)附录 (9)1 设计内容及要求设计一个运动会分数统计系统。
参加运动会有n个学校,学校编号为1…n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1…m,女子m+1…m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;编号能被整除的取前三名。
(m<=20,n<=20)要求如下:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分;3)可以按学校编号、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数;输出形式:有中文提示,各学校分数为整型;界面要求:有合理的提示。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明。
2 总体设计2.1 系统设计方案根据课程设计任务要求,本方案要求准备结构体数组、读写文件,还能把信息直接输入存储到文件中,读取文件信息从而得到结果。
1)菜单设计分为主函数菜单,比赛数据输入菜单,学校、男子团队、女子团队总分排序输出菜单、查询学校成绩菜单和查询项目排名菜单。
运动会比赛计分系统 --1
运动会比赛计分系统一、设计目的和任务要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。
二、总体设计编写目的:根据要求分析文档,初步提出问题的解决方案,以及软件系统的体系结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细设计做准备。
2.1总体设计该系统可以按功能进行模块划分,其模块图如下:系统模块图其中:****菜单选择模块完成用户命令的接收,此模块是运动会比赛计分系统的入口,用户所要进行的各种操作均需在此模块中进行选择而调用其他模块实现相应的功能;****信息输入模块完成学校、比赛项目(以及运动员的信息)输入功能,输入信息包括各参赛学校的编号、名称和每个学校在各比赛项目的编号、类型、名称、获奖次数、排名,以及(运动员姓名)等必要信息;****计分模块是对输入信息的处理,是一种必要的辅助模块;****输出模块包括:1不输出信息,读入文件中;2输出信息,不读入文件。
其中输出的信息有:学校编号、名称以及其所获奖项的项目编号、类型、名称、排名、男子总分、女子总分还有学校的总分等;****文件读入模块是为了满足客户需要,为了储存信息,方便使用;****信息查询模块完成对各信息的查询,查询时对应有两种选择以确定用户进行哪种查询。
2.2 数据结构本系统中主要的数据结构就是以学校为结点建立一个链式存储结构,结点中包括学校编号、学校名称、男子项目总分、女子项目总分、学校总分;再定义一个新的结构体是以项目信息为基础,通过指针实现学校来对项目信息的调用,无论是计分,输出还是查找均以链式存储结构来实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② 成绩统计模块: 输出各学校总积分情况; 输出已结束的比赛信息;
③ 成绩排序模块: if( 按学校编号排序 ) 按学校编号输出各学校积分信息; else if ( 按总成绩排序 ) 按总成绩排序输出各学校积分信息; else if ( 按男女团体成绩排序 ) 按平男女团体成绩输出各学校积分信息; else 提示输入不合适;
//函数功能:4.成绩查询
void write(struct school *parr,int N);
//函数功能:5.将数据写入文件
void exit(struct school *parr,int *N);
//函数功能:0.结束整个程序
int cmp (const void *a,const void *b){ if((*(struct school*)a).Sscore<(*(struct school *)b).Sscore) return 1; else if((*(struct school*)a).Sscore==(*(struct school *)b).Sscore) return((*(struct school*)a).Snumber>(*(struct school *)b).Snumber?1:-1); else return -1;
} int cmpM(const void *a,const void *b){
if((*(struct school*)a).Mscore<(*(struct school *)b).Mscore)
return 1; else if((*(struct school*)a).Mscore==(*(struct school *)b).Mscore)
//函数功能:1.成绩录入
void statistics(struct school *parr,int N);
//函数功能:2.成绩统计
void sore(struct school *parr,int N);
//函数功能:3.成绩排序
void inquire(struct school *parr,int N);是Biblioteka 否 保存项目 编号
是
成绩 保存
结束
程序流程图
详细设计 编写目的: 根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计, 以便下一步进行程序编码工作。
三、详细设计: 对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:
首先输入参加运动会的数量以及学校名称; ① 成绩录入模块:
④ 成绩查询模块: if( 按学校编号查询 ) 输出该学校得到积分的所有项目成绩; else if( 项目编号查询 ) else 提示输入不合适;
⑤ 成绩保存模块: 创建一个新的文件; 将比赛积分、排名等情况以文本形式存储在本地
程序的详细清单如下:
#include <stdio.h>
#include <stdlib.h>
return((*(struct school*)a).Snumber>(*(struct school *)b).Snumber?1:-1); else
return -1; } int cmpW(const void *a,const void *b){
if((*(struct school*)a).Wscore<(*(struct school *)b).Wscore) return 1;
//学校编号
int Sscore;
//学校总分
int Mscore;
//男子团体总分
int Wscore;
//女子团体总分
struct Sport{
int Enumber;
//项目编号
int Escore;
//项目分数
};struct Sport Event[MAXN];
}; void input(struct school *parr,int N);
else if((*(struct school*)a).Wscore==(*(struct school *)b).Wscore) return((*(struct school*)a).Snumber>(*(struct school *)b).Snumber?1:-1);
else return -1;
成绩 查询
按男女 团体
成绩 保存
退出 系统
系统模块图
其中: 成绩录入模块完成学校成绩的录入功能,录入信息包括项目编号、项目名称、项 目排名、每项积分等; 成绩统计模块完成已录入学校总积分和每项排名的显示; 成绩排序模块完成学校成绩的排序,排序时对应有按学校编号查询、按学校总分 查询和按男女团体总分三种方式;
int Escore; //项目分数
}
2.3
程序流程
系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到
用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程
图如下:
开始
菜单选择
录入 是
否 统计
否 排序
是
否 否
查询
成绩 录入
学校
是
编号
成绩 统计
总 成绩
男女 团体
学校 编号
case '0' : exit(parr,&N); break; default : printf("\n\t 输入错误!按回车键返回主菜单!"); } } free(parr); return 0; } //函数功能:列出学校名称 void list_school(struct school *parr,int N){ int i; qsort(&parr[1],N,sizeof(struct school),cmpN); printf("\n 参与此次运动会的学校编号及名称:\n"); for(i=1;i<=N;i++) printf("\t\t\t%02d %s\n",parr[i].Snumber,parr[i].Sname); return ; } //函数功能:1.成绩录入 void input(struct school *parr,int N){ int i; int num,temp; int serial; printf("\t 男子项目:\n"); printf("\t\t01.100 米 02.200 米 03.400 米 04.800 米 05.1500 米\n"); printf("\t\t06.5000 米 07.4*100 米 08.4*400 米 09.110 米栏 10.跳高\n"); printf("\t\t11.跳远 12.铅球 13.标枪 14.铁饼 15.三级跳\n"); printf("\t 女子项目:\n"); printf("\t\t16.100 米 17.200 米 18.400 米 19.800 米 20.1500 米\n"); printf("\t\t21.3000 米 22.4*100 米 23.4*400 米 24.100 米栏 25.跳高\n"); printf("\t\t26.跳远 27.铅球 28.标枪 29.铁饼\n"); getchar(); while(1){ printf("\n\t 请输入项目编号:"); scanf("%d",&num); if(num>29||num<1){
数据结构:
学校: struct school
{
char Sname[20]; //学校名称
int Snumber; //学校编号
int Sscore;
//学校总分
int Mscore;
//男子团体总分
int Wscore;
//女子团体总分
}
项目 :struct Sport
{
int Enumber; //项目编号
case '1' : input(parr,N); break; case '2' : statistics(parr,N);break; case '3' : sore(parr,N); break; case '4' : inquire(parr,N);break; case '5' : write(parr,N); break;
printf("\t\t|------- 欢迎使用运动会分数统计系统 -------|\n"); printf("\t\t|******************************************|\n"); printf("\n\n\n\n"); printf("请输入参加运动会的学校个数:"); scanf("%d",&N); parr = (struct school *)malloc((sizeof(struct school) * (N+1))); for(i=1;i<=N;i++)
二、总体设计
编写目的:根据需求分析文档,初步提出问题的解决方案,以及软件系统的体系 结构和数据结构的设计方案并写出书面文档总体设计说明书,为下一步进行详细 设计做准备。
2.1 总体设计 该系统可以按功能进行模块划分,其模块图如下:
运动会分数管理系统
成绩 录入
成绩 统计
成绩 排序
按学校 编号