| Projekty z C++ dla tych ktorzy do tej pory nie maja:D | |
Wysłany: Czw 23:37, 30 Cze 2005 |
|
|
Fritz |
Administrator |
|
|
Dołączył: 29 Cze 2005 |
Posty: 110 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Projekt 1 System bankowy:
konto.h
Kod: | #ifndef kontoH
#define kontoH
#include "karta.h"
class Konto {
friend class Karta;
public:
Konto(int aNumer,double aSaldo,int PIN); //konstruktor
Konto(const Konto& konto); //konstruktor kopiujacy
~Konto(); //destruktor
int wplata(double kwota); //wplata pieniedzy na konto
int wyplata(double kwota,int PIN); //wyplata pieniedzy z konta
int bilans(int PIN); //wyswietlenie bilansu konta
int zmiana_hasla(int PIN); //zmiana hasla konta
int dodajkarte(int PIN,int numer,char *nazwisko,double limit,double aSaldo);
int rozliczkarte(int numer,char *nazwisko);
int likwidacjakarty(int numer,int PIN);
int wplatazkonta(Konto& konto,double kwota,int numer,int PIN); //zasilenie konta z innego konta
int wplatazkarty(Karta& karta,double kwota,int numer,int PIN); //zasilenie konta z karty kredytowej
private:
const int numer_konta; //numer konta
double saldo; //saldo konta
int haslo; //numer PIN
Karta *obj;
bool status;
};
#endif |
karta.h
Kod: | #ifndef kartaH
#define kartaH
#include "konto.h"
class Karta {
friend class Konto;
public:
Karta(Konto *konto,int aNumer,char *aNazwisko,double aSaldo,int PIN,double aLimit);
Karta(const Karta& karta); //konstruktor kopiujacy
~Karta();
int trans_gotowkowa(double kwota,int nr_karty,int PIN); //transakcja gotowkowa
int trans_bezgotowkowa(double kwota,int nr_karty,char *aNazwisko);
int trans_bezgotowkowa(double kwota,int nr_karty,int PIN);
int zasilenie(double kwota);
static void set_prow_bezgotow(double newprowizja) {prowizja_bezgotowkowa=newprowizja;}
static void set_prow_gotow(double newprowizja) {prowizja_gotowkowa=newprowizja;}
static double get_prow_bezgotow() {return prowizja_bezgotowkowa;}
static double get_prow_gotow() {return prowizja_gotowkowa;}
int zasileniezkonta(Konto& konto,double kwota,int numer);
private:
static char *kopiujstring(const char *zrodlo);
const int numer_karty;
const char *nazwisko;
bool status;
int haslo;
double saldo;
double limit;
static double prowizja_gotowkowa;
static double prowizja_bezgotowkowa;
Konto *obj;
};
#endif
|
konto.cpp
Kod: | #include "konto.h"
#include <iostream.h>
#include <assert.h>
Konto::Konto(int aNumer,double aSaldo,int PIN): numer_konta(aNumer),saldo(aSaldo),haslo(PIN),obj(NULL),status(true)
{
assert(aSaldo>0);
assert(aNumer>0);
obj=NULL;
cout<<"Utworzono konto o nastepujacych parametrach:\nNumer: "<<numer_konta<<"\nPIN: "<<haslo<<
"\nSaldo: "<<saldo<<"\n\n";
}
Konto::~Konto() {
delete obj;
}
int Konto::wplata(double kwota) {
if(kwota<=0) {
cout<<"Kwota jest mniejsza lub rowna zero!!\n";
return 1;
}
saldo+=kwota;
return 0; //sukces
}
int Konto::wyplata(double kwota, int PIN) {
if(kwota<=0) {
cout<<"Kwota mniejsza od zera!!\n";
return 1;
}
if(saldo<kwota) {
cout<<"Zbyt duza kwota do wyplacenia!!\n";
return 2;
}
if(PIN!=haslo) {
cout<<"Zle haslo!!\n";
return 3;
}
if(status==false) {
cout<<"Wyplaty zablokowane!!\n";
return 4;
}
saldo-=kwota;
return 0; //sukces
}
int Konto::bilans(int PIN) {
if(!(PIN==haslo)) {
cout<<"Zle haslo!\n";
return 1;
}
cout<<"Stan konta "<<numer_konta<<" wynosi: "<<saldo<<"\n";
return 0; //sukces
}
int Konto::zmiana_hasla(int PIN) {
if(PIN!=haslo) {
cout<<"Zle haslo!\n";
return 1;
}
cout<<"Podaj nowe haslo: ";
cin>>haslo;
cout<<"Haslo zostalo zmienione\n";
return 0; //sukces
}
int Konto::rozliczkarte(int numer,char *nazwisko) {
if(!obj) {
cout<<"Karta kredytowa dla tego konta nie istnieje!!\n";
return 1;
}
if(numer!=obj->numer_karty || strcmp(nazwisko,obj->nazwisko)==NULL) {
cout<<"Zly numer karty badz nazwisko. Rozliczenie karty niemozliwe!!\n";
return 4;
}
if(saldo<=0) {
cout<<"Brak pieniedzy na koncie do rozliczenia karty!!\n";
return 3;
}
if(obj->saldo<(0-(obj->limit))) {
cout<<"Przekroczono limit kredytu,konto i karta zablokowane!!\n";
status=false;
obj->status=false;
}
if((obj->saldo)>saldo) {
cout<<"Brak pieniedzy na rozliczenie karty!!\n";
status=false;
obj->status=false;
return 2;
}
saldo=saldo-(obj->saldo);
obj->saldo=0;
status=true;
obj->status=true;
return 0;
}
int Konto::dodajkarte(int PIN,int numer,char *nazwisko,double limit,double aSaldo) {
if(!obj) {
obj = new Karta(this,numer,nazwisko,aSaldo,PIN,limit);
return 0; //sukces
}
cout<<"Karta kredytowa juz istnieje dla tego konta!!\n";
return 1;
}
int Konto::likwidacjakarty(int numer,int PIN) {
if(!obj) {
cout<<"Nie istnieje karta kredytowa dla tego konta!!\n";
return 1;
}
if(numer!=obj->numer_karty) {
cout<<"Zly numer karty!!\n";
return 2;
}
if(PIN!=obj->haslo) {
cout<<"Zle haslo!!\n";
return 3;
}
if(obj->status!=true) {
cout<<"Nie mozna zlikwidowac karty,poniewaz nie zostala ona wczesniej rozliczona!!\n";
return 4;
}
delete obj;
return 0;
}
int Konto::wplatazkonta(Konto& konto,double kwota,int numer,int PIN) {
if(PIN!=konto.haslo) {
cout<<"Zle haslo!!\n";
return 2;
}
if(numer!=konto.numer_konta) {
cout<<"Zle podany numer konta!!\n";
return 3;
}
if(konto.status==false) {
cout<<"Konto wplacajacego zablokowane!!Nie mozna dokonac przelewu\n";
return 4;
}
if(kwota>konto.saldo) {
cout<<"Zbyt duza kwota!!\n";
return 5;
}
saldo=saldo+kwota;
konto.saldo=(konto.saldo)-kwota;
if(saldo>0)
status=true;
return 0;
}
int Konto::wplatazkarty(Karta& karta,double kwota,int numer,int PIN) {
if(PIN!=karta.haslo) {
cout<<"Zle haslo!!\n";
return 2;
}
if(numer!=karta.numer_karty) {
cout<<"Zle podany numer konta!!\n";
return 3;
}
if(karta.status==false) {
cout<<"Karta wplacajacego zablokowana!!Nie mozna dokonac przelewu\n";
return 4;
}
saldo=saldo+kwota;
karta.saldo=(karta.saldo)-kwota;
if(saldo>0)
status=true;
return 0;
} |
karta.cpp
Kod: | #include "karta.h"
#include <iostream.h>
#include <assert.h>
Karta::Karta (Konto *konto,int aNumer,char *aNazwisko,double aSaldo,int PIN,double aLimit): nazwisko(kopiujstring(aNazwisko)),
numer_karty(aNumer),saldo(aSaldo),haslo(PIN),limit(aLimit),obj(konto)
{
assert(aNumer>0);
assert(aSaldo>0);
if (!nazwisko) {
delete [] nazwisko;
status=false;
return;
}
status=true;
}
Karta::Karta (const Karta& karta): nazwisko(kopiujstring(karta.nazwisko)),numer_karty(karta.numer_karty),
saldo(karta.saldo),haslo(karta.haslo),limit(karta.limit),obj(karta.obj)
{
assert(karta.status==true);
if (!nazwisko) {
delete [] nazwisko;
status=false;
return;
}
status=true;
}
Karta::~Karta () {
delete [] (char *)nazwisko;
}
char* Karta::kopiujstring(const char *zrodlo) {
if ( !zrodlo ) return NULL;
char* cel = new char [strlen(zrodlo)+1];
if ( cel ) strcpy(cel,zrodlo);
return cel;
}
int Karta::trans_gotowkowa(double kwota,int nr_karty,int PIN) {
if(kwota<0) {
cout<<"Kwota jest ujemna!!\n";
return 3;
}
if(PIN!=haslo) {
cout<<"Zle haslo!!\n";
return 1;
}
if(nr_karty!=numer_karty) {
cout<<"Zle podany numer karty!!\n";
return 2;
}
if(status==false) {
cout<<"Karta zablokowana!!\n";
return 4;
}
saldo=saldo-(kwota+(kwota*prowizja_gotowkowa));
return 0;
}
int Karta::trans_bezgotowkowa(double kwota,int nr_karty,char *aNazwisko) {
if(kwota<0) {
cout<<"Kwota jest ujemna!!\n";
return 3;
}
if(!(strcmp(aNazwisko,nazwisko))) {
cout<<"Zle podane nazwisko!!\n";
return 1;
}
if(nr_karty!=numer_karty) {
cout<<"Zly numer karty!!\n";
return 2;
}
if(status==false) {
cout<<"Karta zablokowana!!\n";
return 4;
}
saldo=saldo-(kwota+(kwota*prowizja_bezgotowkowa));
return 0;
}
int Karta::trans_bezgotowkowa(double kwota,int nr_karty,int PIN) {
if(kwota<0) {
cout<<"Kwota jest ujemna!!\n";
return 3;
}
if(haslo!=PIN) {
cout<<"Zle haslo!!\n";
return 1;
}
if(nr_karty!=numer_karty) {
cout<<"Zly numer karty!!\n";
return 2;
}
if(status==false) {
cout<<"Karta zablokowana!!\n";
return 4;
}
saldo=saldo-(kwota+(kwota*prowizja_bezgotowkowa));
return 0;
}
int Karta::zasilenie(double kwota) {
if(kwota<0) {
cout<<"Kwota jest ujemna!!\n";
return 1;
}
saldo+=kwota;
return 0;
}
int Karta::zasileniezkonta(Konto& konto,double kwota,int numer) {
if(numer!=konto.numer_konta) {
cout<<"Zle podany numer konta!!\n";
return 2;
}
if(konto.status==false) {
cout<<"Konto wplacajacego zablokowane!!Nie mozna dokonac przelewu\n";
return 3;
}
if(kwota>konto.saldo) {
cout<<"Zbyt duza kwota!!\n";
return 4;
}
saldo=saldo+kwota;
konto.saldo=(konto.saldo)-kwota;
if(saldo>0)
status=true;
return 0;
} |
|
|
Post został pochwalony 0 razy
|
|
|
|
|
|
|
| | |
Wysłany: Czw 23:40, 30 Cze 2005 |
|
|
Fritz |
Administrator |
|
|
Dołączył: 29 Cze 2005 |
Posty: 110 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Projekt 2- Klasa TVector i operatory:
Vector.h
Kod: |
class TVector {
public:
TVector();
TVector(int _rozmiar);
TVector(double* _v,int _rozmiar);
TVector(const TVector& _v);
int Rozmiar() const {return rozmiar;}
TVector& operator += (const TVector& a);
TVector& operator -= (const TVector& a);
TVector& operator *= (const TVector& a);
TVector operator + (const TVector& a);
TVector& operator = (const TVector& a);
TVector operator - (const TVector& a);
TVector operator * (const TVector& a);
TVector operator * (double a);
double& operator [](int i)
private:
int rozmiar;
double *v;
};
friend ostream& operator << (const ostream& o, const TVector& _v); |
Vector.cpp
Kod: | #include "Vector.h"
TVector::~TVector() {
if(v)
delete [] v;
}
/*******************************KONSTRUKTORY***********************************/
TVector::TVector(): v(NULL);rozmiar(0) {};
TVector::TVector (int _rozmiar) {
v=new double[_rozmiar];
rozmiar=_rozmiar;
}
TVector::TVector (double * _v,int _rozmiar) {
v=new double[_rozmiar];
rozmiar=_rozmiar;
for(int i=0;i<rozmiar;i++)
v[i]=_v[i];
}
TVector::TVector(const TVector& _v) {
v=new double [_v.TVector()];
rozmiar=_v.Rozmiar();
for(int i=0;i<rozmiar;i++)
v[i]=_v[i];
}
/**********************************OPERATORY***********************************/
double& TVector::operator [](int i) {
return v[i];
}
TVector TVector::operator + (const TVector& _v) {
if(rozmiar !=_v.Rozmiar())
throw NIEZGODNA_DLUGOSC;
TVector wynik(rozmiar)
for(int i=0;i<rozmiar;i++)
wynik[i]=v[i];
return wynik;
}
TVector TVector::operator - (const TVector& _v) {
if(rozmiar !=_v.Rozmiar())
throw NIEZGODNA_DLUGOSC;
TVector wynik(rozmiar)
for(int i=0;i<rozmiar;i++)
wynik[i]=v[i];
return wynik;
}
TVector TVector::operator * (double a) {
TVector wynik(rozmiar);
for(int i=0;i<rozmiar;i++)
wynik[i]=v[i]*a;
return wynik;
}
TVector TVector:: operator * (const TVector & _v)
double wynik=0;
for(int i=0;i<rozmiar;i++)
wynik+=v[i]*_v[i];
return wynik;
}
TVector& TVector:: operator = (const TVector &_v) {
if(v)
delete [] v;
rozmiar=_v.Rozmiar();
v=new double [_v.Rozmiar()];
for(int i=0; i<rozmiar;i++)
v[i]=_v[i];
return *this;
}
TVector& TVector::operator += (const TVector& _v) {
if(rozmiar!= _v.Rozmiar() )
throw NIEZGODNA_DLUGOSC;
for(int i=0;i<rozmiar;i++)
v[i]+=_v[i];
return *this;
}
TVector& TVector::operator -= (const TVector& _v) {
if(rozmiar!= _v.Rozmiar() )
throw NIEZGODNA_DLUGOSC;
for(int i=0;i<rozmiar;i++)
v[i]-=_v[i];
return *this;
}
TVector & TVector:: operator *=(double a) {
if(rozmiar!=_v.Rozmiar() )
throw NIEZGODNA_DLUGOSC;
for(int i=0;i<rozmiar;i++)
v[i]*=_v[i];
return *this;
}
friend ostream & operator << (const ostream& o, const TVector& v) {
for(int i=0;i<v.Rozmiar();i++)
o<<v[i]<<' ';
return o;
} | [/u] |
|
Post został pochwalony 0 razy
|
|
|
|
| pierwsza nominacja | |
Wysłany: Czw 23:41, 30 Cze 2005 |
|
|
Jur@s |
Nowy na forum |
|
|
Dołączył: 29 Cze 2005 |
Posty: 3 |
Przeczytał: 0 tematów
|
Skąd: Lipno |
|
|
|
|
|
|
|
|
Frycek na Prezydenta Włocławka !!!! kto jest za....wpisywac sie, stołek gwarantowany !!! |
|
Post został pochwalony 0 razy
|
|
|
|
| | |
Wysłany: Czw 23:44, 30 Cze 2005 |
|
|
Fritz |
Administrator |
|
|
Dołączył: 29 Cze 2005 |
Posty: 110 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Projekt 3- klasy dokumentow osobistych czlowieka - Dziedziczenie:
TDokument.h
Kod: | #include "STRING3.h"
#include "JDATE.h"
/* I POZIOM */
/***************************KLASA TDokument***********************************/
class TDokument {
public:
TDokument(const TString&,const TString&,char,const TJDate&,
const TString&,const TString&,const TJDate&,const TString&,
const TString&); //konstruktor
TString GetImie() const {return Imie;}
TString GetNazwisko() const {return Nazwisko;}
char GetPlec() const {return Plec;}
TJDate GetDataUrodz() const {return DataUrodz;}
TString GetMiejsceUrodz() const {return MiejsceUrodz;}
TString GetAdres() const {return Adres;}
TJDate GetDataWydania() const {return DataWydania;}
TString GetOrganWydajacy() const {return OrganWydajacy;}
TString GetNumerDokumentu() const {return NumerDokumentu;}
protected:
TString Imie;
TString Nazwisko;
char Plec;
TJDate DataUrodz;
TString MiejsceUrodz;
TString Adres;
TJDate DataWydania;
TString OrganWydajacy;
TString NumerDokumentu;
};
/* II POZIOM */
/******************************KLASA TDokWygasajacy****************************/
class TDokWygasajacy: public TDokument {
public:
TDokWygasajacy(const TJDate&); //konstruktor
TJDate GetDataWaznosci() const {return DataWaznosci;}
protected:
TJDate DataWaznosci;
};
/******************************KLASA TDowodOsobisty****************************/
class TDowodOsobisty: public TDokument {
public:
TDowodOsobisty(const TString&,const TString&,const int,const TString&,
const TString&); //konstruktor
TString GetNazwiskoRodowe const {return NazwiskoRodowe;}
TString GetImionaRodzicow const {return ImionaRodzicow;}
int GetWzrost const {return Wzrost;}
TString GetKolorOczu const {return KolorOczu;}
TString GetPesel const {return Pesel;}
protected:
TString NazwiskoRodowe;
TString ImionaRodzicow;
int Wzrost;
TString KolorOczu;
TString Pesel;
};
/* III POZIOM */
/****************************KLASA TPaszport***********************************/
class TPaszport: public TDokWygasajacy {
public:
TPaszport(const TString&);
TString GetObywatelstwo() const {return Obywatelstwo;}
protected:
TString Obywatelstwo;
};
/*****************************KLASA TPrawoJazdy********************************/
class TPrawoJazdy: public TDokWygasajacy {
public:
TPrawoJazdy(const TString&,const TString&);
TString GetPesel() const {return Pesel;}
TString GetKategorie() const {return Kategorie;}
protected:
TString Pesel;
TString Kategorie;
}; |
TDokument.cpp
Kod: | #include "TDokument.h"
/*******************************KLASA TDokument********************************/
TDokument::TDokument(const TString& _imie,const TString& _nazwisko,
const char _plec,const TJDate& _dataurodz,
const TString& _miejsceurodz,const TString& _adres,
const TJDate& _datawydania,const TString& _organwydajacy,
const TString& _numerdokumentu):
Imie(_imie),Nazwisko(_nazwisko),Plec(_plec),
DataUrodz(_dataurodz),MiejsceUrodz(_miejsceurodz),
Adres(_adres),DataWydania(_datawydania),
OrganWydajacy(_organwydajacy),NumerDokumentu(_numerdokumentu)
{
}
/*********************************KLASA TDokWygasajacy*************************/
TDokWygasajacy::TDokWygasajacy(const TJDate& _datawaznosci):
TDokument(_imie,_nazwisko,_plec,_dataurodz,
_miejsceurodz,_adres,_datawydania,_organwydajacy,
_numerdokumentu)
DataWaznosci(_datawaznosci)
{
}
/*********************************KLASA TDowodOsobisty*************************/
TDowodOsobisty::TDowodOsobisty(const TString& _nazwiskorodowe,
const TString& _imionarodzicow,const int _wzrost,
const TString& _koloroczu,const TString& _pesel):
TDokument(_imie,_nazwisko,_plec,_dataurodz,
_miejsceurodz,_adres,_datawydania,_organwydajacy,
_numerdokumentu)
NazwiskoRodowe(_nazwiskorodowe),
ImionaRodzicow(_imionarodzicow),Wzrost(_wzrost),
KolorOczu(_koloroczu),Pesel(_pesel)
{
}
/********************************KLASA TPaszport*******************************/
TPaszport::TPaszport(const TString& _obywatelstwo):
TDokWygasajacy(_datawaznosci),Obywatelstwo(_obywatelstwo)
{
}
/******************************KLASA TPrawoJazdy*******************************/
TPrawoJazdy::TPrawoJazdy(const TString& _pesel,const TString& _kategorie):
TDokWygasajacy(_datawaznosci),Pesel(_pesel),
Kategorie(_kategorie)
{
} |
|
|
Post został pochwalony 0 razy
|
|
|
|
| | |
Wysłany: Czw 23:48, 30 Cze 2005 |
|
|
Fritz |
Administrator |
|
|
Dołączył: 29 Cze 2005 |
Posty: 110 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Projekt 4- Polimorfizm(nieskończony projekt)
TOsoba.h
Kod: | #include "string3.h"
#include "jdate.h"
struct TPrzedmiot {
int No;
TString Nazwa;
int LGodz;
TPrzedmiot* Next;
};
/* I Poziom */
/**********************************KLASA TOsoba********************************/
class TOsoba { //Klasa abstrakcyjna
public:
TOsoba(const TString&,const TString&,const TString&,const TJDate&,
const TString&); //konstruktor
virtual ~TOsoba(); //desktruktor wirtualny
//Akcesory
TString GetNumer() const {return Numer;}
TString GetNazwisko() const {return Nazwisko;}
TString GetImie() const {return Imie;}
TJDate GetDataUrodz() const {return DataUrodz;}
TString GetAdres() const {return Adres;}
//Settery
void SetAdres(const TString& newAdr) {Adres=newAdr;}
void SetNazwisko(const TString& newNazw) {Nazwisko=newNazw;}
int LiczbaGodzin();
void Przedmioty(TPrzedmiot *przedm);
//Funkcja czysto wirtualna
virtual void Print()=0;
virtual void Wczytaj()=0;
protected:
TOsoba(const TOsoba& source);
TOsoba& operator = (const TOsoba& source);
TString Numer; //numer indeksu lub kod dydaktyka
TString Nazwisko;
TString Imie;
TJDate DataUrodz;
TString Adres;
TPrzedmiot* Przedmiot;
};
/* II Poziom */
/********************************KLASA TStudent********************************/
class TStudent: public TOsoba {
public:
TStudent(const int); //konstruktor
virtual ~TStudent(); //destruktor
int GetRok() const {return Rok;} //akcesor
void SetRok( int newRok ) {Rok = newRok;} //setter
//Funkcja wirtualna
virtual void Print();
virtual void Wczytaj();
protected:
TStudent(const TStudent& source);
TStudent& operator = (const TStudent& source);
int Rok; //rok studiow
};
/**********************************KLASA TNauczyciel***************************/
class TNauczyciel: public TOsoba {
public:
TNauczyciel(const TString&); //konstruktor
virtual ~TNauczyciel(); //destruktor
TString GetJednostka() const { return Jednostka; } //akcesor
void SetJednostka( int newJedn ) { Jednostka = newJedn; } //setter
//Funkcja wirtualna
virtual void Print();
virtual void Wczytaj();
protected:
TNauczyciel(const TNauczyciel& source);
TNauczyciel& operator = (const TNauczyciel& source);
TString Jednostka; //jednostka w ktorej zatrudniony nauczyciel
};
/****************************KLASY TWydzial i TLudzie**************************/
class TWydzial {
public:
friend class TLudzie;
private:
TWydzial(TOsoba* osoba):Osoba(osoba) {}
~TWydzial() {if (Osoba) {delete Osoba; Osoba=0;}}
TOsoba* Osoba;
TWydzial *Next,*Prev;
};
class TLudzie {
public:
TLudzie();
~TLudzie();
void NowyElement();
void Wyswietl();
private:
TWydzial *First,*Last;
TOsoba* Znajdz(const TString&);
void Wstaw(TOsoba*);
}; |
TOsoba.cpp
Kod: | #include "TOsoba.h"
/*******************************KLASA TOsoba***********************************/
TOsoba::TOsoba(const TString& _numer,const TString& _nazwisko,
const TString& _imie,const TJDate& _dataurodz,
const TString& _adres):Numer(_numer),Nazwisko(_nazwisko),
Imie(_imie),DataUrodz(_dataurodz),Adres(_adres),Przedmiot(NULL)
{
}
TOsoba::~TOsoba() {
TPrzedmiot* ptr;
while (ptr=Przedmiot) {
Przedmiot=Przedmiot->Next;
delete ptr;
}
}
TOsoba::TOsoba(const TOsoba& osoba): Numer(osoba.Numer),Nazwisko(osoba.Nazwisko),
Imie(osoba.Imie),DataUrodz(osoba.DataUrodz),
Adres(osoba.Adres),Przedmiot(osoba.Przedmiot)
{
}
int TOsoba::LiczbaGodzin() {
TPrzedmiot* ptr = Przedmiot;
int suma = 0;
while ( ptr ) {
suma+=ptr->LGodz;
ptr = ptr->Next;
}
return suma;
}
void TOsoba::Przedmioty(TPrzedmiot* przedm) {
przedm->Next = Przedmiot;
Przedmiot = przedm;
}
void TOsoba::Wczytaj() {
char buf[80];
cout<<endl;
cout<<"Nazwisko: "; cin.getline(buf,80,'\n'); Nazwisko = buf;
cout<<"Imie: "; cin.getline(buf,80,'\n'); Imie = buf;
cout<<"Numer indeksu lub kod dydaktyka: "; cin.getline(buf,80,'\n'); Numer = buf;
cout<<"Data urodzenia (DDMMCCYY): "; cin>>DataUrodz;
cout<<"Adres: "; cin.getline(buf,80,'\n'); Adres = buf;
cin.getline(buf,80,'\n');
}
/***********************************KLASA TStudent*****************************/
TStudent::TStudent(const int _rok):TOsoba(_numer,_nazwisko,_imie,_dataurodz,
_adres),Rok(_rok)
{
}
TStudent::~TStudent() {
}
TStudent::TStudent(const TStudent& student):TOsoba(osoba),Rok(student.Rok)
{
}
void TStudent::Print() {
cout<<"Nazwisko: "<<Nazwisko<<
" Imie: "<<Imie<<endl;
cout<<"Data urodzenia: "<<DataUrodz<<
cout<<"Adres: "<<Adres<<endl;
cout<<"Numer albumu: "<<Numer<<
" Rok studiow: "<<Rok<<endl;
cout<<"Liczba godzin wybranych zajec: "<<LiczbaGodzin()<<endl;
}
void TStudent::Wczytaj() {
TOsoba::Wczytaj();
char buf[80];
cout<<"Rok studiow: " cin>>Rok; cin.getline(buf,80,'\n');
}
/*********************************KLASA TNauczyciel****************************/
TNauczyciel::TNauczyciel(const TString& _jednostka):TOsoba(_numer,_nazwisko,
_imie,_dataurodz,_adres),Jednostka(_jednostka)
{
}
TNauczyciel::~TNauczyciel() {
}
void TNauczyciel::Wczytaj() {
TOsoba::Wczytaj();
char buf[80];
cout<<"Jednostka: "; cin.getline(buf,80,'\n'); Jednostka = buf;
cin.getline(buf,80,'\n');
}
void TNauczyciel::Print() {
cout<<"Nazwisko: "<<Nazwisko<<endl;
"Imie: "<<Imie<<endl;
cout<<"Data urodzenia: "<<DataUrodz<<endl;
cout<<"Adres: "<<Adres<<endl;
cout<<"Kod dydaktyka: "<<Numer<<endl;
"Jednostka w ktorej zatrudniony nauczyciel: "<<Jednostka<<endl;
cout<<"Liczba godzin wybranych zajec: "<<LiczbaGodzin()<<endl;
}
/*********************** LISTA PRACOWNIKOW I STUDENTOW WYDZIALU***************/
TLudzie:TLudzie() {
First=new TWydzial(NULL);
Last=new TWydzial(NULL);
First->Next=Last;
Last->Prev=First;
}
TLudzie::~TLudzie() {
TWydzial* ptr=First->Next;
while(ptr!=Last) {
First->Next=ptr->Next;
delete ptr;
ptr=First->Next;
}
}
void TLudzie::Wstaw(TOsoba* osoba) {
for (TWydzial* ptr=First->Next; ptr!=Last; ptr=ptr->Next)
if ( ptr->Osoba->GetNazwisko() > osoba->GetNazwisko() ) break;
TWydzial *nowy = new TWydzial(osoba);
nowy->Next = ptr->Prev->Next;
nowy->Prev = ptr->Prev;
ptr->Prev->Next = nowy;
ptr->Prev = nowy;
}
void TLudzie::NowyElement() {
cout<<endl;
cout<<"Wybierz kogo chcesz dodac do listy:"<<endl;
cout<<"1. Student\n";
cout<<"2. Nauczyciel"<<endl<<endl;
cout<<"Twoj wybor: ";
TOsoba *ptr;
char ss;
do ss=getch(); while ((ss<'1') || (ss>'2') );
cout<<endl;
switch ( ss ) {
case '1': ptr = new TStudent(); break;
case '2': ptr = new TNauczyciel(); break;
}
ptr->Wczytaj();
Wstaw(ptr);
}
TOsoba* TLudzie::Znajdz(const TString& nazw) {
for (TWydzial* ptr=First->Next; ptr!=Last; ptr=ptr->Next)
if ( ptr->Osoba->GetNazwisko() == nazw ) return ptr->Item;
else
if ( ptr->Osoba->GetNazwisko() > nazw ) break;
return NULL;
}
void TLudzie::Wyswietl() {
char buf[80];
cout<<endl<<endl;
cout<<"Podaj nazwisko osoby: "; cin.getline(buf,30,'\n');
TOsoba *_osoba = Znajdz(buf);
if (_osoba) _osoba->Print();
else cout<<"Nie znaleziono osoby o podanym nazwisku"<<endl;
getch();
} |
|
|
Post został pochwalony 0 razy
|
|
|
|
| | |
Wysłany: Czw 23:50, 30 Cze 2005 |
|
|
Fritz |
Administrator |
|
|
Dołączył: 29 Cze 2005 |
Posty: 110 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Na Prezydenta Wloclawka nie chce startowac, nie kreci mnie to:P Mam nadzieje ze pomoga Wam te projekty i powodzenia na zaliczeniu, bedzie dobrze:) Ja na szczescie juz mam to wszystko za soba:) |
|
Post został pochwalony 0 razy
|
|
|
|
Wysłany: Pon 16:40, 15 Sie 2005 |
|
|
Xena |
Obserwator |
|
|
Dołączył: 10 Sie 2005 |
Posty: 11 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Fritzu a masz ten projekt z funkcją wirtualną bo mam z nim mały problemik |
|
Post został pochwalony 0 razy
|
|
|
|
Wysłany: Pon 22:36, 15 Sie 2005 |
|
|
Fritz |
Administrator |
|
|
Dołączył: 29 Cze 2005 |
Posty: 110 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Projekt z funkcja wirtualna to jest ten 4 projekt ktory wkleilem. Wszystkie funkcje wirtualne sa dobrze zaimplementowane, problem mialem tylko z bazą danych. W klasie TOsoba stworzylem tzw funkcje czysto wirtualne, dzieki czemu klasa ta stala sie klasa abstrakcyjna. Nauczcie sie co to jest funkcja czysto wirtualna i klasa abstrakcyjna. To sie znajduje gdzies pod koniec jego skryptu. Moze o to pytac. |
|
Post został pochwalony 0 razy
|
|
|
|
Wysłany: Śro 20:26, 17 Sie 2005 |
|
|
Xena |
Obserwator |
|
|
Dołączył: 10 Sie 2005 |
Posty: 11 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Wielkie dzieki bo u mnie sa jakies bledy!!! |
|
Post został pochwalony 0 razy
|
|
|
|
Wysłany: Śro 20:26, 17 Sie 2005 |
|
|
Xena |
Obserwator |
|
|
Dołączył: 10 Sie 2005 |
Posty: 11 |
Przeczytał: 0 tematów
|
Skąd: Włocławek |
|
|
|
|
|
|
|
|
Wielkie dzieki bo u mnie sa jakies bledy!!! |
|
Post został pochwalony 0 razy
|
|
|
|
Wysłany: Pią 19:22, 20 Kwi 2007 |
|
|
Hannah59387 |
Obserwator |
|
|
Dołączył: 20 Kwi 2007 |
Posty: 12 |
Przeczytał: 0 tematów
|
|
|
|
|
|
|
|
|
|
BDSM heaven!
[link widoczny dla zalogowanych] |
|
Post został pochwalony 0 razy
|
|
|
|
|