C++程序设计实践题1

(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();

}

时间: 2024-08-29 18:40:57

C++程序设计实践题1的相关文章

POJ C++程序设计 编程题#10:输出指定结果二

编程题#10:输出指定结果二 来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 总时间限制: 1000ms 内存限制: 1024kB 描述 通过填空使得程序输出的结果符合下面的要求. #include <iostream> #include <map> using namespace std; // 在此处补充你的代码 int A::count = 0; void func(B b) { } int mai

POJ C++程序设计 编程题#4 字符串操作

编程题#4: 字符串操作 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 给定n个字符串(从1开始编号),每个字符串中的字符位置从0开始编号,长度为1-500,现有如下若干操作: copy N X L:取出第N个字符串第X个字符开始的长度为L的字符串. add S1 S2:判断S1,S2是否为0-99999之间的整数,若是则将其转化为整数做加法,若不是,则作字符串加法,返回

POJ C++程序设计 编程题#3 Set 编程作业—STL2

编程题#3:Set 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 5000ms 内存限制: 100000kB 描述 现有一整数集(允许有重复元素),初始为空.我们定义如下操作: add x 把x加入集合 del x 把集合中所有与x相等的元素删除 ask x 对集合中元素x的情况询问 对每种操作,我们要求进行如下输出. add 输出操作后集合中x的个数 del 输出操作前集合中x的个数 ask 先输出0或1表示x是否曾

程序设计实践C++ 程序代写(QQ 928900200)

程序设计实践 采用C++作为编程语言. 设计开发一个"学生信息"管理系统.该系统模拟数据库管理系统(DBMS)的功能,为用户提供数据存储.查找的能力. 该系统存储的学生信息包括: 学号.姓名.性别.语文成绩.数学成绩 如:1001.张三.男.80.90 系统支持用户通过输入命令,实现与系统的交互.系统支持的命令包括: 1)新增数据命令:向系统中新增数据.命令语法格式如下: ADD(数据) ---其中,ADD为命令名: ---括号中,"数据"为用户输入的新数据,包含描

《程序设计实践》【PDF】下载

内容简介 本书从排错.测试.性能.可移植性.设计.界面.风格和记法等方面,讨论了程序设计中实际的.又是非常深刻和具有广泛意义的思想.技术和方法,它的翻译出版将填补国内目前这方面书籍的空白. 本书值得每个梦想并努力使自己成为优秀程序员的人参考,值得每个计算机专业的学生和计算机工作者阅读,也可作为程序设计高级课程的教材或参考书. 目录 第1章 风格 第2章 算法与数据结构 第3章 设计与实现 第4章 界面 第5章 排错 第6章 测试 第7章 性能 第8章 可移植性 第9章 记法 附录 规则汇编 后记

c++面向对象程序设计 课后题 答案 谭浩强 第四章

c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} double get_real(); double get_imag(); void display(); private: double real; double imag;

C程序设计实践教学提示

实践教学要点:实验重心应放在实验室之外,重在实验准备 对实验题目的分析是一个复杂的工作,很发时间的,如全部放在实验上机时来完成,是不现实的.(特别是后面实验的难度增大,或实验代码增多的情况下),而且,这也是一个好的习惯(先编好程序再来调试,上机就是调试) 1.  实验教学要求 1) 实验前工作: 对与实验相对应的章节进行针对性复习 写好实验预习报告(使用正规实验报告纸),包括每次实验题目.实验目的.实验要求.实验内容(附加题可不做).实验步骤(即程序代码+注释)       2)实验中工作:  

C语言程序设计做题笔记之C语言基础知识(上)

C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎所以的任务,包括会计应用程序.字处理程序.游戏.操作系统等.它不仅是更高级语言(如C++)的基础,目前还以Objective C的形式开发手机应用程序.目前,C语言最新版本由ISO/IEC 9899:2011 文档定义.           数据结构+算法=程序 1.1 C程序和程序设计 (1)以下

C语言程序设计做题笔记之C语言基础知识(下)

C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的几乎所以的任务,包括会计应用程序.字处理程序.游戏.操作系统等.它不仅是更高级语言(如C++) 的基础,目前还以Objective C的形式开发手机应用程序.目前,C语言最新版本由ISO/IEC 9899:2011 文档定义.           数据结构+算法=程序 1.1 C程序和程序设计 (1