Problem Description
某校每位学生都要学习语文、英语、数学三门公共课。会计学专业学生要学习会计学和经济学
2门专业课,化学专业学生要学习有机化学和化学分析2门专业课。
(1)编写ComFinal基类,数据成员有:姓名(字符数组类型)、语文成绩、英语成绩、数学成绩。
成员函数有:构造函数、析构函数、计算公共课总分的函数、计算公共课平均分的函数、
显示姓名、语文成绩、英语成绩、数学成绩、公共课总分、公共课平均分的函数
(2)编写Account派生类,数据成员有:会计学成绩、经济学成绩。
成员函数有:构造函数、析构函数、计算专业课总分的函数、计算专业平均分的函数、
显示姓名、语文成绩、英语成绩、数学成绩、公共课总分、公共课平均分、
会计学成绩、经济学成绩、专业课总分、专业课平均分的函数
(3)编写Chemistry派生类,数据成员有:有机化学成绩、分析化学成绩。
成员函数有:构造函数、析构函数、计算专业课总分的函数、计算专业平均分的函数、
显示姓名、语文成绩、英语成绩、数学成绩、公共课总分、公共课平均分、
有机化学成绩、分析化学成绩、专业课总分、专业课平均分的函数。
请完成下面的程序:
//你的代码将被嵌在这里
int main(void)
{
Account s1(“AAA”, 90, 86, 80, 93, 91);
s1.Display();
Chemistry s2(“BBB”, 92, 78, 98, 90, 67);
s2.Display();
return 0;
}
Input Description
无
Output Description
输出学生全部信息
Sample Output
姓名:AAA
语文:90
英语:86
数学:80
公共课总分:256
公共课平均分:85
会计学:93
经济学:91
专业课总分:184
专业课平均分:92
姓名:BBB
语文:92
英语:78
数学:98
公共课总分:268
公共课平均分:89
有机化学:90
化学分析:67
专业课总分:157
专业课平均分:78
#include <iostream>
using namespace std;
#include <string>
//基类要放在派生类前面
//基类
class ComFinal
{
private:
string m_name;
int Cscore;
int Escore;
int Mscore;
public:
//构造函数
ComFinal(string n, int a, int b, int c)//有参构造函数
{
m_name = n;
Cscore = a;
Escore = b;
Mscore = c;
}
//析构函数
~ComFinal() {}
void Display()
{
cout << "姓名:" << m_name << endl;
cout << "语文:" << Cscore << endl;
cout << "英语:" << Escore << endl;
cout << "数学:" << Mscore << endl;
//cout << "公共课总分:" << Cscore + Escore + Mscore << endl;
//cout << "公共课平均分:" << (Cscore + Escore + Mscore) / 3 << endl;
sumscore();
average();
}
void sumscore()
{
cout << "公共课总分:" <<Cscore + Escore + Mscore << endl;
}
void average()
{
cout << "公共课平均分:" <<( Cscore + Escore + Mscore) / 3 << endl;
}
};
class Account :public ComFinal //派生类 : 继承方式 基类
{
private:
int kuaijiscore;
int jingjiscore;
public:
Account(string a, int b, int c, int d, int e, int f) :ComFinal(a, b, c, d)
{
kuaijiscore = e;
jingjiscore = f;
}
void Display()
{
ComFinal::Display(); //ComFinal作用域下的函数
cout << "会计学:" << kuaijiscore << endl;
cout << "经济学:" << jingjiscore << endl;
cout << "专业课总分:" << kuaijiscore + jingjiscore << endl;
cout << "专业课平均分:" << (kuaijiscore + jingjiscore) / 2 << endl;
}
~Account() {}
};
class Chemistry :public ComFinal
{
private:
int youjiscore;
int fenxiscore;
public:
Chemistry(string a, int b, int c, int d, int e, int f) :ComFinal(a, b, c, d)
{
youjiscore = e;
fenxiscore = f;
}
~Chemistry() {}
void Display()
{
ComFinal::Display();//ComFinal作用域下的函数
cout << "有机化学:" << youjiscore << endl;
cout << "化学分析:" << fenxiscore << endl;
cout << "专业课总分:" << youjiscore + fenxiscore << endl;
cout << "专业课平均分:" << (youjiscore + fenxiscore) / 2 << endl;
}
};
int main(void)
{
Account s1("AAA", 90, 86, 80, 93, 91);
s1.Display();
Chemistry s2("BBB", 92, 78, 98, 90, 67);
s2.Display();
return 0;
}
5858



被折叠的 条评论
为什么被折叠?



