(完整word版)运动会分数统计系统实验报告
数据结构实验运动会分数统计一实验报告

实验报告一题目:运动会分数统计班级:通信工程姓名:张雪婷学号:20081121037 完成日期:2010-4-5一、需求分析要产生N个参加运动会的学校的成绩单,内容包括各校所取得的每项成绩的项目号,名次,姓名和得分;产生团体总分报表。
内容包括校号,男子团体总分,女子团体总分和团体总分。
二、概要设计1、结构体定义及模块struct athlete //运动员结构体{ };struct Seqlist //数组结构体{ Athlete elem[MAXSIZE];int last; };void build( Seqlist &list,int n){ 建立数组用来存放数据}void display(Seqlist L,int num,int n ){ 输出学校的成绩单及团体总分等信息}int main(){ 实现总体调用函数}2、本程序包括的模块有:1>创建一个线性数组来存放数据,输入学生的信息2>打印成绩单,输出学校的团体总分,男团,女团总分3>主控模块三、详细设计1、数据结构体的定义struct Athlete 运动员结构体。
定义了运动员中的属性{int school;int item; //项目编号int place; //名次int score;char name[22];char sex;};struct Seqlist 结构体数组{Athlete elem[MAXSIZE];int last;};2、函数调用之间的关系四、调试分析1、用线性数组来实现这个实验,首先应当对线性数组了解透彻,如何传参。
2、用结构体定义的时候要明确题目目标,如结构体都有那些属性3、在打印模块,for循环中要掌握好循环变量,分清运动员数和学校数。
4、收获:在完成本次实验中采用了线性数组存储信息,是我对这种存储方式有了更深的认识,也加深了掌握。
本次程序分为两大模块,使得程序清晰易懂,各模块具有良好的重要性,确实得到了良好的程序设计训练。
(完整word版)数据结构 运动会分数统计系统

数据结构课程设计报告题目:运动会分数统计系统学生姓名:学号:班级:指导教师:2010年 5 月28 日目录一、题目 (2)二、时间 (3)三、地点 (3)四、程序要求 (3)五、数据结构设计 (3)1。
概述 (3)2。
关键算法 (5)3。
查询操作 (7)六、详细代码 (8)七、测试结果 (26)1.主菜单窗口 (26)3. 统计各学校总分 (27)4. 按学校编号排序输出 (27)5。
按学校总分排序输出 (28)6. 按男团体总分排序输出 (28)7。
按女团体总分排序输出 (29)8. 按学校编号查询学校某个项目情况 (29)9。
按项目编号查询取得名次的学校 (30)八、测试非法数据 (30)九、课程设计总结 (32)一、题目:运动会分数统计系统二、时间: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、任务描述:参加运动会有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){
运动会成绩管理系统分析报告

信息系统分析与设计运动会成绩管理系统组员:杜旭东:201181170106王 斌:201181170133 李泽俊:201181170121一.引言1.1、运动会成绩管理系统开发目的当前,运动会已经在全国普遍开展,许多学校每年都定期的举行不同规模的田径运动会。
但是,在运动会举行过程中一直存在着参赛人数多,项目设置复杂,时间安排紧凑等问题,而且这些问题能否解决直接关系着运动会的成功与否。
另一方面,人们对于比赛结果的实时性、准确性、安全性、可靠性的要求也越来越高,而这些要求是人工操作很难实现的。
同时竞赛组织者要尽量减少人为因素的干扰,减少赛场作弊行为的发生,还要为参赛的教练员和运动员及时准确地提供竞赛的相关信息,辅助进行竞赛的决策指导。
因此,计算机技术的融入就成为一种必然,而且逐渐成为运动会信息管理的核心所在。
1.2开发背景软件名称:运动会成绩管理系统方案设计人员:王斌杜旭东李泽俊我们小组根据当前学校运动会的开展组织情况,结合运动会的组织原则和相关规定,运用现代计算机技术,以全新的模式设计开发了适合学校运动会的运动会成绩管理系统。
1.3定义JDBC-ODBC桥接器:JDBC 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库。
JDBC也是java 核心类库的一部分。
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
1.4参考资料【1】何绍荣学校田径运动会计算机成绩管理系统 [J].电子科技大学,2010.10. 【2】《信息系统开发方法》清华大学出版社姜旭平【3】周华清, 李为民, 张昌龙等. Java典型模块与项目实战大全[J]. 清华大学出版社,2012, 1.【4】耿祥义,张越平。
运动会分数统计系统实验报告【精选文档】

运动会分数统计系统的实现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()实现。
当用户选择该功能时,系统会按学校编号顺序输出数据。
运动会分数统计课设报告

运动会分数统计课设报告英文回答: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.分数分布:首先,让我们来看看不同项目的分数分布情况。
(完整word版)运动会成绩管理系统设计

引言运动会是学校重大活动之一,是检验学生的健康水平和提高身体素质的有效途径之一。
在规模上虽然不如大型运动会,但由于比赛项目多,参赛人数广,数据处理量大,管理比较复杂,尤其编排,记录,公告工作是一项复杂的工程.所以提高学校运动会召开的质量和水平显得尤为重要。
学校虽然早已运用了运动会成绩管理信息系统,节约了不少的人力、物力,但随着科技与时代的发展,单机版的管理系统已经不能完全满足需求.例如:运动会期间的信息无法及时共享,包括赛事状况,比赛成绩以及运动会中的各种表单等。
给用户带来了诸多不便.所以开发管理系统势在必行。
一.系统概述1.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、本演示程序中,可以输入参加运动会的学校编号及项目编号,学校编号要求为1~N,男子比赛项目编号要求为1~M,女子比赛项目编号要求为M+1~M+W;根据具体情况选择输入参加项目的男女类别和取成绩名次类别;最后选择输入名次。
2、演示程序以用户和计算机对话方式进行,即在计算机终端上显示提示信息之后,由用户输入进行查询成绩的操作:①产生各学校的成绩单,包括:各学校所取得的每项成绩的项目号、名次(成绩)、姓名和得②产生团体总分报表,内容包括校号、男子团体总分、女子团子总分和团体总分,然后进行数据保存操作。
3、本程序执行命令包括:1)输入比赛数据2)查询相关记录3)显示各学校的成绩单4)显示各校团体总分报表4、测试数据N=4,M=3,W=2,编号为奇数的项目取前五名,为偶数的项目取前三名。
具体数据如下:输入学校编号:1 2 4输入项目编号:1 3 2性别选择:男女男取成绩名次:前3名前5名前3名名次选择:第1名第4名第2名二、概要设计1.程序中所有数据类型有:int , struct , char , struct * , struct[] , char[];2.整形定义nsc——学校总数msp——男子项目总数wsp——女子项目总数ntsp——项目总数serial——学校编号item——得分项目range——得分名次score——得分成绩overgame——已结束的项目编号menscore——男子团体总分womenscore——女子团体总分totalscore——校团体总分3.本程序包含六个模块:1)主程序模块main ( ){初始化;If(“命令”=“输入”){判断数据是否合法;接受输入数据;数据处理运算;}If(“命令”=“查询”){接受具体指令;显示相应数据;}}2)Input()——比赛结果录入3)Cout()——范围判断4)School()——各学校取得成绩细表5)Overall()——各校男、女及总团体总分6)Calculate()——数据处理4.程序流程图如下:三、详细设计1.元素类型、变量、指针类型struct athletestruct /*参赛运动员*/{char name[20];char xingming[20]; /*姓名*/int score; /*得分成绩*/int range; /*得分名次*/int item; /*得分项目*/};struct schoolstruct /*参赛学校*/{int count; /*计算实际运动员个数*/int serial; /*学校编号*/int menscore; /*男子团体总分*/int womenscore; /*女子团体总分*/int totalscore; /*团体总分*/struct athletestruct athlete[MaxSize]; /*参赛运动员*/struct schoolstruct *next; /*参赛学校*/};int nsc,msp,wsp; /*实际参赛学校个数,男子、女子项目*/ int ntsp; /*项目总数*/int i,j; /*循环控制变量*/int overgame; /*已结束的项目编号*/int serial,range; /*获奖的学校编号 & 获奖名次*/int n; /*用来判断项目类型(奇&偶)*/struct schoolstruct *head,*pfirst,*psecond; /*用于开辟存储区域*/int *phead=NULL,*pafirst=NULL,*pasecond=NULL; /*用于项目数组指针*/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个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20),按要求实现相应的数据输入、查询、计分等功能。
2、数据建议输入学校的名称,运动项目的名称等,其余信息学生自行设计;输出形式:有合理的提示,各学校分数为整形;数据的存储结构自行设计。
建议运动会的相关数据要存储在数据文件中。
3、操作$1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
4、要求提供系统菜单,界面友好,提示信息完整。
}二、系统分析及设计1、需求分析根据运动会分数统计系统的问题分析及设计要求,可以将此系统分为四个模块:信息统计模块、信息输出模块、信息查询模块、信息调用模块。
其系统功能结构图如图所示。
(1)、信息统计模块实现信息的输入、统计、存档。
(2)、信息输出模块实现信息的输出。
(3)、信息查询模块实现信息的查询。
(4)、信息调用模块实现信息的调用,即从文件中读出信息并输出。
…2、概要设计此系统采用顺序存储结构存储,定义了一个结构体数组存放参赛学校的信息。
之所以采用顺序存储结构,是因为用它来实现信息的存储、查询比较方便,节省时间,效率高,而且也方便把信息写入文件以及读取文件。
(1)、结构体定义如下:①、定义运动项目数据类型,用于存放运动项目的信息,包括项目名称、项目编号、用户自己定义的取前3名还是前5名的积分、名次、分数。
运动会成绩统计 实验报告

实验说明题目:运动会分数统计一.需求分析: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.用线性链表时应注意细节,指针的使用过程中很容易出错,从而达不到采用其起到的效果。
数据结构实验运动会分数统计实验报告

‘实验报告题目:运动会分数统计班级:14电子商务平台建设班完成日期:2015.10.10 学号:20141103468 姓名:孙少辉学号:20141103421 姓名:杨德龙学号:20141103407 姓名:柴益新一:需求分析参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
【基本要求】产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
结于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为公里数的项目取前三名,设计一组实例数据。
【项目约束】可以假设n≤20,m≤30,w≤20,姓名长度不超过20个字符。
每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。
二:概要设计采用结构体二维数组存储方式产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
三:详细设计1:数据结构的定义元素类型、变量、指针类型(1)项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项目为接下来报名、场地的准备提供依据。
本数据表根据要求设计存储每个项目的编号、名称、要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称及要取的名次,而各名次对应的学校编号将由系统自动统计。
这也有利于以后项目情况的查询。
3.1结构体3.2子函数3:函数调用关系四:调试分析在调试的过程中,我们发现了在查询成绩功能是只能按照各个学校的编号进行查询选手,学校的成绩信息,查询功能有待健壮完善。
五:用户使用说明(1)首先运行文件运动会统计分数系统(2) 输入信息:1.输入学校数量→2.输入各个学校名称→3.男子运动项目数量→4.女子运动项目数量。
运动会分数统计报告

问题描述(1).可以输入各个项目的前三名或前五名的成绩;(2).能统计各学校总分;(3).可以按学校编号、学校总分、男女团体总分排序输出;(4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
设计:程序包含两个模块(1) 主程序模块,其中主函数为int main() //主函数{printf("***********************欢迎使用***********************\n");printf("*****************运动会分数统计系统********************\n");input();solve();return 0;}(2) 选择操作模块——实现具体选择的对应操作及输出操作。
两模块之间的简单调用关系图2-1 两模块之间的调用图2-2 函数主模块之间的调用测试:心得:在本次课程设计当中,我加深了对以往掌握不够熟练或者是使用较少而易忽略的知识点,设计前对整个计分系统进行的全面分析,使我对面向对象的结构化程序设计有了更深一层次的认识。
在设计程序的过程中,我更加合理的构建了能够最大限度的满足校运会成绩管理人员的多功能便捷操作。
在编写代码的过程当中,我通过查阅有关的资料和分析实例,从中学到了很多能够不断优化自己代码,可以提高代码利用率的知识,并且更加合理的构建了各个知识点、模块之间的联系,充分的利用了循环和选择性语句。
其次,在代码的编写过程中,遇到了许多问题,我通过自身的努力去改正它们,在这个过程中我也学到了很多东西,在代码的调试过程中,我碰到了许多以前所没有碰到过的错误,在老师的悉心指导和自己的努力思考下,我最终把这些问题一一解决掉,并把教训牢记在心,努力使自己得到更大的收获和提高在设计程序时,我感受到了作为一名软件开发者所必须具备的统筹安排,注重层次与结构的素养,为我以后从事软件开发工作标明了方向,自己设计的最终实现为自己以后的努力树立了信心,这次数据结构课程设计使我受益匪浅。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int schoolnumber;
char schoolname[30];
int schoolscore;
}school[30];
2、系统主要子程序详细设计
(1)创建链表(录入各项目的成绩)子程序设计
LinkList creatLink(){
LinkList L=(LinkList)malloc(LEN);
q->objnum=objnum;
q->objtype=objtype;
printf("请输入运动员编号:");
scanf("%d",&q->athnum);
printf("请输入运动员姓名:");
getchar();
scanf("%s",q->athname);
printf("请输入学校编号:");
(4)按学校总分顺序输出。由函数printfSchoolScore()实现。当用户选择该功能时,系统会按学校总分顺序输出数据。
(5)按男女团体总分顺序输出。由函数printfManWomanScore()实现。当用户选择该功能时,系统会按男女团体总分顺序输出数据。
(6)按学校编号查询学校某项目情况。由函数printfSchoolObject()实现。当用户选择该功能时,系统会按学校编号输出学校某项目情况。
(7)按项目编号查询取得前三名或前五名的学校。由函数printfObjectSchool()实现。当用户选择该功能时,系统会按项目编号查询取得前三名或前五名的学校情况。
(8)退出。由exit(0)函数实现。
三、模块设计
1、模块设计
本程序包含两个模块:主程序模块和工作区选择模块。其调用关系如图2所示。
printf("请输入项目类型:");
getchar();
objtype=getchar();
printf("请输入3(代表取前三名)或5(代表取前五名):");
scanf("%d",&n);
printf("请按名次顺序输入运动员编号,姓名,学校编号,校名和成绩\n");
while(n--){
q=(LinkList)malloc(LEN);
2、需求分析
(1)可以输入各个项目的前三名或前五名成绩;
(2)能统计各学校成绩;
(3)可以按学校编号、学校总分、男女团体总分排序输出;
(4)可以按学校编号查询学校某项目情况,可以按项目编号查询取得前三名或前五名的学校。
二、概要设计
1、主界面设计
为了实现运动会分数统计系统,设计一个含有多个菜单项的主控菜单子程序以连接系统的各项子程序,方便用户使用本程序。本系统主控菜单运行界面图1所示。
scanf("%d",&q->schnum);
(8)int main()//主函数
3、函数主要调用关系图
本系统6个子系统之间的主要调用关系如图3所示,图中数字是各函数的编号。
图3系统函数调用关系图
四、详细设计
1、数据类型定义
(1)本系统采用链式结构存储运动会分数统计的结点。节点定义如下:
typedef struct LNode{//链表节点数据结构
3、系统功能设计
本系统设置了8个子功能菜单。8个子功能的设计描述如下:
(1)录入各项目的成绩。由函数creatLink()实现。当用户选择该功能时,系统会以用户输入的数据运动会分数统计链表。
(2)统计各学校分数。由函数schoolScore()实现。当用户选择该功能时,系统会统计各学校分数。
(3)按学校编号顺序输出。由函数printfSchoo号顺序输出数据。
图1运动会分数统计系统程序主菜单
2、存储结构设计
本程序采用链式存储类型(LNode)存储运动会分数统计系统的节点信息。运动会分数统计系统的链表中的结点包括8个域:项目编号域(objnum)、项目类型(objtype)、运动员编号(athnum)、运动员姓名(athname[20])、学校编号(schnum)、校名(schname[30])、运动员分数(athscore)和指向下一个节点的指针欲(struct LNode *next)。
int objnum;
char objtype;
int athnum;
char athname[20];
int schnum;
char schname[30];
int athscore;
struct LNode *next;
}LNode,*LinkList;
(2)各学校情况数据结构的结构定义成结构体数组形式。定义如下:
(4)void printfSchoolScore()//按学校总分顺序输出
(5)void printfManWomanScore(LinkList L//按男女团体总分排序输出
(6)void printfSchoolObject(LinkList L)//按学校编号查询学校某项目情况
(7)void printfObjectSchool(LinkList L)//按项目编号查询取得前三名或前五名的学校
LinkList p,q;
int num,objnum,n;
char objtype;
L->next=NULL;
p=L;
printf("请输入男女项目总个数:");
scanf("%d",&num);
while(num--){
printf("请输入项目编号:");
scanf("%d",&objnum);
图2模块调用示意图
2、系统子程序及功能设计
本系统共设置个6子程序,各子程序的函数名及功能说明如下。
(1)LinkList creatLink()//创建链表(录入各项目的成绩)
(2)int schoolScore(LinkList L)//统计各学校总分
(3)void printfSchoolNumber()//按学校编号顺序输出
运动会分数统计系统的实现
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)。