• 大小: 91KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-07-03
  • 语言: C/C++
  • 标签: c++  

资源简介

一个简单的歌手比赛评分系统
带有评分
取平均值
修改成绩
随机顺序等功能
命令提示框程序 不带任何GUI界面

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include  // 时间和随机数头文件
#include 
#include 
#include  // 文件读写流
#include  // io流
#include  // win API头文件

using namespace std; //std命名空间

class Person
{
public:
    string singerName; //stl里面的string存储姓名
};

class Singer: public Person
{
    public:
        Singer();
        Singer(int singerNumber string singerName double *singerGrade);
        ~Singer();
        void sortGrade();
        int getNumber();
        string getName();
        double getGrade(int);
        double getArg();
        double getSum();
        void changeGradle(int double);

    private:
        int singerNumber = 0; //歌手编号
        bool ifSorted = false; // 判断是否已经排序
        double *singerFinGrade;
        double *singerGrade; //用简单的数组存储成绩
        double arg = 0; // 平均数储存(掐头去尾)
        double sum = 0; // 成绩总和
        void caculateArg();
        int sort(int lo int hi); // 次排序
};

Singer::Singer(){
    singerNumber = 0;
}

//构造函数
Singer::Singer(int singerNumber string singerName double *singerGrade){
    int i = 0;
    this->singerNumber = singerNumber;
    this->singerName = singerName;
    this->singerGrade = singerGrade;
    singerFinGrade = new double[10];
    for(i = 0;i < 10;i++){
        singerFinGrade[i] = singerGrade[i];
    }
    caculateArg();
}

//析构函数
Singer::~Singer(){
    // delete singerGrade; // 防止内存泄漏
}

int Singer::getNumber(){ // getter方法
    return singerNumber;
}

string Singer::getName(){ // getter方法
    return singerName;
}

double Singer::getGrade(int i){ // getter方法
    return singerFinGrade[i];
}

double Singer::getArg(){ // getter方法
    return arg;
}

double Singer::getSum(){ // getter方法
    return sum;
}

void Singer::caculateArg(){
    int i = 0;
    if(ifSorted){
        for(i = 1;i < 9;i++){
            sum += singerGrade[i];
        }
        arg = sum/8;
    }else{
        sortGrade();
        caculateArg();
    }

}

int Singer::sort(int lo int hi){
    int last = lo;
    double temp;

    while(++lo <= hi){
        if(singerGrade[lo - 1] > singerGrade[lo]){
            last = lo;

            temp = singerGrade[lo - 1];
            singerGrade[lo - 1] = singerGrade[lo];
            singerGrade[lo] = temp;
        }
    }

    return last;
}

// 成绩内排序 从小到大(小数据所以用了冒泡)
void Singer::sortGrade(){
    int lo = 0 hi = 9;
    while(lo < (hi = sort(lo hi))); // 排序本体

    ifSorted = true;
}

void Singer::changeGradle(int pos double num){
    double temp = singerFinGrade[pos - 1];
    singerFinGrade[pos - 1] = num;
    for(int i = 0;i < 10;i++){
        if(singerFinGrade[pos - 1] == singerGrade[i]){
            singerGrade[i] = num;
        }
    }
}

class List: public Singer
{
public:
    List();
    ~List();
    void begin();//迭代器返回头结点
    void end();//迭代器返回尾节点
    bool next(); // 后移迭代器
    Si

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       18170  2018-12-14 15:43  main.cpp
     文件       93774  2018-12-09 16:54  TIM截图20181209165356.png

评论

共有 条评论