C++课程设计之运动会管理系统

本文实例为大家分享了C++运动会管理系统的实现代码,供大家参考,具体内容如下

#include<iostream.h>
#define MAX 10
#include<iomanip.h>
#include "fstream.h"
int n,m,w;
class gamescore
{public:
int academynum;     //院系编号
int score[MAX][MAX];   //记录成绩的2维数组
int totalscore[MAX];   //院总分存储数组
int mentotalscore[MAX]; //男团总分存储数组
int womentotalscore[MAX];//女团总分存储数组
int projectnum;     //项目编号
  gamescore()
  {
    academynum=0;
    projectnum=0;
  }
  void search(int academynum,int projectnum);
  void remove(int academynum,int projectnum);
  void repair(int academynum,int projectnum);
  void save();     //保存成绩
  void input();
  void sort1();     //按院总分排序
  void sort2();     //按男团总分排序
  void sort3();     //按女团总分排序
  void hold();     //存储总分数
  int academytotalscore(int academynum);    //院总分
  int academywomentotalscore(int academynum); //院女团总分
  int academymentotalscore(int academynum);  //院男团总分
  void output1(int academy);          //输出院系的成绩列表
  void output2(int academynum);        //输出院系的团体成绩列表
};
void gamescore::input()
{  int i,j;
  for(i=0;i<n;i++)
    {   cout<<"输入编号为"<<i+1<<"院系的成绩(若参赛人数超过6人,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1,否则参赛院系不超过6个,每项目取前三名,分别为5,3,2分,其余记成绩为0)"<<endl;
       for(j=0;j<m+w;j++)
       {
         cout<<"输入编号为"<<i+1<<"院系的的运动项目编号为"<<j+1<<"的成绩:";
         cin>>score[i][j];
         if(score[i][j]!=0&&score[i][j]!=2&&score[i][j]!=5&&score[i][j]!=10)
         {
           cout<<"成绩输入错误,请检查后再输入"<<endl;
           cin>>score[i][j];
         }
       }
     }
  if(i=n-1) cout<<"!!输入完毕"<<endl;
}
void gamescore::save()
{  ofstream ofs("运动会成绩.txt");
  ofs<<"将最终学院参加的对应项目成绩列表列出(行表示学院编号,列表示项目编号)"<<endl; 

  for(int i=0;i<n;i++)
    {
       for(int j=0;j<m+w;j++)
       {
         ofs<<score[i][j]<<setw(5);
       }
       ofs<<endl;
     }
   for(i=1;i<=n;i++)
   {
     ofs<<"编号为"<<i<<"的学院总分的成绩为:"<<academytotalscore(i)<<endl;
     ofs<<"编号为"<<i<<"的学院男团的成绩为:"<<academymentotalscore(i)<<endl;
     ofs<<"编号为"<<i<<"的学院女团的成绩为:"<<academywomentotalscore(i)<<endl;
   } 

ofs.close();
}
int gamescore::academytotalscore(int academynum)//院总分
{
  int sum=score[academynum-1][0];
  for(int i=1;i<m+w;i++)
  { 

      sum=sum+score[academynum-1][i];
  }
    return sum;
}
int gamescore::academywomentotalscore(int academynum)//院女团总分
{
  int sum=score[academynum-1][m];
  for(int i=m+1;i<m+w;i++)
  {
      sum=sum+score[academynum-1][i];
  }
    return sum;
}
int gamescore::academymentotalscore(int academynum)//院男团总分
{
  int sum=score[academynum-1][0];
  for(int i=1;i<m;i++)
  { 

      sum=sum+score[academynum-1][i];
  }
     return sum;
} 

void gamescore::hold()//存储总分
{
  for(int i=1;i<=n;i++)
  {
  totalscore[i-1]=academytotalscore(i);
  mentotalscore[i-1]=academymentotalscore(i);
  womentotalscore[i-1]=academywomentotalscore(i);
  }
}
void gamescore::sort1()//按院系总分排序
{
  int p,q;
  int a[MAX];
  for(int i=0;i<n;i++)
  {
    a[i]=i+1;
  }
  for(int j=0;j<n-1;j++)
  {
    for(i=0;i<=n-1-j;i++)
    {
      if(totalscore[i]<totalscore[i+1])
      {
        p=totalscore[i];
        totalscore[i]=totalscore[i+1];
        totalscore[i+1]=p;
        q=a[i];
        a[i]=a[i+1];
        a[i+1]=q;
      }
    }
  }
  cout<<"按院系总分从大到小排序,以及对应的院系编号为:"<<endl;
  for(j=0;j<n;j++)
  {
    cout<<a[j]<<setw(5);
  }
  cout<<endl;
  for(j=0;j<n;j++)
  {
    cout<<totalscore[j]<<setw(5);
  }
  cout<<endl;
}
void gamescore::sort2()//按男团总分排序
{
  int p,q;
  int a[MAX];
  for(int i=0;i<n;i++)
  {
    a[i]=i+1;
  }
  for(int j=0;j<n-1;j++)
  {
    for(i=0;i<=n-1-j;i++)
    {
      if(mentotalscore[i]<mentotalscore[i+1])
      {
        p=mentotalscore[i];
        mentotalscore[i]=mentotalscore[i+1];
        mentotalscore[i+1]=p;
        q=a[i];
        a[i]=a[i+1];
        a[i+1]=q;
      }
    }
  }
  cout<<"按男团总分从大到小排序,以及对应的院系编号为:"<<endl;
  for(j=0;j<n;j++)
  {
    cout<<a[j]<<setw(5);
  }
  cout<<endl;
  for(j=0;j<n;j++)
  {
    cout<<mentotalscore[j]<<setw(5);
  }
  cout<<endl;
}
void gamescore::sort3()//按女团总分排序
{
  int p,q;
  int a[MAX];
  for(int i=0;i<n;i++)
  {
    a[i]=i+1;
  }
  for(int j=0;j<n-1;j++)
  {
    for(i=0;i<=n-1-j;i++)
    {
      if(womentotalscore[i]<womentotalscore[i+1])
      {
        p=womentotalscore[i];
        womentotalscore[i]=womentotalscore[i+1];
        womentotalscore[i+1]=p;
        q=a[i];
        a[i]=a[i+1];
        a[i+1]=q;
      }
    }
  }
  cout<<"按女团总分从大到小排序,以及对应的院系编号为:"<<endl;
  for(j=0;j<n;j++)
  {
    cout<<a[j]<<setw(5);
  }
  cout<<endl;
  for(j=0;j<n;j++)
  {
    cout<<womentotalscore[j]<<setw(5);
  }
  cout<<endl;
} 

void gamescore::search(int academynum,int projectnum)
{int j;
  int k;
  do
  {
  cout<<"1 查询该院该单项成绩的总分, 2 查询该院总分,,3 查询该院男团总分,4 查询该院女团总分,5 按项目编号查询,0 退出查询"<<endl;
  cout<<"请选择:";
  cin>>k;
  if(k<0||k>5)  //判断输入的操作编号是否在目录中,如果超出范围重新输入
     {
       cout<<"输入有误,请重新输入要操作的项目编号";
       cin>>k;
     }
    switch(k)
     {
     case 1:
       cout<<"编号为"<<academynum<<"的学院的第"<<projectnum<<"个项目的成绩为:";
       cout<<score[academynum-1][projectnum-1]<<endl;break;
     case 2:
         cout<<"该院总分为:"<<academytotalscore(academynum)<<endl;break;
     case 3:
       cout<<"该院男团总分为:"<<academymentotalscore(academynum)<<endl;break;
     case 4:
       cout<<"该院女团总分:"<<academywomentotalscore(academynum)<<endl;break;
     case 5:
       cout<<"不同院系对应的第"<<projectnum<<"个项目的成绩为:"<<endl;
        for(j=0;j<n;j++)
        {
          cout<<1+j<<setw(5);
        }
        cout<<endl;
         for(j=0;j<n;j++)
        {
          cout<<score[j][projectnum-1]<<setw(5);
        }
         cout<<endl;
        break; 

     default: return;
    } 

  }while(1);
}
void gamescore::repair(int academynum,int projectnum)
{
  cout<<"请重新输入该项成绩:";
    cin>>score[academynum-1][projectnum-1];
  cout<<"修改成功"<<endl;
}
void gamescore::remove(int academynum,int projectnum)
{
  score[academynum-1][projectnum-1]=0;
  cout<<"!!删除成功"<<endl;
}
void gamescore::output1(int academynum)
{
  //cout<<"该学院运动项目编号及对应的成绩如下:"<<endl;
  for(int i=0;i<m+w;i++)
  {
    cout<<1+i<<setw(5);
  }
  cout<<endl;
   for(i=0;i<m+w;i++)
   {
     cout<<score[academynum-1][i]<<setw(5);
   }
}
void gamescore::output2(int academynum)
{
  cout<<"该院男团成绩为"<<academymentotalscore(academynum)<<endl;
  cout<<"该院女团成绩为"<<academywomentotalscore(academynum)<<endl;
} 

/////////////////////////////////////////////////////
void main()
{
  int projectnum;
  int academynum;
  gamescore a;
  int num;
////////////////////////////////////////////菜单
  cout<<"        ****广东海洋大学运动会成绩管理系统****"<<endl;
  cout<<endl;
  cout<<"      **********************************************"<<endl;
  cout<<"      **    1 输入院系及其参加项目的成绩   **"<<endl;
  cout<<"      **    2 查询某个院系参加某个项目的成绩 **"<<endl;
  cout<<"      **    3 修改一个项目的成绩       **"<<endl;
  cout<<"      **    4 删除错误成绩的记录       **"<<endl;
  cout<<"      **    5 输出某个院系的得分表      **"<<endl;
  cout<<"      **    6 输出院系的团体得分表      **"<<endl;
  cout<<"      **    7 对成绩按院系进行排序      **"<<endl;
  cout<<"      **    8 对成绩按男团进行排序      **"<<endl;
  cout<<"      **    9 对成绩按女团进行排序      **"<<endl;
  cout<<"      **   10 保存成绩信息          **"<<endl;
  cout<<"      **    0 退出该程序           **"<<endl;
  cout<<"      **********************************************"<<endl<<endl;
  cout<<"          输入参加院系数 n=";
  cin>>n;
  cout<<"          输入男子项目数 m=";
  cin>>m;
  cout<<"          输入女子项目数 w=";
  cin>>w; 

do{
     cout<<"请选择要操作的菜单标号:";
     cin>>num;
     if(num>10||num<0)
     {
       cout<<"输入有误,请重新输入要操作的项目编号:";
       cin>>num;
     }
     switch(num)
     {
     case 1:
       a.input();
       break;
     case 2:
       cout<<"输入要查找的院系:";
       cin>>academynum;
       cout<<"输入要查询的运动项目编号:";
       cin>>projectnum;
      a.search(academynum,projectnum);
       break;
     case 3:
       cout<<"输入要修改的院系编号";
       cin>>academynum;
       cout<<"输入要修改的运动项目的编号:";
       cin>>projectnum;
       a.repair(academynum,projectnum);
       break;
     case 4:
       cout<<"输入要删除成绩所在的院系的编号:";
       cin>>academynum;
       cout<<"输入要删除运动项目编号:";
       cin>>projectnum;
       a.remove(academynum,projectnum);
       break;
     case 5:
       cout<<"输入要查询成绩的院系编号:";
       cin>>academynum;
       a.output1(academynum);
       break;
     case 6:
       cout<<"输入要查询团体成绩的院系的编号:";
       cin>>academynum;
       a.output2(academynum);
       break;
     case 7:
        cout<<"该学院运动项目编号及对应学院总分的成绩如下:";
        a.hold();
        a.sort1();break;
     case 8:
        cout<<"该学院运动项目编号及对应男团的成绩如下:";
        a.hold();
        a.sort2();break;
     case 9:
        cout<<"该学院运动项目编号及对应女团的成绩如下:";
        a.hold();
        a.sort3();break;
     case 10:
       a.save();
       cout<<"!!保存成功"<<endl;break;
     default: return;
     }
  }while(1);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 基于C++语言实现机动车违章处罚管理系统

    关键代码如下所示: #include <iostream> #include <iomanip> #include <fstream> #include <string> #include <list> using namespace std; class Violation{ public: Violation(){points=fine=0; number=carNumber=tel=location=isSpot =police=camer

  • C++实现简单的职工信息管理系统

    功能主模块描述 模块一:增加人员函数Add():增加职工基本信息. 模块二:删除人员函数Delete():删除指定的职工的基本信息以及薪酬. 模块三:修改人员函数Modify():修改指定的职工基本信息. 模块四:查询职工信息函数Search():查询指定的职工信息以及薪酬. 模块五:排序职工信息函数Sort():职工信息排序功能实现 模块六:基础数据设置函数Set():设置五类职位的基本薪酬. 模块七:数据存盘,载入函数Save()以及Load():储存职工基本信息,薪酬以及五类职位的基本薪酬

  • C++实现病人就医管理系统

    本文实例为大家分享了C++语言实现病人就医管理系统的具体代码,供大家参考,具体内容如下 函数可实现反应病人到医院看病,排队看医生的情况,有行医类模板的定义及所有类函数的编写代码 部分代码展示: lk_queue.h #ifndef __LK_QUEUE_H__ #define __LK_QUEUE_H__ #include "utility.h" // 实用程序软件包 #include "node.h" // 结点类模板 // 链队列类模板 template<

  • C++实现停车场管理系统

    本文实例为大家分享了停车场管理系统的具体代码,供大家参考,具体内容如下 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cstdlib> #include<algorithm> #include<queue> #include<vector> #include<stack> #includ

  • C++实现景区信息管理系统

    本文实例为大家分享了C++实现景区信息管理系统的具体代码,供大家参考,具体内容如下  1.1 建立主程序应用菜单选项 主程序应用菜单选项包含所实现的所有功能,并且对选项采用数字标识进行选择,对其他错误输入可以进行判别,提示输入错误. 1.2 导游线路图的创建级景区分布图的输出 用邻接链表存储景点分布图的信息,(带权无向)图的邻接链表.输出景区景点分布图(邻接矩阵).图中边的权值∞用32767表示. 1.3  输出导游线路图 景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一

  • C++基础学生管理系统

    本文实例为大家分享了C++基础学生管理系统的实现代码,供大家参考,具体内容如下 适用于c++6.0,codeblocks等常用工具 1. 链表处理部分 #include<stdio.h> #include<string.h> #include<stdlib.h> #include"linklist.h" #include"elem.h" void dispnode(linklist h) { node *p; p=h->ne

  • C++实现简单的学生管理系统

    C++实现简单的学生管理系统 //Student.cpp #include<iostream> using namespace std; struct Stu { char no[10]; char name[16]; int math; int chi; double ave; }; class Student { public: Stu st; Student * next; public: Student(){} Student(Stu s) { st=s; next=NULL; st.

  • C++学校运动会管理系统的实现

    本文实例为大家分享了C++实现运动会管理系统的具体代码,供大家参考,具体内容如下 #include <iostream> #include <cstdio> #include <string> #include <windows.h> #include <set> #include <map> using namespace std; const int MAXN = 100005; typedef long long LL; map

  • C++实现简单的职工管理系统实训代码

    本文实例为大家分享了C++职工管理系统实例代码 1.单个职工的头文件 staff.h #ifndef STAFF_H_INCLUDED #define STAFF_H_INCLUDED //结构体创建 struct staff { char ID[10]; char name[10]; char sex[10]; int pay; int reward; int factpay; }; //自定义结构体 typedef struct staff staff; //单个职工信息创建 staff C

  • C++实现学校运动会管理系统

    本文实例为大家分享了C++实现学校运动会管理系统的具体代码,供大家参考,具体内容如下 #include<iostream> #include<fstream> #include<string> using namespace std; void fun1() { cout<<"******************************"<<endl; cout<<endl; cout<<"*

  • C++学生信息管理系统

    本文实例为大家分享了C++学生信息管理系统源码,供大家参考,具体内容如下 1. tea_list.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include"teacher.h" int sq_tea ; PTEA head = NULL ; FILE *fp ; int tea_llopen(const char* path)//打开文件 { fp=fopen(path,&q

  • linux下C/C++学生信息管理系统

    一.简介 大学期间用vc++开发的简单的学生信息管理系统,主要有添加学生信息.删除学生信息.修改学生信息.查询学生信息.显示学生信息.综合统计(各课程平均成绩和合格率).总分排序和退出系统.设计: 二.详解 1.代码 (1)main.cpp #include<iostream> #include<fstream> #include<iomanip> //使用setw()函数 #include<windows.h> //使用system()函数 #includ

  • C++实现简单的信息管理系统

    本文为大家分享C++实现简单的信息管理系统,小编之前在学习的时候也要做一些管理系统,在网上查了许多资料,现在我把资料分享给大家,希望能够帮助到大家. #include <stdio.h> #include <stdlib.h> #include "file.h" void savaList(Node *head)/**把用户录入的数据存储到文件里面去方便下次读取*/ { FILE *fp=fopen("data\\data.txt" ,&qu

  • C++实现简单的图书管理系统

    今天再为大家介绍另一个常用的管理系统--图书管理系统,希望大家可以亲自动手实践一下,下面就与大家一起分享我的劳动成果. 图书信息包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)图书信息录入功能(图书信息用文件保存) (2)图书信息浏览功能 (3)查询和排序功能:(至少一种查询方式)         .按书名查询         .按作者名查询 (4)图书信息的删除与修改 分享代码如下 #include<iostream.h>

  • C++实现企业职工工资管理系统

    课程设计目的和要求 工资管理要和人事管理相联系,生成企业每个职工的实际发放工资. 企业职工人事基本信息包括:职工编号.姓名.性别.出生日期.职称(助工.工程师.高级工程师)和任职年限. 企业职工工资信息包括:职工编号.姓名.职务工资.职务补贴.住房补贴.应发工资.个人所得税.养老保险.住房公积金和实发工资. 系统主要功能包括: (1)创建职工人事基本信息文件,根据提示输入职工的各项信息,按职工编号对职工信息进行排序,并将排序后的职工信息存储到一个文件中. (2)创建职工的工资信息文件(每个月创建

随机推荐