编写一个程序,声明一个点类Point,实现点的偏移,==,!其中各个成员函数就是实现这种转换并完成相应的矩阵运算功能。程序的执行结果如下:A矩阵:123456B矩阵:123456C矩阵:142536A+B矩阵:2468 10 12A-B矩阵:000000A*C矩阵:14 3232 77虽然这种转换比较复杂,但解决了矩阵运算通用性问题。......
2023-11-07
【例6.16】设计一个大学生、中学生和教师管理程序。教师包括编号、姓名、职称和教研室数据的输入/输出;大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入/输出并计算平均分;中学生包括编号、姓名、性别、班号、英语、数学和语文三门课程成绩的输入/输出并计算平均分。
解:为此,设计一个Person类,它包括编号和姓名的输入/输出,从它派生一个Teacher类,用于满足教师数据的操作。再从它派生一个Student类,增加性别和班号的输入/输出,然后从Student类派生出大学生类unStudent和中学生类miStudent,分别实现大中学生数据的操作。这些类的继承关系即类层次如图6.17示。
图6.17 类层次图
程序如下:
本例程序的一次执行结果如下:
输入一个教师数据:
编号:01↙
姓名:王兰↙
职称:副教授↙
教研室:计算机软件↙
输入一个大学生数据:
编号:101↙
姓名:张红兵↙
性别:男↙
班号:2017101↙
英语:82↙
高等数学:90↙
数据结构:83↙
输入一个中学生数据:
编号:201↙
姓名:李英↙
性别:女↙
班号:高三(2)↙
英语:92↙
数学:88↙
语文:90↙
输出一个教师数据:
编号:01
姓名:王兰
职称:副教授
教研室:计算机软件
输出一个大学生数据:
编号:101
姓名:张红兵(www.chuimin.cn)
性别:男
班号:2017101
英语:82
高等数学:90
数据结构:83
平均分:85
输出一个中学生数据:
编号:201
姓名:李英
性别:女
班号:高三(2)
英语:92
数学:88
语文:90
平均分:90
【例6.17】设计一个圆类Circle和一个桌子类Table,另设计一个圆桌类RoundTable,它是从前两个类派生的,要求输出一个圆桌的高度、桌面半径、面积和颜色等数据。
解:Circle类包含私有数据成员radius,求半径的成员函数getradius()和求圆面积的成员函数getarea();Table类包含私有数据成员height和求高度的成员函数getheight();RoundTable类继承所有上述类的数据成员和成员函数,并增加了私有数据成员color和相应的成员函数,其类层次图如图6.18所示。
图6.18 类层次图
程序如下:
本程序的执行结果如下:
圆桌属性数据:
高度:0.6米
桌面半径:0.5米
面积:0.785平方米
颜色:白色
【例6.18】设计一个虚基类Person,包含姓名和年龄私有数据成员以及相关的成员函数,由它派生出领导类Leader,包含职务和部门私有数据成员以及相关的成员函数,再由Person派生出工程师类Engineer,包含职称和专业私有数据成员以及相关的成员函数,然后由Leader和Engineer类派生出主任工程师类Chairman。要求采用构造函数进行初始化工作,并用一些数据进行测试。
解:由于Chairman类从Leader类和Engineer类派生,而Leader类和Engineer类都是从Person派生的,所以为了使Person只存一个副本,必须采用虚拟派生的方法,类层次图如图6.19所示。
图6.19 类层次图
程序如下:
本程序的执行结果如下:
刘明,年龄35岁,担任设计处副处长
高级工程师,从事电气设计专业
有关C++程序设计基础教程的文章
编写一个程序,声明一个点类Point,实现点的偏移,==,!其中各个成员函数就是实现这种转换并完成相应的矩阵运算功能。程序的执行结果如下:A矩阵:123456B矩阵:123456C矩阵:142536A+B矩阵:2468 10 12A-B矩阵:000000A*C矩阵:14 3232 77虽然这种转换比较复杂,但解决了矩阵运算通用性问题。......
2023-11-07
类是一种用户自定义的数据类型,定义一个类,就是描述类名及其成员。“类名”是一个标识符,用于唯一标识一个类。分析以下声明MyClass类的组成。该类的描述如图2.1所示,其中大圆圈中列出的函数名均为公有函数名,小圆圈中列出的是所有数据成员。图2.1MyClass类描述注意:因为类是一种数据类型,在声明一个类时系统并不会为其分配内存空间,所以在定义类中的数据成员时,不能对其进行初始化。......
2023-11-07
图6.1汽车层次关系图这个分类树反映了交通工具的继承与派生关系,最高层是抽象程度最高的,最具有普遍和一般意义的概念,下层具有了上层的特性,同时加入了自己的新特征,而最下层是最为具体的。在面向对象的程序设计中,类型表示为类,类与类之间通过继承关系组成的层次结构称为类层次。被继承的类称为基类、父类或超类,新的类为派生类或子类。......
2023-11-07
程序设计是指设计、编写和调试程序的方法与过程。由于程序是软件的本体,因此软件的质量主要通过程序的质量体现,因此,研究一种切实可行的程序设计方法至关重要。继承是面向对象程序设计方法的一个重要标志,利用继承机制可以大大提高程序的可重用性和可扩充性。......
2023-11-07
本节采用类模板设计几个通用的数据结构,这种类属程序设计方法不仅提高了程序的可靠性,而且大大提高了程序设计效率。抽象数据类型线性表的定义如下:设计满足上述定义的List
2023-11-07
一个统一的公共接口必须经过精心的分析和设计。将这些函数作为基类的虚函数,它们定义了一个统一公共接口。利用虚函数,可在基类和派生类中使用相同的函数名定义函数的不同实现,从而实现“一个接口,多种方式”。设计一个公共基类Container为抽象类(界面),Container类中声明求表面积和体积的纯虚函数。由Container抽象类派生出三个类即Cube、Sphere和Cylinder,在这三个类中都具有求表面积和体积的重定义版本。......
2023-11-07
C++支持三种格式的循环控制语句:while、do和for语句。图1.3while语句的执行过程编写一个程序,将用户输入的整数反向显示出来。解:程序如下:3.for语句for语句通常用于预先知道循环次数的情况,其一般形式为:for语句;其中,“初始化语句”可以是一个定义语句或表达式语句,一般用于对一组变量进行初始化或赋值。“表达式2”在每次循环执行完成后执行,一般用于改变控制循环的变量。......
2023-11-07
C++语言的ISO标准已在1997年11月被一致通过,1998年8月被正式批准。在C++中,结构可作为一种特殊的类,它虽然可以包含函数,但是它没有私有或保护的成员。友元打破了类的封装性,它是C++另一个面向对象的重要特性。C++支持继承性C++中可以允许单继承和多继承。......
2023-11-07
相关推荐