Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // lab09.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <math.h>
- void line()
- {
- for (int i = 0; i < 20; i++)
- {
- printf("-+-");
- }
- printf("\n");
- }
- class Trapez
- {
- public:
- Trapez();
- Trapez( float px, float py, float pa, float pb, float ph );
- void init( float px, float py, float pa, float pb, float ph );
- void wypisz();
- void symetria( float n );
- void WczytanieTrapezu();
- void SymTrapezu();
- private:
- float x;
- float y;
- float a;
- float b;
- float d;
- float h;
- };
- Trapez::Trapez()
- {
- x = 1;
- y = 1;
- a = 4;
- b = 2;
- h = 1;
- }
- Trapez::Trapez( float px, float py, float pa, float pb, float ph )
- {
- x = px;
- y = py;
- if (pa > 0) { a = pa; }
- else { a = 4; }
- if (pb > 0) { b = pb; }
- else { b = 2; }
- if (ph > 0) { h = ph; }
- else { h = 1; }
- }
- void Trapez::init(float px, float py, float pa, float pb, float ph)
- {
- x = px;
- y = py;
- if (pa > 0) { a = pa; }
- else { a = 4; }
- if (pb > 0) { b = pb; }
- else { b = 2; }
- if (ph > 0) { h = ph; }
- else { h = 1; }
- }
- void Trapez::wypisz()
- {
- float px, py ;
- d = (a - b) / 2;
- printf("P1 = (%g,%g);\n" , x , y );
- px = x + a;
- py = y;
- printf("P2 = (%g,%g);\n" , px , py );
- px = px - d;
- py = py + h;
- printf("P3 = (%g,%g);\n" , px , py );
- px = px - b;
- py = py;
- printf("P4 = (%g,%g);\n" , px , py );
- printf("a = %g;\n", fabs(a) );
- printf("b = %g;\n", fabs(b) );
- printf("h = %g;\n", fabs(h) );
- line();
- }
- void Trapez::symetria( float n )
- {
- float odl;
- odl = fabs( n - x );
- if (x > n) { x = n - odl; }
- else if (x < n) { x = n + odl; }
- a = -a;
- b = -b;
- }
- void Trapez::WczytanieTrapezu()
- {
- float x1, y1, a, b, h;
- printf("Prosze podac wspolrzedne lewego-dolnego wierzcholka\n");
- printf("x = ");
- scanf_s("%f", &x1);
- printf("y = ");
- scanf_s("%f", &y1);
- printf("Prosze podac dolna dluzsza podstawe\n");
- scanf_s("%f", &a);
- printf("Prosze podac gorna krotsza podstawe\n");
- scanf_s("%f", &b);
- printf("Prosze podac wysokosc\n");
- scanf_s("%f", &h);
- this->init(x1, y1, a, b, h);
- this->wypisz();
- }
- void Trapez::SymTrapezu()
- {
- printf("Wzgledem, ktorej prostej pionowej chcesz wykonac symetrie?\nn = ");
- float n;
- scanf_s("%f", &n);
- this->symetria(n);
- this->wypisz();
- }
- //----------------------------------------------------------------
- class Kolo
- {
- public:
- Kolo(); //konstruktory
- Kolo( float px, float py, float pr );
- void init( float px, float py, float pr );
- void wypisz();
- void symetria( float n );
- void skala( float n );
- void WczytanieKola();
- void SymKola();
- void SkalaKola();
- private:
- float r;
- float x;
- float y;
- };
- Kolo::Kolo()
- {
- x = 0;
- y = 0;
- r = 1;
- }
- Kolo::Kolo( float px, float py, float pr )
- {
- x = px;
- y = py;
- if (pr > 0) { r = pr; }
- else { r = 1; }
- }
- void Kolo::init( float px, float py, float pr )
- {
- x = px;
- y = py;
- if (pr > 0) { r = pr; }
- else { r = 1; }
- }
- void Kolo::wypisz()
- {
- printf("S = (%g,%g);\n" , x , y );
- printf("r = %g;\n" , r );
- line();
- }
- void Kolo::symetria( float n )
- {
- float odl;
- odl = fabs( n - x );
- if (x > n) { x = n - odl; }
- else if (x < n) { x = n + odl; }
- }
- void Kolo::skala( float n )
- {
- if (n > 0) { r = r * n; }
- else { printf("Blad promienia\nPromien pozostnie niezmieniony\n"); }
- }
- void Kolo::WczytanieKola()
- {
- float px, py , pr;
- printf("Prosze podac wspolrzedne srodka kola:\n");
- printf("x = ");
- scanf_s("%f" , &px );
- printf("y = ");
- scanf_s("%f" , &py );
- printf("Prosze podac promien kola:\nr = ");
- scanf_s("%f" , &pr );
- this->init( px , py , pr );
- this->wypisz();
- }
- void Kolo::SymKola()
- {
- printf("Wzgledem, ktorej prostej pionowej chcesz wykonac symetrie?\nn = ");
- float n;
- scanf_s("%f", &n);
- this->symetria(n);
- this->wypisz();
- }
- void Kolo::SkalaKola()
- {
- printf("Prosze podac skale przeksztalcenia:");
- printf("k = ");
- float n;
- scanf_s("%f" , &n);
- this->skala( n );
- this->wypisz();
- }
- int main()
- {
- Trapez T[5];
- Kolo K[5];
- bool Exit = false;
- while ( !Exit )
- {
- int fig, num , mod;
- printf("Ktora figure chesz modyfikowac?\n");
- printf("1.Trapez\n2.Kolo\n");
- scanf_s("%d" , &fig);
- printf("Modyfikujemy figure o numerze: ");
- scanf_s("%d" , &num);
- switch ( fig )
- {
- case 1: // Trapez
- printf("Co modyfikujemy?\n");
- printf("1.Nowe Wspolrzedne\n2.Symetria\n");
- scanf_s("%d" , &mod );
- switch (mod)
- {
- case 1: // nowe wspolrzedne
- T[num].WczytanieTrapezu();
- break;
- case 2: // symetria
- T[num].SymTrapezu();
- break;
- default:
- printf("Nieprawidlowy wybor\n");
- break;
- }
- break;
- case 2: // Kolo
- printf("Co modyfikujemy?\n");
- printf("1.Nowe Wspolrzedne\n2.Symetria\n3.Skala\n");
- scanf_s("%d" , &mod );
- switch (mod)
- {
- case 1: // nowe wspolrzedne
- K[num].WczytanieKola();
- break;
- case 2: // symetria
- K[num].SymKola();
- break;
- case 3: // scala
- K[num].SkalaKola();
- break;
- default:
- printf("Nieprawidlowy wybor\n");
- break;
- }
- break;
- default:
- printf("Nieprawidlowy wybor\n");
- break;
- }
- for (int i = 0; i < 5; i++)
- {
- printf("krok %d\n" , i );
- T[i].wypisz();
- }
- printf("Czy chcesz zmodyfikowac jeszcze jakas figure?\n");
- printf("1.TAK\n2.NIE\n");
- int c;
- scanf_s("%d" , &c );
- if (c == 1) { Exit = false; }
- else if (c == 2) { Exit = true; }
- else { printf("Nieprawidlowy wybor\n"); Exit = true; }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement