数据结构作业 运动会分数统计 c++

这是一个C++程序,用于管理运动会的分数统计。程序允许输入各个项目的比赛成绩,查询特定项目或学校的得分,并能对所有学校的成绩进行统计和排名显示。通过结构体存储比赛信息,用链表作为数据结构来组织数据。
摘要由CSDN通过智能技术生成
/  说明  ///
///        共有N个学校参加运动会,编号为1~N。                ///
///            共有W个项目,编号为1~W ///
///  在某个项目结束后可以进行该项目的数据输入 ///
/// 可以显示指定项目的所有获奖信息     ///
///   指定编号的学校的获奖信息 ///
///  可以对所有学校的总成绩进行统计和排名显示 ///
///          每个项目去前三名的运动员获得极分 ///
#include "iostream.h"
#include "stdlib.h" 
#include "stdlib.h"

  
#define OK 1 
#define ERROR 2
#define SN    8                         //参加比赛的学校数

typedef int Status;

int NodeNum=0;                      //全局变量,当前节点个数


typedef struct 
{
char StudentsName[20];
int  SchoolName;
int  Rank;
}Event;

typedef struct xiangmu
{
int EventNum;
Event StudentScore[3];
struct xiangmu *NextEvent;

}xiangmu,*EventNode;

EventNode LastEvent;

//输入数据,建立链表/
Status Input(EventNode &head)
{
cout<<"***************项目成绩输入*****************"<<endl;
int i;
EventNode NewEvent;
NewEvent=(EventNode)malloc(sizeof(xiangmu));
if(!NewEvent) return ERROR;

cout<<"请输入该项目的编号:";
cin>>NewEvent->EventNum;
cout<<endl<<endl;
for(i=0;i<3;i++)
{
cout<<"请输入第"<<i+1<<"名姓名:";
cin>>NewEvent->StudentScore[i].StudentsName;
cout<<"请输入运动员学校编号:";
cin>>NewEvent->StudentScore[i].SchoolName;
cout<<"请输入运动员分数:";
cin>>NewEvent->StudentScore[i].Rank;
cout<<endl;
}
if(head==NULL) 
head=NewEvent;       //头节点为空,新节点做表头
else 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
/*** *eh.h - User include file for exception handling. * * Copyright (c) 1993-1997, Microsoft Corporation. All rights reserved. * *Purpose: * User include file for exception handling. * * [Public] * ****/ #if _MSC_VER > 1000 #pragma once #endif #ifndef _INC_EH #define _INC_EH #if !defined(_WIN32) && !defined(_MAC) #error ERROR: Only Mac or Win32 targets supported! #endif #ifdef _MSC_VER // Currently, all MS C compilers for Win32 platforms default to 8 byte // alignment. #pragma pack(push,8) #endif // _MSC_VER #ifndef __cplusplus #error "eh.h is only for C++!" #endif /* Define _CRTIMP */ #ifndef _CRTIMP #ifdef _DLL #define _CRTIMP __declspec(dllimport) #else /* ndef _DLL */ #define _CRTIMP #endif /* _DLL */ #endif /* _CRTIMP */ /* Define _CRTAPI1 (for compatibility with the NT SDK) */ #ifndef _CRTAPI1 #if _MSC_VER >= 800 && _M_IX86 >= 300 #define _CRTAPI1 __cdecl #else #define _CRTAPI1 #endif #endif typedef void (__cdecl *terminate_function)(); typedef void (__cdecl *unexpected_function)(); typedef void (__cdecl *terminate_handler)(); typedef void (__cdecl *unexpected_handler)(); #ifndef _MAC struct _EXCEPTION_POINTERS; typedef void (__cdecl *_se_translator_function)(unsigned int, struct _EXCEPTION_POINTERS*); #endif #if _MSC_VER >= 1200 _CRTIMP __declspec(noreturn) void __cdecl terminate(void); _CRTIMP __declspec(noreturn) void __cdecl unexpected(void); #else _CRTIMP void __cdecl terminate(void); _CRTIMP void __cdecl unexpected(void); #endif _CRTIMP terminate_function __cdecl set_terminate(terminate_function); _CRTIMP unexpected_function __cdecl set_unexpected(unexpected_function); #ifndef _MAC _CRTIMP _se_translator_function __cdecl _set_se_translator(_se_translator_function); #endif #ifdef _MSC_VER #pragma pack(pop) #endif // _MSC_VER #endif // _INC_EH
摘要:[目录]一、需求分析二、概要设计三、详细设计四、源代码:五、调试分析:六、运行结果分析:七、用户使用说明:八、收获及体会:[原文]一、需求分析1、本程序设计中,可以输入参加运动会学校编号及项目编号;根据具体情况选择输入参加项目的男女类别和取成绩名次类别;最后选择输入名次。2、演示程序以用户和计算机对话方式进行,即当用户双击鼠标左键后出现输入数据的对话框;在输入数据之后,用户可以进行查询成绩的操作,包括:按学校编号查询项目、按项目编号查询学校成绩;户还可以分别按学校编号、学校总分、男女团体总分排序输出数据,然后进行数据保存操作。3、本程序执行命令包括:1)输入数据2)查询相关记录3)按要求输出数据4)保存输出数据4、测试数据输入学校编号:1 2 4输入项目编号:1 3 2性别选择: 男 女 男取成绩名次: 前3名 前5名 前3名名次选择: 第1名 第4名 第2名5、测试结果以test.txt文件保存。(附在源程序中)二、概要设计1、本程序要求需要一个链表和一个叔数组结构来分别储存输入的数据;2、链表主要是储存:学校编号,项目编号,运动员性别,成绩;3、数组结构主要用于储存:学校编号,男团总分,女团总分和学校总分;三、详细设计1、数据结构a、链表:struct CMyList{ int itemnumber;//项目编号 CString schoolnumber;//学校 int sexul;// 项目性别 int score;//单项成绩int flag;//取名次标志}MyList[50],Mylist; 摘要:[页数]:16 [字数]:3217[目录]1 需求分析 2 概要设计3 详细设计4 调试分析总 结[摘要]在现在的许多大学或者高中小学生活学习中,体育锻炼越来越受到学校和国家的关注,而在学生当中,更是受到了大家的喜爱,于是每个学校都会有自己的体育运动会,各种各样的项目比赛,激烈非常。于是会出现的大量的比赛数据,需要各种统计及计算。因此,需要设计通用的运动会分数统计系统,对运动会中产生的各种数据进行统计。该系统可以迅速规范的统计出运动员间的分数对比,及时进行名次排列,特别是在各学校之间的对比总分和排名,能快速且准确的描述了各个团体的实力对比,输入学校、运动员名后就可以快速的进行登记处理,在我们的传统运动会中,可以得到广大的应用。本文主要介绍了本课程设计的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思路、总体设计、各个功能模块的设计与实现方法。[正文]1 需求分析 在现在的许多大学或者高中小学生活学习中,体育锻炼越来越受到学校和国家的关注,而在学生当中,更是受到了大家的喜爱,于是每个学校都会有自己的体育运动会,各种各样的项目比赛,激烈非常。于是会出现的大量的比赛数据,需要各种统计及计算。因此,需要设计通用的运动会分数统计系统,对运动会中产生的各种数据进行统计。1.1 数据需求分析本演示程序中,学校编号要求为1~N,男子比赛项目编号要求为1~M,女子比赛项目编号要求为M+1~M+W。数据输入时需注意格式的正确,详见用户手册说明。演示程序以人机对话的方式执行,即在计算机上显示提示信息后,由用户在键盘上输入对应的数据或命令,程序将执行相应的操作并显示下一步信息。1.2 功能需求分析(1)建立比赛数据;(2)显示各学校的成绩单; (3)显示各校团体总分报表。 2 概要设计每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,每个子函数实现的功能;各程序模块或子函数之间的调用关系。2.1 结构功能以结构数组来存储比赛数据,其基本操作为写入数据和查找数据。2.2本程序系统模块(1)主程序模块:main ( ) { 初始化; while(“命令”=“输入”){ 接受输入数据;处理数据; } while (“命令”=“浏览数据”) { 接受具体指令; 显示相应数据;[参考文献][1] 严蔚敏,吴伟民著.数据结构(C语言版)[M].北京:清华大学出版社, 1997.4. [2] 刘大有.数据结构[M].北京:高教出版社,2001. [3] 黄梯云.管理信息系统(修订版)[M].北京:高等教育出版社,2000年.[4] 齐德昱.算法与数据结构[M].北京:清华大学出版社,2003.10.[5] 徐孝凯,贺桂英著.C语言教程[M].北京:清华大学出版社,2004.[6] 杨秀 ...[ [原文]第一部分 运动会分数统计系统一、需求分析(1).可以输入各项目前三名的成绩。(2).能统计各学校总分。(3).可以按学校编号,学校总分、男女团队总分排序输出。(4).可以按学校编号查询学校某个项目的情况,可以按项目编号查询取得前三名的学校。(5).输出形式:有中文提示,各学校分数为整形。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能。(6).储存结构:以顺序存储结构储存数据。二.概要设计1、数据类型定义struct scorelist { int score; /*分数*/ char schoolnum[5]; /*学校编号*/ int itemnum[5]; /*项目编号*/ }; /*定义分数结构体类型*/ struct School{ char schoolnum[5]; /*学校编号*/ struct scorelist list[M]; /*定义scorelist类型的结构体变量*/ int teamscore; /*学校分数*/ int mscore; /*男队分数*/ int gscore; /*女队分数*/}; /*定义学校结构体类型*/struct School school[M]; /*定义School类型的结构体数组*/2、系统功能的实现(1)、求学校总分,男队总分,女队总分函数: void sun(); 本算法实现学校总分,男队总分,女队总分,并分别保存到各学校的teamscore,mscore,gscore结构体成员中。(2)、按学校总分排序输出函数void sort_teamsore();本算法实现学校总分排序输出。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值