C++程序设计(10.3)
2012-04-25 16:30
190 查看
/*
*实验内容:
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:基类,派生
* 作 者: 杨坛坛
* 完成日期: 2012 年 4 月 25日
* 版 本号: vc2008
*问题描述:(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员 (半径);
(3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高)。
要求编写程序,设计出各类中基本的成员函数(包括构造函数、析构函数、修改数据成员和获取数据成员的公共接口、用于输出的重载运算符“<<”函数等),
使之能用于处理以上类对象,最后求出圆柱体的表面积、体积并输出。
*/
运行结果:
(2,2)为圆心1为半径3为高的圆柱体
表面积是:25.13
体积是:9.42
请按任意键继续. . .
*实验内容:
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:基类,派生
* 作 者: 杨坛坛
* 完成日期: 2012 年 4 月 25日
* 版 本号: vc2008
*问题描述:(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员 (半径);
(3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高)。
要求编写程序,设计出各类中基本的成员函数(包括构造函数、析构函数、修改数据成员和获取数据成员的公共接口、用于输出的重载运算符“<<”函数等),
使之能用于处理以上类对象,最后求出圆柱体的表面积、体积并输出。
*/
#include <iostream> #include<Cmath> #include<iomanip> using namespace std; const double PI = 3.141592653; 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 & input, Point & c) { input << "点:(" << c.x << "," << c.y << ")"; return input; } class Circle: public Point //以点类为基类的派生类 { public: Circle(){radius = 0;} Circle(double x0, double y0, double r):Point(x0, y0),radius(r){ } //构造函数 ~Circle(){} double getr(){return radius;} double area1(); friend ostream &operator << (ostream & out, Circle & c); protected: double radius; }; double Circle::area1() //圆形面积 { double c_area = PI * getr() * getr(); return c_area; } ostream &operator << (ostream & out, Circle & c) { out << "(" << c.getx() << "," << c.gety() << ")" << "为圆心" << c.radius << "为半径的圆"; return out; } class Cylinder: public Circle //以圆类为基类的派生类 { public: Cylinder(){height = 0;} Cylinder(double x1,double y1, double r1, double h):Circle(x1, y1, r1), height(h){ } ~Cylinder(){} double geth(){return height;} double area2(); double volume(); friend ostream &operator << (ostream & out, Cylinder & c); private: double height; }; double Cylinder::area2() { //double c_area = PI * getr() * getr(); double c_cir = 2 * PI * getr() * height; //圆柱侧面积 return (c_cir + 2 * area1()); } double Cylinder::volume() { return (PI * getr() * getr() * height); } ostream &operator << (ostream & out, Cylinder & c) { out << "(" << c.getx() << "," << c.gety() << ")" << "为圆心" << c.radius << "为半径" << c.height << "为高的圆柱体"; return out; } int main() { Cylinder cy(2, 2, 1, 3); cout << cy << endl; cout << setiosflags(ios::fixed) << setprecision(2); cout << "表面积是:" << cy.area2() << endl; cout << "体积是:" << cy.volume() << endl; system("pause"); return 0; }
运行结果:
(2,2)为圆心1为半径3为高的圆柱体
表面积是:25.13
体积是:9.42
请按任意键继续. . .
相关文章推荐
- 2012-8,C++程序设计,第二期,培训跟进表
- C++第3次实验(基础班)—选择结构程序设计
- C++程序设计最佳实践
- C++primer plus第六版课后编程练习答案10.3
- C++程序设计实验报告(二十)---实现冒泡排序算法,并将之定义为一个函数,其中参数是指向数组的指针变量
- C++程序设计之四书五经(上篇)
- c++程序设计-2
- C_PlusPlus学习笔记 - 5_数组、指针和字符串 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- 我的c++程序设计作业
- c++程序设计
- (2011.08.02)自学《C++ 程序设计》(谭浩强 编著)时做过的习题汇总。
- C++程序设计语言练习5.3 typedef的使用
- 嵌入式实时程序设计中C/C++代码的优化
- 你好,C++(31)我终于找到对象啦!6.1 从结构化设计到面向对象程序设计
- C++程序设计之四书五经
- c++程序设计 项目一
- C++程序设计(第2版)课后习题答案--第4章
- C++程序设计语言学习笔记(二)
- C++程序设计(第2版--9.9)---静态数据成员(与static的结合使用)
- C++程序设计实验报告(二十七)---第二周任务一(自定义函数用递归思想,即不断调用,反向输出二进制)