运动会分数统计系统开发

/***************************************************
* 版权所有 (C/C++) 2015,辛志勐
* 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:终极版.cpp
* 作者:辛志勐
* 完成日期:2015年12月24日
* 版本号:VC6.0
* 项目描述:运动会统计系统
****************************************************/

             
/**************************** 
*  头文件
*****************************/
#include
using namespace std;
#include
#include
#define CLEAR "cls"
#define n 2//学校数目
#define m 1//田径项目数目
#define w 1//跳高项目数目
#define null 0
#include 
#define MaxSize 100
typedef char ElemType;

typedef struct
{
    ElemType data[MaxSize];
    int top;                //栈指针
} SqStack;                  //顺序栈类型定义

void InitStack(SqStack *&s);    //初始化栈
void DestroyStack(SqStack *&s);  //销毁栈
bool StackEmpty(SqStack *s);     //栈是否为空
int StackLength(SqStack *s);  //返回栈中元素个数——栈长度
bool Push(SqStack *&s,ElemType e); //入栈
bool Pop(SqStack *&s,ElemType &e); //出栈
bool GetTop(SqStack *s,ElemType &e); //取栈顶数据元素
void DispStack(SqStack *s);  //输出栈

/*****************************
* 功能:初始化栈
* InitStack()
* 输入参数:无
* 输出参数:无
* 返回值: 无
*******************************/

void InitStack(SqStack *&s)
{
    s=(SqStack *)malloc(sizeof(SqStack));
    s->top=-1;
}

/****************************
* 功能:销毁栈
* DestroyStack()
* 输入参数:无
* 输出参数:无
* 返回值: 无
*****************************/

void DestroyStack(SqStack *&s)
{
    free(s);
}

/******************************
* 功能:返回栈中元素个数——栈长度
* StackLength()
* 返回栈中元素个数——栈长度
* 输入参数:无
* 输出参数:s
* 返回值: s->top+1
*******************************/

int StackLength(SqStack *s)  
{
    return(s->top+1);
}


/*****************************
* 功能:栈空的情况,即栈下溢出
* StackEmpty()
* 输入参数:无
* 输出参数:s
* 返回值: s->top==-1
******************************/


bool StackEmpty(SqStack *s)
{
    return(s->top==-1);
}

/*****************************
* 功能:入栈
* Push()
* 输入参数:s
* 输出参数:无
* 返回值: true or flase
******************************/

bool Push(SqStack *&s,ElemType e)
{
    if (s->top==MaxSize-1)    //栈满的情况,即栈上溢出
        return false;
    s->top++;
    s->data[s->top]=e;
    return true;
}
/*****************************
* 功能:出栈
* Pop()
* 输入参数:e
* 输出参数:s
* 返回值: s or 无
*******************************/
bool Pop(SqStack *&s,ElemType &e)
{
    if (s->top==-1)     //栈为空的情况,即栈下溢出
        return false;
    e=s->data[s->top];
    s->top--;
    return true;
}
/******************************
* 功能:取栈顶元素
* GetTop
* 输入参数:e
* 输出参数:s
* 返回值:s or 无   
*******************************/
bool GetTop(SqStack *s,ElemType &e)
{
    if (s->top==-1)         //栈为空的情况,即栈下溢出
        return false;
    e=s->data[s->top];
    return true;
}

/******************************
* 功能:输出栈
* DispStack()
* 输入参数:无
* 输出参数:s
* 返回值:s   
*******************************/
void DispStack(SqStack *s)  //输出栈
{
    int i;
    for (i=s->top; i>=0; i--)
        printf("%c ",s->data[i]);
    printf("\n");
}

/***********************
* 定义结构体数组
************************/
typedef struct
{
    int itemnum;//项目编号
    int top;    //取名次的数目
    int range[5]; //名次
    int mark[5];  //分数
} itemnode;  //定义项目结点的类型
typedef struct
{
    int schoolnum;   //学校编号
    int score;    //学校总分
    int mscore;   //田径体总分
    int wscore;   //跳高体总分
    itemnode c[m+w];   //项目数组
} headnode; //定义头结点类型
headnode h[n];//定义一个头结点数组

/*******************************************************
* 功能:项目的输入信息
* inputinformation()
* 输入:学校编号,项目编号,获得名次,名次个数
* 输出:无
* 返回值:无
********************************************************/

void inputinformation()//输入信息,建立系统
{
    int i,j,k,s;
    for(i=0; i>h[i].c[j].top;

            }

            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; sn)
                printf("错误:这个学校没有参加此次运动会!\n\n\n");
            else
            {
                printf("要查询的项目编号1.田径  2.跳高:");
                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("要查询的项目编号1.田径  2.跳高:");
            scanf("%d",&s);
            if(s>m+w||s==0)
                printf("此次运动会不包括这个项目.\n\n\n"); //项目编号超出范围则输出警告
            else
            {
                printf("该项目取前 %d名,取得名次的学校\n",h[0].c[s-1].top);
                for(i=0; i>a;
    if(a==1)
        system(CLEAR);
    else
        return 0;
    printf("======================欢迎使用======================\n");
    printf("\n\n              运动会分数统计系统                   \n");
    printf("\n\n1.输入信息 \n");
    printf("2.输出信息 \n");
    printf("3.查询信息 \n");
    printf("4.各学校的名次成绩由高到低依次输出并自动输出,为保密成绩,将不公布学校编号\n");
    printf("5.退出系统 \n\n\n");
    printf("\n\n");
    printf("================================================\n\n");
    printf("********请选择要实现步骤的编号:\n\n");
    scanf("%d",&choice);
    system(CLEAR);
    if(choice==1)
    {
        inputinformation();
        main();
    }
    else if(choice==2)
    {
        output();
        main();

    }
    else if(choice==3)
    {
        inquiry();
        main();
    }
    else if(choice==5)
    {
        return 0;
    }
    else if(choice==4)
    {
        ElemType e;
        SqStack *s;
        // printf("(1)初始化成绩s\n");
        InitStack(s);
        cout<>l;
        if(l==2)
        {
            main();
        }
        else
        {
            return 0;
        }
    }
    else
    {
        return 0;
    }

    return 0;
}

1.初始界面

运动会分数统计系统开发_第1张图片

2.用户选择界面

运动会分数统计系统开发_第2张图片

3.输入界面

运动会分数统计系统开发_第3张图片

4.输出界面

运动会分数统计系统开发_第4张图片

运动会分数统计系统开发_第5张图片

运动会分数统计系统开发_第6张图片

运动会分数统计系统开发_第7张图片

运动会分数统计系统开发_第8张图片

5.查询界面

运动会分数统计系统开发_第9张图片

6.成绩高低输出

运动会分数统计系统开发_第10张图片


你可能感兴趣的:(运动会分数统计系统开发)