Create a Flight class that uses the Plane and Time class Thi
Create a Flight class that uses the Plane and Time class. This class will represent a flight between two airports, using a specific Plane, and departing at a specific Time. It should contain a constructor, 7 instance variables (plane, flight number, cost, departure, duration, source, destination), and 9 methods (see below).
Below is the code so far (only part of the final test FLIGHT is missing):
/**
 *
 * @author (your name), Acuna
 */
 public class Driver {
     public static void main(String[] args) {
        
         testAirline();
         testAirport();
         testPlane();
         testTime();
         testFlight();
     }
    
     public static void testAirline() {
         System.out.println(\"==testAirline()==\");
        
         Airline a1 = Airline.American;
         Airline a2 = Airline.United;
         Airline a3 = Airline.Delta;
         Airline a4 = Airline.United;
        
        System.out.println(\"a1: \" + a1);
         System.out.println(\"a2 == a3: \" + (a1 == a2));
         System.out.println(\"a2 == a4: \" + (a2 == a4));
    }
    
     public static void testAirport() {
         System.out.println(\"==testAirport()==\");
        
        Airport a1 = Airport.PHX;
         Airport a2 = Airport.LAX;
         Airport a3 = Airport.SFO;
         Airport a4 = Airport.NRT;
         Airport a5 = Airport.SIN;
        
         System.out.println(\"a1: \" + a1);
         System.out.println(\"a2 == a3: \" + (a1 == a2));
         System.out.println(\"a2 == a4: \" + (a2 == a4));
         System.out.println(\"a1: \" + Airport.getAirportCity(a1));
         System.out.println(\"a3: \" + Airport.getAirportCity(a3));
         System.out.println(\"a5: \" + Airport.getAirportCity(a5));
     
     }
    
     public static void testPlane() {
         System.out.println(\"==testPlane()==\");
        Plane p1 = new Plane(Airline.Delta, \"Boeing 717\");
         Plane p2 = new Plane(Airline.United, \"Airbus A321\");
        
         System.out.println(p1.getAirline());
         System.out.println(p1.getModel());
         System.out.println(p1);
         System.out.println(p2);
   
     }
    
     public static void testTime() {
         System.out.println(\"==testTime()==\");
        
        //Test 1: use default constructor.
         Time t1 = new Time();
        
         //Test 2: use overloaded constructor.
         Time t2 = new Time(9, 0);
         Time t3 = new Time(1, 15);
        
         //Test 3: use clone operation.
         Time t4 = t3.getCopy();
        
         //Test 4: run toString on AM times.
         System.out.println(new Time(0, 5));
         System.out.println(new Time(1, 15));
         System.out.println(new Time(2, 45));
         System.out.println(new Time(10, 5));
         System.out.println(new Time(11, 15));
        
         //Test 5: run toString on PM times.
         System.out.println(new Time(12, 45));
         System.out.println(new Time(13, 5));
         System.out.println(new Time(22, 15));
         System.out.println(new Time(23, 45));
        
         //Test 6: run toString on object from default constructor.
         System.out.println(\"t1: \" + t1);
        
         //Test 7: testing addTime operation
         System.out.println(\"t2: \" + t2);
         t2.addTime(t3);
         System.out.println(\"t2: \" + t2);
        
         //Test 8: testing addMinutes operation
         t2.addMinute(181);
         System.out.println(\"t2: \" + t2);
        
         //Test 9: testing8 addHours operation
         t2.addHours(2);
         System.out.println(\"t2: \" + t2);
        
         //Test 10: testing cloned copy.
         t4.addHours(1);
         System.out.println(\"t3: \" + t3);//original
         System.out.println(\"t4: \" + t4);//clone
        
         //Test 11: testing isEarlierThan.
         System.out.println(\"t3 < t4: \" + t3.isEarlierThan(t4));
         System.out.println(\"t4 < t3: \" + t4.isEarlierThan(t3));
         System.out.println(\"t2 < t4: \" + t2.isEarlierThan(t4));
         System.out.println(\"t4 < t2: \" + t4.isEarlierThan(t2));
         System.out.println(\"t2 < t2: \" + t2.isEarlierThan(t2));
        
         //Test 12: testing isLaterThan.
         System.out.println(\"t2 > t4: \" + t2.isLaterThan(t4));
         System.out.println(\"t4 > t2: \" + t4.isLaterThan(t2));
         System.out.println(\"t4 > t4: \" + t4.isLaterThan(t4));
        
         //Test 13: testing isSameTime.
         System.out.println(\"t2 = t4: \" + t2.isSameTime(t4));
         System.out.println(\"t4 = t4: \" + t4.isSameTime(t4));
         System.out.println(\"t4 = 2:15AM: \" + t4.isSameTime(new Time(2, 15)));
       
     }
   
     public static void testFlight() {
         System.out.println(\"==testFlight()==\");
        Flight f1 = new Flight(new Plane(Airline.American, \"Airbus A321\"),
                                \"495\",
                                79,
                                new Time(11,5), 100,
                                Airport.PHX, Airport.LAX);
        
         Flight f2 = new Flight(new Plane(Airline.Delta, \"Boeing 717\"),
                                \"1063\",
                                79,
                                new Time(7, 10),
                                95,
                                Airport.PHX,
                                Airport.LAX);
        
         Flight f3 = new Flight(new Plane(Airline.American, \"Airbus A321\"),
                                \"400\",
                                44,
                                new Time(21, 25),
                                127,
                                Airport.PHX,
                                Airport.SFO);
        
         Flight f4 = new Flight(new Plane(Airline.United, \"Boeing 787\"),
                                \"400\",
                                525,
                                new Time(10, 50),
                                715,
                                Airport.LAX,
                                Airport.NRT);
        
         Flight f5 = new Flight(new Plane(Airline.United, \"Boeing 737\"),
                                \"414\",
                                59,
                                new Time(6, 50),
                                85,
                                Airport.LAX,
                                Airport.SFO);
        
        
         System.out.println(f1.toDetailedString());
         System.out.println();
         System.out.println(f1.toOverviewString());
        
         System.out.println();
         System.out.println();
        
         System.out.println(f5.toDetailedString());
         System.out.println();
         System.out.println(f5.toOverviewString());
    }
 }
Solution
#include<stdio.h>
 #include<ctype.h>
 
 #define MAX_NUM_SEATS (20)
 #define MAX_NUM_SEATS_IN_FIRST_CLASS (5)
 #define MAX_NUM_SEATS_IN_ECONOMY            (MAX_NUM_SEATS - MAX_NUM_SEATS_IN_FIRST_CLASS)
 
 int main()
 {
       int plane[MAX_NUM_SEATS] = {0}, i=0;
       int nNumSeatsInFirst = 0;
       int nNumSeatsInEconomy = 0;
       int nSeatAssignmentFirstClass = 1; // start at 1;
       int nSeatAssignmentEconomy = MAX_NUM_SEATS_IN_FIRST_CLASS + 1; // start at 6
       int choice;
       int nClass;
       int nCurrentSeatAssignment;//      firstClass=1,economy=6,choice;
       char response[2];
       char firstname[35], lastname[35];
       int       bPrintTicket;
       
       while( i < MAX_NUM_SEATS )
       {
             printf(\"\ %s\ %s\ \", \"Please type 1 for \\\"First class\\\"\",\"Please type 2 for\\\"Economy\\\"\");
             scanf(\"%d\", &choice);
             
             if( !( ( 1 == choice ) || ( 2 == choice ) ) )
             {
                   continue;
              }
             
             // start out assuming we will print ticket!
             bPrintTicket = 1;
             
             printf(\"\ Enter first name:\");
             scanf(\"%s\",firstname);
             
             printf(\"\ Enter lastname :\");
             scanf(\"%s\", lastname);
             
             nClass = choice; // store the class before doing all the logical checks
 
             /****************************************************************/            
              /*************** ECONOMY SECTION ***************/
             /****************************************************************/
              if( 2 == choice )
             {
                   // check for economy full
                   if( nNumSeatsInEconomy >= MAX_NUM_SEATS_IN_ECONOMY )
                   {
                          // economy full
                         // check for first class (plane ) full
                         if( nNumSeatsInFirst <= MAX_NUM_SEATS_IN_FIRST_CLASS )
                         {
                               printf(\"The economy section is full.\ \");
                               printf(\"would you like to sit in first class \");
                               printf(\"section( Y or N)?\");
                               scanf(\"%s\", response);
                               
                                if ( toupper(response[0])==\'Y\')
                               {
                                      // print ticket!
                                     bPrintTicket = 1;
                                     printf( \"Your seat assignment is %d\ \", nSeatAssignmentFirstClass );
                                     nCurrentSeatAssignment = nSeatAssignmentFirstClass;
                                     plane[nSeatAssignmentFirstClass - 1] = 1;
                                     nSeatAssignmentFirstClass++;
                                     nNumSeatsInFirst++;
                                     nClass = 1;
                                     i++;
                               }
                                else                              
                               {
                                      // don\'t print ticket!
                                     bPrintTicket = 0;
                                     printf(\"Next flight leaves in 3 hours.\ \");
                               }
                          }
                         else
                         {
                               // don\'t print ticket!
                               bPrintTicket = 0;
                               // print out that plane is full
                               printf(\"Plane is full, next flight in 3 hours\ \");
                         }
                   }
                    else
                    {      
                         // economy is not full                        
                          printf(\"Your seat assignment is %d\ \", nSeatAssignmentEconomy );
                         plane[(nSeatAssignmentEconomy - 1)] = 1;
                         nCurrentSeatAssignment = nSeatAssignmentEconomy;
                         nSeatAssignmentEconomy++;
                         nNumSeatsInEconomy++;                        
                          i++;
                   }
              } // if( choice == 2 )
             
 
             /****************************************************************/            
              /*************** FIRST CLASS SECTION ***************/
             /****************************************************************/
              if( 1 == choice )
             {
                   // check for fisrt class full
                   if( nNumSeatsInFirst >= MAX_NUM_SEATS_IN_FIRST_CLASS )
                   {
                          // first class full
                         // check for economy class (plane) full
                         if( nNumSeatsInEconomy <= MAX_NUM_SEATS_IN_ECONOMY )
                         {
                               printf(\"The First Class section is full.\ \");
                               printf(\"Would you like to sit in the economy \");
                               printf(\"section (Y or N)?\");
                               scanf(\"%s\", response);
                               
                                
                                if(toupper(response[0])==\'Y\')
                                {                                    
                                      printf(\"Your seat assignment is %d\ \",nSeatAssignmentEconomy);
                                     plane[nSeatAssignmentEconomy - 1] = 1;
                                     nCurrentSeatAssignment = nSeatAssignmentEconomy;
                                     nSeatAssignmentEconomy++;
                                     nNumSeatsInEconomy++;
                                     i++;
                                     nClass = 2;
                               }
                                else
                                {
                                      // don\'t print ticket!
                                     bPrintTicket = 0;
                                     printf(\"Next flight leaves in 3 hours.\ \");
                               }
                          }
                         else
                         {
                               // don\'t print ticket!
                               bPrintTicket = 0;
                               // print out that plane is full
                               printf(\"Plane is full, next flight in 3 hours\ \");
                         }
                   }
                    else
                    {
                          // first is not full
                         printf(\"Your seat assignment is %d\ \", nSeatAssignmentFirstClass );
                         plane[(nSeatAssignmentFirstClass - 1)] = 1;
                         nCurrentSeatAssignment = nSeatAssignmentFirstClass;
                         nSeatAssignmentFirstClass++;
                         nNumSeatsInFirst++;
                         
                         i++;
                   }
              }
             
             if( 1 == bPrintTicket )
             {
                   printf(\" ****************************************\ \");
                   printf(\" * *\ \");
                   printf(\" NAME:%s, %s \ \",lastname,firstname);
                   printf(\" * *\ \");
                   printf(\" CLASS:%d \ \",nClass);
                   printf(\" * *\ \");
                   printf(\" SEAT:%d \ \",nCurrentSeatAssignment);
                   printf(\" * *\ \");
                   printf(\" \ \");
                   printf(\" ****************************************\ \");
             }
             
 }
   
 printf(\"\ All the seats for this flight are sold\ \");
   
 return 0;
 }






