weixin_56918837 2021-05-26 15:27 采纳率: 50%
浏览 46
已采纳

给出代码,能运行就行

(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 "<

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2021-05-26 16:06
    关注

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

    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能