【发布时间】:2015-04-13 03:19:27
【问题描述】:
我正在编写一个代码,它使用函数(而不是数组)来创建一个美国偶像风格投票系统的程序。我没有使用数组,因为我确实需要先掌握函数。
每位参赛者有 5 票,将最高和最低的票数去掉,最后 3 票平均得到答案,谁的平均票数最高者获胜。但是,参赛者的数量取决于用户输入(可能有无限数量的参赛者)
我不知道如何获得每个学生的平均值,只是作为一个整体,到目前为止,我的程序只将最后输入的值作为获胜者。这是我的代码。
如果对如何获得不同参赛者的不同平均值有任何帮助,请告诉我,我是函数新手,对 c++ 还很陌生
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void validCheck();
void calcAvgCheck();
void findHigh();
void findLow();
ofstream outputFile;
ofstream inputFile;
double totalScore, average, score;
string name;
int main(){
int judge = 1;
outputFile.open("contestant.txt");
while (name != "done" || name != "Done"){
cout << "Enter Contestant Name, if no more, type 'done': ";
cin >> name;
outputFile << name << " ";
if (name == "done" || name == "Done"){ break; }
for (judge = 1; judge < 6; judge++){
cout << "Enter score " << judge << " ";
validCheck();
outputFile << " " << score << " ";
calcAvgCheck();
}
}
cout << "Winner is: " << name << "with a score of: " << average;
system("pause");
return 0;
}
void validCheck(){
cin >> score;
if (score < 1 || score > 10){
cout << "Please Enter a score between 1 and 10: ";
cin >> score;
}
totalScore += score;
}
void calcAvgCheck(){
inputFile.open("contestant.txt");
average = totalScore / 5;
}
【问题讨论】:
-
只要你使用
c++,你应该避免杂散函数。请将所有全局成员保持为class members,并将全局函数保持为class functions,然后您可以使用对象的类数组并将每个数组成员视为单独的参赛者 -
@Youssef:这个“一切都必须是成员函数”的神话不会消失,对吗?免费函数并没有错,在许多情况下,they increase encapsulation。
标签: c++ function loops for-loop sum