x-kom hosting

C++, program

Olka
utworzono
utworzono

Witajcie! Mam do napisania program, który nazwany jest biblioteka. maja byc 3 klasy: uzytkownik, ksiazka i wypozyczalnia. Mamy tez 2 pliki, jeden z uzytkownikami(nr pozycji, imie, nazwisko i ilosc wypozyczonych ksiazek) drugi z ksiazkami(nt pozycji, tytul, autor i ilosc dostepnych ksiazek)

Na razie mam cos takiego: (jesli gdzies sa bledy to prosze piszcie!)

#include <iostream>

#include <fstream>

#include <string>

#include <vector>

using namespace std;

//------------------klasa uzytkownik----------------

class Uzytkownik

{

public: Uzytkownik(int nr, string imie, string nazwisko);

void setNr(int nr){nr=nr;};

void setImie(string imie){imie=imie;}

void setNazwisko(string nazwisko){nazwisko=nazwisko;}

int getNr(){return nr;};

string getImie(){return imie;};

string getNazwisko(){return nazwisko;};

private:

int nr;

string imie;

string nazwisko;

};

//-----------------klasa ksiazka-------------------

class Ksiazka

{

public: Ksiazka(string tytul,string autor,int ilosc);

void setTytul(string tytyl){tytul=tytul;}

void setAutor(string autor){autor=autor;}

void setIlosc(int ilosc){ilosc=ilosc;}

string getTytul(){return tytul;};

string getAutor(){return autor;};

int getIlosc(){return ilosc;};

private: string tytul;

string autor;

int ilosc;

};

//typedef vector<Uzytkownik>uzyt;

//typedef vector<Ksiazka>ks;

//----------------klasa wypozyczalnia----------------

class Wypozyczalnia

{

//public: Wypozyczalnia(string, string, int);

public: void wszyscyUzytkownicy();

void wszystkieKsiazki();

void dodajKsiazke();

void dodajUzytkownika();

void usunUzytkownika();

private:string imie;

string nazwisko;

string tytul;

string autor;

int iloscKsiazek;

int nr;

int iloscWypozyczonych;

//vector<string>uzytkownik; <- to wena twórcza, nie znam sie na vectorach....nie moge tez nigdzie znalezc ladnego ich opisu

//vector<string>ksiazka;

};

w ten sposób mam zrobione wybieranie konretnej rzeczy która chce zrobic w tej bibliotece uzytkownik: int main()

{

int liczba=1;

Wypozyczalnia wyp;

while(liczba !=0)//dopoki uzytkownik nie wpisze 0 program wciaz bedzie wczytywal

{

cout << "wybierz jeden wariant: ";

cout << " n ";

cout << "1 - wypisz uzytkownikow" << endl;

cout << "2 - wypisz ksiazki" << endl;

cout << "3 - dodaj ksiązki" << endl;

cout << "4 - dodaj uzytkownika" << endl;

cout << "5 - usun uzytkownika" << endl;

cout << "0 - koniec, milego dnia! :)" << endl;

cout << "Twoj wybor: ";

cin>>liczba;

switch (liczba)

{

case 1: wyp.wszyscyUzytkownicy();

break;

case 2: wyp.wszystkieKsiazki();

break;

case 3: wyp.dodajKsiazke();

break;

case 4: wyp.dodajUzytkownika();

break;

case 5: wyp.usunUzytkownika();

break;

case 0: cout<<"dziekujemy :)";

break;

default : cout<<"nieznana opcja !";

}

}

// getch();

}

a teraz funkcje....i tu zaczynają sie schody, bo nie chce czytac z pliku wartosci.

void Wypozyczalnia :: wszyscyUzytkownicy()

{ //funkcja nie pobiera i nie zwraca zadnej wartosci

string imie, nazwisko;

//l1 pobiera pozycje z pliku, a l2 ilosc wypozyczonych ksiazek przez uzytkow.

int l1,l2;

vector<int> v,v1;

vector<string> ve,ve1;

ifstream plik;

plik.open("uzytkownicy2.txt");

while(plik >> l1 >> imie >> nazwisko >> l2){

v.push_back(l1);

ve.push_back(imie);

ve1.push_back(nazwisko);

v1.push_back(l2); }

for (int i=0;i<v.size(); ++i) {

cout << v<<" "<<ve<<" "<<ve1<< " "<<v1<< endl;

}

plik.close();

}

Jesli ktos jest w stanie mi pomóc to zapraszam:) jak an razie nei dziala wypisywanie wiec dalszych funkcji nie robiłam.

Pozdrawiam i czekam na pomoc.

[ Dodano: 2007-06-12, 19:53 ]

Odnosnie popprzedniego programu!

void Wypozyczalnia :: wszyscyUzytkownicy()

{

string imie, nazwisko;

int l1,l2;

vector<int> v,v1;

vector<string> ve,ve1;

ifstream plik;

plik.open("uzytkownicy2.txt");

while(plik >>l1>>imie>>nazwisko>>l2){

v.push_back(l1);

ve.push_back(imie);

ve1.push_back(nazwisko);

v1.push_back(l2); }

for (int i=0;i<v.size(); ++i) {

cout << v<<" "<<ve<<" "<<ve1<< " "<<v1<< endl;

}

plik.close();

}

void Wypozyczalnia :: dodajUzytkownika()

{

vector<int> v,v1;

vector<string> ve,ve1;

unsigned int i;

string imie,nazwisko ;

int l1,l2;

ifstream plik1;

plik1.open("uzytkownicy2.txt");

while(plik1 >>l1>>imie>>nazwisko>>l2){

v.push_back(l1);

ve.push_back(imie);

ve1.push_back(nazwisko);

v1.push_back(l2); }

plik1.close();

ofstream plik; // * ofstream - zapis do pliku

plik.open("uzytkownicy2.txt");

cout << "dodawanie uzytkownika do biblioteki" << endl;

cout << "Podaj dane uzytkownika: imie, nazwisko, ilosc wypozyczonych ksiazek" << endl;

cin >>imie>>nazwisko>>l2;

l1=v.size()+1;

v.push_back(l1);

ve.push_back(imie);

ve1.push_back(nazwisko);

v1.push_back(l2);

for(i=0; i<ve.size(); ++i){

cout <<i<<" "<< v<<" "<<ve<<" "<<ve1<< " "<<v1<< endl;

plik<<v<<" "<<ve<<" "<<ve1<< " "<<v1<< endl;

}

plik.close();

}

Mam juz zrobione wypisywanie i dodawanie uzytkowników...niestety nie chodzi mi usuwanie, nie wiem co zrobic, jak te "erase" wcisnac...ma ktos pomysł?

  • 1 miesiąc później...

raytheon
komentarz
komentarz
public: Uzytkownik(int nr, string imie, string nazwisko);

void setNr(int nr){nr=nr;};

void setImie(string imie){imie=imie;}

void setNazwisko(string nazwisko){nazwisko=nazwisko;}

to takie przypisywanie wogole jest mozliwe??

czy tu przypadkiem nie zachodzi zasłanianie nazw?

piotrusgit
komentarz
komentarz

Tak takie przypisanie jest możliwe pod warunkiem że składnik klasy bedzie poprzedzony wskaźnikiem <b>this-></b>

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.