C++类的设计与实现II--学生留校做老师

【问题描述】定义一个教师类(Teacher),包含数据成员:编号id、姓名name、性别sex和工资pay;定义一个学生类(Student),包含数据成员:编号id、姓名name、性别sex和成绩score。请根据主程序完成两个类的实现,并把一个学生对象转换为老师对象,只将以上三个相同的数据成员移植过去。

主函数代码如下:

int main()
{
Teacher teacher1(10001,“Li”,‘f’,1234.5),teacher2;
Student student1(20010,“Wang”,‘m’,89.5);
cout<<“student1:”<<endl;
student1.display();
teacher2=Teacher(student1);
cout<<“teacher2:”<<endl;
teacher2.display();
return 0;
}
【输入说明】无输入

【输出样例】

student1:
num:20010
name:Wang
sex:m
score:89.5

teacher2:
num:20010
name:Wang
sex:m
pay:1500
【样例说明】teacher2的工资值可任意给定。

#include <iostream>
using namespace std;
class Student;//对Student类提前声明 
class Teacher {
	public:
		Teacher() {
			id=0;
			name="0";
			sex='m';
			pay=0;
		}
		Teacher(int i,string n,char s,int p):id(i),name(n),sex(s),pay(p) {}
		void display() {
			cout<<"num:"<<id<<endl;
			cout<<"name:"<<name<<endl;
			cout<<"sex:"<<sex<<endl;
			cout<<"pay:"<<pay<<endl;
		}
		Teacher(Student &s);//以Student类引用为形参的构造函数 
	private:
		int id,pay;
		string name;
		char sex;
};
class Student {
	public:
		Student() {
			id=0;
			name="0";
			sex='m';
			score=0.0;
			pay=1500;
		}
		Student(int i,string n,char s,float sc):id(i),name(n),sex(s),score(sc) {
			pay=1500;
		}
		void display() {
			cout<<"num:"<<id<<endl;
			cout<<"name:"<<name<<endl;
			cout<<"sex:"<<sex<<endl;
			cout<<"score:"<<score<<endl;
			cout<<endl<<endl;
		}
		int get_id() {
			return id;
		}
		char get_sex() {
			return sex;
		}
		string get_name() {
			return name;
		}
	private:
		int id;
		float score;
		string name;
		char sex;
		int pay;
};
Teacher::Teacher(Student &s) {
	id=s.get_id();
	name=s.get_name();
	sex=s.get_sex();
	pay=1500;
}
int main() {
	Teacher teacher1(10001,"Li",'f',1234.5),teacher2;
	Student student1(20010,"Wang",'m',89.5);
	cout<<"student1:"<<endl;
	student1.display();
	teacher2=Teacher(student1);
	cout<<"teacher2:"<<endl;
	teacher2.display();
	return 0;
}

工资通过改构造函数中的数值进行改变

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HanWLang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值