1. 程式人生 > >C++面向物件程式設計50道程式設計題(第07題)

C++面向物件程式設計50道程式設計題(第07題)

C++面向物件程式設計50道程式設計題(第07題)

摘要:C++程式設計實習是為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛鍊學生的分析問題和解決問題的能力,提高學生運用所學知識解決實際問題的能力。
  本專輯為程式設計入門者、高校計算機軟體專業學習或複習提供C++程式設計題庫。
  讀者請先獨立思考哦,再與參考程式進行比對檢查。

一、問題描述

在這裡插入圖片描述

二、考察內容

  基本面向物件概念,如何建立類、物件,對類私有、保護資料成員和公有成員函式的理解,對派生類(繼承)的理解和使用,類指標運算、簡單的數學運算。

三、難度等級

難度等級:★★☆☆☆

四、參考程式

#include<iostream.h>
#include<string.h>
#include<stdlib.h>
class RECT{
	protected:
		double x,y;
	public:
		RECT(double x1,double y1){x=x1;y=y1;}
		virtual double area()
		{
			double are=x*y;
			return are;
		}
		double peri()
		{
			double L=2*x+2*y;
			return L;
		}
		virtual int isSquare()
		{
			if(x==y)
				return 1;
			else
				return 0;
		}
};
class CUB:public RECT{
	double hright;
	public:
		CUB(double x,double y,double h):RECT(x,y)
		{    hright=h;   }
		double volume()
		{
			double vol;
			vol=RECT::area()*hright;
			return vol;
		}
		double area()
		{
			double Are;
			Are=2*RECT::area()+peri()*hright;
			return Are;
		}
		int isSquare()
		{
			if(RECT::isSquare())
				return x==hright;
			else
				return 0;
		}
};
void main()
{
	double a,b,c;
	cin>>a>>b>>c;
	CUB cu(a,b,c);
	RECT *re;
	re=&cu;
	cout<<"長方體的體積為:"<<cu.volume()<<endl;
	cout<<"長方體的表面積為:"<<re->area()<<endl;
	if(re->isSquare())
		cout<<"該長方體是正方體\n";
	else
		cout<<"該長方體不是正方體\n";
}

五、心得感受

可以在評論處寫下思考和程式設計此題的感受