Witam.
Niestety nie mogę dojść gdzie popełniłem błąd. Problem dotyczy niewczytywania przypisanych wartości string'om.
Poniżej kod i screen w czym problem.
#include <iostream>
#include <string>
using namespace std;
class Zamowienie
{
private:
string nazwa_produktu, data_zakupu;
float cena_produktu, koszt_produktu;
int liczba_sztuk, nr_produktu;
public:
void zapisz_dane(int nr, string nazwa, float cena, string data, int liczba)
{
nr_produktu = nr;
nazwa_produktu = nazwa;
cena_produktu = cena;
data_zakupu = data;
liczba_sztuk = liczba;
}
void wyswietl_dane()
{
cout << "Produkt nr: " << nr_produktu << endl;
cout << "Nazwa produktu: " << nazwa_produktu
<< ", cena produktu: " << cena_produktu
<< "zl, data zakupu: " << data_zakupu
<< ", liczba sztuk: " << liczba_sztuk
<< "." << endl;
}
string podaj_nazwe_produktu()
{
return nazwa_produktu;
}
float podaj_cene()
{
return cena_produktu;
}
string podaj_date_zakupu()
{
return data_zakupu;
}
int podaj_liczbe_sztuk()
{
return liczba_sztuk;
}
float podaj_koszt()
{
return koszt_produktu = liczba_sztuk * cena_produktu;
}
};
int main() {
menu:
Zamowienie z1;
Zamowienie z2;
int wybor = 0;
cout << "Wybierz co chcesz zrobic:" << endl;
cout << "1. Zamow produkt." << endl;
cout << "2. Wyswietl produkt." << endl;
cout << "3. Exit" << endl;
cin >> wybor;
switch (wybor)
{
case 1:
{
dodaj:
system("cls");
cout << "Wybrales opcje zamowienia produktu." << endl << endl;
string nazwa, data;
float cena;
int liczba, nr;
cout << "Podaj nr produktu: "; cin >> nr;
cout << "Podaj nazwe produktu: "; cin >> nazwa;
cout << "Podaj cene produktu w zl: "; cin >> cena;
cout << "Podaj date zakupu produktu: "; cin >> data;
cout << "Podaj liczbe sztuk produktu: "; cin >> liczba;
z1.zapisz_dane(nr, nazwa, cena, data, liczba);
cout << endl;
cout << "Podaj nr produktu: "; cin >> nr;
cout << "Podaj nazwe produktu: "; cin >> nazwa;
cout << "Podaj cene produktu w zl: "; cin >> cena;
cout << "Podaj date zakupu produktu: "; cin >> data;
cout << "Podaj liczbe sztuk produktu: "; cin >> liczba;
z2.zapisz_dane(nr, nazwa, cena, data, liczba);
cout << endl;
goto menu1;
}
case 2:
{
system("cls");
cout << "Wybrales opcje wyswietlenia produktu." << endl << endl;
z1.wyswietl_dane();
cout << "Calkowity koszt zamowienia wynosi - " << z1.podaj_koszt() << " zl." << endl << endl;
z2.wyswietl_dane();
cout << "Calkowity koszt zamowienia wynosi - " << z2.podaj_koszt() << " zl." << endl << endl;
goto menu2;
}
case 3:
{
return 0;
}
}
menu1:
int taknie = 0;
cout << "Wybierz jedna z opcji:" << endl;
cout << "1 - Chce dodac kolejny produkt." << endl;
cout << "2 - Chce przejsc do menu glownego." << endl;
cout << "3 - Chce zamknac program." << endl;
cin >> taknie;
switch (taknie)
{
case 1:
{
system("cls");
goto dodaj;
}
case 2:
{
system("cls");
goto menu;
}
case 3:
{
return 0;
}
default:
{
system("cls");
goto menu1;
}
}
menu2:
int taknie1 = 0;
cout << "Wybierz jedna z opcji:" << endl;
cout << "1 - Chce przejsc do menu glownego." << endl;
cout << "2 - Chce zamknac program." << endl;
cin >> taknie1;
switch (taknie1)
{
case 1:
{
system("cls");
goto menu;
}
case 2:
{
return 0;
}
default:
{
system("cls");
goto menu1;
}
}
system("pause");
}
Przykładowe dane przy wprowadzeniu
W miejscu czerwonych "kółek" powinien wyświetlać się wcześniej podane teksty "Andrzej", "10.05.2014", "Dupa" i "11.05.2015".