Cant create class object
I'd like to create an array to accept student' names. Why cant I create the class object Quizdata student[NEW_STUDENT]; ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class Quizdata
{
private:
string name;
double total;
int number;
public:
Quizdata(string n){
setName(n);
total=number=0;
}
void setName(string studentName){
name = studentName;
}
string get_name(){
return name;
}
int add_quiz(int, int);
double get_total_score(){
return total;
}
double get_average_score(){
return total/number;
}
};
int Quizdata::add_quiz(int n, int grade)
{
int quizNum = n;
int score = grade;
while ( n!=0){
cin>> grade;
if (grade>=10 && grade<=100){
total +=grade;
number++;
n--;
}
else
{
cout << "Invalid input, score range is from 10 to 100";
}
}
}
void printresults(Quizdata);
const int NEW_STUDENT=3;
int main()
{
Quizdata student[NEW_STUDENT]; //???
string name;
int quizNum, score, total;
cout << "This program accepts students' name,\n"
<< "number of quizes and their scores.\n"
<< "Quiz scores must be in the range of 10 to 100\n";
//*******************************************************************
for (int index=0; index< NEW_STUDENT;index++)
{
cout << "\nEnter the name for student " << (index+1) << ":";
getline(cin, name);
student[index].setName(name)
}
//*******************************************************************
cout << "How many quizes grades would you like to enter? ";
cin >> quizNum; //why cant move to add_auiz???
cout << "Enter " << quizNum << " quize grades: ";
student1.add_quiz(quizNum, score);
printresults(student1);
return 0;
}
void printresults(Quizdata student1)
{
cout << fixed << showpoint << setprecision(2) << endl;;
cout << "\nStudent's name is:\t" << student1.get_name() <<endl;
cout << "Student's total is:\t" << student1.get_total_score()<< endl;
cout << "Student's average is:\t" << student1.get_average_score()<< endl;
}
|
In your class you need to name the arguments:
1 2 3 4 5 6 7
|
class QuizData
{
...
public:
int add_quiz (int a, int b);
...
}
|
Last edited on
Topic archived. No new replies allowed.