(1)、定义一个人员类Person,包括成员变量:编号、姓名、性别和用于输入input、输出output的成员函数;

(2)、在此基础上派生出学生类Student(增加一个成员变量:成绩)和教师类Teacher(增加一个成员变量:教龄);

(3)、学生类和教师类分别有输入input、输出output的成员函数;

在人员类中加入对+符号的重载,使其达到以下目的:

(4)两个人员类进行相加,其结果仍然是一个人员类,并分别对编号、姓名、性别进行字符串相加。

(5)、加入main函数,对上述定义进行测试。

C++ Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

#include <iostream>
#include <string>
using namespace std;
//定义类
class Person
{
protected:
    string Number;
    string Name;
    string Gender;
public:
    //构造函数
    Person()
    {

}
    //构造函数
    Person(string nu,string na,string ge)
    {
        this->Number=nu;
        this->Name=na;
        this->Gender=ge;
    }
    //输入函数
    void input()
    {
        cin >> this->Name;
        cin >> this->Number;
        cin >> this->Gender;
    }
    //输出函数
    void output()
    {
        cout << "编号:" << this->Number << endl;
        cout << "姓名:" << this->Name << endl;
        cout << "性别:" << this->Gender << endl; 
    }
    //运算符重载
    Person operator+(Person p)
    {
        Person newPerson;
        newPerson.Number = this->Number + p.Number;
        newPerson.Name = this->Name + p.Name;
        newPerson.Gender = this->Gender + p.Gender;
        return newPerson;
    }
};
//学生类
class Student :public Person
{
private:
    float results;
public:
    //构造函数
    Student()
    {
        this->results = 0;
    }
    //输入函数
    void input()
    {
        cout << "请输入学号,姓名,成绩:";
        Person::input();
        cin >> this->results;
    }
    //输出函数
    void output()
    {
        Person::output();
        cout << "成绩:" << results <<endl;
    }
};
//教师类
class Teacher :public Person
{
private:
    int age;
public:
    //输入函数
    void input()
    {
        cout << "请输入学号,姓名,成绩,教龄:";
        Person::input();
        cin >> this->age;
    }
    //输出函数
    void output()
    {
        Person::output();
        cout << "教龄:" << age <<endl;
    }
};
//主函数
void main()
{
    //基类
    Person p1("A0001","张三","男"),p2("A002","李四","女"),p3;
    p1.output();
    //运算符重载
    p3 = p1 + p2;
    p3.output();
    //学生类
    Student s1;
    s1.input();
    s1.output();
    //教师类
    //Teacher t1;
    //t1.input();
    //t1.output();

}

转载于:https://blog.51cto.com/alipay/1694922

C++程序设计实践题1相关推荐

  1. C语言程序设计实践题,2020年C语言程序设计实践实验题目.doc

    C语言程序设计实践实验题目 绥化学院程序设计实践实验报告范例 参考 实验题目循环结构程序设计 实验目的 熟悉VC++的运行环境,掌握C程序的执行方法: 掌握三种基本数据类型.部分运算符号和常用函数: ...

  2. 程设刷题 | 程序设计实践II-2017(部分)

    目录 1165-算术题 题目描述 代码实现 1184-Tourist 1 题目描述 代码实现 1186-Tourist 2 题目描述 代码实现 1224-LOVE 题目描述 代码实现 1256-湘潭大 ...

  3. c语言做一个小程序报告,《C语言程序设计实践》课程报告30个小程序组合成一个大程序.doc...

    北方民族大学 课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : 软件工程(2)班 学 生 姓 名 : 李思良 学 号 : 任 课 教 师 : 王晓锋 学 期 : 2015-2016学 ...

  4. python语言程序设计实践教程实验八答案_清华大学出版社-图书详情-《Java程序设计教程及实验指导》...

    前言 Java程序设计教程及实验指导Java是一门主流的面向对象的程序设计语言,是面向对象程序设计教学的主流语言.本书由有多年教学经验的专业教师编写,分为教程以及实验与课程设计两部分.教程部分从Jav ...

  5. 桂林理工大学 程序设计实践课程 实习报告

    学  号: 320205205# 桂林理工大学 GUILIN UNIVERSITY OF TECHNOLOGY    程序设计实践课程      实习报告 学      院: 信息科学与工程学院 # ...

  6. 《C++程序设计实践》实验3

    <C++程序设计实践>实验3 一.课内实验题(共10小题,100分) 题型得分 98.33 [描述] 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子.虫子每x小时能吃掉一个苹果, ...

  7. 《程序设计实践》第05练——指针Part(2/2)

    ** <程序设计实践>第05练--指针Part(2/2) 指针--字符串1 1.1. 学生模拟题:SC6_4B.cpp(本题15分) [题目描述] 将字符串中的正.负整数取出求和.如字符串 ...

  8. 《C++程序设计实践》实验4

    <C++程序设计实践>实验4 一.课内实验题(共10小题,100分) 题型得分 100 [描述] 编写程序,根据输入的字符以及棱形的边长,输出以该字符为填充字符的棱形. [输入] 输入在一 ...

  9. python语言程序设计实践教程答案实验六_Python语言程序设计实验指导与习题--详细介绍...

    上机实践是学习程序设计的重要教学环节.只有通过上机实践,才能真正理解程序设计的基本思想,正确灵活地使用语言中的各种要素,熟练掌握各种集成开发环境的应用和编写.调试程序的方法,从而获得应用程序设计解决实 ...

最新文章

  1. Ubuntu安装tomcat
  2. HTML数字比较大小游戏,Javascript 比较两个数大小并输出最大数
  3. Sun地系统架构师考试(SCEA)
  4. JavaScript中奇妙的replace
  5. 收藏!企业数据安全防护5条建议
  6. java线程画动图闪,Android中利用画图类和线程画出闪烁的心形,android心形,package com....
  7. 探地雷达(GPR)的 C-scan (三维图)的绘制
  8. kubeadm安装的Kubernetes etcd备份恢复
  9. Java NIO(十六) Files
  10. String类的两种赋值
  11. 语义slam_【语义SLAM】MIT 新开源语义VIOSLAM框架 kimera
  12. Linux宝库名人轶事栏目 | 我与中国开源软件二十年(二)
  13. 使用HTML制作静态网站(圣诞节案例)
  14. 方向导数与梯度——学习笔记
  15. matlab自带滤波器,matlab自带滤波器函数
  16. 关于惠普笔记本电脑电源已连接但显示未充电的解决办法
  17. 【浙大版《Python 程序设计》题目集(解)】第4章-9 查询水果价格(15分)
  18. 泰晤士报华科计算机排名,最新USNews中国内地高校计算机学科排名,北大第7,华科第2?...
  19. usb2.0 to sata 芯片_达摩院发布业界首款语音合成算法专用AI FPGA芯片设计Ouroboros,效率提高百倍...
  20. 康希诺生物多名高管变动:王靖内部转岗,任命罗樨为CFO

热门文章

  1. Eclipse 快捷键整理
  2. UICollectionViewController
  3. ADT版本不同导致的一个问题
  4. PostgreSQL的 initdb 源代码分析之十六
  5. caffe学习日记--lesson3:win8系统,VS2013下的caffe工程编译探究
  6. 离线安装pymysql和dbutils
  7. Linux+gcc设置断点,gcc/g++常用编译选项和gdb常用调试命令
  8. Oracle中的within,oracle中within group的用法
  9. origin9语言设置中文_《英雄联盟手游》界面翻译图 LOL手游界面设置全翻译图一览...
  10. 利用html制作通讯录_动漫制作软件哪些好用?动漫制作软件推荐