Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyszukiwanie i wyświetlanie danych z obiektów.

Ostatnio zmodyfikowano 2015-05-15 14:36
Autor Wiadomość
maks103
Temat założony przez niniejszego użytkownika
Wyszukiwanie i wyświetlanie danych z obiektów.
» 2015-05-14 15:02:37
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.
C/C++
#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;
           
           
        }
    }
}
}
}
}
}
P-132238
darko202
» 2015-05-15 14:36:53
>> Problem mam z 3 punktem
problem wynika z tego, że nie zrealizowałeś dokładnie wcześniejszych punktów.
tzn.
np. klasa magazyn
C/C++
// 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.



class Magazyn {
    //klasa Magazyn, zawierającą dane prywatne: Id magazynu, nazwa miasta.
    int id_mag;
    string miasto;
   
public:
    //klasa powinna zawierać 
    // w tym publiczne konstruktory nadające wartości danym.
   
    Magazyn( int idmag, string mia ) {
        id_mag = idmag;
        miasto = mia;
    }
    // publiczne metody umożliwiające operowanie na danych klasy,
    // brak metod
    void Set_id_mag( int id_mag ) {..};
    void Set_Miasto( string miasto ) {...};
    int Get_id_mag() {...};
    int Get_Miasto() {...};
   
    // 1. Pobieranie (od użytkownika) i wyświetlanie (na ekran) informacji zawartych w pojedynczych obiektach zdefiniowanych klas.  //  
    void Uzupelnijm() {...}
    void Pokaz() {...}
   
   
   
   
    //2. Przechowywanie oraz zapisywanie i odczytywanie do/z plików informacji dotyczących wielu magazynów, towarów oraz stanu zapasów w magazynach.
   
    ///.... brak pełnej realizacji np. odczytywania
   
    void zapiszm() {
        fstream plik_magazyn;
        plik_magazyn.open( "magazyn.txt", ios::out | ios::app );
        plik_magazyn << id_mag << " " << miasto << endl;
        plik_magazyn.close();
    }
   
    // nie sprawdzasz, czy  udała się operacja otwarcia pliku
    //
};


//3.  Wyświetlanie:
//a) Listy magazynów posiadających wskazany towar (wraz z liczbą sztuk tego towaru);

//   tu realizacja p2 dla wszystkich klas powiązana logicznym algorytmem
// * tworzysz bazę Magazynów, Towarów, Stanów
//   kontenery dynamiczne : Towary[ilośćTowarów], Magazyn[ilośćMagazynów], Stan[ilośćStanów]

// * przeglądasz bazę stanów i uzupełniasz ją poprzez odnalezienie potrzebnych informacji
//   w pozostałych bazach

// tu programując obiektowo należałoby myśleć o odpowiednich klasach , gdzie obiekt tej  klasy będzie zawierał całą bazę z metodami Szukaj itp.
// a w niej zrealizowane jest wczytanie danych z całego pliku


// b) Całkowitą wartość towarów znajdujących się w magazynie/magazynach we wskazanym mieście.

/// analogicznie do punktu poprzedniego

Powodzenia :)



P-132297
« 1 »
  Strona 1 z 1