从项目2和项目3中选1题作为实验、剩下2题写成作业。

【项目1 - 龙三】

请在以下程序的横线处填上适当内容,以使程序完整,并使程序的输出为:
Name: 龙三

Grade: 19

#include <iostream>
#include <string>
using namespace std;
class Person{
public:
    Person(string s){
        name=s;
    }
    void display( ){
        cout<<"Name: "<<name<<endl;
    }
private:
    string name;
};
class Student: ___________//(1)
{
public:
    Student(string s, int g):__________ // (2)參考教材P169加底纹部分
    {grade=g;}
    void display1( ) {
        _________;   //  (3)
        cout<<"Grade: "<<grade<<endl;
    }
private:
    int grade;
};
int main( )
{
    Student s("龙三",19);
    ___________;       //  (4)
    return 0;
}
【项目2 - 学生类】
class Stu   //声明基类
{
public:
    Stu(int n, string nam );  //基类构造函数
    void display( );          //成员函数。输出基类数据成员
protected:        //(*)訪问权限为保护型的数据成员
    int num;      //学生学号
    string name;  //学生姓名
};
class StuDetail: public Stu              //声明派生类StuDetail
{
public:
    //学生nam,学号n,a岁。家住ad,他的班长是nam1,学号n1
    StuDetail(int n, string nam,int a, string ad,int n1, string nam1); //派生类构造函数
    void show( ); //成员函数。输出学生的信息
    void show_monitor( );    //成员函数,输出班长信息
private:
    Stu monitor;   //学生所在班的班长,班长是学生,是Stu类的成员
    int age;       //学生年龄
    string addr;   //学生的住址
};
int main( )
{
    //学生张三,10010号,19岁,家住江西南昌。他的班长是李四。学号10001
    StuDetail s(10010,"张三",19,"江西南昌",10001,"李四");
    s.show( );                       //输出学生信息
    s.show_monitor();                //输出班长信息
    return 0;
}
上面是声明好的类及測试函数,请完毕类中成员函数的定义。使执行结果如图所看到的。

项目3 - 职员薪水】
   定义一个名为CPerson的类,有下面私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、输出信息的函数。

并在此基础上派生出CEmployee类。派生类CEmployee添加了两个新的数据成员,分别用于表示部门和薪水。

要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数。并为派生类CEmployee定义输出信息的函数。

class CPerson
{
protected:
    string m_szName;
    string m_szId;
    int m_nSex;//0:女,1:男
    int m_nAge;
public:
    CPerson(string name,string id,int sex,int age);
    void Show1();
};

class CEmployee:public CPerson
{
private:
    string m_szDepartment;
    double m_Salary;
public:
    CEmployee(string name,string id,int sex,int age,string department,double salary);
    void Show2();
};

int main()
{
    string name,id,department;
    int sex,age;
    double salary;
    cout<<"请输入雇员的姓名,ID,性别(0:女,1:男),年龄,部门,薪水:\n";
    cin>>name>>id>>sex>>age>>department>>salary;
    CEmployee employee1(name,id,sex,age,department,salary);
    employee1.Show2();
    return 0;
}