Solution :-
- \#include <iostream>
using namespace std;
/* The Node class */
class Flight
{
public:
Flight()
{
fn = "";
f = "";
t = "";
dt = "00:00";
at = "00:00";
}
string getFlightName() { return fn; };
void setFlightName(string fn) { this->fn = fn; };
string getFrom() { return f; };
void setFrom(string f) { this->f = f; };
string getTo() { return t; };
void setTo(string t) { this->t = t; };
string getDepartureTime() { return dt; };
void setDepartureTime(string dt) { this->dt = dt; };
string getArrivalTime() { return at; };
void setArrivalTime(string at) { this->at = at; };
Flight * getNext() { return nextFlight; };
void setNext(Flight * nextFlight) { this->nextFlight = nextFlight; };
private:
string fn;
string f;
string t;
string dt;
string at;
Flight * nextFlight;
};
/* The List class */
class FlightDetailList
{
public:
FlightDetailList()
{
headFlight = new Flight();
headFlight->setNext(NULL);
currentFlight = NULL;
lastCurrentFlight = NULL;
size = 0;
}
void add (string fn, string f, string t, string dt, string at)
{
Flight * newFlight = new Flight();
newFlight->setFlightName(fn);
newFlight->setFrom(f);
newFlight->setTo(t);
newFlight->setDepartureTime(dt);
newFlight->setArrivalTime(at);
if( currentFlight != NULL )
{
newFlight->setNext(currentFlight->getNext());
currentFlight->setNext( newFlight );
lastCurrentFlight = currentFlight;
currentFlight = newFlight;
}
else
{
newFlight->setNext(NULL);
headFlight->setNext(newFlight);
lastCurrentFlight = headFlight;
currentFlight = newFlight;
}
size ++;
}
void get()
{
if (currentFlight != NULL)
{
coutcurrentFlight->getFlightName()"\t\t"currentFlight->getFrom()"\t"currentFlight->getTo()"\t"
currentFlight->getDepartureTime()"\t\t"currentFlight->getArrivalTime()"\n";
}
}
bool next()
{
if (currentFlight == NULL) return false;
lastCurrentFlight = currentFlight;
currentFlight = currentFlight->getNext();
if (currentFlight == NULL || size == 0)
return false;
else
return true;
}
Flight* search(string valFrom, string valTo)
{
Flight* pFlight = headFlight;
cout"\nFlightName\t""From\t\t""To\t\t""DepartureTime\t""ArrivalTime\n";
/* traverse the list */
while (pFlight != NULL) {
/* Target! */
if(pFlight->getFrom() == valFrom && pFlight->getTo()==valTo)
{
coutpFlight->getFlightName()"\t\t"pFlight->getFrom()"\t"pFlight->getTo()"\t"
pFlight->getDepartureTime()"\t\t"pFlight->getArrivalTime()"\n";
}
/* move to the next one */
pFlight = pFlight->getNext();
}
return NULL;
}
friend void traverse(FlightDetailList list);
friend FlightDetailList addFlights();
private:
int size;
Flight * headFlight;
Flight * currentFlight;
Flight * lastCurrentFlight;
};
/* Friend function to traverse linked list */
void traverse(FlightDetailList list)
{
Flight* savedCurrentFlight = list.currentFlight;
list.currentFlight = list.headFlight;
cout"FlightName\t""From\t\t""To\t\t""DepartureTime\t""ArrivalTime\n";
for(int i = 1; list.next(); i++)
{
list.get();
}
list.currentFlight = savedCurrentFlight;
}
/* Friend function to add Flights into the list */
FlightDetailList addFlights()
{
FlightDetailList list;
list.add("PK-1781", "Karachi (KHI)", "Islamabad (ISB)", "19:00", "21:00");
list.add("PK-368", "Islamabad (ISB)", "Karachi (KHI)", "21:45", "23:45");
list.add("PK-688", "Peshawar (PEW)", "Karachi (KHI)", "08:15", "10:15");
list.add("PK-368", "Karachi (KHI)", "Lahore (LHE)", "13:15", "15:00");
list.add("PK-308", "Lahore (LHE)", "Karachi (KHI)", "15:45", "17:30");
list.add("PK-370", "Lahore ( LHE)", "Karachi (KHI)", "21:00", "22:45");
list.add("16103", "Karachi (KHI)", "Peshawar (PEW)", "08:00", "09:50");
list.add("16104", "Karachi (KHI)", "Islamabad (ISB)", "19:30", "21:30");
list.add("16401", "Karachi (KHI)", "Islamabad (ISB)", "20:00", "22:00");
list.add("16402", "Karachi (KHI)", "Islamabad (ISB)", "19:55", "21:55");
//cout "\n FlightDetailList size = " list.size '\n';
return list;
}
main()
{
FlightDetailList list = addFlights();
traverse(list);
string valueFrom, valueTo;
cout"\nPlease enter Flight From: ";
cin>>valueFrom;
cout"Please enter Flight To: ";
cin>>valueTo;
if(valueFrom == "KHI" || valueFrom == "khi")
{
valueFrom = "Karachi (KHI)";
}
else if ( valueFrom == "ISB" || valueFrom == "isb")
{
valueFrom = "Islamabad (ISB)";
}
else if (valueFrom == "PEW" || valueFrom == "pew")
{
valueFrom = "Peshawar (PEW)";
}
else if (valueFrom == "LHE" || valueFrom == "lhe")
{
valueFrom = "Lahore (LHE)";
}
if(valueTo == "KHI" || valueTo == "khi")
{
valueTo = "Karachi (KHI)";
}
else if ( valueTo == "ISB" || valueTo == "isb")
{
valueTo = "Islamabad (ISB)";
}
else if (valueTo == "PEW" || valueTo == "pew")
{
valueTo = "Peshawar (PEW)";
}
else if (valueTo == "LHE"|| valueTo == "lhe")
{
valueTo = "Lahore (LHE)";
}
Flight *Flight;
Flight = list.search(valueFrom, valueTo);
}
Read more at http://vustudents.ning.com/group/cs301datastructures/forum/topics/dear-students-please-note-that-graded-assignment-no-1-of-cs-301#iVMbvxjyUhSLPe54.99
No comments:
Post a Comment