Advertisement
MeehoweCK

Untitled

May 25th, 2023
797
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. const short N = 10;
  7.  
  8. struct Student
  9. {
  10.     string imie;
  11.     string nazwisko;
  12.     string e_mail;
  13.     short nr_roku;
  14.     float srednia_ocen_studenta;
  15. };
  16.  
  17. //void wypisywanie_danych_na_ekran(Student wypisywanie)
  18. //{
  19. //    cout << "DANE STUDENTA \n";
  20. //    cout << wypisywanie.imie << "\n";
  21. //    cout << wypisywanie.nazwisko << "\n";
  22. //    cout << wypisywanie.e_mail << "\n";
  23. //    cout << wypisywanie.nr_roku << "\n";
  24. //    cout << wypisywanie.srednia_ocen_studenta << "\n";
  25. //}
  26.  
  27. //void pobieranie_danych_studenta(Student& obiekt)
  28. //{
  29. //    cout << "Wpisz swoje imie: \n";
  30. //    cin >> obiekt.imie;
  31. //    cout << endl;
  32. //
  33. //    cout << "Wpisz swoje nazwisko: \n";
  34. //    cin >> obiekt.nazwisko;
  35. //    cout << endl;
  36. //
  37. //    cout << "Wpisz swoje e_mail: \n";
  38. //    cin >> obiekt.e_mail;
  39. //    cout << endl;
  40. //
  41. //    cout << "Wpisz swoj nr roku: \n";
  42. //    cin >> obiekt.nr_roku;
  43. //    cout << endl;
  44. //
  45. //    cout << "Wpisz srednia swoich ocen: \n";
  46. //    cin >> obiekt.srednia_ocen_studenta;
  47. //    cout << endl;
  48. //}
  49. //
  50. //void wczytywanie_danych_studentow(Student& dane, ifstream& plik)
  51. //{
  52. //    plik >> dane.imie >> dane.nazwisko >> dane.e_mail >> dane.nr_roku >> dane.srednia_ocen_studenta;
  53. //
  54. //}
  55.  
  56. istream& operator>>(istream& in, Student& dane)
  57. {
  58.     in >> dane.imie >> dane.nazwisko >> dane.e_mail >> dane.nr_roku >> dane.srednia_ocen_studenta;      // pobranie danych do buforu wejścia
  59.     return in;      // zwrócenie bufora
  60. }
  61.  
  62. ostream& operator<<(ostream& out, const Student& dane)
  63. {
  64.     out << "Dane studenta: " << dane.imie << ' ' << dane.nazwisko << ", adres e-mail: " << dane.e_mail << " (" << dane.nr_roku << " rok), srednia ocen: " << dane.srednia_ocen_studenta;
  65.     return out;
  66. }
  67.  
  68.  
  69. bool pobieranie_danych_z_pliku(Student* tablica, string nazwa_pliku)
  70. {
  71.     ifstream plik;
  72.     plik.open(nazwa_pliku);
  73.     if (plik.fail())
  74.         return 1;       // zwrócenie błędu
  75.  
  76.     for (short i = 0; i < N; ++i)
  77.     {
  78.         plik >> tablica[i];
  79.     }
  80.     plik.close();
  81.     return 0;
  82.  
  83. }
  84.  
  85. float srednia_ocen(Student* dane)
  86. {
  87.     float suma_ocen = 0;
  88.  
  89.     for (short i = 0; i < N; ++i)
  90.     {
  91.         suma_ocen += dane[i].srednia_ocen_studenta;
  92.     }
  93.  
  94.     float srednia = suma_ocen / N;
  95.  
  96.     return srednia;
  97.  
  98. }
  99.  
  100.  
  101.  
  102.  
  103. int main()
  104. {
  105.     Student tablica[N];
  106.  
  107.     cout << "Wpisz nazwe pliku, z ktorego maja zostac pobrane dane: ";
  108.     string nazwa_pliku;
  109.     cin >> nazwa_pliku;
  110.  
  111.     if (pobieranie_danych_z_pliku(tablica, nazwa_pliku))
  112.     {
  113.         cout << "Nie udalo sie odczytac danych z pliku.\n";
  114.         return 0;
  115.     }
  116.  
  117.     for (short i = 0; i < N; ++i)
  118.         cout << tablica[i] << endl;
  119.  
  120.     cout << endl;
  121.     cout << "Srednia uczniow wynosi: " << srednia_ocen(tablica);
  122.  
  123.  
  124.     return 0;
  125. }
  126.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement