private:
intnum;
floatscore;};
intmain()
{
studentstd(101,78.5);
stud.display();
stud.change(101,80.5);
stud.display();
return0;
}
2.声明一个Circle类,有
1)数据成员Radius(半径)
2)成员函数GetArea()计算圆的面积
3)构造函数Circle(floatradius)进行初始化
4)析构函数
在主函数中创建一个Circle类的对象进行测试(输入一个数值,作为Circle类对象的半径,调用该对象的GetArea()求以该数值为半径的圆的面积)。
3.声明一个tree类,有
1)数据成员ages(树龄)
2)成员函数grow(intyears)对ages加上years
3)成员函数age()显示对象的数据成员ages的值
4)构造函数tree(intn=0)进行初始化
5)析构函数
在主函数中创建一个tree类的对象进行测试(创建一个树龄为18的对象,调用age()显示树龄,之后调用grow(4),生长4年,再显示树龄)。
4.改正以下程序中的错误,并分析错误原因。
提示:
该程序中point类的构造函数定义不正确,在main()中对数据成员的访问不正确。
要求修改程序后,在主函数中创建一个对象并初始化为坐标(5,5),然后输出这个点的X,Y坐标。
5.声明一个名为Rectangle的矩形类,其属性为矩形的左下角和右上角两点的坐标,并有成员函数计算矩形的周长及面积。
编程实现求左下角与右上角坐标分别为(2.1,3.2),(5.2,6.3)的矩形周长及面积。
6.人员信息管理系统:
以一个小型公司的人员管理为例,说明类及成员函数的设计。
提示:
1)类的设计:
某小型公司,需要存储雇员的编号、级别、月薪,并显示全部信息。
根据这些需求,设计一个类employee,在该类中,包括的数据成员有:
编号(intindividualEmpNo)
级别(intgrade)
月薪(floataccumPay)
成员函数有:
设置编号(voidsetEmpNo(intsteps)):
编号顺序加1(利用静态变量实现)
提取编号(voidgetEmpNo)
晋升级别(voidpromote(intincrement)):
提升的级别由参数指定
提取级别(intgetGrade)
设置月薪(voidSetAccumPay(floatpa)):
提取月薪(floatGetAccumPay)
构造函数(用于设置数据成员编号、级别和月薪初值)
析构函数
2)整个程序分为两个独立的文档:
employee.h(包含类的定义和类的实现)和employee.cpp(主函数文件)
3)在主函数main()中创建employee类的两个对象,对它们设计编号、级别和月薪,并输出每个雇员的基本信息。
实验7运算符重载(*)
一、实验目的
掌握C++中运算符重载的机制和运算符重载的方式;
二、实验内容及步骤
1.编写一个简单复数类Scomplex,要求用友元函数重载“+”、“-”运算符,用成员函数重载“=”运算符,使之能够实现整数或浮点数和复数的加法和减法,并且进行测试。
2.空间一点p的坐标为(x,y,z),其中x,y,z为整数。
编写点类Point3D,定义空间两点之间的加”+”,减”-”运算为相应三个坐标值分别进行加、减运算,要求实现空间两点之间的加”+”减”-”赋值”=”运算,空间两点间的比较”==”运算。
要求编写Point3D类的声明定义和测试程序。
3.设计一个时间类Time,包括时、分、秒等私有数据成员。
重载“+”和“-”运算符以实现时间的加法和减法运算,并进行测试。
实验8继承
一、实验目的
1.掌握派生的类别与方式;
2.了解派生类中如何使用基类的成员、基类成员在派生类中的访问控制;
3.掌握继承中构造函数和析构函数的调用过程。
二、实验内容及步骤
1.给出一个Document类,从Document派生出Book类,增加PageCount变量。
在主函数中进行测试,创建Book类对象并进行初始化,输出书名和页数。
‘
2.设计一个单基继承的类层次程序,利用Person类派生出Student类,增加属性xh(学号),Person类中至少有姓名、年龄等数据成员,成员函数中构造函数对其初始化,析构函数释放相应存储单元,输出函数输出其数据成员的值,其它成员函数根据需要添加,在主函数中进行测试。
先定义“高度“类和”圆“类Circle,再由Height类和Circle类多重派生出“圆柱体”类Cylinder。
在主函数中定义一个圆柱体对象,调用成员函数求出圆柱体的体积和表面积。
实验9多继承(*)
一、实验目的
1.掌握多基继承的使用,访问方法;
2.理解类层次中访问规则;
3.掌握虚基类的定义及使用。
二、实验内容及步骤
1.分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。
要求:
1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员.
2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资)。
3)对两个基类中得姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
4)在类体中声明成员函数,在类外定义成员函数。
5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、电话,然后再用cout语句输出职务和工资。
2.设计一个虚基类Person,包含姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类Leader,包含职务和部门私有数据成员以及相关的成员函数;再由Person派生出工程师类Engineer,包含职务和专业私有数据成员以及相关的成员函数;再由Leader和Engineer类派生出主任工程师类Chairman。
并采用相关数据进行测试。
实验10多态与虚函数
一、实验目的
1.理解多态的概念
2.掌握如何用虚函数实现运行时多态
3.掌握如何利用抽象类
二、实验内容及步骤
1.设计一个图形类(Shape),由它派生出5个派生类:
三角形类(Triangle)、正方形类(Square)、圆形类(Circle)、矩形类(Rectangle)、梯形类(triangle)类,利用虚函数计算图形面积,用一个函数printArea分别输出以上5者的面积。
2.定义一个教师类,由教师类派生出讲师、副教授、教授类。
教师的工资分别由基本工资、课时费和津贴构成。
假设讲师、副教授、教授的基本工资分别为800、900、1000元,课时费分别为每小时40、45、50元,津贴分别为1300、1800、2300。
定义虚函数来计算教师的工资,并通过主函数来进行验证。