Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ООП-база данных для пассажиров поезда
.cpp#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>
#include <ctype.h>
#include <windows.h>
class Error
{
public:
char *b;
int a;
Error(char *b1){b=b1;}
//Error(int a1){a=a1;}
};
class Time
{
protected:
int hour;
int minute;
public:
void SetTime (int h0,int min0)
{
hour=h0;
minute=min0;
}
virtual void Set()=0;
};
class Date
{
protected:
int day;
int month;
int year;
public:
void SetDate (int d0, int m0, int y0)
{
day=d0; month=m0; year=y0;
}
virtual void Set ()=0;
};
class Dep:virtual public Date, public Time
{
public:
virtual void Set ()
{
cout <<day<<"."<<month<<"."<<year<<"\n";
cout <<hour<<":"<<minute<<"\n";
}
int SetD(){return day;}
};
class Ticket;
class Pass: virtual public Date
{
protected:
char *name;
public:
Pass (char * name0)
{
int N=strlen(name0);
name=new char[N];
name=name0;
}
~Pass(){/*delete []name; */
cout<<"Destructor\n";
}
virtual void Set ()
{
cout <<"\nPassazhir \n";
cout <<"Data rozhdeniya:";
cout <<day<<"."<<month<<"."<<year<<"\n";
cout <<"Name:";
cout <<name<<"\n";
}
friend void SvE (Pass ob1, Ticket ob2);
};
class Ticket:public Pass, public Dep
{
int V;
int place;
// Dep D1;
public:
Ticket (char *name0, int v0, int place0,Dep d): Pass (name0)
{
V=v0;
place=place0;
day=d.SetD();
/* Dep::month=D.SetM();
Dep::year=D.SetY();
hour=D.SetH();
minute=D.SetMIN();*/
}
~Ticket(){cout<<"Destr\n";}
virtual void Set ()
{
cout <<"\nBilet\n";
cout <<Dep::day<<"."<<Dep::month<<"."<<Dep::year<<"\n";
cout <<hour<<":"<<minute<<"\n";
cout <<V<<" Vagon\n";
cout <<place<<" Mesto\n";
cout <<name<<" Name\n";
}
friend void SvE (Pass ob1, Ticket ob2);
};
//Friend function
void SvE (Pass ob1, Ticket ob2)
{
if (strcmp (ob1.name, ob2.name)==1) throw Error(ob2.name);
else
{
cout<<"\n";
cout <<"Sravnenie imen v Pass i Ticket:TRUE\n";
cout<<"Name:"<<ob1.name<<"\n";
cout<<"Data rozhdeniya:"<<ob1.day<<"."<<ob1.month<<"."<<ob1.year<<"\n";
}
}
main()
{
int hour=12;
int minute=10;
int day=12;
int month=5;
int year=2005;
Time *t1;
Date *d1;
Dep D1;
t1=&D1;
d1=&D1;
try
{
cout<<"Otpravlenie: \n";
t1->SetTime(hour,minute);
d1->SetDate(day,month,year);
t1->Set();
Pass P1("Rew");
Date *d2;
d1=&P1;
d1->SetDate(18,5,2004);
d1->Set();
int vagon=15;
int mesto=34;
Ticket T1 ("Rew", vagon, mesto,D1);
t1=&T1;
t1->Set();
SvE (P1,T1);
// ~Ticket();
}
catch (Error i) {cout <<"Error "<<i.b<<"\n";}
catch (...) {cout <<"Another Error";}
return 0;
}
Соседние файлы в предмете Объектно ориентированное программирование