здравейте, стигнал съм донякъде на тази програма... при добро желание някой да ми помогне със функция за добавяне на нов влак, изтриване на такъв и запис на данните във файл findStart(); също не пробачка
благодаря предварително
- Код: Избери целия код
#include<iostream> #include<fstream> #include<string> #include<vector> #include<ctime>
using namespace std;
class cTrainTime { int Hour; int Minute; public: cTrainTime(const cTrainTime &oTrain); cTrainTime(int aHour,int aMinute); cTrainTime(); int GetHour()const; int GetMinute()const; void SetMinute(int aMinute); void SetHour(int aHour);
void Print(ostream &Stream)const; void Enter(istream &Stream);
};
class cTrain {
string ToDest; string FromDest; int type; // 1-ekspresen, 2 - patni4eski, 3 - barz double Delay; cTrainTime Start; public: cTrain(cTrain const &oTrain); cTrain();
void SetStart(cTrainTime const &TrainStart); void SetDelay(double TrainDelay); void SetTo(string To); void SetFrom(string From); void SetType(int atype);
void WriteToFile(fstream &Stream)const; void ReadFromFile(fstream &Stream);
void Print(ostream &Stream)const; void Enter(istream &Stream);
cTrainTime GetStart()const; double GetDelay()const; string GetTo()const; string GetFrom()const; int GetType()const;
virtual ~cTrain(); };
vector<cTrain>v; void findEx(); void findDel(); void findStart(cTrainTime const &Start, cTrain const &oTrain); void findDest();
void main () { fstream ff; cTrainTime oo; cTrain train;
train.Enter(cin); v.push_back(train);
/* for(int i =0;i<v.size();i++) v[i].Print(cout); cout<<endl<<endl;*/
findStart(oo, train); // findEx(); // findDest(); // findDel(); }
void findStart(cTrainTime const &Start, cTrain const &oTrain)//funkciq za tursene po chas na trugvane { cTrainTime start1; cout<<endl<<"Vyvedete chas na trugvane:"; cin>>start1; for(int i=0;i<v.size();i++) if(start1=v[i].GetStart()) v[i].Print(cout); }
void findDel()//funkciq za tursene po produljitelnost na patuvane { int del; cout<<"Vyvedete produljitelnost na patuvane:"; cin>>del; for(int i=0;i<v.size();i++) if(del==v[i].GetDelay()) v[i].Print(cout); }
void findEx()//funkciq za tursene na ekspresni vlakove { cout<<"Ekspresni vlakove:"<<endl; for(int i=0;i<v.size();i++) if(v[i].GetType()==1) v[i].Print(cout); }
void findDest()//funkciq za tursene po nachalna i kraina gari { string from, to; cout<<endl<<"Vyvedete nachalna gara:"; cin>>from; cout<<endl<<"Vyvedete kraina gara:"; cin>>to; for(int i=0;i<v.size();i++) if((v[i].GetFrom()==from)&&(v[i].GetTo()==to)) v[i].Print(cout); }
cTrain::cTrain(cTrain const &oTrain)// { SetTo(oTrain.GetTo()); SetFrom(oTrain.GetFrom()); SetDelay(oTrain.GetDelay()); SetType(oTrain.GetType());
Start.SetHour(oTrain.Start.GetHour()); Start.SetMinute(oTrain.Start.GetMinute()); } cTrain::cTrain(){}//default konstruktor cTrain::~cTrain(){}//desktruktor void cTrain::SetStart(const cTrainTime &TrainStart)//vuvejdane na chas i minuti na trugvane { Start.SetHour(TrainStart.GetHour()); Start.SetMinute(TrainStart.GetMinute()); }
void cTrain::SetDelay(double TrainDelay)//vuvejdane na produljitelnostta na patuvaneto { Delay = TrainDelay; }
void cTrain::SetTo(string To)//vuvejdane na kraina gara { ToDest = To; }
void cTrain::SetFrom(string From)//vuvejdane na nachalna gara { FromDest = From; }
void cTrain::SetType(int atype)//vuvejdane na tip na vlaka { type = atype; }
cTrainTime cTrain::GetStart()const//vrushtane na chasa na trugvane { return Start; }
double cTrain::GetDelay()const//vrushtane na produljitelnostta na patuvaneto { return Delay; }
string cTrain::GetTo()const//vrushtane na kraina gara { return ToDest; }
string cTrain::GetFrom()const//vrushtane na nachalna gara { return FromDest; }
int cTrain::GetType()const//vrushtane na tipa na vlaka { return type; }
void cTrain::WriteToFile(fstream &Stream)const//zapisvane na dannite vuv fail { Stream.write((char*)this,sizeof(class cTrain)); }
void cTrain::ReadFromFile(fstream &Stream)//chetene ot faila { cTrain o; Stream.read((char*)&o,sizeof(class cTrain)); SetStart(o.GetStart()); SetDelay(o.GetDelay()); SetTo(o.GetTo()); SetFrom(o.GetFrom()); SetType(o.GetType()); }
void cTrain::Print(ostream &Stream)const//izvejda informaciq za vlaka { cTrainTime TrainStart; Stream<<GetFrom(); Stream<<" - "; Stream<<GetTo(); TrainStart = GetStart(); cout<<" "; TrainStart.Print(Stream); int ttype; string vlak; ttype = GetType(); switch(ttype) { case 1: { vlak = " ekspres-"; break; } case 2: { vlak = " pytnicheski-"; break; } case 3: { vlak = " byrz-"; break; } }; Stream<<vlak; Stream<<GetDelay()<<"minuti"; }
void cTrain::Enter(istream &Stream)//vuvejdane na informaciq za vlaka { int ttype; string vlak; double delay; cTrainTime ttime;
cout<<"From:"<<endl<<"(Vuvedete nachalna gara):"; Stream>>vlak; SetFrom(vlak);
cout<<"To:"<<endl<<"(Vuvedete kraina gara):";; Stream>>vlak; SetTo(vlak);
do { cout<<"Type:"<<endl<<"(Vyvedete-"; cout<<"1 za ekspres, "; cout<<"2 za pytnicheski, "; cout<<"3 za byrz):"; Stream>>ttype; }while(ttype>3); SetType(ttype);
do { cout<<"Delay:"<<endl<<"(Vyvedete minutnata produljitelnost na pytuvaneto):"; Stream>>delay; } while(delay<=0); SetDelay(delay);
ttime.Enter(Stream); ttype = ttime.GetHour(); Start.SetHour(ttype); ttype = ttime.GetMinute(); Start.SetMinute(ttype); }
cTrainTime::cTrainTime()//default konstruktor { SetHour(0); SetMinute(0); }
cTrainTime::cTrainTime(const cTrainTime &oTrainTime)// { SetHour(oTrainTime.GetHour()); SetMinute(oTrainTime.GetMinute()); }
cTrainTime::cTrainTime(int aHour,int aMinute)// { SetHour(aHour); SetMinute(aMinute); } void cTrainTime::Print(ostream &Stream)const//izvejdane na chasa na trugvane { Stream<<GetHour()<<":"<<GetMinute(); } void cTrainTime::Enter(istream &Stream)//vuvejdane na chasa { int aa; cout<<"Vyvedete chas na trygvane:"; Stream>>aa; SetHour(aa); cout<<"Vyvedete minuti:"; Stream>>aa; SetMinute(aa); } int cTrainTime::GetHour()const//vrushtane na chasa { return Hour; }
int cTrainTime::GetMinute()const//vrushtane na minutite { return Minute; }
void cTrainTime::SetHour(int aHour)//prisvoqvane na chasa { Hour = aHour; }
void cTrainTime::SetMinute(int aMinute)//prisvoqvane na minutite { Minute = aMinute; }
|