PiotrJurek

Zad8

May 30th, 2020
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. void podanie_liczb(ofstream &zapis)
  8. {
  9.     bool isntok;
  10.     int x;
  11.     int zgadywane[6];
  12.     for(int i=0; i<6; i++)
  13.     {
  14.         do
  15.         {
  16.             isntok = false;
  17.             cout << "Podaj " << i+1 << " liczbe (od 1 do 49):" << endl;
  18.             if(!(cin >> x))
  19.             {
  20.                 cin.clear();
  21.                 cin.ignore();
  22.                 isntok = true;
  23.                 system("cls");
  24.             }
  25.             else
  26.             {
  27.                 system("cls");
  28.                 if(x<1 || x>49)
  29.                 {
  30.                     isntok = true;
  31.                     cout << "Liczba musi byc z przedzialu 1-49!" << endl;
  32.                 }
  33.                 else
  34.                 {
  35.                     for(int j=0; j<6; j++)
  36.                     {
  37.                         if(x==zgadywane[j])
  38.                         {
  39.                             isntok = true;
  40.                             cout << "Nie podawaj dwa razy tej samej liczby!" << endl;
  41.                         }
  42.                     }
  43.                 }
  44.             }
  45.         }while(isntok);
  46.  
  47.         zgadywane[i] = x;
  48.         zapis << x << endl;
  49.     }
  50. }
  51.  
  52.  
  53. int sprawdzanie_liczb(ifstream &odczyt)
  54. {
  55.     srand(time(NULL));
  56.     bool isntok;
  57.     int x;
  58.     int wylosowane[6];
  59.     int odczytane[6];
  60.     int ile = 0;
  61.     for(int i=0; i<6; i++)
  62.     {
  63.         odczyt >> odczytane[i];
  64.     }
  65.     for(int i=0; i<6; i++)
  66.     {
  67.         do
  68.         {
  69.             x = rand()%49+1;
  70.             isntok = false;
  71.             for(int j=0; j<6; j++)
  72.             {
  73.                 if(x==wylosowane[j])
  74.                 {
  75.                     isntok = true;
  76.                 }
  77.             }
  78.         }
  79.         while(isntok);
  80.         wylosowane[i] = x;
  81.     }
  82.     for(int i=0; i<6; i++)
  83.     {
  84.         for(int j=0; j<6; j++)
  85.         {
  86.             if(odczytane[i] == wylosowane[j])
  87.             {
  88.                 ile++;
  89.             }
  90.         }
  91.     }
  92.     return ile;
  93. }
  94.  
  95.  
  96. int main()
  97. {
  98.     ofstream zapis("liczby.txt");
  99.     ifstream odczyt("liczby.txt");
  100.     if(zapis.is_open())
  101.     {
  102.         podanie_liczb(zapis);
  103.     }
  104.     else
  105.     {
  106.         cout << "Blad zapisu do pliku." << endl;
  107.     }
  108.  
  109.     if(odczyt.is_open())
  110.     {
  111.         cout << "Wytypowales poprawnie " << sprawdzanie_liczb(odczyt) << " liczb." << endl;
  112.     }
  113.     else
  114.     {
  115.         cout << "Blad odczytu pliku." << endl;
  116.     }
  117.     return 0;
  118. }
Add Comment
Please, Sign In to add comment