MeehoweCK

Untitled

Apr 10th, 2021
718
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Zadanie 1.
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. class Tekst
  8. {
  9.     char znaki[100];
  10.     unsigned ile;
  11. public:
  12.     Tekst();
  13.     Tekst(char, unsigned);
  14.     Tekst(string);
  15.     void zastap(char, char);
  16.     void monitor() const;
  17. };
  18.  
  19. Tekst::Tekst() : ile(100)
  20. {
  21.     for(unsigned i = 0; i < 100; ++i)
  22.         znaki[i] = 'x';
  23. }
  24.  
  25. Tekst::Tekst(char znak_wzorcowy, unsigned liczba_powtorzen) : ile(liczba_powtorzen)
  26. {
  27.     for(unsigned i = 0; i < liczba_powtorzen; ++i)
  28.         znaki[i] = znak_wzorcowy;
  29. }
  30.  
  31. Tekst::Tekst(string tablica)
  32. {
  33.     ile = tablica.size();
  34.     for(unsigned i = 0; i < ile; ++i)
  35.         znaki[i] = tablica[i];
  36. }
  37.  
  38. void Tekst::zastap(char znak_1, char znak_2)
  39. {
  40.     for(unsigned i = 0; i < ile; ++i)
  41.         if(znaki[i] == znak_1)
  42.             znaki[i] = znak_2;
  43. }
  44.  
  45. void Tekst::monitor() const
  46. {
  47.     for(unsigned i = 0; i < ile; ++i)
  48.         cout << znaki[i];
  49. }
  50.  
  51. int main()
  52. {
  53.     cout << "Wybierz sposob tworzenia obiektu:\n";
  54.     cout << "\t1 - konstruktor bezargumentowy\n";
  55.     cout << "\t2 - konstruktor dwuargumentowy\n";
  56.     cout << "\t3 - konstruktor jednoargumentowy\n";
  57.     char komenda, znak, znak1;
  58.     unsigned liczba;
  59.     string tablica;
  60.     do
  61.     {
  62.         komenda = _getch();
  63.     }
  64.     while(komenda < '1' || komenda > '3');
  65.  
  66.     Tekst* tekst;
  67.  
  68.     if(komenda == '1')
  69.         tekst = new Tekst;
  70.     else if(komenda == '2')
  71.     {
  72.         cout << "Podaj znak wzorcowy: ";
  73.         znak = _getch();
  74.         cout << znak << endl;
  75.         cout << "Podaj liczbe powtorzen: ";
  76.         cin >> liczba;
  77.         tekst = new Tekst(znak, liczba);
  78.     }
  79.     else
  80.     {
  81.         cout << "Podaj ciag znakow do wczytania: ";
  82.         cin >> tablica;
  83.         tekst = new Tekst(tablica);
  84.     }
  85.  
  86.     bool flaga = true;
  87.  
  88.     while(flaga)
  89.     {
  90.         cout << "\nCo chcesz zrobic?\n";
  91.         cout << "\t1 - uruchom funkcje monitor\n";
  92.         cout << "\t2 - uruchom funkcje zastap\n";
  93.         cout << "\t3 - wyjdz z programu\n";
  94.  
  95.         do
  96.         {
  97.             komenda = _getch();
  98.         }
  99.         while(komenda < '1' || komenda > '3');
  100.  
  101.         switch(komenda)
  102.         {
  103.         case '1':
  104.             tekst->monitor();
  105.             break;
  106.         case '2':
  107.             cout << "Podaj znak, ktory chcesz zastapic: ";
  108.                  znak = _getch();
  109.             cout << znak << endl;
  110.             cout << "Podaj znak, ktory chcesz wstawic do tekstu: ";
  111.             znak1 = _getch();
  112.             cout << znak1 << endl;
  113.             tekst->zastap(znak, znak1);
  114.             break;
  115.         case '3':
  116.             cout << "Nastapi wyjscie z programu. Wcisnij dowolny przycisk, aby zakonczyc... ";
  117.             _getch();
  118.             flaga = false;
  119.         }
  120.     }
  121.     delete tekst;
  122.  
  123.     return 0;
  124. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×