麻烦大家帮我做下下面这道题

按照以下要求,完成程序设计:。
1)设计一个人类(Person),要求:①具有私有数据成员姓名(name)和性(sex):②具有带瑟构造函数 Person(string name, char sex):③具有显示姓名和性别的堂成员函数 Show0。2)设计一个职工类(Staff),公有继承 Person 类,要求:①增加私有数据成员工(number)、工龄(seniority)和工资(wage):②具有带参构造函数,完成对基类和派生类数据成员的初始化:③具有修改工龄和工资的成员函数 SetO:④具有显示职工信息的贫球员的数 ShowO。3)在主函数中,延义一个职下类对象,初始化姓名为John,性别为:M,工号为:18113001,工龄为:1,下资为: 8888.88,然后输出该职工的所有信息。修改该职工的工龄为:2、T实为:10000.00,再次输出该职工的所有信息。

 

#include <iostream>
#include <string>
class person{            //定义一个person类。
public:
	person(string name,string xuehao,int grade):name(name),xuehao(xuehao),grade(grade){
		count++;}//构造函数
	person(person &p){
		name=p.name;
		xuehao=p.xuehao;
		grade=p.grade;}//复制构造函数;
	~person(){count--;}//析构函数;
	void printmessage();//定义公有成员函数,目的是输出信息;
	void change();
private:
	string name;
	string xuehao;
	int grade;
	static int count;//静态成员count,用于记录对象的个数;
};
int person::count=0; //静态成员的初始化;
void person::printmessage(){  //输出函数的调用;
	cout<<"当前person中对象的数量是: "<<count<<endl;
	cout<<"姓名:"<<name;
	cout<<"    学号:"<<xuehao;
	cout<<"    面向对象编程成绩是:"<<grade<<endl;
	cout<<"------------------------输出完毕------------------------"<<endl;
	cout<<"      "<<endl;
}
void person::change(){  //此处又定义了一个函数,目的专门为了修改姓名;
	name="张三";
	cout<<"将姓名改成了"<<name;
	cout<<"      "<<endl;
}
void main(){
 person p1("赵一","100",100);
	p1.printmessage();
 person p2("孙二","1000",100);
	p2.printmessage();
	p1.change();
	p1.printmessage();
}

 

望采纳,谢谢

#include <iostream>
#include <cstring>
#include <stdlib.h>
using namespace std;
//person类定义
class Person
{
    //数据成员
protected:
char name[10];
int age;
char sex[10];
public:
    //构造函数
    Person(char pname[]="",int page=0,char psex[]="")
    {
         strcpy(name,pname);
         age=page;
         strcpy(sex,psex);
    }
    //show函数
    void show() const
    {
        cout<<"姓名:"<<name<<endl;
        cout<<"年龄:"<<age<<endl;
        cout<<"性别:"<<sex<<endl;

    }
};
//定义Teacher类
class Teacher:public Person
{
    //新增数据成员
protected:
char title[10];

public:
    //构造函数
    Teacher(char tname[]="",int tage=0,char tsex[]="",char *ttitle=""):Person(tname,tage,tsex)
    {
        strcpy(title,ttitle);
    }
    //新增show函数
    void show() const
    {
        cout<<"姓名:"<<name<<endl;
        cout<<"年龄:"<<age<<endl;
        cout<<"性别:"<<sex<<endl;
        cout<<"职称:"<<title<<endl;
    }
};
//定义Cadre类
class Cadre:public Person
{
    //新增数据成员
protected:
char post[20];
int wages;
public:
    //构造函数
    Cadre(char cname[]="",int cage=0,char csex[]="",char *cpost="",int cwages=0):Person(cname,cage,csex)
    {
        strcpy(post,cpost);
        wages=cwages;
    }
    //新增show函数
    void show() const
    {
        cout<<"姓名:"<<name<<endl;
        cout<<"年龄:"<<age<<endl;
        cout<<"性别:"<<sex<<endl;
        cout<<"职务:"<<post<<endl;
        cout<<"工资:"<<wages<<endl;
    }
};
int main()
{
    Teacher t("王五",35,"男","副教授");
    Cadre c("张姗",27,"女","计算机教师",5000);
    t.show();
    c.show();
    return 0;
}

对这这个例子修改

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

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

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