用c++编写一个学生类的,包括姓名,学号和俩门成绩,要求输出学生数据,并计算平均分,定义一个拷贝函

用c++编写一个学生类的,包括姓名,学号和俩门成绩,要求输出学生数据,并计算平均分,定义一个拷贝函数,进行学生类的复制,并在主函数中进行测试

代码如下:

#include <string>
#include <iostream>
using std::string;
using std::cout; using std::cin; using std::endl;
using std::ostream;

class student
{
friend ostream & operator<<(ostream & os, const student &studData);
public:
student() = default;
student(const string &name, int number, double chjA = 0.0, double chjB = 0.0)
:mStrName(name), miNumber(number), mChengjiA(chjA), mChengjiB(chjB)
{}//显式构造函数
student(const student & rStData)//拷贝构造函数
{
if (this != &rStData)
{
mStrName = rStData.mStrName;
miNumber = rStData.miNumber;
mChengjiA = rStData.mChengjiA;
mChengjiB = rStData.mChengjiB;
}
}

double GetAveChengji()const
{
return (mChengjiA + mChengjiB) / 2;
}
public:

private:
string mStrName;
int miNumber = -1;
double mChengjiA = 0.0;
double mChengjiB = 0.0;
};

ostream & operator<<(ostream & os,const student &studData)//流输出操作符重载
{
os << "同学的姓名是:" << studData.mStrName
<< "。他/她的学号是:" << studData.miNumber
<< "。他/她第一科成绩为:" << studData.mChengjiA
<< ";第二科成绩为:" << studData.mChengjiA
<< ",平均成绩为:" << studData.GetAveChengji();

return os;
}

int main()
{
student st ={ "xx", 9989, 89.0, 78.4 };
student st2 = st;

cout << st << endl << st2;
return 0;
}

其实你还可以扩展很多,增加一些get,set等等

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-09
#include <iostream>
#include <string>
using namespace std;
class Stu
{
public:
    Stu(){}
    Stu( const Stu &other)
    {
        name = other.name;
        no = other.no;
        chenji = other.chenji;
        chenji2 = other.chenji2;
    }
    void show()
    {
        cout << "平均分:"<< ((chenji+chenji2)/2);
        cout<< name << no << chenji << chenji2;
    }
    string name;
    int no;
    int chenji, chenji2;
};
int main()
{
    Stu s1, s2;
    s1.name = "xiaoming";
    s1.no = 1;
    s1.chenji =  70;
    s1.chenji2 = 90;
    s2 = s1;
    s2.show();
    return 0;
}

本回答被网友采纳

用c++编写一个学生类。输出每个学生的姓名、学号、成绩
cout << "成绩:" << ends << score << endl;}int main(){ Student stu("小明", 19, 97); stu.display(); system("pause"); return 0;}

用C++编写程序,计算输入一批学生成绩,姓名,学号成绩对应,列出所有成绩...
\/\/用结构体做#includeusingnamespacestd;#includestructStudent{stringname;intID;intscore;}stu[10];intmain(){intn=10;inti;for(i=0;i>stu[i].name;cout>stu[i].ID;cout>stu[i].score;}cout<<"不及格的同学有:\\n";cout<<"名字\\t学号\\t成绩\\n";for(i=0;i<10;++i)if(stu[i]...

C++编写程序:定义Student类保存学生信息(包括学号、姓名和成绩),重载...
out<<"姓名:"<<s.name<<",学号:"<<s.id<<",成绩¨:"<

用C++编写一个程序 : 输入10个学生的姓名、学号和成绩,将其中不及格...
}stt[n];void main(){ printf("学号\\t姓名\\t成绩\\n");for(int i=0;i<n;i++){ scanf("%d %s %f",&stt[i].num ,stt[i].name ,&stt[i].score );} \/\/用C++编写一个程序 : 输入10个学生的姓名、学号和成绩,将其中不及格的姓名、学号和成绩输出 printf("不及格学员的名单如...

用C++定义一个学生类 输出学号 姓名 并对成绩赋值
int num,score,name;public:void setdata(){ cin>>score;} void displaydata(){ cout<<"name: "<<name<<endl;cout<<"num: "<<num<<endl;cout<<"score: "<<score<<endl;};};Student stu;void main(){ cout<<"当前学生信息为:"<<endl;stu.displaydata();cout<<"请您输入学生成绩:...

c++编写程序录入学生成绩并且求各科平均分和每科最高分
回答:同学,你这是问题吗?

C++ 输出两个学生的学号,姓名和总分,这题怎么做?
int Number; \/\/学生学号 string Name; \/\/学生姓名 int Total_Grade; \/\/学生总分 };int main(){ Student *p,*q; \/\/定义指向Student类的数据指针变量,也就是实例化了两个学生,p是第一个 \/\/学生,q是第二个学生 p=new Student;p->Number=1001;p->Name= "ZhangSan"; ...

c++设计一个学生类Cstudent,该类包括学生学号、姓名以及数学、英语、c...
void print(struct student *);void input(struct student *);struct student{int num;char name[20];int score[3];}stu[10];struct student *p;void main(){p = stu;input(p);print(p);system("pause");}void input(struct student *p){int i = 0, j;for(p = stu; p < stu + ...

用c++编写一个程序,要求创建一个类,输入若干个学生的数据,包括学号,姓名...
Student s[], int);}stu[MAX];void Student::input(Student s[], int n){for (int i = 0; i < n; i++){cout << "输入第" << i + 1 << "个学生的学号:";cin >> s[i].num;cout << "输入第" << i + 1 << "个学生的姓名:";cin >> s[i].name;s[i]...

c++编程《学生期末成绩及平均分最高最低分计算》
cout <<"请输入"<<studentNum<<"个" <<"学生资料:" <<endl;cout <<"格式为:姓名 学号 成绩1 成绩2 成绩3 总分" <<endl;for(i=0;i<studentNum;i++){ cin >>name[i] >>id[i];sum=0;for(j=0;j<4;j++){ cin >>score[i][j];} for(j=0;j<3;j++){ sum+=score[i]...

相似回答