zoukankan      html  css  js  c++  java
  • C++第4次实验(提高班)—继承和派生1

    从项目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:男),年龄,部门,薪水:
    ";
        cin>>name>>id>>sex>>age>>department>>salary;
        CEmployee employee1(name,id,sex,age,department,salary);
        employee1.Show2();
        return 0;
    }


  • 相关阅读:
    sqlserver sql优化案例及思路
    mysql执行计划常用说明
    MYSQL 的rownum
    innodb crash
    spring-mybatis源码追踪
    mylyn提交到JIRA的日期格式错误
    [google面试CTCI] 2-1.移除链表中重复元素
    [google面试CTCI] 2-0.链表的创建
    [google面试CTCI] 1-8.判断子字符串
    [google面试CTCI] 1-7.将矩阵中特定行、列置0
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7265061.html
Copyright © 2011-2022 走看看