面向对象程序设计实验五:继承与派生

简介: 面向对象程序设计实验五:继承与派生

一、面向对象课程设计作品(基于MFC的仓库管理系统完整工程完整工程):

面向对象课程设计作品(完整)(也适用于软件工程大实验).7z_采用面向对象方法分析,设计和实现订货系统。-C/C++文档类资源-CSDN下载

二、实验五题目:

       分析学校管理系统、图书管理系统中具有继承关系的基类和派生类,分别给出定义并在主函数中调用测试。要求:

1.基类具有基本的数据成员,派生类扩展相关数据成员。

2.基类具有基本的成员函数,派生类扩展相关成员函数。

3.基类和派生类均具有构造函数和深拷贝构造函数。

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;//蓝多多作业
class essential   //定义一个学校管理系统的学生基本信息的基类
{
private://类的成员
  string number;//学号
  string name;//姓名
  string major;//专业
  int sex;//性别 男生0 女生1
public:
  essential()//无参的构造函数
  {
    name = number = major = "0"; sex = 0;
  }
  essential(string a, string b, string c, int d)//有参的构造函数
  {
    number = a; name = b; major = c; sex = d;
  }
  ~essential()//析构函数
  {}
  essential(const essential &p)//深拷贝构造函数
  {
    number = p.number; name = p.name; major = p.major; sex = p.sex;
  }
  void print();
  void output(essential a[]);
};
class Library : public essential//定义一个图书馆系统的派生类
{
private:
  string date; string book;
public:
  ~Library() {}
  Library(string a, string b, string c, int d,
    string date1, string book1) :essential(a, b, c, d)//派生类的有参构造函数
  {
    date = date1; book = book1;
  }
  Library(const Library &a)//派生类的深拷贝构造函数
  {
    this->date = a.date; this->book = a.book;
  }
  Library() {}
  void display()
  {
    print();
    cout <<"{date :"<<setw(10)<<this->date <<setw(20);
    cout <<"book :"<<setw(20)<<this->book <<"}"<< endl;
  }
  void putout(Library c[]);
};
int main()
{
  {essential b[2] =
  {
  essential("049999901","dyy","chemistry",0),essential("029999938","dxn","computer",1)
  };
  Library a[2] =
  {
  Library("049999901","dyy","chemistry",0,"2018.5.6","Life without limit"),Library("029999938",
  "dxn","computer",1,"2018.3.5","Cherish life Time")
  };
  essential ob;
  ob.output(b);
  cout << endl;
  Library on;
  on.putout(a);
  }
  system("pause");
  return 0;
}
void essential::print()//定义一个输出函数 使用this指针
{
  cout << this->number << setw(8);
  cout << this->name << setw(11);
  cout << this->major << setw(8);
  cout << this->sex;
  cout << endl;
}
void essential::output(essential a[])//定义一个输出函数
{
  cout << setw(9) << "number" << setw(9) << "name" << setw(9) << "major"
    << setw(9) << "sex" << endl;//输出表头
  for (int i = 0; i < 2; i++)
    a[i].print();//用for循环输出学生基础信息
}
void Library::putout(Library c[])//定义一个输出函数
{
  cout << setw(9) << "number" << setw(9) << "name" << setw(9) << "major"
    << setw(9) << "sex" << endl;//输出表头
  for (int i = 0; i < 2; i++)
    c[i].display();
}

image.gif

相关文章
|
7月前
|
Python
面向对象详解,面向对象的三大特征:封装、继承、多态-1
面向对象详解,面向对象的三大特征:封装、继承、多态
|
7月前
|
Python 容器
面向对象详解,面向对象的三大特征:封装、继承、多态-2
面向对象详解,面向对象的三大特征:封装、继承、多态
|
7月前
|
安全
面向对象特征(抽象、封装、继承、多态)的具体用法
面向对象特征(抽象、封装、继承、多态)的具体用法
28 0
|
8月前
|
Java
Java面向对象编程,解释封装、继承和多态的概念。
Java面向对象编程,解释封装、继承和多态的概念。
83 2
|
8月前
掌握面向对象程序设计继承和派生机制的概念
掌握面向对象程序设计继承和派生机制的概念
53 0
|
存储 算法 编译器
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
面向对象程序设计第七章:继承与派生
面向对象程序设计第七章:继承与派生
152 0
面向对象程序设计第七章:继承与派生
面向对象程序设计第六章:继承
面向对象程序设计第六章:继承
129 0
|
存储 C语言 C++
面向对象实验 ——(二)类与对象
面向对象实验 ——(二)类与对象
106 0
面向对象实验 ——(二)类与对象
|
编译器
面向对象——继承与派生
面向对象——继承与派生
182 0
面向对象——继承与派生