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

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

一、面向对象课程设计作品(基于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

相关文章
面向对象程序设计第七章:继承与派生
面向对象程序设计第七章:继承与派生
159 0
面向对象程序设计第七章:继承与派生
|
9月前
掌握面向对象程序设计继承和派生机制的概念
掌握面向对象程序设计继承和派生机制的概念
59 0
|
安全 Java 编译器
第五章 继承
类,超类和子类 super和this看似有相似的概念, 但实际没有可比性,this持有对象本身的引用, 可以赋值给另一个变量,super则不具备这样的功能, 它只是一个指示编译器调用超类方法的关键字 调用super()构造器的语句必须是子类构造器的第一条语句 Object: 所有类的超类 判断两个对象是否相等可以使用Objects.
1074 0
《面向对象的思考过程(原书第4版)》一1.9 继承
面向对象程序设计的最强大的功能之一就是代码重用。结构化设计提供的代码重用非常受限。你可以编写一个功能块,然后多次重用它。但是面向对象的设计更进一步,允许你定义类之间的关系,通过组织和识别不同类之间的共性,不仅可以实现代码重用,也可以指导设计。继承是实现该功能的主要手段。
1267 0
|
索引
面向对象实验(七)——多态性2
面向对象实验(七)——多态性2
89 0
面向对象程序设计第六章:继承
面向对象程序设计第六章:继承
136 0
|
存储 C语言 C++
面向对象实验 ——(二)类与对象
面向对象实验 ——(二)类与对象
114 0
面向对象实验 ——(二)类与对象
|
9月前
|
Java
Java面向对象编程,解释封装、继承和多态的概念。
Java面向对象编程,解释封装、继承和多态的概念。
93 2
|
7月前
|
存储 编译器 C语言
【C++基础 】类和对象(上)
【C++基础 】类和对象(上)

热门文章

最新文章