Jako, że jestem nowy to witam wszystkich. Mam prośbę o sprawdzenie kodu na zaliczenie na studiach. Są to moje początki z programowaniem więc proszę o wyrozumiałość. Proszę również o sugestie w których miejscach należało by poprawić kod lub coś dodać.
Treść zaliczenie brzmi:
"Napisać program ewidencjujący studentów i ich oceny z egzaminów. Program pobiera od użytkownika liczby N - określająca ilość studentów oraz M - określającą ilość egzaminów, a następnie dla każdego studenta wylicza średnią z ocen. Dane osoby powinny zawierać co najmniej imię, nazwisko. Program ma mieć możliwość zapisu danych do pliku i odczytu danych z pliku. Ma również zawierać menu."
#include <iostream>
#include <cstdio>
#include <math.h>
#include <fstream>
using namespace std;
int main()
{
int liczba_stud, liczba_egz; //ilosc studentow, ilosc egzaminow
string imie[200], nazwisko[200]; //tablica z imionami i nazwiskami
string dane;
int ocena_egz[200][50], egzamin[200]; //ocena z danego egzaminu, suma ocen z egzaminu
double srednia; //zmiena pod ktora bedzie podstawiana srednia
int menu = 0; //zminna sterujące funkcją switch - case
fstream dziennik; //funkcja pozwalająca na zapis i odczyt
dziennik.open("dziennik.txt", ios::in | ios::out);
{
cout << "Witaj w programie Dziennik Studenta ver. 2.0" << endl; //blok powitalny
cout << endl;
cout << "Aby rozpoczac prace nacisnij ENTER" << endl;
cout << endl;
system("PAUSE");
cout << "Podaj liczbe studentow: ";
cin >> liczba_stud;
cout << "Podaj liczbe egzaminow: ";
cin >> liczba_egz;
system("PAUSE");
cout << "Wybierz co chcesz zrobic: " << endl; //blok menu
cout << "1 - Rozpocznij program z zapisem" << endl;
cout << "2 - Odczytaj poprzedni zapis" << endl;
cout << "3 - Zakoncz program" << endl;
cin >> menu;
switch (menu) //sterowanie blokiem wyboru
{
case 1:
{
cout << "Wypełnij ponizszy formularz: " << endl;
for (int i=0; i<liczba_stud; i++)
{
cout << "Student " << i+1 <<":" << endl; //pobieranie danych studenta
cout << "Imie: ";
cin >> imie[i];
cout << "Nazwisko: ";
cin >> nazwisko[i];
cout << endl;
for (int e=0; e<liczba_egz; e++)
{
cout << "Egzamin " << e+1 << " - ocena: "; //wypisywanie numerow egzaminu
do //petla sprawdzajaca oceny z zakresu od 2 do 5
{
cin >> ocena_egz[i][e];
if (ocena_egz[i][e] > 5 || ocena_egz[i][e] < 2)
cout << "Nieprawidlowa ocena! Wstaw poprawna: ";
} while (ocena_egz[i][e] > 5 || ocena_egz[i][e] < 2);
}
cout << endl;
}
for (int i=0; i<liczba_stud; i++)
{
cout << imie[i] << " " << nazwisko[i] << " - srednia z ocen: ";
for (int e=0; e<liczba_egz; e++)
{
egzamin[i]=egzamin[i]+ocena_egz[i][e];
}
srednia = (double)egzamin[i] / (double)liczba_egz; //wylicza srednia z egzaminow dla danego studenta
cout.precision(2);
cout << srednia << endl;
dziennik << imie[i] << " " << nazwisko[i] << " ";
for (int e=0; e<liczba_egz; e++)
{
dziennik << ocena_egz[i][e] << ", ";
}
dziennik << "Srednia: " << srednia << endl; //podstawienie pod zmienna srednia danego studenta
}
break;
}
case 2:
for (int i=0; i<liczba_stud; i++) //odczytywanie danych z zapisanego pliku
{
getline(dziennik, dane );
cout << dane <<endl;
}
break;
case 3: //konczenie programu
exit (0);
break;
}
dziennik.close(); //zamykanie pliku z danymi
}
return 0;
}