急~!!求简单C++编程题答案

五、 编程题(3题×10分=30分)
1. 编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算对象面积的函数GetArea()、计算对象周长的函数GetPerim()。
2. 定义Boat与Car两个类,二者都有weight属性,定义二者的一个友元函数totalWeight( ),计算二者的重量和。
3. 用函数模板实现myswap(x,y),函数功能为交换x和y的值。

第1个回答  2008-10-16
第一题
#include <iostream.h>
class Shape
{
public:
float r;
float w,h;
};
class Circle:public Shape
{
public:
double GetArea(float r)
{
return (3.14*r*r);
}
double GetPerim(float r)
{
return (3.14*2*r);
}
};
class Retangle:public Shape
{
public:
float GetArea(float w,float h)
{
return (w*h);
}
float GetPerim(float w,float h)
{
return ((h+w)*2);
}
};
void main()
{
char option;
do
{
cout<<"Please select the shape you want "<<endl;
cout<<"1.Retangle"<<endl;
cout<<"2.Cicle"<<endl;
cout<<"Your option is :";
int selection;
cin>>selection;
for(int i=0;selection!=1&&selection!=2;i++)
{
cout<<"Input error!, please input again ";
}
Retangle retangle;
Circle circle;
if(selection==1)
{
cout<<"Please input width and height ";
cin>>retangle.h>>retangle.w;
cout<<"The area of retangle is "<<retangle.GetArea(retangle.h,retangle.w)<<endl;
cout<<"The perim of retangle is "<<retangle.GetPerim(retangle.h,retangle.w)<<endl;
}
else if(selection==2)
{
cout<<"Please input radius of the circle ";
cin>>circle.r;
cout<<"The area of circle is "<<circle.GetArea(circle.r)<<endl;
cout<<"The perim of circle is "<<circle.GetPerim(circle.r)<<endl;
}
cout<<"Do you want to continue ?, input y or Y means yes ";
cin>>option;
}while(option=='y'||option=='Y');
}
第二题
#include <iostream.h>
class Boat
{
public:
float x;
friend float totalWeight();
};
class Car
{
public:
float y;
friend float totalWeight();
};
float totalWeight(float x,float y)
{
return (x+y);
}
void main()
{
Boat boat;
Car car;
cout<<"please input boat`s weight and car`s weight"<<endl;
cin>>boat.x>>car.y;
cout<<"The total weight of them is "<<totalWeight(boat.x,car.y)<<endl;
}
第三题
头文件
#ifndef ORIGIN_H
#define ORIGIN_H
template <typename T>
T origin(T x)
{
return x;
}
#endif
#ifndef SWAP_H
#define SWAP_H
template <typename T>
T myswap(T x,T y)
{
T temp;
temp=x;
x=y;
y=temp;
return x;
}
#endif
CPP文件
#include "er.h"
#include <iostream.h>
void main()
{
int a,b;
cout<<"Please input two integer:"<<endl;
cin>>a>>b;
cout<<myswap(a,b)<<" "<<origin(a)<<endl;
float c,d;
cout<<"Please input two float :"<<endl;
cin>>c>>d;
cout<<myswap(c,d)<<" "<<origin(c)<<endl;
char e,f;
cout<<"Please input two char :"<<endl;
cin>>e>>f;
cout<<myswap(e,f)<<" "<<origin(e)<<endl;
}
第2个回答  2008-10-11
class Shape
{
public:
Shape(){}
~Shape(){}
virtual float GetArea() = 0; //定义纯虚函数
virtual float GetPerim() = 0;
}

class Rectangle : public Shape
{
private:
float m_fLength;
float m_fWidth;
public:

Rectangle(float fLength,float fWidth){
m_fLength = fLength;
m_fWidth = fWidth;
}
~Rectangle(){}
float GetArea(){
return m_fWidth*m_fLength;
}
float GetPerim(){
return 2*(m_fWidth+m_fLength);
}

}
#define PI 3.1415926
class Circle : public Shape
{
private:
float m_fDiameter;
public:
Circle(float fDiameter){
m_fDiameter = fDiameter;
}
~Circle(){}
float GetArea(){
return PI*(m_fDiameter*m_fDiameter)/4;
}
float GetPerim(){
return PI*m_fDiameter;
}

}本回答被提问者采纳

c++编程题,求大神解答。
剩下的机器人相邻关系会改变,重新计算碰撞时间,重复上述步骤,直到没有碰撞发生 C++代码如下:include <bits\/stdc++.h> \/\/ C++万能头文件 using namespace std;using tri = tuple<double, int, int>; \/\/ 发生碰撞的时间和机器人编号 int main() { int n, k;cin >> n;k = n; \/\/ 剩...

急!!C++.已知变量a,b,c是整型变量,且a=3、b=4、c=5,则表达式:!(a+b...
答案为1。详解:!(a+b)+c-1 && b+c\/2 等价于 (!(a+b)+c-1) && (b+c\/2)计算机内部计算步骤(可以查看汇编)先算!(a+b)+c-1 ——>0+5-1——>4 测试上一步结果(结果为4),表达式为真。再算b+c\/2——>结果为6(注意4\/2结果为2,因为都是整型,余数丢掉)测试上一步结...

跪求一道c++简单计算题答案
1. 操作符优先级 2. 类型提升 该表达式中的优先级排序:() > (类型转换) > *、\/、% > + 所以其求解顺序为:x+a%3*(int)(x+y)%2\/4 =x+a%3*(int)7.2%2\/4 =x+a%3*7%2\/4 =x+1*7%2\/4 =x+7%2\/4 =x+1\/4 =x+0 =x+0.0 \/\/类型提升,将整型的0提升为表达...

求C++问题答案!急急鸡鸡鸡!
键盘输入23456时,会先将这几个数字写入键盘缓冲区,遇到回车(CR)时,将这几个数值写到输入流 Cin.get(ch)从流中读取第一个字符‘2’,判断是不是‘\\n’,如果不是,进行switch(ch-‘2’)第一次ch-‘2’得0,进行case 0语句段,没有操作,由于没有遇到break,接着执行case 1: cout<<(...

求大神回答!!!C++急急急!!
回答:您好,很高兴回答您的问题。 您这个题目最后的结果为-11.其实这个是典型的递归调用,输入7,表示求f(7)的结果,通过分析程序,知道求f(7),要求出f(5)-f(6),算f(5)要算出f(3)-f(4),算f(6)要算出f(4)-f(5),以此类推,得到f(7)=5f(1)-8f(2)=5-16=-11。您可以自己试着分析...

c++编程,求大神帮忙解答
C++代码如下:include <bits\/stdc++.h> \/\/ C++万能头文件 using namespace std;int dx[4] = {-1, 1, 0, 0};int dy[4] = {0, 0, -1, 1};int n, m;char mat[3000][3000]; \/\/ 字符矩阵 int dp[3000][3000][6]; \/\/ 记忆化搜索 string s = "IAKCSP";int dfs(int x,...

求C++题目的解答,非常感谢!急求,多谢!
1、定义一个BOOK的引用x,引用book的地址,B\/C\/D都是语法错误 2、由于是值传递,会拷贝一份实参传递给形参,交换的是实参的拷贝,与实参没有关系 3、引用和指针,传递的是址传递,即形参与实参指向同一块内存地址,不管是形参还是实参去修改那块内存中的值时,由于内存地址不变,那块内存地址中的...

现有一道 C++编程题,请各位高手能够鼎力相助。速求……急!
回答:长见识了啊...感谢楼主!

c++问题 急求 !!!
1)main ( ){ long i;float bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1; \/*利润为10万元时的奖金*\/ bon2=bon1+100000*0.075; \/*利润为20万元时的奖金*\/ bon4=bon2+100000*0.05; \/*利润为40万元时的奖金*\/ bon6=bon4+100000*0.03; \/*利润为60万元时的...

C++编程,求代码,急急急急急急急急急急急急急急急急急急急急急~~~
C++编程,求代码,急急急急急急急急急急急急急急急急急急急急急~~~ 5 问题描述为了庆祝节日,小明与邻居的小伙伴共n个人相约一起放花炮。他们先同时放响了第一个花炮,随后n个人分别以A1、A2、A3、……An秒的间隔继续放花炮,到最后每人都放了b个花炮(包... 问题描述为了庆祝节日,小明与邻居的小伙伴共n个...

相似回答