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

Baza danych w konsoli (na klasach)

Ostatnio zmodyfikowano 2014-05-06 13:22
Autor Wiadomość
ulou
Temat założony przez niniejszego użytkownika
Baza danych w konsoli (na klasach)
» 2014-05-02 19:55:53
C/C++
#include <iostream>
#include <string>
#include <vector>
#include <fstream>


using namespace std;


// zmienne globalne

int p_ID = 0;
// deklaracja klas

class produkt;
class komputer;
class konsola;
class telefon;

// deklaracja funkcji

bool warunek_k( komputer a, komputer b );
bool warunek_la( konsola a, konsola b );
bool warunek_t( telefon a, telefon b );

// definicja klas

class komputer {
    friend class produkt;
   
    string k_nazwa;
    bool k_stan;
    float k_cena;
    int k_gwarancja;
   
   
public:
   
    komputer() { };
    ~komputer() { };
   
    int generuj_ID() {
        return ++p_ID;
    }
   
    void dodaj_komputer() {
       
        cout << "Nazwa : ";
        cin.ignore();
        getline( cin, k_nazwa );
        cout << "Stan : ";
        cin >> k_stan;
        cout << "Cena : ";
        cin >> k_cena;
        cout << "Gwarancja :";
        cin >> k_gwarancja;
       
        cout << "Produkt zostal dodany." << endl;
       
    }
   
    void wyswietl() {
        cout << "Nazwa: " << k_nazwa << endl;
        cout << "Stan(1-nowy, 0-uzywany): " << k_stan << endl;
        cout << "Cena: " << k_cena << endl;
        cout << "Gwarancja(mc-y): " << k_gwarancja << endl;
    }
   
   
};

class produkt {
    friend class komputer;
    friend bool warunek_k( komputer a, komputer b );
   
    vector < komputer > k_baza;
   
public:
   
    void dodaj_komputer() {
        komputer pc;
        pc.dodaj_komputer();
       
        k_baza.push_back( pc );
    }
   
    void wyswietl() {
        if( k_baza.size() != 0 )
        {
           
            for( int i = 0; i < k_baza.size(); i++ ) {
                cout << i + 1 << ". ";
                k_baza[ i ].wyswietl();
            }
           
        }
        else
        {
            cout << "Baza jest pusta!" << endl;
        }
    }
   
   
};







// -------------------------------------------  MAIN  ------------------------------------------------- //

int main( int argc, const char * argv[] )
{
    menu:
    cout << "-------------------------------------------" << endl;
    cout << "1.Dodaj " << endl;
    cout << "2.Wyswietl " << endl;
    cout << "0.Wyjscie" << endl;
    cout << "-------------------------------------------" << endl;
   
    produkt pro;
    int wybor;
    char wybor2;
   
   
    cout << "Wybor: ";
    cin >> wybor;
   
    switch( wybor ) {
    case 1:
        pro.dodaj_komputer();
        cout << endl;
        break;
       
    case 2:
        pro.wyswietl();
        cout << endl;
        break;
    case 3:
       
       
    default:
        break;
    }
   
    cout << "Chcesz zakonczyc? ( T/N )";
    cin >> wybor2;
    if( wybor2 == 'n' || wybor2 == 'N' ) {
        goto menu;
    }
    return 0;
}

2 sprawy:

1) Nie wyświetla produktu, po dodaniu go do bazy.
2) Czy jeżeli będę chciał każdą klasę zrobić w osobnym pliku to będą musiał coś zmieniać czy wystarczy samo przekopiowanie odpowiednich elementów?
P-109118
alixir
» 2014-05-06 13:22:03
Nie lubię instrukcji goto, ale ogólnie wyciągnij

C/C++
produkt pro;
int wybor;
char wybor2;

przed
menu:
P-109367
« 1 »
  Strona 1 z 1