資源簡介
一個簡單的歌手比賽評分系統(tǒng)
帶有評分
取平均值
修改成績
隨機順序等功能
命令提示框程序 不帶任何GUI界面
帶有評分
取平均值
修改成績
隨機順序等功能
命令提示框程序 不帶任何GUI界面

代碼片段和文件信息
#include?
#include?
#include?
#include??//?時間和隨機數(shù)頭文件
#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;?//?判斷是否已經(jīng)排序
????????double?*singerFinGrade;
????????double?*singerGrade;?//用簡單的數(shù)組存儲成績
????????double?arg?=?0;?//?平均數(shù)儲存(掐頭去尾)
????????double?sum?=?0;?//?成績總和
????????void?caculateArg();
????????int?sort(int?lo?int?hi);?//?次排序
};
Singer::Singer(){
????singerNumber?=?0;
}
//構(gòu)造函數(shù)
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();
}
//析構(gòu)函數(shù)
Singer::~Singer(){
????//?delete?singerGrade;?//?防止內(nèi)存泄漏
}
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;
}
//?成績內(nèi)排序?從小到大(小數(shù)據(jù)所以用了冒泡)
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();//迭代器返回頭結(jié)點
????void?end();//迭代器返回尾節(jié)點
????bool?next();?//?后移迭代器
????Si
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????18170??2018-12-14?15:43??main.cpp
?????文件???????93774??2018-12-09?16:54??TIM截圖20181209165356.png
評論
共有 條評論