用C++编写一个Student的类模板,学生信息要求有:姓名、学号、数学、英语、计算机3门成绩

编写一个Student的类模板,学生信息要求有:姓名、学号、数学、英语、计算机3门成绩(3门成绩可定义数组,类型用模板),并实现如下功能:(1)通过构造函数对学生信息初始化,其中成绩数组元素类型用模板参数;(2)定义一个成员函数要求3门课程的总成绩及平均成绩,成绩类型用模板表示;(3)定义一个print函数输出学生信息;(4)编写主程序进行验证。

第1个回答  2014-11-14
#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;
}本回答被网友采纳

我用C++模板类写了个程序,里面要有姓名学号分数等字段,现在要实现按...
比如 一个叫 index 的字段 排序函数是 sort sort(){ if index=XX else ...} 使用方法 index=排序字段标号 sort()希望对你有帮助 呵呵

求c++语言解决实际问题~~~很急的
输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求: 1)排序用一个函数实现。 2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。 3)按实验报告电子模...

奇怪的c++的学习Primer Plus -14 c++中的代码重用
valarray类是一个模板类,它能够支持处理不同数据类型,如数值或具有类似特征的类。它可以用于执行诸如计算数组中所有元素的总和、找出最大值和最小值、访问各元素以及返回元素个数等操作。接下来,我们以Student类为例,探讨类模板在实际应用中的实现。在Student类的设计中,学生与姓名和分数之间的关系是...

c++定义一个Interger类模板,用它来实现c++的各种整数类型程序
把int型转化成long double,然后if else对比其范围,设置为该类型。。c++上课压根没听。c语言没class的概念

C++:用类模板编写求 3个数中最大值的程序.
时间匆忙,写得不完善,已经实现了你的要求 include<iostream> using namespace std;template<class T> class MAX { private:T x,y,z,max;public:MAX(T a,T b,T c){ x=a;y=b;z=c;} T max1(T a,T b,T c){ if(a>=b&&a>=c) return a;else if(b>=c) return b;el...

用C++编写一个使用类模板对数组进行排序、查找和求元素和的程序
\/\/类模板 template<class T> class vector { public:void sort(T a[],int n);T sum(T a[],int n);int search(T e, T a[], int n);};\/\/排序 template<class T> void vector<T>::sort(T a[],int n){ T temp;bool exchange;for(int i = 1; i < n; i++){ exchange ...

跪求C++高校学籍管理程序代码
struct Student \/\/学生信息{ string name; \/\/姓名 double math; \/\/数学成绩 double chinese; \/\/语文成绩 double total; \/\/总分}; \/\/CITT代表map容器的迭代器类型typedef map<int,Student>::iterator CITT;CITT citt;\/\/为了给Find函数节省一个参数,这里定义了一个迭代器citt\/\/map容器的元素类型是value_type,...

用C++用C++编写一个函数模板,对不同类型的数组求平均值。
include <iostream>using namespace std;template<typename T>double average(T *src, int len) \/\/ T 会通用类型{ double sum = 0; for (int i = 0; i < len; i++) sum += src[i]; return sum \/ len;}int main(){ int n[] = {10, 1, 27, 43, 15}; ...

我定义了一个结构体但我又不知道还有多少个数据要输入怎么办?_百度...
1\/ 定义一个学生信息的结构体或者类(包含字段:学生姓名,学好,或者其他学生数据信息)2\/ 定义一个学生的操作类(管理类)struct studentInformation => 学生信息类 class strudentMgr { => 学生管理类 private:std::vector<studentInformation> students; \/\/用一个容器\/链表或者数组存储学生数据 public...

使用c++面向对象的程序设计方法,找出十个学生成绩中的最高者,并输出
namespace std;class student{private:string name;int score;public:student(){}student(string _n,int _s){name=_n;score=_s;}friend student getMaxScore(student ss[],int n);void initStudent(string _n,int _s){score=_s;name=_n; }void printStudent(){cout<<"name:"<<name<<...

相似回答