第十二周实验报告(三)
来源:互联网 发布:二维码生成软件下载 编辑:程序博客网 时间:2024/05/22 03:18
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:继承和派生
* 作 者: 晁阳
* 完成日期: 2012 年 4 月 23 日
* 版 本 号: t1.0
* 对任务及求解方法的描述部分
* 输入描述: 继承和派生
*代码实现:
#include<iostream>#include<Cmath>#include<iomanip> #define PI 3.1415926using namespace std;class Point //定义坐标点类{public:Point(){x = 0; y = 0;}Point(double x0, double y0) {x = x0; y = y0;}~Point(){} double getx(){return x;} double gety(){return y;} friend ostream &operator << (ostream & input, Point & c); //重载输入运算符protected:double x, y; //点的横坐标和纵坐标}; ostream &operator << (ostream & output, Point & c)//重载输出运算符{output << "Point:(" << c.x << ", " << c.y << ")";return output;}class Circle : public Point//声明派生类Point{public:Circle(){r = 0;}Circle(double x0, double y0, double r); //构造函数 ~Circle(){}; double getr(){return r;} friend ostream &operator << (ostream & out, Circle & c); double perimeter0();double area0();protected:double r;};Circle :: Circle(double x0, double y0, double r1) : Point(x0, y0), r(r1){} //构造函数 ostream &operator << (ostream & output, Circle & c) { output << "以" << "(" << c.getx() << "," << c.gety() << ")" << "为圆心, " << "以" << c.r << "为半径的圆"; return output; } double Circle :: perimeter0(){return PI * 2 * r;}double Circle :: area0(){return PI * r * r;}class Cylinder : public Circle{public:Cylinder(){height = 0;} Cylinder(double x1,double y1, double r1, double h); ~Cylinder(){} double area1();double volume();friend ostream &operator << (ostream & output, Cylinder & c); protected:double height;};Cylinder :: Cylinder(double x1,double y1, double r1, double h) : Circle(x1, y1, r1), height(h){}ostream &operator << (ostream & output, Cylinder & c) { output << "以" << "(" << c.getx() << "," << c.gety() << ")" << "为圆心, 以" << c.r << "为半径, 以" << c.height << "为高的圆柱体"; return output; } double Cylinder :: area1(){return (area0() * 2 + perimeter0() * height);}double Cylinder :: volume(){return area0() * height;}int main() { Cylinder cy(1, 2, 4, 5); cout << cy << endl; cout << setiosflags(ios::fixed) << setprecision(3); cout << "表面积是:" << cy.area1() << endl; cout << "体积是:" << cy.volume() << endl; system("pause"); return 0; }
上图:
- 第十二周实验报告(三)
- 第十二周实验报告(任务三)
- 第十二周实验报告(三)
- 第十二周实验报告(三)
- 第十二周实验报告(三)
- 第十二周C++实验报告(三)
- 第十二周实验报告三
- 第十二周实验报告三
- 第十二周实验报告(任务三)【虚基类的使用】
- 第十二周实验报告(一)
- 第十二周实验报告(二)
- 第十二周实验报告(任务一)
- 第十二周实验报告(任务二)
- 第十二周实验报告1(修改)
- 第十二周实验报告(一)
- 第十二周实验报告(1)
- 第十二周实验报告(2)
- 第十二周实验报告(一)
- GXT之旅:第八章:Portal&Drag-Drop——拖拽(Drag-Drop)基本介绍
- spring中实例化bean的方式
- android 访问图片资源
- 第十周实验报告(任务二)【在CPerson类的基础上派生出CEmployee类】
- android 获取屏幕尺寸
- 第十二周实验报告(三)
- 一、创建文件和目录
- 第十周任务(二)
- camera中的VSYNC,HSYNC作用?时序关系?
- 第九周实验报告三
- 第十周实验报告2
- 《第十周任务二》定义CPerson的类,设置私有成员:姓名,身份证号等;成员函数:构造函数,析构函数,输出信息的函数。
- 用spring控制hibernate的session何时关闭
- 第十周任务二 继承之填充函数