Wyszukiwanie i wyświetlanie danych z obiektów.
Witam, do napisania następujący program:
Napisać program realizujący wskazane operacje na danych przechowywanych w obiektach zaprojektowanych klas. W programie należy zdefiniować następujące klasy:
Magazyn, zawierającą dane prywatne: Id magazynu, nazwa miasta.
Towar, zawierającą dane prywatne: Id towaru, nazwa towaru, cena towaru.
Stan, zawierającą dane prywatne: Id magazynu, Id towaru, liczba sztuk.
Każda klasa powinna zawierać publiczne metody umożliwiające operowanie na danych klasy, w tym publiczne konstruktory nadające wartości danym.
Program ma umożliwiać:
1. Pobieranie (od użytkownika) i wyświetlanie (na ekran) oraz zapisywanie i odczytywanie do/z plików informacji zawartych w pojedynczych obiektach zdefiniowanych klas.
2. Przechowywanie oraz zapisywanie i odczytywanie do/z plików informacji dotyczących wielu magazynów, towarów oraz stanu zapasów w magazynach.
3. Wyświetlanie:
a) Listy magazynów posiadających wskazany towar (wraz z liczbą sztuk tego towaru);
b) Całkowitą wartość towarów znajdujących się w magazynie/magazynach we wskazanym mieście.
Problem mam z 3 punktem, proszę o pomoc. Jeśli chodzi o obiekty jestem póki co zielony. Poniżej zamieszczam to co deo tej pory napisałem.
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <string>
#include <fstream>
using namespace std;
class Magazyn {
int id_mag;
string miasto;
public:
void uzupelnijm() {
cout << "Wprowadz identyfikator magazynu" << endl;
cin >> id_mag;
cout << "Wprowadz nazwe miasta" << endl;
cin >> miasto; }
void zapiszm() {
fstream plik_magazyn;
plik_magazyn.open( "magazyn.txt", ios::out | ios::app );
plik_magazyn << id_mag << " " << miasto << endl;
plik_magazyn.close();
}
Magazyn( int idmag, string mia ) {
id_mag = idmag;
miasto = mia;
}
void pokaz_m() {
cout << "Identyfikator magazynu " << id_mag << endl << endl << "Nazwa miasta: " << miasto << endl;
}
};
class Towar {
int id_tow;
double cena;
string nazwa_tow;
public:
void uzupelnijt() {
cout << "Wprowadz identyfikator towaru" << endl;
cin >> id_tow;
cout << "Wprowadz nazwe towaru" << endl;
cin >> nazwa_tow;
cout << "Wprowadz cene towaru" << endl;
cin >> cena;
}
void zapiszt() {
fstream plik_towar;
plik_towar.open( "towar.txt", ios::out | ios::app );
plik_towar << id_tow << " " << nazwa_tow << " " << cena << endl;
plik_towar.close();
}
Towar( int idtow, double c, string nazt ) {
id_tow = idtow;
cena = c;
nazwa_tow = nazt;
}
void pokaz_t() {
cout << "Identyfikator towaru: " << id_tow << endl << "Nazwa towaru: " << nazwa_tow << endl << "Cena towaru: " << cena << endl;
}
};
class Stan {
int id_m, id_t, l_szt;
public:
void uzupelnijs() {
cout << "Wprowadz identyfikator magazynu" << endl;
cin >> id_m;
cout << "Wprowadz identyfokator towaru" << endl;
cin >> id_t;
cout << "Wprowadz liczbe sztuk towaru" << endl;
cin >> l_szt;
}
void zapiszs() {
fstream plik_stan;
plik_stan.open( "stan.txt", ios::out | ios::app );
plik_stan << id_m << " " << id_t << " " << l_szt << endl;
plik_stan.close();
}
Stan( int idm, int idt, int lsz ) {
id_m = idm;
id_t = idt;
l_szt = lsz;
}
void pokaz_s() {
cout << "Stan towaru na magazynie: " << endl;
cout << "Identyfikator magazynu :" << id_m << endl << "Identyfikator towaru: " << id_t << "Liczba sztuk: " << l_szt << endl;
}
};
int main()
{
int wybor = - 1;
while( wybor != 0 ) {
cout << "*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()" << endl;
cout << "*() Aby dodac magazyn wybierz [1] *()" << endl;
cout << "*() Aby dodac towar wybierz [2] *()" << endl;
cout << "*() Aby dodac stan wybierz [3] *()" << endl;
cout << "*() Aby wyswietlic zawartosc pliku magazyn.txt wybierz [4] *()" << endl;
cout << "*() Aby wyswietlic zawartosc pliku towar.txt wybierz [5] *()" << endl;
cout << "*() Aby wyswietlic zawartosc pliku stan.txt wybierz [6] *()" << endl;
cout << "*() Wykonanie zadania 3a wybierz [7] *()" << endl;
cout << "*() Wykonanie zadania 3b wybierz [8] *()" << endl;
cout << "*() Zakonczenie dzialania programu wybierz [0] *()" << endl;
cout << "*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()*()" << endl;
cout << "Twoj wybor" << endl;
cin >> wybor;
if( wybor == 1 ) {
int idmag;
string miasto;
Magazyn m1( idmag, miasto );
m1.uzupelnijm();
m1.pokaz_m();
m1.zapiszm();
}
else if( wybor == 2 ) {
int idtow;
float c;
string nazt;
Towar t1( idtow, c, nazt );
t1.uzupelnijt();
t1.pokaz_t();
t1.zapiszt();
}
else if( wybor == 3 ) {
int idmag;
int idtow;
int lsz;
Stan s1( idmag, idtow, lsz );
s1.uzupelnijs();
s1.pokaz_s();
s1.zapiszs();
}
else if( wybor == 4 ) {
int id_magazynu, ilosc = 0;
string miasto;
fstream plik;
plik.open( "magazyn.txt", ios::in );
if( plik.good() )
{
cout << "Zawartosc pliku:" << endl;
while( !plik.eof() )
{
plik >> id_magazynu >> miasto;
ilosc++;
}
plik.close();
} else cout << "Blad podczas otwierania pliku!!!" << endl;
plik.open( "magazyn.txt", ios::in );
if( plik.good() )
{
for( int i = 0; i < ilosc - 1; i++ )
{
plik >> id_magazynu >> miasto;
cout << "Identyfikator magazynu:" << id_magazynu << " Miasto:" << miasto << endl;
}
plik.close();
} else cout << "Blad podczas otwierania pliku!!!" << endl;
}
else if( wybor == 5 ) {
int id_tow;
float cena;
string nazwa_tow;
fstream plik;
plik.open( "towar.txt", ios::in );
if( plik.good() )
{
cout << "Zawartosc pliku:" << endl;
while( !plik.eof() )
{
plik >> id_tow >> nazwa_tow >> cena;
cout << "Identyfikator towaru:" << id_tow << " " << "Nazwa towaru:" << nazwa_tow << " " << "Cena:" << cena << endl;
}
plik.close();
} else cout << "Blad podczas otwierania pliku!!!" << endl;
}
else if( wybor == 6 ) {
int id_tow, id_mag, l_szt;
fstream plik;
plik.open( "stan.txt", ios::in );
if( plik.good() )
{
cout << "Zawartosc pliku:" << endl;
while( !plik.eof() )
{
plik >> id_tow >> id_mag >> l_szt;
cout << "Identyfikator towaru:" << id_tow << " " << "Identyfikator magazynu:" << id_mag << "Liczba sztuk: " << l_szt << endl;
}
plik.close();
} else cout << "Blad podczas otwierania pliku!!!" << endl;
}
}
}
}
}
}
}