首页 文章

不了解被问及的内容以及如何输入内容?

提问于
浏览
-2

我无法理解该程序的某些部分问题,并想知道为什么以及如何键入该程序 . 以下是我无法理解的部分:

第三个成员变量是指向double,pquiz的指针 . 这将用于动态分配一个数组,该数组将保存学生的测验成绩 .

(我这样做了吗?)

第四个成员变量是一个双倍保持测验成绩的平均值 .

该类应该有一个接受int的参数构造函数,并将动态分配双测验等级数组 . 或者类可以>有一个两个参数构造函数,它接受一个字符串和一个int .

int是测验成绩的数量

构造函数使用new运算符为测验等级数组分配内存 .

如果有两个参数,则该字符串是学生的姓名 .

该类需要通常的mutator,accessor函数和析构函数 .

该类有一个附加函数average(),它计算pquiz指向的数组中保存的所有测验等级的平均值 . 它返回双平均值 .

我打算打印学生姓名,学生考试的次数和平均分 . 到目前为止,这是我的程序:

#include <iostream>
#include <string>

using namespace std;

class TestScore{

private:
    string name;
    int grades;
    double *pquiz;
    double average;

public:
    TestScore();
    void setName(string);
    void setGrades(int);
    void setAverage(double);
    string getName();
    int getGrades();
    double getPquiz();
    double getAverage();
};

TestScore::TestScore()
{
name="?";
grades=0;
pquiz=0;
average=0;
}
void TestScore::setName(string name1)
{
name=name1;
getline(cin,name1);
}
void TestScore::setGrades(int grades1)
{
grades=grades1;
}
void TestScore::setAverage(double average1)
{
average=average1;
}
string TestScore::getName()
{
return name;
}
int TestScore::getGrades()
{
return grades;
}
double TestScore::getAverage()
{
return average;
}
int main()
{
TestScore exam;
TestScore *ts=&exam;
string name;
int grade;
double *pquiz;
double average;
double total=0.0;
int count;
cout<<"Enter student name: ";
exam.setName(name);

cout<<"How many quizzes are there? ";
exam.setGrades(grade);
cin>>grade;
pquiz=new double[grade];
for(count=0; count<grade; count++)
{
    cout<<"Quiz "<<(count+1)<<": ";
    cin>>pquiz[count];
}
for(count=0; count<grade; count++)
{
    total+=pquiz[count];
}
average=total/grade;
cout<<exam.getName()<<" has an average of "<<average<<endl;
delete [] pquiz;
pquiz=0;
return 0;
}

1 回答

  • 0

    如果我理解正确成员 grades 保存成员 pquiz 指向的数组的长度 . 每当设置 gradespquiz 也必须反映新的更改(应删除旧数组,应创建新数组) . 在构造函数中只能创建数组 . 在 setGrades() 必须删除旧并创建新的 .

    因为成员 pquiz 由类 TestScore 控制(或拥有),所以在删除对象 TestScore 时(或在我们的术语"when it goes out scope"中)应该删除它是合乎逻辑的 . 这是在类析构函数中完成的,您应该将其添加到类中 .

    根据文本,应该有一个成员函数 average() ,它计算平均值并将值存储在成员 average 中 . 为了您的理智,应该重命名该成员 .

相关问题