Hej,
Uczę się programować od niedawna. Napisałem właśnie swój pierwszy program, ucząć się jednocześnie z kursów Mirosawa Zalenta dot. c++ oraz C++ object.
Będę ogromnie wdzięczny za Twój komentarz dot. kodu oraz sugestii, w jakim kierunku proponujesz się rozwijać. Podoba mi się w programowaniu tworzenie treści, które automatyzują jakieś procesy (czy to się nazywa back end, tak?)
Dopiero zaczynam i czuję się, jak typowy bohater w herosach, który wychodzi na początku gry ze swojeg zamku: "ciemno i głucho wszędzie!" :D
Pozdrawiam!
int main()
{
int nr_lini = 1;
string linia;
fstream plik;
plik.open("zapis.txt",ios::in);
if(plik.good()==false)
{
cout << "Nie udalo sie otworzyc pliku";
exit(0);
}
while(getline(plik,linia))
{
nazwa_portfela[nr_lini] = linia;
nr_lini++;
}
plik.close();
liczba_p = nr_lini;
nr_lini = 1;
Wydatek k[i];
fstream plik1;
plik1.open("baza_koszt.txt",ios::in);
if(plik1.good()==false)
{
cout << "Nie udalo sie otworzyc pliku";
exit(0);
}
while(getline(plik1,linia))
{
switch(nr_lini)
{
case 1: k[i].id = atoi(linia.c_str()); break;
case 2: k[i].koszt = atof(linia.c_str()); break;
case 3: k[i].dzien = atoi(linia.c_str()); break;
case 4: k[i].portfel = atoi(linia.c_str()); break;
}
if(nr_lini == 4)
{
suma_wydatkow_portfel[k[i].portfel] += k[i].koszt;
suma_wydatkow += k[i].koszt;
nr_lini =0; i++;
}
nr_lini++;
}
plik1.close();
nr_lini = 1;
Przychod p[j];
fstream plik2;
plik2.open("baza_przych.txt",ios::in);
if(plik2.good()==false)
{
cout << "Nie udalo sie otworzyc pliku";
exit(0);
}
while(getline(plik2,linia))
{
switch(nr_lini)
{
case 1: p[j].id = atoi(linia.c_str()); break;
case 2: p[j].przych = atof(linia.c_str()); break;
case 3: p[j].dzien = atoi(linia.c_str()); break;
case 4: p[j].portfel = atoi(linia.c_str()); break;
}
if(nr_lini == 4)
{
suma_przychodow += p[j].przych;
nr_lini =0; j++;
}
nr_lini++;
}
plik2.close();
while(zamknij == false)
{
system("cls");
cout << endl;
cout << "Suma kosztow: "<<suma_wydatkow << endl;
cout << "Suma przychodow: "<<suma_przychodow << endl<< endl;
/* cout << "-------------------" << endl; */
cout << "MENU GLOWNE" << endl;
cout << "-------------------" << endl;
cout << "1. Dodaj koszt." << endl;
cout << "2. Dodaj przychod." << endl;
cout << "3. Statystyki." << endl;
cout << "4. Opcje." << endl;
cout << "5. Zamknij program." << endl;
cout << "-------------------" << endl << endl;
char wybor;
cout << "Dodaj: "; wybor = getch();
cout << endl;
system("cls");
switch(wybor)
{
case '1':
{
k[i].id = i;
cout << "DODAJ KOSZT" << endl;
cout << "-------------------" << endl;
cout << "Wpisz koszt: "; cin >> k[i].koszt;
cout << "Wpisz date: "; cin >> k[i].dzien;
wybor_portfela(liczba_p);
cin >> k[i].portfel; cout << endl;
suma_wydatkow_portfel[k[i].portfel] += k[i].koszt;
suma_wydatkow += k[i].koszt;
fstream plik;
plik.open("baza_koszt.txt",ios::out | ios::app);
plik<<k[i].id<<endl;
plik<<k[i].koszt<<endl;
plik<<k[i].dzien<<endl;
plik<<k[i].portfel<<endl;
plik.close();
i++;
}
break;
case '2':
{
p[j].id = j;
cout << "DODAJ PRZYCHOD" << endl;
cout << "-------------------" << endl;
cout << "Wpisz przychod: "; cin >> p[j].przych;
cout << "Wpisz date: "; cin >> p[j].dzien;
wybor_portfela(liczba_p);
cin >> p[j].portfel; cout << endl;
suma_przychodow += p[j].przych;
fstream plik;
plik.open("baza_przych.txt",ios::out | ios::app);
plik<<p[j].id<<endl;
plik<<p[j].przych<<endl;
plik<<p[j].dzien<<endl;
plik<<p[j].portfel<<endl;
plik.close();
j++;
}
break;
case '3': statystyki(liczba_p);
break;
case '4':
{
cout << "OPCJE" << endl;
cout << "-------------------" << endl;
}
break;
case '5': zamykanie();
break;
default: cout << "Nie ma takiej opcji w menu!";
}
}
return 0;
}
void odczyt_ustawien()
{
}
void wybor_portfela(int x)
{
cout << "Wybierz portfel:"<< endl; //cin >> k[i].portfel; cout << endl;
for (int i = 1; i<x; i++)
{
cout << " "<<i<<". " << nazwa_portfela[i]<< endl;
}
}
void statystyki(int x)
{
cout << "STATYSTYKI" << endl;
cout << "-------------------" << endl;
for (int i = 1; i<x; i++)
{
cout << " "<<i<<". "<<nazwa_portfela[i]<<": " << suma_wydatkow_portfel[i]<< endl;
}
cin >> test;
}
void zamykanie()
{
do
{
char wybor;
cout << "Czy zapisac zmiany przed zamknieciem programu? (T/N)" << endl; wybor = getch();
switch(wybor)
{
case 't': zapisywanie(); czy_zapisac = true; zamknij = true; break;
case 'n': zamknij = true; czy_zapisac = true; break;
default: system("cls"); cout << "Wpisz T (tak) lub N (nie)!" << endl << endl ; czy_zapisac = false;
}
}while(czy_zapisac == false);
}