Advertisement
pan7nikt

K2

Jan 8th, 2024
781
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <bitset>
  5.  
  6. using namespace std;
  7.  
  8. struct Warzywa
  9. {
  10.     char rodzaj[30];
  11.     int jakosc;
  12.     float masa;
  13. };
  14.  
  15. Warzywa** Tworzetablice(int,int);
  16. void zwolnij(Warzywa**, int);
  17. Warzywa wypelnij(Warzywa*);
  18. bool zapis(Warzywa* ,const int);
  19. bool parzystosc(int);
  20.  
  21. int main()
  22. {
  23.     int kolumny, wiersze;
  24.     cout << "Podaj ile chcesz miec kolumn w tablicy: ";
  25.     cin >> kolumny;
  26.     cout << "Podaj ile chcesz miec wierszy w tablicy: ";
  27.     cin >> wiersze;
  28.     zwolnij(Tworzetablice(kolumny, wiersze), kolumny);
  29.     Warzywa Banan;
  30.     wypelnij(&Banan);
  31.     const int rozmiar = 2;
  32.     Warzywa tab[rozmiar];
  33.     tab[0].jakosc = 11;
  34.     tab[0].masa = 2.4;
  35.     strcpy_s(tab[0].rodzaj, "sadasfsa fasfas");
  36.     tab[1].jakosc = 11;
  37.     tab[1].masa = 2.4;
  38.     strcpy_s(tab[1].rodzaj, "sadasfsa fasfas");
  39.     if (zapis(tab, rozmiar) == true) {
  40.         cout << "Zapisano" << endl;
  41.     }
  42.     else {
  43.         cout << "Nie zapisano" << endl;
  44.     }
  45.     int liczba = 2;
  46.     if (parzystosc(liczba) == true) {
  47.         cout << "Liczba bitow parzysta" << endl;
  48.     }
  49.     else{
  50.         cout << "Liczba bitow nieparzysta" << endl;
  51.     }
  52.  
  53. }
  54.  
  55. Warzywa** Tworzetablice(int kolumny, int wiersze) {
  56.     Warzywa**tablica = new Warzywa*[kolumny];
  57.     for (int i = 0; i <= kolumny-1; i++) {
  58.         tablica[i] = new Warzywa[wiersze];
  59.     }
  60.     return tablica;
  61. }
  62. void zwolnij(Warzywa** tablica, int kolumny) {
  63.     for (int i = 0; i <= kolumny - 1; i++) {
  64.         delete[] tablica[i];
  65.     }
  66.     delete[] tablica;
  67. }
  68. Warzywa wypelnij(Warzywa* B) {
  69.  
  70.     cout << "Podaj rodzaj Warzywa rodzaj moze miec tylko 30 znakow w innym przypadku tekst zostanie przyciety: ";
  71.     cin.ignore();
  72.     cin.getline(B->rodzaj, 30);
  73.     cout << "Podaj jakosc Warzywa: ";
  74.     do {
  75.         cin >> B->jakosc;
  76.         if (cin.fail()) {
  77.             cin.clear();
  78.             cin.ignore(numeric_limits<streamsize>::max(),'\n');
  79.             cout << "Podaj prawidlowa wartosc: ";
  80.         }
  81.         else {
  82.             break;
  83.         }
  84.     } while (true);
  85.     cout << "Podaj mase Warzywa: ";
  86.     do {
  87.         cin >> B->masa;
  88.         if (cin.fail()) {
  89.             cin.clear();
  90.             cin.ignore(numeric_limits<streamsize>::max(),'\n');
  91.             cout << "Podaj prawidlowa wartosc: ";
  92.         }
  93.         else {
  94.             break;
  95.         }
  96.     } while (true);
  97.     return *B;
  98. }
  99. bool zapis(Warzywa* p, const int in) {
  100.     string nazwa;
  101.     cout << "Podaj sciezke pliku jesli nie istnieje powstanie nowa ";  
  102.     cin >> nazwa;
  103.     ofstream plik(nazwa); //Tworzenie pliku
  104.     plik.close();
  105.     ofstream pl(nazwa, ios_base::app); //dopisywanie wartosci do pliku
  106.     for (int i = 0; i <= in - 1; i++) {
  107.         pl << p[i].rodzaj << endl;
  108.         pl << p[i].jakosc << endl;
  109.         pl << p[i].masa << endl;
  110.         pl << "+++++++++++++++++" << endl;
  111.     }
  112.     if (pl.good()) {
  113.         return true;
  114.     }
  115.     else
  116.     {
  117.         return false;
  118.     }
  119. }
  120. bool parzystosc(int l) {
  121.     bitset<sizeof(int) * 8> bit(l);
  122.     if (bit.count() % 2 == 0) {
  123.         return true;
  124.     }
  125.     else {
  126.         return false;
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement