OJ第六批——Problem I: B 继承 圆到圆柱体

2024-04-10 02:08

本文主要是介绍OJ第六批——Problem I: B 继承 圆到圆柱体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题及代码:

 

Problem I: B 继承 圆到圆柱体

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 276   Solved: 209
[ Submit][ Status][ Web Board]

Description

定义了Circle圆形类,在此基础上派生出Cylinder圆柱体类。

Circle圆形类定义如下:

class Circle
{
public:
Circle(double r):radius(r){ }
double area(){return PI*radius*radius;} //圆面积
protected:
double radius; //圆半径
};

请在下面的程序段基础上完成整个设计。
在主程序中输出指定半径的圆的面积(area),输出指定圆底半径和高的圆柱体表面积(area)和体积(volume)。

#include <iostream>
#include <iomanip>
using namespace std;

#define PI 3.14

class Circle
{
public:
Circle(double r):radius(r){ }
double area(){return PI*radius*radius;} //圆面积
protected:
double radius; //圆半径
};

//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************


//********************* end ********************

int main()
{
double r,h;

cout<<setiosflags(ios::fixed);
cout<<setprecision(2);

cin>>r;
Circle c(r);
cout<<c.area()<<endl;

cin>>r>>h;
Cylinder cy(r,h);
cout<<cy.area()<<" "<<cy.volume()<<endl;

return 0;
}

Input

圆的半径

圆柱体圆底半径 和 圆柱体的高

Output

 圆的面积

圆柱体的表面积 和  体积

Sample Input

1
2 2.5

Sample Output

3.14
56.52 31.40

HINT

#include <iostream> 
#include <iomanip> 
using namespace std; 
#define PI 3.14 
class Circle 
{ 
public: 
Circle(double r):radius(r){  } 
double area(){return PI*radius*radius;} //圆面积 
protected: 
double radius;  //圆半径   
}; 
class Cylinder 
{ 
public: 
Cylinder(double r,double h):radius(r),high(h) {} 
double volume() 
{ 
return PI*radius*radius*high; 
} 
double area() 
{ 
return (2*PI*radius*radius+2*PI*radius*high); 
} 
private: 
double radius; 
double high; 
}; 
int  main() 
{ 
double r,h; 
cout<<setiosflags(ios::fixed); 
cout<<setprecision(2); 
cin>>r; 
Circle c(r); 
cout<<c.area()<<endl; 
cin>>r>>h; 
Cylinder cy(r,h); 
cout<<cy.area()<<" "<<cy.volume()<<endl;  
return 0;  
} 


 

 

这篇关于OJ第六批——Problem I: B 继承 圆到圆柱体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889804

相关文章

C++11委托构造函数和继承构造函数的实现

《C++11委托构造函数和继承构造函数的实现》C++引入了委托构造函数和继承构造函数这两个重要的特性,本文主要介绍了C++11委托构造函数和继承构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、委托构造函数1.1 委托构造函数的定义与作用1.2 委托构造函数的语法1.3 委托构造函

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序