Guest User

Untitled

a guest
Jan 21st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <iomanip>
  4. using namespace std;
  5.  
  6. struct ksiazka {
  7.     char autor[30], tytul[50];
  8.     int rokWydania, liczbaStron;
  9.     double cena;
  10.     char wypozyczona;
  11.     int ileWypozyczen;
  12.  
  13.     ksiazka() {
  14.  
  15.     }
  16.    
  17.     ksiazka(char *autor, char *tytul, int rokWydania, int liczbaStron, double cena, char wypozyczona, int ileWypozyczen) {
  18.         int autorlength = strlen(autor);
  19.         for (int i = 0; i < autorlength; i++) {
  20.             this->autor[i] = autor[i];
  21.         }
  22.         this->autor[autorlength] = '\0';
  23.  
  24.         for (int i = 0; i <= strlen(tytul); i++) {
  25.             this->tytul[i] = tytul[i];
  26.         }
  27.  
  28.         this->rokWydania = rokWydania;
  29.  
  30.         this->liczbaStron = liczbaStron;
  31.  
  32.         this->cena = cena;
  33.  
  34.         this->wypozyczona = wypozyczona;
  35.  
  36.         this->ileWypozyczen = ileWypozyczen;
  37.     }
  38.  
  39.     void print() {
  40.         cout << autor << endl;
  41.         cout << tytul << endl;
  42.         cout << rokWydania << endl;
  43.         cout << liczbaStron << endl;
  44.         cout << cena << endl;
  45.         cout << wypozyczona << endl;
  46.         cout << ileWypozyczen << endl;
  47.     }
  48.  
  49.     static ksiazka wczytaj() {
  50.         char autor[30], tytul[50];
  51.         int rokWydania, liczbaStron;
  52.         double cena;
  53.         char wypozyczona;
  54.         int ileWypozyczen;
  55.         bool poprawne = true;
  56.         do {
  57.             poprawne = true;
  58.             cout << "podaj autora: ";
  59.             cin >> setw(30) >> autor;
  60.             for (int i = 0;i < strlen(autor);i++) {
  61.                 if (((autor[i] >= 'A' && autor[i] <= 'Z') ||
  62.                     (autor[i] >= 'a' && autor[i] <= 'z')) == false)
  63.                     poprawne = false;
  64.             }
  65.         } while (poprawne == false);
  66.  
  67.  
  68.         while (true)
  69.         {
  70.             cout << "podaj tytul: ";
  71.             cin >> setw(50) >> tytul;
  72.             bool poprawny = true;
  73.             for (int i = 0; i < strlen(tytul); i++)
  74.             {
  75.                 /*if (((autor[i] >= 'A' && autor[i] <= 'Z') ||
  76.                     (autor[i] >= 'a' && autor[i] <= 'z') ||
  77.                     (autor[i] >= '0' && autor[i] <= '9')) == false)*/
  78.                 if ((autor[i] < 'A' && autor[i] > 'Z') && (autor[i] < 'a' && autor[i] > 'z') && (autor[i] < '0' && autor[i] > '9'))
  79.                 {
  80.                     poprawne = false;
  81.                     break;
  82.                 }
  83.             }
  84.             if (poprawny)
  85.                 break;
  86.         }
  87.         while (true) {
  88.             cout << "podaj rok wydania Cyko: ";
  89.             cin >> rokWydania;
  90.             if (rokWydania <= 2017 && rokWydania > 0)
  91.                 break;
  92.         }
  93.         while (true) {
  94.             cout << "podaj liczbe stron: ";
  95.             cin >> liczbaStron;
  96.             if (liczbaStron > 0)
  97.                 break;
  98.         }
  99.         while (true) {
  100.             cout << "podaj cene: ";
  101.             cin >> cena;
  102.             if (cena >= 0)
  103.                 break;
  104.         }
  105.         while (true) {
  106.             cout << "czy jest wypozyczona? ";
  107.             cin >> wypozyczona;
  108.             if (wypozyczona == 'T' || wypozyczona == 'N')
  109.                 break;
  110.         }
  111.         while (true) {
  112.             cout << "ile razy zostala wypozyczona? ";
  113.             cin >> ileWypozyczen;
  114.             if (ileWypozyczen >= 0)
  115.                 break;
  116.         }
  117.         return ksiazka(autor, tytul, rokWydania, liczbaStron, cena, wypozyczona, ileWypozyczen);
  118.     }
  119. };
  120.  
  121. void dodajksiazki(const int n, ksiazka *ksiazki) {
  122.     for (int i = 0;i < n;i++) {
  123.         ksiazki[i] = ksiazka::wczytaj();
  124.     }
  125. }
  126.  
  127. int main() {
  128.     /*char autor[30], tytul[50];
  129.     int rokWydania, liczbaStron;
  130.     double cena;
  131.     char wypozyczona;
  132.     int ileWypozyczen;
  133.  
  134.     cin >> setw(30) >> autor;
  135.     cin >> setw(50) >> tytul;
  136.     cin >> rokWydania;
  137.     cin >> liczbaStron;
  138.     cin >> cena;
  139.     cin >> wypozyczona;
  140.     cin >> ileWypozyczen;*/
  141.     const int n = 2;
  142.     ksiazka ksiazki[n];
  143.     dodajksiazki(n, ksiazki);
  144.  
  145.     for (int i = 0;i < n;i++) {
  146.         ksiazki[i].print();
  147.     }
  148.     ///*ksiazka sexy = ksiazka::wczytaj();*/
  149.  
  150.     //sexy.print();
  151.  
  152.  
  153.     while (true);
  154. }
Add Comment
Please, Sign In to add comment