Showing posts with label cs201 5. Show all posts
Showing posts with label cs201 5. Show all posts

Wednesday, January 25, 2012

cs201 5 Introduction to Programming Assignment solution fall 2012

 #include <iostream.h>
#include <fstream.h>
#include <string.h>
using namespace std;          
string karachi="Karachi",lahore="Lahore",peshawar="Peshawar";
class Airfare
{
      private:
            char seatType;
            int price;
            float tax;
            double airlinecharg;
            double fare;

           
            string destination, name, date, address, flightNo, seatNo;
           
      public:
           enum Type
           {
                economy,
                business,
                first
            };
            Type type;
            void getData();
            void readData();
            void setDestination(string i){destination=i;};
            double calculatePrice();
            float CalculateTax();
            void calFare();
            void writeDatafile();
            void writeDatascreen();
            Airfare(){
                      seatType=' ';
                      price=tax=airlinecharg=fare=0.0;
                      destination=name=date=address=flightNo=seatNo="default";};
};

void Airfare::getData()
{
     int i;
     do
     {
         cout<<"Please select the Seat Type:"<<endl;
         cout<<" 1     for    Economy Class"<<endl;
         cout<<" 2     for    Business Class"<<endl;
         cout<<" 3     for    First Class"<<endl;
         cin>>i;
     }
     while(i>3 || i<1);
     type = Type(i);
}
void Airfare::readData() 
{
      string line;
      ifstream myfile ("data.txt");
      if (myfile.is_open())
      {
      
          getline (myfile,line);
          name=line;
          getline (myfile,line);
          address=line;
          getline (myfile,line);
          date=line;
          getline (myfile,line);
          destination=line;
          getline (myfile,line);
          flightNo=line;
          getline (myfile,line);
          seatNo=line;
         
        myfile.close();
     
      }
   
      else cout << "Unable to open file";
}
double Airfare::calculatePrice()
{
       if(destination == karachi )
       {
                      switch (type)
                      {
                             case 1://economy class
                                  airlinecharg=(tax+3000)*0.15;
                                  return tax+3000+airlinecharg;
                                  break;
                             case 2://business class
                                  airlinecharg=(tax+5000)*0.15;
                                  return tax+5000+airlinecharg;
                                  break;
                             case 3://first class
                                  airlinecharg=(tax+7000)*0.15;
                                  return tax+7000+airlinecharg;
                                  break;
                      };
       }
       if(destination == lahore )
       {
                      switch (type)
                      {
                             case 1://economy class
                                  airlinecharg=(tax+4000)*0.15;
                                  return tax+4000+airlinecharg;
                                  break;
                             case 2://business class
                                  airlinecharg=(tax+6000)*0.15;
                                  return tax+6000+airlinecharg;
                                  break;
                             case 3://first class
                                  airlinecharg=(tax+7000)*0.15;
                                  return tax+7000+airlinecharg;
                                  break;
                      };
       }
       if(destination == peshawar )
       {
                      switch (type)
                      {
                             case 1://economy class
                                  airlinecharg=(tax+2500)*0.15;
                                  return tax+2500+airlinecharg;
                                  break;
                             case 2://business class
                                  airlinecharg=(tax+4500)*0.15;
                                  return tax+4500+airlinecharg;
                                  break;
                             case 3://first class
                                  airlinecharg=(tax+7000)*0.15;
                                  return tax+7000+airlinecharg;
                                  break;
                      };
       }
                   

}
float Airfare::CalculateTax()
{
      if(destination == karachi )
       {
                      switch (type)
                      {
                             case 1://economy class
                                  tax=4000*0.10;
                                  break;
                             case 2://business class
                                  tax=6000*0.20;
                                  break;
                             case 3://first class
                                  tax=7000*0.30;
                                  break;
                      };
       }
       if(destination == lahore )
       {
                      switch (type)
                      {
                             case 1://economy class
                                  tax=3000*0.10;
                                  break;
                             case 2://business class
                                  tax=3000*0.20;
                                  break;
                             case 3://first class
                                  tax=7000*0.30;
                                  break;
                      };
       }
       if(destination == peshawar )
       {
                      switch (type)
                      {
                             case 1://economy class
                                  tax=2500*0.10;
                                  break;
                             case 2://business class
                                  tax=4500*0.20;
                                  break;
                             case 3://first class
                                  tax=7000*0.30;
                                  break;
                      };
       }
       fare=calculatePrice();
}
void Airfare::writeDatafile()
{
     ofstream myfile ("fare.txt");
      if (myfile.is_open())
      {
             
              
               
           myfile<<"_________________________________________________________________________"<<endl;
           myfile<<"| Name    | Address  | Date  | Destination | Flight No.| Seat No.| Fare |"<<endl;
           myfile<<"-------------------------------------------------------------------------"<<endl;
           myfile<<"| "<<name<<"  |  "<<address<<"  |  "<<date<<"  |  "<<destination<<"  |  "<<flightNo<<"  |  "<<seatNo<<"  |  "<<fare<<"  |  "<<endl;
           myfile<<endl;
           myfile<<endl;
           myfile<<endl;
           myfile<<endl;
           myfile<<endl;
           myfile<<endl;
           myfile<<endl;
           myfile<<endl;
           myfile<<"-------------------------------------------------------------------------"<<endl;
          
     
           myfile.close();
      }
      else cout << "Unable to open file";
   
}

void Airfare::writeDatascreen()
{        
           cout<<"_________________________________________________________________________"<<endl;
           cout<<"| Name    | Address  | Date  | Destination | Flight No.| Seat No.| Fare |"<<endl;
           cout<<"-------------------------------------------------------------------------"<<endl;
           cout<<"| "<<name<<"  |  "<<address<<"  |  "<<date<<"  |  "<<destination<<"  |  "<<flightNo<<"  |  "<<seatNo<<"  |  "<<fare<<"  |  "<<endl;
           cout<<endl;
           cout<<endl;
           cout<<endl;
           cout<<endl;
           cout<<endl;
           cout<<endl;
           cout<<endl;
           cout<<endl;
           cout<<"-------------------------------------------------------------------------"<<endl;   
}
void Airfare::calFare()
{
     fare=calculatePrice();
}

main()
{
      Airfare a;
      a.getData();
      a.readData();
      a.CalculateTax();
      a.calculatePrice();
      a.calFare();
      a.writeDatafile();
      a.writeDatascreen();
      system("pause");
}