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

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

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

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

一、問題描述

在這裡插入圖片描述

二、考察內容

  基本面向物件概念,如何建立類、物件,對類私有資料成員和公有成員函式的理解,對虛擬函式以及派生類的理解,簡單的數學運算。

三、難度等級

難度等級:★★★☆☆

四、參考程式

#include <iostream.h>
#include <math.h>
class TR1{
	double x,y,z;
public:
	TR1(double x1,double y1,double z1)
	{ 		x=x1;y=y1;z=z1; 	}
	virtual double area()
	{
		double s=(x+y+z)/2;
		s=sqrt(s*(s-x)*(s-y)*(s-z));		
		return s;
	}
	double print()
	{
		double s=x+y+z;
		return s;
	}
};
class COL:public TR1{
	double height;
public:
	COL(double x1,double y1,double z1,double h):TR1(x1,y1,z1)
	{  		height=h; 	}
	double volume()
	{
		double vol=TR1::area();
		vol=vol*height;
		return vol;
	}
	double area()
	{
		double are=TR1::area();
		double pri=TR1::print();
		are=2*are+pri*height;
		return are;
	}
};
void main()
{
	TR1 *tr;
	double a,b,c,h;
	cout<<"請輸入三角形的底面邊長和高:";
	cin>>a>>b>>c>>h;
	if(a+b>c&&a+c>b&&b+c>a)
	{
		COL co(a,b,c,h);	
		tr=&co;
		cout<<"三角柱體的體積為:";
		cout<<co.volume()<<'\n';
		cout<<"三角柱體的表面積為:";
		cout<<tr->area()<<'\n';
	}else
		cout<<"所輸入的三條邊不能構成三角形!\n";
}

五、心得感受

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