给出代码,能运行就行

(1)编写一个学生和教师相关数据输入和显示程序。设计三个类 person, student 和 teacher 类,其中 student 和 teacher 是由 person 类派生出来的。学生(student)数据有学号、姓名、性别、年龄、班级号和期末三门功课总分;教师(teacher)数据有职工号、姓名、性别、年龄、职称和系别。在主程序中,定义两个学生和两个教师,从键盘输入他们相关的数据,并将输入数据输出显示在屏幕上。(提示:person 类有两个公有成员函数:void input();输入学生或教师的姓名、性别和年龄;显示输出函数 void display();显示学生和教师的姓名、性别和年龄。该类中有三个私有数据成员:姓名 char name[20]、性别和年龄。Person 类定义已经给出,请设计其他两个类和主函数。 class Person { char name[20]; char gender; int age; public: Person() {} Person(char* Name,char Gender,char Age) { cout<<"Constructing "<

代码如下,如有帮助,请采纳一下,谢谢。

#include <iostream>
using namespace std;

class Person 
{
	char name[20]; 
	char gender; 
	int age; 
public: 
	Person(){memset(name,0,20);gender = 'f';age = 0;}
	Person(char* Name,char Gender,char Age) 
	{
		cout<<"Constructing "<<endl;
		memset(name,0,20);
		memcpy(name,Name,strlen(Name)<20?strlen(Name):20);
		gender = Gender;
		age = Age;
	}
	//输入学生或教师的姓名、性别和年龄;显示输出函数 
	void input()
	{
		cout << "请输入姓名、性别和年龄:" ;
		cin >> name;
		cin >> gender;
		cin >> age;
	}
	//显示
	void display()
	{
		cout << "姓名:" << name <<";性别:" << gender << ";年龄:" << age << endl;
	}

};

class student :public Person
{
	int xuehao;   //学号
	char name[20]; 
	char gender; 
	int age; 
	int banji;    //班级号
	float score;  //总分
public:
	student(int xh,char* nm,char gend,int ag,int bj,float sc):Person(nm,gend,ag)
	{
		xuehao = xh;
		banji = bj;
		score = sc;
		memset(name,0,20);
		memcpy(name,nm,strlen(nm)<20?strlen(nm):20);
		gender = gend;
		age = ag;
	}
	void displayStudent()
	{
		cout << "学号:" << xuehao << " ;";
		cout << "姓名:" << name <<";性别:" << gender << ";年龄:" << age ;
		cout << ";班级号:" << banji << "总分:" << score << endl;
	}
};

class teacher :public Person
{
	int zhigonghao;  //职工号
	char name[20]; 
	char gender; 
	int age; 
	char zhicheng[20];//职称
	char xibie[20];   //系别
public:
	teacher(int id,char* nm,char gend,int ag,char* p,char* xb):Person(nm,gend,ag)
	{
		zhigonghao = id;
		memset(zhicheng,0,20);
		memcpy(zhicheng,p,strlen(p)>20?20:strlen(p));
		memset(xibie,0,20);
		memcpy(xibie,xb,strlen(xb)>20?20:strlen(xb));
		memset(name,0,20);
		memcpy(name,nm,strlen(nm)<20?strlen(nm):20);
		gender = gend;
		age = ag;
	}
	void displayTeacher()
	{
		cout << "职工号:" << zhigonghao << ";";
		cout << "姓名:" << name <<";性别:" << gender << ";年龄:" << age ;
		cout <<";职称:" << zhicheng << ";系别:" << xibie << endl;
	}
};


int main()
{
	student stu(123,"张三",'m',22,2,89.2);
	teacher tea(111,"李老师",'f',44,"教授","物理系");

	stu.display();
	stu.displayStudent();
	tea.display();
	tea.displayTeacher();
	//getchar();
	//getchar();
	return 0;
}

 

#include<iostream.h>
#include<string.h>
class person {
	private:
		char name[50];
	public:
		person(char *name1 ) {
			strcpy(name,mame1);
		}
		void Print() {
			cout<<"name:"<< name<<endl;
		}
};
class student:public person {
	private:
		int num;
	public:
		student(char *name1,int num1):person(name) {
			num=num1;
		}
		void Print() {
			person::print();
			cout<<"number:"<<number<<endl;
		}
};
class teacher:public person {
	private:
		char title[50];
	public:
		student(char *name1,char *title1):person(name) {
			strcpy(title,title1);
		}
		void Print() {
			person::print();
			cout<<"title:"<<endl;
		}
};
class S_teacher: public student teacher {
	public:
		S_teacher(char *name int num1 char *title ):person(name) student(num) teacher(title)
			viod print() {
			person::print();
			student::print();
			teacher::print();
		}
};

代码大致如上,万望采纳。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632