Obliczanie pól figur

Program: obliczający pola.

Możliwe obliczenie:

  • kwadratu po podaniu długości boku,
  • dowolnego czworokąta po podaniu długości dwóch przekątnych oraz kąta między nimi.

Kompilator: Dev C++

Galeria:

Program w akcji.

Kod programu:

//Obliczanie pól figur - klasy, funkcje, dziedziczenie

#include <math.h>
#include <iostream>
#include <cstdlib>
#define PI 3.14159265

using namespace std;

class pole
{public:
		double oblicz(double p1, double p2, double kat);
};
double pole::oblicz(double p1, double p2, double kat)
{return (p1 * p2 * sin(kat*PI/180))/2;
};
class czworokat
{
	public:

		double a,b,c,d;
		double kat1, kat2, kat3, kat4;

		czworokat(double bok1, double bok2, double bok3, double bok4,double k1, double k2, double k3, double k4)
			: a(bok1), b(bok2), c(bok3), d(bok4), kat1(k1), kat2(k2), kat3(k3), kat4(k4) {}

	inline void zmien_boki(double bok1, double bok2, double bok3, double bok4)
		{
			a=bok1;
			b=bok2;
			c=bok3;
			d=bok4;
		}
};
class kwadrat : public czworokat, public pole
{
	public:
		kwadrat(double x): czworokat(x,x,x,x,90,90,90,90){}
		double oblicz(void)
		{
			return pole::oblicz(a*sqrt(2), a*sqrt(2), 90);
		}
};
void kw()
{
	cout << "Podaj bok kwadratu: ";
	int bok;
	cin>>bok;
	kwadrat figura(bok);
	cout << "Pole wynosi: " << figura.oblicz() << endl;
}
void czw()
{
	cout << "Dlugosc pierwszej przekatnej: ";
	int przek1;
	cin >> przek1;
	cout << "Dlugosc drugiej przekatnej: ";
	int przek2;
	cin >> przek2;
	cout << "Podaj kat miedzy nimi: ";
	int katprz;
	cin >> katprz;
	pole czworokat;
	cout << "Pole czworokata wynosi: " << czworokat.oblicz(przek1,przek2,katprz) << endl;
}
int main()
{
	cout  << "1.Pole kwadratu." << endl;
	cout  << "2.Pole dowolnego czworokata." << endl<<"\n";
	cout  << "Co chcesz obliczyc: ";
	int operacja;
	cin >> operacja;
	switch(operacja)
	{
	             case 1:
             	      kw();
		              break;
	             case 2:
		              czw();
                      break;
                default:
                        cout<<"Zly operator\n";
                        break;
	}
	system("PAUSE");
    return EXIT_SUCCESS;

}