Hej, napisalem aplikacje sklepu, nie jest ona jeszcze skonczona, ale na obecnym etapie powinna dzialac funkcja nawigacji. Niestety nie moge doszukac sie czemu po odpaleniu programu, niezaleznie od tego co uzytkownik poda zmiennej string wybor, to i tak nawigacja odsyla uzytkownika do funkcji wyswietl_nazwy(). Moze wy znajdziecie blad, albo zasugerujecie inny sposob napisania takiego programu?
#include <iostream>
#include <numeric>
#include "FunkcjeApki.h"
using namespace std;
int main()
{
int ile_p = 5; //wpisz tutaj ilosc obiektow produkt, ktorymi chcesz operowac w programie.
string wybor; //nawiguje uzytkownika po sklepie
bool czy_lista = 0; //zmienna sprawdzajaca czy program jest w funkcji wyswietl_nazwy()
int koszyk[ile_p]; //alokacja pamieci na ID produktow do kupienia
produkt lista[ile_p]; //alokacja pamieci na obiekty produkt
// v tu dodawaj kolejne produkty(nazwa, ilosc, cena, ID) v
lista[0].podaj_dane("Jablko", 20, 2, 9);
lista[1].podaj_dane("Chleb", 10, 5, 4);
lista[2].podaj_dane("Marchew", 40, 2, 5);
lista[3].podaj_dane("Mleko", 10, 3, 6);
lista[4].podaj_dane("Hot-dog", 50, 3, 8);
// ^ tu dodawaj kolejne produkty(nazwa, ilosc, cena, ID) ^
while(1){
cout << "Witaj w sklepie, przejdz do listy produktow (L) albo do koszyka (K)";
cin >> wybor;
nawigacja(ile_p, lista, koszyk, wybor, czy_lista);
}
return 0;
}
#include <iostream>
#include <numeric>
#include "FunkcjeApki.h"
using namespace std;
produkt::produkt(){
ilosc = 0;
cena = 0;
ID = 0;
nazwa = "N/A";
}
void produkt::podaj_dane(string _nazwa, int _ilosc, int _cena, int _ID){
nazwa = _nazwa;
cena = _cena;
ilosc = _ilosc;
ID = _ID;
}
void produkt::wyswietl_dane(){
cout << "nazwa: " << nazwa << endl;
cout << "cena: " << cena << endl;
cout << "ilosc: " << ilosc << endl;
cout << "ID: " << ID << endl;
}
void nawigacja(int& ile_p, produkt lista[], int koszyk[], string& wybor, bool& czy_lista){
if(wybor == "L" || "l"){
wyswietl_nazwy(ile_p, lista, koszyk, wybor, czy_lista);
} else if (wybor == "K" || "k") {
idz_do_koszyka(ile_p, lista, koszyk, wybor);
} else if (wybor == "Z" || "z") {
for(int i =0; i<ile_p; i++){
if(lista[i].ID == koszyk[i]){
lista[i].ilosc --;
cout << "dziekujemy za zakupy!" << endl;
wyswietl_nazwy(ile_p, lista, koszyk, wybor, czy_lista);
} else { ; }
}
} else {
for (int i=0; i<ile_p; i++){
if (wybor == lista[i].nazwa && czy_lista == 1) { //co zrobic jesli przedmiot jest w bazie
wyswietl_szczegoly(ile_p, lista, koszyk, wybor, czy_lista);
} else { ; }
}
}
}
void wyswietl_nazwy(int& ile_p, produkt lista[], int koszyk[], string& wybor, bool& czy_lista){ //wyswietlenie nazw z listy obiektow
czy_lista = 1;
for (int i=0; i<ile_p; i++){
cout << lista[i].nazwa << " ";
}
cout << endl <<"Aby wyswietlic szczegoly, podaj nazwe produktu(uwaga na rozmiar liter) lub przejdz do koszyka(K)." << endl;
cin >> wybor;
nawigacja(ile_p, lista, koszyk, wybor, czy_lista);
}
void wyswietl_szczegoly(int& ile_p, produkt lista[], int koszyk[], string& wybor, bool& czy_lista){ //wyswietlenie szczegolow wybranego przedmiotu
czy_lista = 0;
bool na_stanie = 0;
for (int i=0; i<ile_p; i++){
if (wybor == lista[i].nazwa) { //co zrobic jesli przedmiot jest w bazie
lista[i].wyswietl_dane();
na_stanie = 1;
cout << "Aby dodac produkt do koszyka, wprowadz jego ID" << endl;
cin >> koszyk[i];
}
}
if (!na_stanie){ //jesli przedmiotu nie ma w bazie
cout << "Niestety nie ma takiego produktu!" << endl;
}
}
void idz_do_koszyka(int& ile_p, produkt lista[], int koszyk[], string& wybor){ //przechodzi do koszyka
int suma = 0;
bool stan_koszyka = 0;
cout << "Witaj w koszyku, oto lista Twoich zakupow." <<endl; //wyswietl nazwy przedmiotow dodanych do koszyka
for(int i =0; i<ile_p; i++){
if(lista[i].ID == koszyk[i]){
cout << lista[i].nazwa << " cena: " << lista[i].cena << endl;
suma += lista[i].cena;
stan_koszyka = 1;
}
}
if (!stan_koszyka){ // brak produktow w koszyku lub suma do zaplaty
cout << "Nie dodales jeszcze nic do koszyka!" << endl;
}else {
cout << "W sumie do zaplaty: " << suma << endl;
cout << "Wroc do listy produktow(L) lub zaplac (Z)";
cin >> wybor;
}
}
#ifndef FUNKCJEAPKI_H
#define FUNKCJEAPKI_H
#include <iostream>
#include <numeric>
using namespace std;
class produkt{
public:
string nazwa;
int ilosc;
int cena;
int ID;
//default constructor
produkt();
void podaj_dane(string _nazwa, int _ilosc, int _cena, int _ID);
void wyswietl_dane();
};
void nawigacja(int& ile_p, produkt lista[], int koszyk[], string& wybor, bool& czy_lista); //nawiguje po stronie
void wyswietl_nazwy(int& ile_p, produkt lista[], int koszyk[], string& wybor, bool& czy_lista); //wyswietlenie nazw z listy obiektow
void wyswietl_szczegoly(int& ile_p, produkt lista[], int koszyk[], string& wybor, bool& czy_lista); //wyswietlenie szczegolow wybranego przedmiotu
void idz_do_koszyka(int& ile_p, produkt lista[], int koszyk[], string& wybor); //przechodzi do koszyka
#endif // FUNKCJEAPKI_H