Facebook
From Chunky Tapir, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 182
  1. // stdafx.h: dołącz plik do standardowych systemowych plików dołączanych,
  2. // lub specyficzne dla projektu pliki dołączane, które są często wykorzystywane, ale
  3. // są rzadko zmieniane
  4. //
  5.  
  6. #pragma once
  7.  
  8. #include "targetver.h"
  9.  
  10. #include <stdio.h>
  11. #include <tchar.h>
  12.  
  13.  
  14. class Figure
  15. {
  16. public:
  17.         virtual double area() = 0;
  18. };
  19.  
  20. class Circle : public Figure
  21. {
  22. public:
  23.         double r;
  24.         double area();
  25.         Circle();
  26. };
  27.  
  28. class Rectangle : public Figure
  29. {
  30. public:
  31.         double a, b;
  32.         double area();
  33.         Rectangle();
  34. };
  35.  
  36. class Square : public Figure
  37. {
  38. public:
  39.         double a;
  40.         double area();
  41.         Square();
  42. };
  43. // TODO: W tym miejscu odwołaj się do dodatkowych nagłówków wymaganych przez program
  44.  
  45.  
  46.  
  47. // SEM3LAB5_fig.cpp : Defines the entry point for the console application.
  48. //
  49.  
  50. #include "stdafx.h"
  51. #include <iostream>
  52.  
  53. using namespace std;
  54.  
  55. int main()
  56. {
  57.         int size;
  58.         cout << "podaj ilosc figur" << endl;
  59.         cin >> size;
  60.         Figure ** wsk_fig;
  61.         wsk_fig = new Figure*[size];
  62.         int licznik = 0;
  63.         char key;
  64.         while (licznik < size)
  65.         {
  66.                 cout << "podaj jaka chcesz dodac figure c - kolo, r - prostokat, s - kwadrat " << endl;
  67.                 cin >> key;
  68.                 switch (key)
  69.                 {
  70.                 case 'c': wsk_fig[licznik] = new Circle; break;
  71.                 case 's': wsk_fig[licznik] = new Square; break;
  72.                 case 'r': wsk_fig[licznik] = new Rectangle; break;
  73.                 default: cout << "zla literka :(" << endl;
  74.                         break;
  75.                 }
  76.                 licznik++;
  77.         }
  78.         double suma_pol = 0;
  79.         for (int i = 0; i < size; i++)
  80.         {
  81.                 suma_pol += wsk_fig[i]->area();
  82.         }
  83.         cout << "suma pol = " << suma_pol << endl;
  84.  
  85.         system("pause");
  86.  
  87.         for (int i = 0; i < size; i++)
  88.         {
  89.                 delete wsk_fig[i];
  90.         }
  91.  
  92.         delete wsk_fig;
  93.     return 0;
  94. }
  95.  
  96. double Circle :: area()
  97. {
  98.         return r * r*3.1415;
  99. }
  100.  
  101. double Rectangle :: area()
  102. {
  103.         return a * b;
  104. }
  105.  
  106. double Square :: area()
  107. {
  108.         return a * a;
  109. }
  110.  
  111. Square :: Square()
  112. {
  113.         cout << "podaj dlugosc boku" << endl;
  114.         cin >> a;
  115. }
  116.  
  117. Rectangle::Rectangle()
  118. {
  119.         cout << "podaj dlugosc bokow" << endl;
  120.         cin >> a;
  121.         cin >> b;
  122. }
  123.  
  124. Circle::Circle()
  125. {
  126.         cout << "podaj promien" << endl;
  127.         cin >> r;
  128. }
  129.