YTU-OJ-Problem B: 抽象一个形状类
2015-07-21 09:05
330 查看
Problem B: 抽象一个形状类
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 680 Solved: 370
[Submit][Status][Web
Board]
Description
阮宝同学期待着暑假来临,知道C++不好好复习麻烦不小。没有多态性,那就不叫面向对象,老师不划重点也能猜到。嘿嘿,自己做个经典题,怎么变题也不怕。老湿,再难的题还有木有?Input
输入四个数,前两个是矩形的长和宽,后两个是三角形的底边长和高。Output
分两行输出两个数,第一个是矩形的面积,第二个是三角形的面积。Sample Input
3.5 6.4 3.5 6.4
Sample Output
22.4 11.2
HINT
请使用下面的main函数,认真体会需要设计哪些类,需要有哪些类成员:int main()
{
double a,b;
cin>>a>>b; //输入矩形的长和宽
Rectangle r(a,b);//建立Rectangle类对象r, 矩形长a宽b
Shape *s1=&r;
cout<<s1->area()<<endl;//输出矩形的面积
double w,h;
cin>>w>>h; //输入矩形的长和宽
Triangle t(w,h); //建立Triangle类对象t,三角形底边长w高h
Shape &s2=t;
cout<<s2.area();//输出三角形面积
return 0;
}
#include <iostream> #include <iomanip> #include <cstdio> using namespace std; class Shape { public: virtual double area() const=0; }; class Rectangle: public Shape { private: double a,b; public: Rectangle (double aa,double bb): a(aa),b(bb) {} virtual double area() const { return a*b; } }; class Triangle: public Shape { private: double w,h; public: Triangle (double ww,double hh): w(ww),h(hh) {} virtual double area() const { return 0.5*w*h; } }; int main() { double a,b; cin>>a>>b; //输入矩形的长和宽 Rectangle r(a,b);//建立Rectangle类对象r, 矩形长a宽b Shape *s1=&r; cout<<s1->area()<<endl;//输出矩形的面积 double w,h; cin>>w>>h; //输入矩形的长和宽 Triangle t(w,h); //建立Triangle类对象t,三角形底边长w高h Shape &s2=t; cout<<s2.area();//输出三角形面积 return 0; }
相关文章推荐
- 一、设计模式之单例模式
- .net常用加密解密方法
- Java 判断两个文件是否相同的两种方法
- 1192 回文字符串
- 士兵杀敌
- 提高iOS开发效率的方法和工具
- asp.net 查询,导出
- Nagios监控平台搭建--安装篇
- iOS-CoreLocation:无论你在哪里,我都要找到你!
- 解决Maven更新后错误Dynamic Web Module 3.0 requires Java 1.6 or newer
- YTU-OJ-Problem A: 最小节点(线性表)
- SQLServer2000同步复制技术实现步骤(代码版)
- shard分片
- ASP.NET定时发送邮件&windows server
- 源码推荐(7.21):顶部滑动菜单FDSlideBar,Swift版无限循环轮播图
- linux系统编程——文件操作总结(2)
- Unterminated &lt;%@ page tag
- Java网络编程之TCP通信
- poj 1164 dfs水题
- 关于负数取模