Witam, mam problem z programem. Wydaje mi się że błąd tkwi gdzieś w menu.
Po kliknięciu 9 nic się nie dzieje, nie mogę zlokalizować zródła problemu.
Mam świadomość że kod nie jest ani dobry ani wspaniały. Dopiero się uczę.
#include <iostream>
#include <cstdlib>
#include <regex>
#include <fstream>
using namespace std;
int z=0;
struct tab
{
string imie, nazwisko, miejscowosc, kod_pocztowy, ulica, nr_domu, nr_mieszkania, pesel, nr_telefonu, stan_konta;
bool o=false;
};
tab tablica[1000];
fstream plik;
regex aimie("[A-Z]{1}[a-z]{2,19}");
regex anazwisko("[A-Z]{1}[a-z]{1,19}");
regex amiejscowosc("[A-Z]{1}[a-z]{2,39}");
regex akod_pocztowy("[0-9]{2}-[0-9]{3}");
regex aulica("[A-Za-z0-9\\s\\-]{3,40}");
regex anr_domu("[1-9]{1}[A-Za-z1-9]{1,3}");
regex anr_mieszkania("[1-9]{1,3}");
regex apesel("[0-9]{11}");
regex anr_telefonu("[0-9]{9}");
regex astan_konta("[0-9]{1,}\\,[0-9]{1,3}");
bool bimie;
bool bnazwisko;
bool bmiejscowosc;
bool bkod_pocztowy;
bool bulica;
bool bnr_domu;
bool bnr_mieszkania;
bool bpesel;
bool bnr_telefonu;
bool bstan_konta;
void funkcja_zapisanie()
{
for(z=0; z<=1000; z++)
{
if(tablica[z].o==true)
{
plik<<tablica[z].imie<<endl;
plik<<tablica[z].nazwisko<<endl;
plik<<tablica[z].miejscowosc<<endl;
plik<<tablica[z].ulica<<endl;
plik<<tablica[z].kod_pocztowy<<endl;
plik<<tablica[z].nr_mieszkania<<endl;
plik<<tablica[z].nr_domu<<endl;
plik<<tablica[z].pesel<<endl;
plik<<tablica[z].nr_telefonu<<endl;
plik<<tablica[z].stan_konta<<endl;
plik<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
}
else
break;
}
}
void funkcja_wyjscie()
{
exit(0);
}
void funkcja_odlaczanie()
{
}
void funkcja_wpisywanie()
{
for(int x=1; x<=10; x++)
{ tablica[z].o==true;
//////////////////////////////////////////////////////////////////////
if(x==1)
{
cout << "Podaj imie: ";
getline(cin,tablica[z].imie);
bimie=regex_match(tablica[z].imie, aimie);
if(bimie==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
////////////////////////////////////////////////////////////////////////
if(x==2)
{
cout << "Podaj nazwisko: ";
getline(cin,tablica[z].nazwisko);
bnazwisko=regex_match(tablica[z].nazwisko, anazwisko);
if(bnazwisko==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
////////////////////////////////////////////////////
if(x==3)
{
cout << "Podaj miejscowosc: ";
getline(cin,tablica[z].miejscowosc);
bmiejscowosc=regex_match(tablica[z].miejscowosc, amiejscowosc);
if(bmiejscowosc==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
///////////////////////////////////////////////////////
if(x==4)
{
cout << "Podaj kod pocztowy: ";
getline(cin,tablica[z].kod_pocztowy);
bkod_pocztowy=regex_match(tablica[z].kod_pocztowy, akod_pocztowy);
if(bkod_pocztowy==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
////////////////////////////////////////////////////
if(x==5)
{
cout << "Podaj ulice: ";
getline(cin,tablica[z].ulica);
bulica=regex_match(tablica[z].ulica, aulica);
if(bulica==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
///////////////////////////////////////////////////
if(x==6)
{
cout << "Podaj nr domu: ";
getline(cin,tablica[z].nr_domu);
bnr_domu=regex_match(tablica[z].nr_domu, anr_domu);
if(bnr_domu==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
//////////////////////////////////////////////////////////////////////
if(x==7)
{
cout << "Podaj numer mieszkania: ";
getline(cin,tablica[z].nr_mieszkania);
bnr_mieszkania=regex_match(tablica[z].nr_mieszkania, anr_mieszkania);
if(bnr_mieszkania==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
//////////////////////////////////////////////////////////
if(x==8)
{
cout << "Podaj pesel: ";
getline(cin,tablica[z].pesel);
bpesel=regex_match(tablica[z].pesel, apesel);
if(bpesel==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
///////////////////////////////////////////////////////////
if(x==9)
{
cout << "Podaj numer telefon: ";
getline(cin,tablica[z].nr_telefonu);
bnr_telefonu=regex_match(tablica[z].nr_telefonu, anr_telefonu);
if(bnr_telefonu==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
//////////////////////////////////////////////////////////////////////////
if(x==10)
{
cout << "Podaj stan konta: ";
getline(cin,tablica[z].stan_konta);
bstan_konta=regex_match(tablica[z].stan_konta, astan_konta);
if(bstan_konta==false)
{
cout << "Blad" <<endl;
x--;
}
else
x++;
}
z++;
}
}
void funkcja_usuwanie()
{
}
void funkcja_zmiana()
{
}
void funkcja_wyszukiwanie()
{
}
void funkcja_wyswietlanie()
{
for(z=0; z<=1000;z++)
{
if(tablica[z].o==true)
{
cout<<"Imie:" <<tablica[z].imie<<endl;
cout<<"Nazwisko:" <<tablica[z].nazwisko<<endl;
cout<<"Miejscowosc:" <<tablica[z].miejscowosc<<endl;
cout<<"Ulica:" <<tablica[z].ulica<<endl;
cout<<"Kod_pocztowy:" <<tablica[z].kod_pocztowy<<endl;
cout<<"Numer mieszkania:" <<tablica[z].nr_mieszkania<<endl;
cout<<"Numer domu:" <<tablica[z].nr_domu<<endl;
cout<<"Pesel:" <<tablica[z].pesel<<endl;
cout<<"Numer telefonu:" <<tablica[z].nr_telefonu<<endl;
cout<<"Stan konta:" <<tablica[z].stan_konta<<endl;
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
}
else
break;
}
}
void funkcja_zaladowanie()
{
string nazwa_bazy;
cout << "Podaj nazwe bazy: ";
cin >> nazwa_bazy;
nazwa_bazy += ".txt";
plik.open( nazwa_bazy.c_str(),ios::in );
if( !plik.good() )
{
cout << "Nie udalo sie zaladowac bazy danych" << endl;
funkcja_zaladowanie();
}
else
{
cout << "Udalo sie zaladowac baze danch" << endl;
}
}
void funkcja_menu()
{
cout << "[1]Zaladowanie bazy danych z pliku do pamieci" << endl;
cout << "[2]Zapisanie zmian"<< endl;
cout << "[3]Wyjscie z programu"<< endl;
cout << "[4]Odlaczenie pliku bazy danych"<< endl;
cout << "[5]Dodanie uzytkownika do bazy"<< endl;
cout << "[6]Usuniecie uzytkownika z bazy"<< endl;
cout << "[7]Zmiane danych uzytkownika"<< endl;
cout << "[8]Wyszukiwanie uzytkownikow wedlug kryteriow"<< endl;
cout << "[9]Przegadanie uzytkownikow jeden po drugim" << endl;
}
int main()
{
funkcja_zaladowanie()
int liczba;
for(;;)
{
funkcja_menu();
cin >> liczba;
if(liczba==1)
{
funkcja_zaladowanie();
continue;
}
else if(liczba==2)
{
funkcja_zapisanie();
continue;
}
else if(liczba==3)
{
funkcja_wyjscie();
continue;
}
else if(liczba==4)
{
funkcja_odlaczanie();
continue;
}
else if (liczba==5)
{
funkcja_wpisywanie();
continue;
}
else if(liczba==6)
{
funkcja_usuwanie();
continue;
}
else if(liczba==7)
{
funkcja_zmiana();
continue;
}
else if(liczba==8)
{
funkcja_wyszukiwanie();
continue;
}
else if(liczba==9)
{
funkcja_wyswietlanie();
continue;
}
}
}