Saturday, 21 November 2015

CS301 Assignment No 01 Due Date November 23, 2015

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