第十一周项目-1.2

//将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。

#include<iostream>

#include<string>

using namespace std;

class Stu   //声明基类

{

public:

Stu(int n, string nam);  //基类构造函数

void display();          //成员函数,输出基类数据成员

private:        //(*)访问权限为保护型的数据成员

int num;      //学生学号

string name;  //学生姓名

};

Stu::Stu(int n, string nam) /*:num(n), name(nam){}*/

{

num = n;

name = nam;

}

void Stu::display()

{

cout << "学号: " << num << endl;

cout << "姓名: " << name << endl;

}

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;   //学生的住址

};

StuDetail::StuDetail(int n, string nam, int a, string ad, int n1, string nam1) :Stu(n, nam), monitor(n1, nam1), age(a), addr(ad){}

void StuDetail::show()

{

cout << "学生信息:" << endl;

display();            //输出num和name

cout << "年龄: " << age << endl;            //输出age

cout << "住址: " << addr << endl << endl;     //输出addr

}

void StuDetail::show_monitor()                        //成员函数,输出子对象

{

cout << "班长信息:" << endl;

monitor.display();                       //调用基类成员函数

}

int main()

{

//学生王力,10010号,19岁,家住上海的北京路,他的班长是李孙,学号10001

StuDetail s(10010, "Wang-li", 19, "115 Beijing Road,Shanghai", 10001, "Li-sun");

s.show();                       //输出学生信息

s.show_monitor();                //输出班长信息

getchar();

return 0;

}

时间: 2024-08-23 20:19:22

第十一周项目-1.2的相关文章

第十一周项目1

#include <iostream> using namespace std; class Stu { public: Stu (int n,string nam); void display(); protected: int num; //学号 string name; //姓名 }; Stu::Stu(int n,string nam ) { num=n; name=nam; } void Stu::display() { cout<<"学号:"<

十一周 项目三 点类

#include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0),y(y0){}; void PrintPoint(); //输出点的信息 double getx() { return x; } double gety() { return y; } protect

十一周 项目2 职员有薪水了 扩展

#include <iostream> #include <cstring> using namespace std; class CPerson { protected: char *m_szName; char *m_szId; int m_nSex;//0:women,1:man int m_nAge; public: CPerson(char *name,char *id,int sex,int age); void Show1(); ~CPerson(); }; CPer

十一周 项目2 职员有薪水了

#include <iostream> using namespace std; class CPerson { protected: string m_szName; string m_szId; int m_nSex;//0:women,1:man int m_nAge; public: CPerson(string name,string id,int sex,int age); void Show1(); ~CPerson(); }; CPerson::CPerson(string n

十一周 项目4 类族的设计

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double x=0,double y=0); void setPoint(double,double); double getx() { return x; } double gety() { return y; } void display(); protected: double x,y; }; class

十一周 项目4 类族的设计 完整版

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double x=0,double y=0); void setPoint(double,double); double getx() { return x; } double gety() { return y; } void display(); protected: double x,y; }; Point

第十一周 项目四 类族的设计】

项目4 - 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类

第十一周 项目3 - 点类派生直线类】定义点类Point,并以点类为基类,继承关系

项目3 - 点类派生直线类]定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. [cpp] view plaincopyprint? #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double 

第十一周 项目四

[项目4 - 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2015年5月31日 *版 本 号:v1.0 */ #inclu

第十一周项目三-点类派生直线类

[项目3 - 点类派生直线类]定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #include<iostream> #include<Cmath> using namespace std; class Point //定义坐标点类 { public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; void