用C++编写一个Student的类模板,学生信息要求有:姓名、学号、数学、英语、计算机3门成绩
编写一个Student的类模板,学生信息要求有:姓名、学号、数学、英语、计算机3门成绩(3门成绩可定义数组,类型用模板),并实现如下功能:(1)通过构造函数对学生信息初始...
编写一个Student的类模板,学生信息要求有:姓名、学号、数学、英语、计算机3门成绩(3门成绩可定义数组,类型用模板),并实现如下功能:(1)通过构造函数对学生信息初始化,其中成绩数组元素类型用模板参数;(2)定义一个成员函数要求3门课程的总成绩及平均成绩,成绩类型用模板表示;(3)定义一个print函数输出学生信息;(4)编写主程序进行验证。
展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
1个回答
展开全部
#include <cstdio>
#include <string>
#include <iostream>
using namespace std;
template <class T>
class Student
{//Student 模板类
private:
string Name;
int Sno;
T Score[3];//成绩 数学 英语 计算机
T sum;//总分
T avg;//平均分
public:
Student(string name,int sno,T* p)//构造函数
{
Name = name;
Sno = sno;
for (int i = 0; i < 3; i++)
Score[i] = p[i];
sum = 0;
avg = 0;
}
void score_cal()//计算平均分和总分
{
for (int i = 0; i < 3; i++)
{
sum += Score[i];
}
avg = sum / 3;
}
T get_sum() {return sum;}
T get_avg() {return avg;}
void display()//学生信息展示
{
cout << Sno << " " << Name << " " << Score[0]
<< " " << Score[1] << " " << Score[2]
<< " " << sum << " " << avg << endl;
}
};
int main()
{//主函数
int score[] = {87,78,84};
Student <int> stu("小红",1,score);//实例化对象
stu.score_cal();//调用计算成绩方法
cout << "学号" << " " << "姓名" << " " << "数学" << " " << "英语"
<< " " << "计算机" << " " << "总分" << " " <<"平均分 " << endl;
stu.display();//展示学生信息
return 0;
}
#include <string>
#include <iostream>
using namespace std;
template <class T>
class Student
{//Student 模板类
private:
string Name;
int Sno;
T Score[3];//成绩 数学 英语 计算机
T sum;//总分
T avg;//平均分
public:
Student(string name,int sno,T* p)//构造函数
{
Name = name;
Sno = sno;
for (int i = 0; i < 3; i++)
Score[i] = p[i];
sum = 0;
avg = 0;
}
void score_cal()//计算平均分和总分
{
for (int i = 0; i < 3; i++)
{
sum += Score[i];
}
avg = sum / 3;
}
T get_sum() {return sum;}
T get_avg() {return avg;}
void display()//学生信息展示
{
cout << Sno << " " << Name << " " << Score[0]
<< " " << Score[1] << " " << Score[2]
<< " " << sum << " " << avg << endl;
}
};
int main()
{//主函数
int score[] = {87,78,84};
Student <int> stu("小红",1,score);//实例化对象
stu.score_cal();//调用计算成绩方法
cout << "学号" << " " << "姓名" << " " << "数学" << " " << "英语"
<< " " << "计算机" << " " << "总分" << " " <<"平均分 " << endl;
stu.display();//展示学生信息
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询