Restauracja - prośba o nakierowanie w kodzie

0

Witam. Kod pisze w notatniku na macu i jest on niedokonczony ani razu nie kompilowany , bo zaczalem godzine temu. Powiem tylko tyle, ze jestem laikiem i chce to napisac po swojemu, ale sie troszke zamotalem. Wiem, ze ify moge zastapic switchami. Proste pytanie. Jak zrobic, zeby w case 2 zapisywalo zamowienie do case 4 i je wyswietlalo, i podliczalo laczne zamowienia (moja metoda jak dwa razy zamowie jedna rzecz to pewnie nie podliczy tego dobrze) i wyswietlalo w case 5? (c++) . Aha wiem, ze jest duzo bledow, ale na kompilatorze postaram sie je usunac. Wiem tez, ze jest duzo prostszych metod, ale w koncu chce zrobic cos prawie sam. Moj sposob na podliczenie jest bez sensu i wiem, ze istnieje cos takiego jak tablice, ale prosze o pomoc nakierowanie jak to zrobic dokladniej. pozniej bede eliminowal bledy.


#include <cstdlib>
#include <iostream>
#include <stdio.h>

using namespace std;
int Wybor, Zamowienie, nr_zam, sala, miesiac, raport, rozliczenie;
int l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15;

int main()
{
menu ();
cout << "MENU GLOWNE" << endl;
cout << "***********" << endl;
cout << "WITAMY W RESTAURACJI VENECJA" <<endl;
cout << "1. Wyswietl Menu" << endl;
cout << "2. Zloz Zamowienie" << endl;
cout << "3. Rezerwacja sali" << endl;
cout << "4. Pokaz co zamowiles" << endl;
cout << "5. "Raport" <<endl;
cout << "6. Wyjscie z programu" << endl;

cout << " Prosze wybrac numer: " ;
cin >> Wybor;
switch(Wybor)
{
 case 1:
 cout << "MENU " <<endl;
 cout << "PIZZA: " <<endl;
 cout << "1. * Margherita *\nSkladniki: swiezy sos pomidorowy, ser mozzarella, swieza bazylia\nsrednica wynosi 40 cm, cena: 15 PLN"<< endl;                    
 cout << "2. * Prosciutka *\nSkladniki: swiezy sos pomidorowy, ser mozzarella, szynka\nsrednica wynosi 40 cm, cena: 17 PLN"<< endl;         
 cout << "3. * Capricciosa *\nSkladniki: swiezy sos pomidorowy, ser mozzarella, oliwki, szynka, pieczarki\nsrednica wynosi 40 cm, cena: 19 PLN" <<endl;
 cout << "4. * Regina Rossas *\nSkladniki: swiezy sos pomidorowy, ser mozzarella, szynka, pieczarki\nsrednica wynosi 40 cm, cena: 21 PLN"<<endl;                         
 cout << "5. * Regina Bianca *\nSkladniki: ser mozzarella, szynka, pieczarki\nsrednica wynosi 40 cm, cena: 22 PLN"<<endl; 
 cout << "6. * Estate *\nsos pomidorowy, ser mozzarella, rucola, małe pomidory, ser parmezan\nsrednica wynosi 40 cm, cena: 24 PLN"<<endl;
 cout << "7. * Diavola *\nswiezy sos pomidorowy, ser mozzarella, salami pikantne\nsrednica wynosi 40 cm, cena: 26 PLN"<<endl;
 cout << "8. * Fast Food *\nswiezy sos pomidorowy, ser mozzarella, frytki, parowki\nsrednica wynosi 40 cm, cena: 27 PLN"<<endl;
 cout << "NAPOJE: " <<endl;
 cout << "9. Coca Cola 1l     cena: 5zl"<<endl;
 cout << "10. Coca cola 2l     cena: 7zl"<<endl;
 cout << "11. Fanta 1l         cena: 5zl"<<endl;
 cout << "12. Fanta 2l         cena: 7zl"<<endl;
 cout << "13. Tyskie 0,5l      cena: 6zl"<<endl;
 cout << "14. Zywiec 0,5l      cena: 6zl"<<endl;
 cout << "15. Lech 0,5l        cena: 6zl"<<endl;
cout << "Jesli chcesz cos zamowic prosimy wybrac opcje numer 2." <<endl;
menu();
}
case 2:
{
do while (Zamowienie != 1 && Zamowienie != 2)
{
cout << "Jesli chcesz zlozyc zamowienie kliknij 1."
cout << "Jesli nie chcesz zlozyc zamowienia(wrocic do poprzedniego menu) kliknij 2."
cin >> Zamowienie;

if (Zamowienie==1)
{
cout << "Prosze podac numer zamowienia: ";
cin >> nr_zam;
switch(nr_zam)
{
case 1:
{
cout << " Dziekujemy za zamowienie Margerity za 15 PLN " <<endl;
l1=15;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 2:
{
cout << " Dziekujemy za zamowienie Prosciutkiej za 17 PLN " <<endl;
l2=17;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 3:
{
cout << " Dziekujemy za zamowienie Capricciosy za 19 PLN " <<endl;
l3=19;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;
}
case 4:
{
cout << " Dziekujemy za zamowienie Reginy Rossy za 21 PLN " <<endl;
l4=21;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 5:
{
cout << " Dziekujemy za zamowienie Reginy Biancy za 22 PLN " <<endl;
l5=22;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 6:
{
cout << " Dziekujemy za zamowienie Estate za 24 PLN " <<endl;
l6=24;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 7:
{
cout << " Dziekujemy za zamowienie Diavoli za 26 PLN " <<endl;
l7=26;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 8:
{
cout << " Dziekujemy za zamowienie Fast Fooda za 27 PLN " <<endl;
l8=27;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 9:
{
cout << " Dziekujemy za zamowienie Coca Coli 1l za 5 PLN " <<endl;
l9=5;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;
}
case 10:
{
cout << " Dziekujemy za zamowienie Coca Coli 2l za 7 PLN " <<endl;
l10=7;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 11:
{
cout << " Dziekujemy za zamowienie Fanty 1l za 5 PLN " <<endl;
l11=5;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 12:
{
cout << " Dziekujemy za zamowienie Fanty 2l za 7 PLN " <<endl;
l12=7;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 13:
{
cout << " Dziekujemy za zamowienie Tyskiego 0,5l za 6 PLN " <<endl;
l13=6;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 14:
{
cout << " Dziekujemy za zamowienie Zywca 0,5l za 6 PLN " <<endl;
l14=6;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;

}
case 15:
{
cout << " Dziekujemy za zamowienie Lecha 0,5l za 6 PLN " <<endl;
l15=6;
cout << "Czy zyczy Pan/i sobie cos jeszcze? " <<endl;
}
}

}
else if ( Zamowienie ==2)
{
cout << "Wrocimy do menu glownego, jesli chcesz wyjsc prosze wybrac opcje WYJSCIE Z PROGRAMU" <<endl;
menu();
}
else if ( Zamowienie != 1 && Zamowienie != 2}
{
cout << "Wybrales zly numer. Prosze podac numer ponownie:" ;
cin >> Zamowienie;
}
}
}

case 3:
{
cout << "Czy chcesz zarezerwowac sale? " <<endl;
cout << " Jesli tak kliknij 1\nJesli nie kliknij 2 " <<endl;
cout << " Twoj wybor to : " ;
cin >> sala;
do while (sala != 1 && sala !=2)
{
if (sala ==1)
{
cout << "Prosze wybrac miesiac: lipiec, sierpien, wrzesien 2015 r."<<endl;
cout <<" Jesli chcesz zarezerwowac sale w lipcu kliknij 1" << endl;
cout <<" Jesli chcesz zarezerwowac sale w sierpniu kliknij 2" << endl;
cout <<" Jesli chcesz zarezerwowac sale w  wrzesniu kliknij 3" << endl;
cout <<" Jesli chcesz zarezerwowac sale w pozniejszych terminach kliknij 4." << endl;
cin >> miesiac;
do while (miesiac !( miesiac < 1 || miesiac > 4))
{
if ( miesiac == 1 )
{
cout << " W lipcu mamy tylko jeden wolny termin 24.07.2015r." <<endl;
cout << " Jesli chcesz zarezerwowac sale, prosimy o kontakt telefoniczny lub osobisty," <<endl;
cout << " aby omowic wszelkie kwestie odnosnie wystrojenia sali, tematyki, kosztow oraz cateringu" <<endl;
break;
}
else if (miesiac == 2 )
{
cout << " W sierpniu mamy wolne dwa terminy 15.08.2015r. oraz 20.08.2015r." <<endl;
cout << " Jesli chcesz zarezerwowac sale, prosimy o kontakt telefoniczny lub osobisty," <<endl;
cout << " aby omowic wszelkie kwestie odnosnie wystrojenia sali, tematyki, kosztow oraz cateringu" <<endl;
break;
}
else if (miesiac == 3 )
{
cout << " W sierpniu mamy wolne trzy terminy 10.09.2015r. , 15.09.2015r. oraz 20.09.2015r." <<endl;
cout << " Jesli chcesz zarezerwowac sale, prosimy o kontakt telefoniczny lub osobisty," <<endl;
cout << " aby omowic wszelkie kwestie odnosnie wystrojenia sali, tematyki, kosztow oraz cateringu" <<endl;
break;
}
else if(miesiac == 4 )
{
cout << "Jesli chcesz zarezerwowac sale w pozinejszych terminach, rowniez prosimy o kontakt telefoniczny lub osobisty, " <<endl;
cout << " aby omowic wszelkie kwestie odnosnie daty, wystrojenia sali, tematyki, kosztow oraz cateringu" <<endl;
break;
else if( miesiac < 1 || miesiac > 4)
{
cout << "Wybrales zly numer. Prosze podac numer ponownie:" ;
cin >>miesiac;
}
}
}
else if( sala == 2)
{
cout << "Wrocimy do menu glownego, jesli chcesz wyjsc prosze wybrac opcje WYJSCIE Z PROGRAMU" <<endl;
menu();
}
else if( sala !=1) && (sala !=2)
{
cout << "Wybrales zly numer. Prosze podac numer ponownie:" ;
cin >> sala;
}
}
}

case 5:
{
system("cls");
cout << "Jesli chcesz zobaczyc raport kliknij 1. " <<endl;
cout << "Jesli nie, kliknij 2." << endl;
cin>> raport;
do while (raport !=1 && raport !=2)
{
if(raport ==1)
{
rozliczenie = l1+l2+l3+l4+l5+l6+l7+l8+l9+l10+l11+l12+l13+l14+l15;
cout << "Raport z dzisiejszego dnia wynosi = " << rozliczenie << " PLN " ;
break;
}
else if (raport ==2)
{
cout << "Wrocimy do menu glownego, jesli chcesz wyjsc prosze wybrac opcje WYJSCIE Z PROGRAMU" <<endl;
menu();
}
else if (raport !=1) & (raport !=2)
{
cout << "Wybrales zly numer. Prosze podac numer ponownie:" ;
cin >> raport;
}
}

}

case 6:
{
cout << " Dziekujemy za wizyte w naszej restauracji " ;
exit(0); 

}   
default:
{
cout << " Wybrales zly numer. Prosze podac numer ponownie: ";
menu();

}   
 
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
}
0

widze, ze nie ma case 4 i w zagniezdzonym case w case 1 nie ma defaulta, po prostu sa nie dokonczone z powodu braku sensownego pomyslu. da sie to jakos zrobic w prosty sposob?

0

A jak pozycji w menu będzie 100 to też tak będziesz ten kod pisał? A milion? Gdzie jest ta granica kiedy przestaniesz robić copy-paste i zaczniesz myśleć? Lekcja na dziś: pętle i tablice.

0

dzieki za odpowiedz, choc mysle ,ze petle dobrze ogarniam. tablice gorzej. poczytam i wstawie poprawiony kod, tablice w miejscu case 2 wstawic ? czy gdzies jeszcze miales na mysli. moze rozwin troche

2

Nie jestem pewien, ale chyba @Shalom mial na mysli to, zeby uzyc tablic i petli zamiast tych ifowo-switchowych potworow;p

0

Pomyśl jak byś to zrobił gdyby menu miało milion pozycji.

0

No dzieki, dzieki za odpowiedzi. Czy chodzi mniej wiecej o cos takiego? (kod niepelny)

int Wybor, Zamowienie, numer;

int main()
{
menu ();
cout << "MENU GLOWNE" << endl;
cout << "***********" << endl;
cout << "WITAMY W RESTAURACJI VENECJA" <<endl;
cout << "1.Wyswietl menu" << endl;
cout << "2. Zloz Zamowienie" << endl;
cout << "3. Rezerwacja sali" << endl;
cout << "4. Pokaz co zamowiles" << endl;
cout << "5. "Raport" <<endl;
cout << "6. Wyjscie z programu" << endl;
cout << " Prosze wybrac numer: " ;
cin >> Wybor;
int nr_zam[19]= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
int Cennik[19] = { 15, 17, 18, 19, 20, 20, 22, 22, 24, 26, 28, 30, 5, 7, 5, 7, 6, 6, 6 };

char Menu[1000] = { 
{   *Margherita*  Skladniki: sos pomidorowy, bazylia, srednica = 40cm, }   
{   *Capricosa*   Skladniki: sos pomidorowy, ser, pieczarki, szynka, srednica = 40cm, }   
{   *Diabolo*       Skladniki: sos pomidorowy, papryczki chilli, oregano, srednica = 40cm, }   
{   *Wiejska*      Skladniki: sos pomidorowy, ser, cebula, czosnek, pomidory, szynka, srednica = 40cm, }   
{   *Miejska*      Skladniki: sos pomidorowy, ser , kurczak, papryka, kukurydza, srednica = 40cm, }   
{   *Klasyczna*  Skladniki: sos pomidorowy, ser, kurczak, pomidor, czerwona fasola, srednica = 40cm, }   
{   *Ameryka*    Skladniki: sos pomidorowy, ser, boczek, bekon, salami, srednica = 40cm, }   
{   *Studencka*  Skladniki: sos pomidorowy, podwojny ser, podwojny kurczak, bazylia, srednica = 40cm, }   
{   *Wegetarian* Skladniki: sos pomidorowy, ser, oregano, pomidor, czerwona fasola, bazylia, srednica = 40cm, }   
{   *Zwykla*       Skladniki: sos pomidorowy, ser mozzarella,kurczak, bazylia, srednica = 40cm, }   
{   *Hawajska*   Skladniki: sos pomidorowy, ser, banany, ananas, szynka, srednica = 40cm, }   
{   *Solo*           Skladniki: sos pomidorowy, ser, pomidor, boczek, bekon, oregano,papryczka chilli, srednica = 40cm, }   
{   *Coca Cola 1 L* , }   
{   *Coca Cola 2 L* , }   
{   *Fanta 1 L* , }   
{   *Fanta 2 L* , }   
{   *Zywiec 0,5 L* , }   
{   *Tyskie 0,5 L* , }   
{   *Lech 0,5 L* , }
}   

switch(Wybor)
{
 case 1:
cout << "MENU " <<endl;
cout << "********" <<endl;
for (i=0, i <=19, i++)
{
cout << nr_zam[i] << ". " << Menu[i] << " Cena: " <<cennik[i] << " PLN" <<endl; 
}                
cout << "Jesli chcesz cos zamowic prosimy wybrac opcje numer 2." <<endl;
menu();
}
case 2:
{
cout << "Jesli chcesz zlozyc zamowienie kliknij 1."
cout << "Jesli nie chcesz zlozyc zamowienia(wrocic do poprzedniego menu) kliknij 2."
cin >> Zamowienie;
do while (Zamowienie == 2)
{
if (Zamowienie==1)
{
cout << "Prosze podac numer zamowienia: ";
cin >> numer;
cout << "Zamowiles: " << nr_zam[numer-1] << ". " << menu[numer-1] << " . Dziekujemy !"<< endl;
cout << " Czy chcesz zamowic cos jeszcze ? (Jesli tak kliknij 1.  Jesli nie kliknij 2. ) " <<endl;
cin >> Zamowienie;
}
if else (Zamowienie != 1 && Zamowienie !=2)
{
cout << " Podales zly numer. Prosze wpisac numer ponownie" << endl;
cin >> Zamowienie;
}
if else (Zamowienie==2)
{
cout << " Wrocimy do Menu glownego, jesli chcesz wyjsc z programu prosze kliknac ' Wyjscie z programu ' " ;
menu()
}
}
}

Pytanie za milion punktow. Jak zrobic w tym przypadku opcje wyswietlania zamowienia?
moja wizja wyglada mniej wiecej tak, ze jak ktos cos zamowi kliknie dane zamowienie , wyskakuje pytanie czy cos jeszcze i jeszcze raz kilknie (zamowi 2ga rzecz) to zeby zapisywalo sie to do case nr.4 wyswietl zamowienie.
Jak widzicie dosc szybko pojmuje( tak mi sie wydaje ), wiec prosze o elokwetne odpowiedzi.

dodanie znacznika <code class="cpp"> - @furious programming

0
 int Wybor, Zamowienie, numer;

int main()
{
menu ();
cout << "MENU GLOWNE" << endl;
cout << "***********" << endl;
cout << "WITAMY W RESTAURACJI VENECJA" <<endl;
cout << "1.Wyswietl menu" << endl;
cout << "2. Zloz Zamowienie" << endl;
cout << "3. Rezerwacja sali" << endl;
cout << "4. Pokaz co zamowiles" << endl;
cout << "5. "Raport" <<endl;
cout << "6. Wyjscie z programu" << endl;
cout << " Prosze wybrac numer: " ;
cin >> Wybor;
int nr_zam[19]= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
int Cennik[19] = { 15, 17, 18, 19, 20, 20, 22, 22, 24, 26, 28, 30, 5, 7, 5, 7, 6, 6, 6 };

char Menu[1000] = { 
{   *Margherita*  Skladniki: sos pomidorowy, bazylia, srednica = 40cm, }   
{   *Capricosa*   Skladniki: sos pomidorowy, ser, pieczarki, szynka, srednica = 40cm, }   
{   *Diabolo*       Skladniki: sos pomidorowy, papryczki chilli, oregano, srednica = 40cm, }   
{   *Wiejska*      Skladniki: sos pomidorowy, ser, cebula, czosnek, pomidory, szynka, srednica = 40cm, }   
{   *Miejska*      Skladniki: sos pomidorowy, ser , kurczak, papryka, kukurydza, srednica = 40cm, }   
{   *Klasyczna*  Skladniki: sos pomidorowy, ser, kurczak, pomidor, czerwona fasola, srednica = 40cm, }   
{   *Ameryka*    Skladniki: sos pomidorowy, ser, boczek, bekon, salami, srednica = 40cm, }   
{   *Studencka*  Skladniki: sos pomidorowy, podwojny ser, podwojny kurczak, bazylia, srednica = 40cm, }   
{   *Wegetarian* Skladniki: sos pomidorowy, ser, oregano, pomidor, czerwona fasola, bazylia, srednica = 40cm, }   
{   *Zwykla*       Skladniki: sos pomidorowy, ser mozzarella,kurczak, bazylia, srednica = 40cm, }   
{   *Hawajska*   Skladniki: sos pomidorowy, ser, banany, ananas, szynka, srednica = 40cm, }   
{   *Solo*           Skladniki: sos pomidorowy, ser, pomidor, boczek, bekon, oregano,papryczka chilli, srednica = 40cm, }   
{   *Coca Cola 1 L* , }   
{   *Coca Cola 2 L* , }   
{   *Fanta 1 L* , }   
{   *Fanta 2 L* , }   
{   *Zywiec 0,5 L* , }   
{   *Tyskie 0,5 L* , }   
{   *Lech 0,5 L* , }
}   

switch(Wybor)
{
 case 1:
cout << "MENU " <<endl;
cout << "********" <<endl;
for (i=0, i <=19, i++)
{
cout << nr_zam[i] << ". " << Menu[i] << " Cena: " <<cennik[i] << " PLN" <<endl; 
}                
cout << "Jesli chcesz cos zamowic prosimy wybrac opcje numer 2." <<endl;
menu();
}
case 2:
{
cout << "Jesli chcesz zlozyc zamowienie kliknij 1."
cout << "Jesli nie chcesz zlozyc zamowienia(wrocic do poprzedniego menu) kliknij 2."
cin >> Zamowienie;
do while (Zamowienie == 2)
{
if (Zamowienie==1)
{
cout << "Prosze podac numer zamowienia: ";
cin >> numer;
cout << "Zamowiles: " << nr_zam[numer-1] << ". " << menu[numer-1] << " . Dziekujemy !"<< endl;
cout << " Czy chcesz zamowic cos jeszcze ? (Jesli tak kliknij 1.  Jesli nie kliknij 2. ) " <<endl;
cin >> Zamowienie;
}
if else (Zamowienie != 1 && Zamowienie !=2)
{
cout << " Podales zly numer. Prosze wpisac numer ponownie" << endl;
cin >> Zamowienie;
}
if else (Zamowienie==2)
{
cout << " Wrocimy do Menu glownego, jesli chcesz wyjsc z programu prosze kliknac ' Wyjscie z programu ' " ;
menu()
}
}
}
1

Jest troszkę lepiej, ale nadal słabo.
Lekcja na dziś: struktury albo klasy. Po to właśnie są żebyś nie robił 3 osobnych tablic:

int nr_zam[19]= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
int Cennik[19] = { 15, 17, 18, 19, 20, 20, 22, 22, 24, 26, 28, 30, 5, 7, 5, 7, 6, 6, 6 };
string Menu[1000] = { //

Tylko żebyś miał strukturę np.

struct Danie{
    string wpisWMenu;
    int cena;
    int nrZamowienia;
};

I tylko tablicę:

Danie menuRestauracji[19];

Nie ma wtedy ryzyka że przypadkiem ci się dane "rozjadą" bo dodasz cenę o 1 pozycje za wcześnie na przykład ;)

Poza tym ja bym te dane czytał z pliku jakiegoś żeby nie śmiecić nimi w kodzie.

0

Dzieki za odpowiedz, odezwe sie w przeciagu dwoch dni z poprawionym kodem. Sorki za spam, z goscia nie moge edytowac, czyli juz z klasami bede mogl zapisywac dane zamowienie i wyswietlac je tak?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0