运动会分数统计系统设计报告
运动会分数统计系统-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.分数分布:首先,让我们来看看不同项目的分数分布情况。
- 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 总体设计 该系统可以按功能进行模块划分,其模块图如下:
运动会分数管理系统
成绩 录入
成绩 统计
成绩 排序
按学校 编号