文档库 最新最全的文档下载
当前位置:文档库 › 定义一个Point类,派生出Rectangle类和Circle类,计算面积 C++

定义一个Point类,派生出Rectangle类和Circle类,计算面积 C++

定义一个Point类,派生出Rectangle类和Circle类,计算面积  C++
定义一个Point类,派生出Rectangle类和Circle类,计算面积  C++

#include

using namespace std;

class Point

{

private:

double X,Y;

public:

Point(double x,double y)

{

X=x;

Y=y;

}

};

class Rectangle:public Point

{

private:

double W,H;

public:

Rectangle(double x,double y,double w,double h):Point(x,y) {

W=w;

H=h;

}

double Area()

{

return W*H;

}

};

class Circle:public Point

{

private:

double R;

public:

Circle(double x,double y,double r):Point(x,y)

{

R=r;

}

double Area()

{

return 3.14*R*R;

}

};

void main()

{

Rectangle R(2,2,4,5);

cout<<"面积为:"<

Circle C(5,6,7);

cout<<"圆的面积为:"<

继承和派生实验报告

实验目的与要求: 1.掌握类的继承与派生关系以及实验方法,理解类的层次结构。 2.掌握派生类构造函数初始化基类成员和对象成员的方法。 3.掌握内联函数和默认函数。 4.掌握赋值兼容原则,掌握派生类的复制构造函数和赋值运算符的定义。 实验过程及内容: 1.实践教程实验二十二P81范例:定义一个继承与派生关系的类体系,在 派生类中访问基类成员。 ①先定义一个点类,包含x,y坐标数据成员,显示函数和计算面积的函数成员; ②以点为基类派生一个圆类,增加表示半径的数据成员,重载显示和计算面积的函数; ③定义一个线段类,以两个点类对象作数据成员,定义显示、求面积及长度函数,线段类采用聚合方式,因为有两个端点,不能用派生。 编程测试所定义的类体系。 本实验教程中有源码,请自行运行,体会和熟悉继承与派生的基本概念及实现方法,掌握派生类构造函数初始化基类成员和对象成员的方法等。2. 实践教程P83编程:多层派生练习,由上题Point类和Circle类继续派生出Cylinder类。要求计算圆柱的底面积、侧面积、全面积和体积。 请编写所有完整的成员函数,并编写主函数进行验证。 数据处理 1. (1)

(2)j结果报错,原因是派生类中的成员函数不能访问基类中的私有成员。(3)在Line类中添加两个数据成员。

2. #include #include using namespace std; #define PI 3.14159 class Point{ friend class Line; protected: double x, y ; public: Point(){x = 0 ; y = 0 ; } Point(double xv,double yv){ x = xv; y = yv; } double Area(){return 0;} void Show() { cout<<"x="<

初三化学:溶解度知识点归纳

初三化学:溶解度知识点归纳 1.固体物质的溶解度 (1)定义:一种物质溶解在另一种物质里的能力叫溶解性.溶解性的大小与溶质和溶剂 的性质有关.根据物质在20℃时溶解度的大小不同,把物质的溶解性通常用易溶、可溶、 微溶、难溶等概念粗略地来描述. (2)固体的溶解度概念:在一定温度下,某固体物质在100g溶剂里达到饱和状态时 所溶解的质量,叫做这种物质在这种溶剂里的溶解度. 在理解固体的溶解度概念时,要抓住五个要点: ①“在一定温度下”:因为每种固体物质的溶解度在一定温度下有一个对应的定值,但这定值是随温度变化而变化的,所以给某固体物质的溶解度时,必须指出在什么温度下的溶解度才有意义. ②“在100g溶剂里”:溶剂质量有规定的值,统一为100g,但并不是100g溶液,在 未指明溶剂时,一般是指水. ③“饱和状态”:所谓饱和状态,可以理解为,在一定温度下,在一定量的溶剂里,溶质的溶解达到了最大值. ④“所溶解的质量”:表明溶解度是有单位的,这个单位既不是度数(°),也不是质量分数(%),而是质量单位“g”. ⑤“在这种溶剂里”:就是说必须指明在哪种溶剂里,不能泛泛地谈溶剂.因为同一种物质在不同的溶剂里的溶解度是不相同的. (3)影响固体溶解度大小的因素 ①溶质、溶剂本身的性质.同一温度下溶质、溶剂不同,溶解度不同.

②温度的高低也是影响溶解度大小的一个重要因素.固体物质的溶解度随温度的不同而不同.大多数固态物质的溶解度随温度的升高而升高;少数物质(如氯化钠)的溶解度受温度的影响很小;也有极少数物质(如熟石灰)的溶解度随温度的升高而降低. (4)固体物质溶解度的计算 a根据:温度一定时,饱和溶液中溶质、溶剂的质量与饱和溶液质量成正比.

类的继承与派生

类的继承与派生 编写一个程序设计一个汽车类vehicle,包含的数据成员有车轮个数wheels 和车重weight。小车类car是它的派生类其中包含载人数passenger_load。卡车类truck是vehicle的派生类其中包含载人数passenger_load和载重量payload,每个类都有相关数据的输出方法. 提示:vehicle类是基类由它派生出car类和truck类将公共的属性和方法放在vehicle类中。 输出结果: 车型:小车 车轮:4个 重量:2000公斤 载人:5人 车型:卡车 车轮:10个 重量:8000公斤 载人:3人 参考代码: #include class vehicle // 定义汽车类 { protected: int wheels; // 车轮数

float weight; // 重量 public: vehicle(int wheels,float weight); int get_wheels(); float get_weight(); float wheel_load(); void show(); }; class car:public vehicle // 定义小车类 { int passenger_load; // 载人数 public: car(int wheels,float weight,int passengers=4); int get_passengers(); void show(); }; class truck:public vehicle // 定义卡车类 { int passenger_load; // 载人数 float payload; // 载重量 public: truck(int wheels,float weight,int passengers=2,float max_load=24000.00); int get_passengers(); float efficiency(); void show(); }; vehicle::vehicle(int wheels,float weight) { vehicle::wheels=wheels; vehicle::weight=weight;

类的定义和对象的创建

实验二类的定义和对象的创建 实验目的 1、学习定义类和使用类 2、学习创建的对象和使用对象 实验内容 1、定义一个Student类。其中定义有“学号”“姓名”“班级”“性别”“年龄”等属性,定 义一个无参数的构造器和至少一个有参数的构造器,定义“获得学号”“获得姓名”“获得班级”“获得性别”“获得年龄”“修改年龄”等方法。另外定义一个方法: public String toString( ) 把Student类的对象的所有属性信息组合成一个字符串,并检验这个功能的程序体现。 public class Student { private int 学号; private String 姓名; private String 班级; private char 性别; private int 年龄; public Student(int a, String b, String c, char d, int e) { 学号= a; 姓名= b; 班级= c; 性别= d; 年龄= e; } public Strudent() { this(0, "张三" ,"软件0901" ,'男', 19); } public int get学号() { return 学号; } public String get姓名() { return 姓名; } public String get班级() { return 班级; } public char get性别() { return 性别; } public int get年龄()

{ return 年龄; } public void set学号(int a) { 学号=a; } public void set姓名(String a ) { 姓名=a; } public void set班级(String a) { 班级= a; } public void set性别( char a) { 性别= a ; } public void set年龄(int a) { 年龄= a; } public String toString() { return "该学生的学号为"+ 学号+ " 姓名为"+姓名+" 班级为"+班级+ " 性别为" +性别+ " 年龄为" +年龄"; } } 2、编程实现圆类,其中包括计算圆周长和面积的方法,并测试方法的正确性。 public class Yuan { private double X, Y, R; public Yuan(double a, double b, double c) { X=a; Y=b; R=c; } public double MianJi() { return 3.1416*R*R; } public double ZhouChang() { return 2*3.1416*R; } public static void main(String[] args) { Yuan s=new Yuan(2,3,4); System.out.println("该圆的面积是"+ s.MianJi()); System.out.println("该圆的周长是"+ s.ZhouChang()); } }

类的继承与派生综合题

1. 类的继承与派生综合题1 题目描述 定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleManager(销售经理)类。 要求: a.在Staff类中包含的数据成员有编号(num)、姓名(name)、出勤率(rateOfAttend)、基本工资(basicSal)和奖金(prize)。在Saleman类中还包含数据成员:销售员提成比例(deductRate)和个人销售额(personAmount),在Manager类中还包含数据成员:经理提成比例(totalDeductRate)和总销售额(totalAmount)。在SaleManager类中不包含其他数据成员。 b.各类人员的实发工资公式如下: 员工实发工资=基本工资+奖金*出勤率 销售员实发工资=基本工资+奖金*出勤率+个人销售额*销售员提成比例 经理实发工资=基本工资+奖金*出勤率+总销售额*经理提成比例 销售经理实发工资=基本工资+奖金*出勤率+个人销售额*销售员提成比例+总销售额*经理提成比例 c.每个类都有构造函数、输出基本信息函数(Output)和输出实发工资函数(OutputWage)。 主函数如下: int main() { Salemanobjsale(101101, "LD", 0.88f, 1200, 800, 0.05f, 10000); Manager objmana(101102, "NXG", 0.90f, 2500, 1000, 0.10f, 20000); SaleManagerobjsalemana(101103, "HDY", 0.99f, 3500, 2000, 0.20f, 100000, 0.20f,150000); objsale.Output(); cout<< "销售员的实发工资:" << " "; cout<

C中类与类定义及具体使用方法

C中类与类定义及具体 使用方法 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

类模板 类模板也称为类属类或类生成类,是为类定义的一种模式,它使类中的一些数据成员和成员函数的参数或返回值可以取任意的数据类型。类模颁布是一个具体的类,它代表着一族类,是这一族类的统一模式。使用类模板就是要将它实例化为具体的类。 定义类模板的一般形式为: template class类名 { //…… } 其中,template是声明类模板的关键字;template后面的尖括号不能省略;数据类型参数标识符是类模板中参数化的类型名,当实例化类模板时,它将由一个具体的类型来代替。 定义类模板时,可以声明多个类型参数标识符,各标识符之间用逗号分开。 类定义中,凡要采用标准数据类型的数据成员、成员函数的参数或返回类型的前面都要加上类型标识符。 如果类中的成员函数要在类的声明之外定义,则它必须是模板函数。其定义形式为: template 数据类型参数标识符类名<数据类型参数标识符>∷函数名(数据类型参数标识符形参1,……,数据类型参数标识符形参n) { 函数体 } 模板类 将类模板的模板参数实例化后生成的具体的类,就是模板类。由类模板生成模板类的一般形式为:

类名<数据类型参数标识符>对象名1,对象名2,…,对象名n; 这里的数据类型参数标识符对应的是对象实际需要的数据类型。 应用举例 例函数模板的声明和模板函数的生成的例。 #include<> template//声明模板函数,T为数据类型参数标识符voidswap(T&x,T&y)//定义模板函数 { Tz;//变量z可取任意数据类型及模板参数类型T z=y; y=x; x=z; } voidmain() { intm=1,n=5; doublea=,b=; cout<<”m=”<

关于溶解度的计算

关于<<溶解度的计算>>读后感 通过研读<<溶解度的计算>>一文,现将有关溶解度计算的常见类型归纳如下: 溶解度的计算,关键在于正确理解溶解度的概念。 一定温度下,一定量的溶剂中所溶解物质的质量是一定的,反之,任意量的饱和溶液里溶质质量与溶剂质量或溶质质量与溶液的质量比是一定的,如果把一定温度下溶剂的量规定为100g,此时所溶解溶质形成饱和溶液时的质量称为溶解度。由此可得以下关系: 溶解度——100g溶剂——100+溶解度 (溶质质量) (溶剂质量) (饱和溶液质量) 可得出以下正比例关系: 式中W溶质、W溶剂、W饱和溶液分别表示饱和溶液中溶质、溶剂和溶液的质量,S表示某温度时该溶质的溶解度。 在以上的比例式中,100是常量,其它3个量中只要知道其中2个量就可求出另外一个量。由此,不仅明确了溶解度的解题的基本思路就是比例关系,从而避免质量混淆的现象,而且也使学生明确溶解度计算的一题多种解法,并从中找出最佳解法。 现将有关溶解度计算的常见类型归纳如下: 一、已知一定温度下某物质饱和溶液里的溶质和溶剂的质量,求溶解度 例1 在一定温度下,ng某物质恰好溶于一定量的水中形成mg饱和溶液,求该物质在此温度下的溶解度。 解;由题意可知,W溶液=W溶质+W溶剂,因此mg该物质的饱和溶液中含水的质量为:(m-n)g,此题可代入分式(1): 设某温度下该物质的溶解度为Sg 也可代入分式(2) 二、已知一定温度下某物质的溶解度,求此温度下一定量的饱和溶液中含溶质和溶剂的质量 例2 已知在20℃时KNO3的溶解度为31.6g。现要在20℃时配制20gKNO3饱和溶液,需KNO3和H2O各几克? 解:设配制20℃20g硝酸钾饱和溶液需硝酸钾的质量为xg。 此题若代入公式(1),列式为:若代入公式(2),列式为: 需水的质量为20-4.8=15.2g 答:配制20℃时20gKNO3的饱和溶液需KNO34.8g和水15.2g。

初中化学中溶解度的计算

初中化学中溶解度的计算 一定温度下,一定量的溶剂中所溶解物质的质量是一定的,反之,任意量的饱和溶液里溶质质量与溶剂质量或溶质质量与溶液的质量比是一定的,如果把一定温度下溶剂的量规定为100g,此时所溶解溶质形成饱和溶液时的质量称为溶解度。由此可得以下关系: 溶解度————100g溶剂————100+溶解度 (溶质质量) (溶剂质量) (饱和溶液质量) 可得出以下正比例关系: 式中W溶质、W溶剂、W饱和溶液分别表示饱和溶液中溶质、溶剂和溶液的质量,S表示某温度时该溶质的溶解度。 在以上的比例式中,100是常量,其它3个量中只要知道其中2个量就可求出另外一个量。由此,不仅明确了溶解度的解题的基本思路就是比例关系,从而避免质量混淆的现象,而且也使学生明确溶解度计算的一题多种解法,并从中找出最佳解法。 一、已知一定温度下某物质饱和溶液里的溶质和溶剂的质量,求溶解度 例1 在一定温度下,ng某物质恰好溶于一定量的水中形成mg饱和溶液,求该物质在此温度下的溶解度。解;由题意可知,W溶液=W溶质+W溶剂,因此mg该物质的饱和溶液中含水的质量为:(m-n)g,此题可代入分式(1): 设某温度下该物质的溶解度为Sg 也可代入分式(2) 二、已知一定温度下某物质的溶解度,求此温度下一定量的饱和溶液中含溶质和溶剂的质量 例2 已知在20℃时KNO3的溶解度为31.6g。现要在20℃时配制20gKNO3饱和溶液,需KNO3和H2O各几克? 解:设配制20℃20g硝酸钾饱和溶液需硝酸钾的质量为xg。 此题若代入公式(1),列式为: 若代入公式(2),列式为:

需水的质量为20-4.8=15.2g 答:配制20℃时20gKNO3的饱和溶液需KNO34.8g和水15.2g。 三、已知一定温度下某物质的溶解度,求一定量溶质配制成饱和溶液时,所需溶剂的质量 例3 已知氯化钠在20℃的溶解度是36g,在20℃时要把40g氯化钠配制成饱和溶液,需要水多少克?解:从题意可知,在20℃时36g氯化钠溶于l00g水中恰好配制成氯化钠的饱和溶液。 设20℃时40g氯化钠配制成氯化钠饱和溶液需要水为xg 答:在20℃时,40g氯化钠配制成饱和溶液需要水111g。 四、计算不饱和溶液恒温变成饱和溶溶需要蒸发溶剂或加入溶质的质量 例4 已知硝酸钾在20℃的溶解度为31.6g,现有150g20%的硝酸钾溶液,欲想使其恰好饱和,应加入几克硝酸钾或蒸发几克水? 解:先计算150g20%的KNO3溶液里含KNO3的量为150×20%=30g,含水为150-30=120g,则欲使之饱和,所要加进溶质或蒸发溶剂后的量之比与饱和溶液中溶质和溶剂之比相等进行列式。 设要使20℃150克20%KNO3溶液变为饱和溶液需加入x克KNO3或蒸发yg水,依题意列式: 答:要使20℃150g20%的KNO3溶液变为饱和溶液需加入KNO37.92g,或蒸发25.1g水。 五、计算温度升高时变成饱和溶液需加入溶质或蒸发溶剂的质量 例5 将20℃时263.2g硝酸钾饱和溶液温度升至60℃需加入几克硝酸钾或蒸发几克水才能变为饱和溶液?(20℃硝酸钾溶解度为31.6g,60℃为110g) 设将20℃时263.2gKNO3饱和溶液升至60℃时需加入xgKNO3或蒸发yg水后才能变成饱和溶液。 先计算20℃此饱和溶液中含溶质和溶剂的量,设含溶质为ag

c++实验8继承与派生上机练习题

1. 定义一个哺乳动物类Mamma,l 并从中派生出一个狗类Dog,要求: ( 1) 添加Dog 类的颜色数据成员,访问属性为私有,通过函数来对颜色进行设置和获取。 ( 2) 分别为基类和派生类添加相应的构造函数(有参、无参) 测试。 class Mammal { protected: int itsAge; int itsWeight; public: int GetAge(){return itsAge;} void SetAge(int age) {itsAge=age;} int GetWeight() { return itsWeight;} void SetWeight(int weight) {itsWeight= weight;} }; class Dog : public Mammal { // 定义Dog 类的数据成员和成员函数 }; 改: #include #include using namespace std; class Mammal { protected: int itsAge; int itsWeight; public: Mammal(); ~Mammal(); int GetAge(){return itsAge;} void SetAge(int age) {itsAge=age;} int GetWeight() { return itsWeight;} void SetWeight(int weight) {itsWeight= weight;} }; class Dog : public Mammal {下面给出Mamma类的定义,SetColor 和GetColor 成员和析构函数,并进行

实验6 类的定义与使用--练习

实验6 类的定义与使用 一、实验目的和任务 类的定义与使用 1)掌握类的概念、定义格式、类与结构的关系、类的成员属性和类的封装性; 2)掌握类对象的定义; 3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验原理介绍 通过建立类及对象,用类的成员函数和对象访问类的成员; 利用建立类的构造函数,完成类的成员的初始化工作; 三、实验设备介绍 软件需求: Visual C++ 6.0 四、实验内容和步骤 1、声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中rank为枚举类型,声明为enum CPU_Rank { p1=1,p2,p3,p4,p5,p6,p7},frequency为单位是MHz的整形数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、(选做)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数。组合。 思考题 1、注意类的定义; 2、类的成员函数的访问方式; 五、注意事项和要求 要求学生要提前准备实验的内容 实验完成后要求写出实验报告

继承与派生参考代码

1197: 继承与派生1 Description 请以点类Point为基类派生出一个圆类Circle。圆类Circle的数据成员为r(私有属性,存储圆的半径,圆心的点坐标通过继承点类Point加以实现),成员函数有构造函数Circle、计算圆的面积函数Area、计算圆的周长函数Perimeter和输出函数Display,其中构造函数实现基类和圆类的数据成员的初始化,Display函数实现圆心坐标(利用基类Point的Display实现)、圆的半径、圆的面积(利用Area函数实现)和圆的周长(利用Perimeter函数实现)的输出。请编写圆类的定义及成员函数实现,并在主函数中定义圆类对象,验证各个函数的正确性。说明:圆周率PI的取值为3.14 已知Point类的定义及main代码如下:(不允许改动) class Point { public: Point(double xx,double yy); //constructor void Display(); //display point private: double x,y; //平面的点坐标x,y }; int main() { double x,y,r; cin>>x>>y>>r; //圆心的点坐标及圆的半径 Circle C(x,y,r); C.Display(); //输出圆心点坐标,圆的半径,圆的面积,圆的周长 return 0; } Input Output Sample Input 1.5 2.6 1.8 Sample Output Center:Point(1.5,2.6) Radius:1.8 Area:10.1736 Perimeter:11.304 ************************************************************************** #include using namespace std; class Point { public: Point(double xx,double yy) //constructor

类的定义与使用

一、实验目的和任务 类的定义与使用 1)掌握类的概念、定义格式、类与结构的关系、类的成员属性和类的封装性; 2)掌握类对象的定义; 3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验原理介绍 验证性实验; 通过建立类及对象,用类的成员函数和对象访问类的成员; 利用建立类的构造函数,完成类的成员的初始化工作; 三、实验设备介绍 软件需求: Visual C++ 6.0 四、实验内容 1、声明一个CPU类,包含等级(rank)、频率(freauency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中rank为枚举类型,声明为enum CPU_Rank { p1=1,p2,p3,p4,p5,p6,p7},frequency为单位是MHz的整形数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 实验原理:构造CPU类私有成员为等级(rank)、频率(freauency)、电压(voltage),其中rank为枚举类型,声明为enum CPU_Rank { p1=1,p2,p3,p4,p5,p6,p7},然后设置public 的构造函数CPU,有频率和电压。使频率f等于形参x,电压u等于y,此为构造的函数。然后运用析构函数,其符号为~,运用析构函数。一个类只能定义一个析构函数,析构函数

没有形参,且其顺序较特殊,对于含有多个对象的程序,先创建的对象后析构,后创建的对象先析构。所以析构函数出现在最后。此程序中,三个对象CPU run stop ,CPU析构,在主函数中运行了构造函数,run stop执行后析构。 实验源程序: #include class CPU {private: int f; double u; enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7}; public: CPU(int x,double y) { f=x; u=y; cout<<"调用构造函数"<<"f="<