您的位置:首页 > 其它

十三周实验报告4

2012-05-14 18:32 344 查看
01./* (程序头部注释开始)
02.* 程序的版权和版本声明部分
03.* Copyright (c) 2011, 烟台大学计算机学院学生
04.* All rights reserved.
05.* 文件名称:renwu.cpp
06.* 作者:   刘文英
07.* 完成日期:2012 年 5 月 14 日
08.* 版 本 号:13.4
09.* 对任务及求解方法的描述部分
10.* 输入描述:略
11.* 问题描述:略
12.* 程序输出:略
13.* 程序头部的注释结束
14.*/
15.#include<iostream>
16.#include<Cmath>
17.using namespace std;
18.const double pi=3.1415926;
19.
20.class CSolid //定义抽象基类
21.{
22.public:
23.    virtual double superficial_areas()=0;//表面积
24.    virtual double volume()=0;    //体积
25.};
26.
27.class CCube: public CSolid  //利用抽象基类定义正方体类
28.{
29.public:
30.    CCube(double CCube_long);//构造函数
31.    ~CCube(){}
32.    double superficial_areas();
33.    double volume();
34.private:
35.    double CCube_long;
36.};
37.
38.class CBall: public CSolid    //利用抽象基类定义球体类
39.{
40.public:
41.    CBall(double CBall_long);//构造函数
42.    ~CBall(){}
43.    double superficial_areas();
44.    double volume();
45.private:
46.    double CBall_long;
47.};
48.
49.class CCylinder: public CSolid  //利用抽象基类定义圆柱体类
50.{
51.public:
52.    CCylinder(double CCylinder_bottom,double CCylinder_high); //构造函数
53.    ~CCylinder(){}
54.    double superficial_areas();
55.    double volume();
56.private:
57.    double CCylinder_bottom;
58.    double CCylinder_high;
59.};
60.
61.CCube::CCube(double CCube_long)//构造函数
62.{
63.    this->CCube_long=CCube_long;
64.}
65.
66.double CCube::superficial_areas()
67.{
68.    return (6*CCube_long*CCube_long);
69.}
70.
71.double CCube::volume()
72.{
73.    return (CCube_long*CCube_long*CCube_long);
74.}
75.
76.CBall::CBall(double CBall_long)
77.{
78.    this->CBall_long=CBall_long;
79.}
80.
81.double CBall::superficial_areas()
82.{
83.    return (4*pi*CBall_long*CBall_long);
84.}
85.
86.double CBall::volume()
87.{
88.    return (4*pi*CBall_long*CBall_long*CBall_long/3);
89.}
90.
91.CCylinder::CCylinder(double CCylinder_bottom,double CCylinder_high)
92.{
93.    this->CCylinder_bottom=CCylinder_bottom;
94.    this->CCylinder_high=CCylinder_high;
95.}
96.
97.double CCylinder::superficial_areas()
98.{
99.    return (2*pi*CCylinder_bottom*CCylinder_bottom+2*pi*CCylinder_bottom*CCylinder_high);
100.}
101.
102.double CCylinder::volume()
103.{
104.    return (pi*CCylinder_bottom*CCylinder_bottom*CCylinder_high);
105.}
106.
107.int main()
108.{
109.    CCube CCube1(12.6);    //建立CCube类对象c1,参数为正方体边长
110.    CBall CBall1(4.5);       //建立CBall1类对象CBall1,参数为球的半径
111.    CCylinder CCylinder1(4.5,8.4);    //建立CCylinder类对象CCylinder1,参数为圆柱体的半径和高
112.    CSolid *p;
113.    p=&CCube1;
114.    cout<<"totol of CCube areas="<<p->superficial_areas()<<endl;   //输出表面积
115.    cout<<"totol of CCube volume="<<p->volume()<<endl;   //输出体积
116.    p=&CBall1;
117.    cout<<"totol of CBall areas="<<p->superficial_areas()<<endl;   //输出表面积
118.    cout<<"totol of CBall volume="<<p->volume()<<endl;   //输出体积
119.    p=&CCylinder1;
120.    cout<<"totol of CCylinder areas="<<p->superficial_areas()<<endl;   //输出表面积
121.    cout<<"totol of CCylinder volume="<<p->volume()<<endl;   //输出体积
122.    system("pause");
123.    return 0;
124.}
运行结果:
totol of CCube areas=952.56

totol of CCube volume=2000.38

totol of CBall areas=254.469

totol of CBall volume=381.704

totol of CCylinder areas=364.739

totol of CCylinder volume=534.385

请按任意键继续. . .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  system 任务 c