Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试通过方法获取java菜单以正确计数_Java_Arrays_String_Methods_Count - Fatal编程技术网

尝试通过方法获取java菜单以正确计数

尝试通过方法获取java菜单以正确计数,java,arrays,string,methods,count,Java,Arrays,String,Methods,Count,我是java新手,在这个简单的菜单程序中已经走了这么远,让其他部分正常工作(因此我添加了它们),但我想知道我到底做错了什么?我试过调试,但我太没经验了,不知道该怎么做。如有任何建议,将不胜感激。我自己解决了大部分问题,只是某些部分不起作用,我有点撞到墙了 1) 报告#6(预订信息)–特定预订信息–提示用户输入预订代码,搜索预订数组并打印该预订的信息,然后还从航班数组打印该特定预订的航班信息(阅读备注) 2) 报告#7(所有#航班)-所有航班摘要-首先从航班阵列打印一个航班的航班信息,然后转到预订

我是java新手,在这个简单的菜单程序中已经走了这么远,让其他部分正常工作(因此我添加了它们),但我想知道我到底做错了什么?我试过调试,但我太没经验了,不知道该怎么做。如有任何建议,将不胜感激。我自己解决了大部分问题,只是某些部分不起作用,我有点撞到墙了

1) 报告#6(预订信息)–特定预订信息–提示用户输入预订代码,搜索预订数组并打印该预订的信息,然后还从航班数组打印该特定预订的航班信息(阅读备注)

2) 报告#7(所有#航班)-所有航班摘要-首先从航班阵列打印一个航班的航班信息,然后转到预订阵列并打印该航班的所有预订。然后继续下一个航班等…(阅读评论)

3) 报告#9(退出#程序)-此方法将把两组并行阵列中的所有数据写回flightsx.dat和reservationx.dat文件。因此,如果用户输入新数据或删除数据,当前数组将被重写回数据文件。然后,下次程序运行时,新数据将被读入

          package PhaseIII;

          import java.io.BufferedReader;
          import java.io.FileReader;
          import java.io.IOException;
          import java.util.StringTokenizer;

          import javax.swing.JOptionPane;

          public class PhaseIII {

      /**
      * @param args
      */
      public static void main(String[] args) {
       // TODO Auto-generated method stub

       array_info data= new array_info();
       int selection;

       selection = data.menu();

       //call start_program & start_program1  
       //DO WHILE LOOP    
        while(selection!=4)
       {
       if (selection == 1)
        {
          //put call to Modify_flight
         data.flight_report();
        }
         else if (selection == 2)
         {
           //put call to Modify_reservation
          data.modify_reservation();
           }
            else if (selection == 3)
           {
           //put call to Report
                data.report();
           }
        selection =data.menu();
         }//END WHILE LOOP
     //call exit_program   
     data.exit_program();
     System.exit(0);
     }//end main method
           }


       class array_info
       {
   int count=-1,i;
   int rcount=-1;
   String [] flight = new String [100];
   int    [] flight_number = new int [100];
   String [] origin = new String [100];
   String [] destination = new String [100];
   String [] date = new String [100];
   String [] time = new String [100];

   int    [] fl_number = new int [100];
   int    [] reservation_code = new int [100];
   String [] last_name = new String [100];
   String [] first_name = new String [100];
   String [] seat_type = new String [100];
   double [] seat_cost = new double [100];{

   count=start_program();
   rcount=start_program1();{
   }
   }

         int menu()
         {
           String mnumber;
           int number;
           String output = "ACME AIRLINE SYSTEM" + " \n " + " \n " +
               "1. ADD/MODIFY FLIGHT INFORMATION" + " \n " +
               "2. ADD/MODIFY RESERVATION INFORMATION" + " \n " +
               "3. REPORT SECTION" + " \n " +
               "4. EXIT AIRLINE SYSTEM" + " \n" + " \n " +
               "Please make your selection  >";
                mnumber = JOptionPane.showInputDialog(null, output, " ",
                                                 JOptionPane.QUESTION_MESSAGE);
           number=Integer.parseInt(mnumber);
           return number;
    }//method menu

         int modify_flight()
          {
               String mnumber2;
               int number2;
               String output = "Modify Flight Information Menu" + " \n " + " \n " +
                   "1. ADD FLIGHT" + " \n " +
                   "2. DELETE FLIGHT" + " \n " +
                   "3. MODIFY FLIGHT" + " \n " +
                   "4. EXIT THIS MENU" + " \n" + " \n " +
                   "Please make your selection  >";
                    mnumber2 = JOptionPane.showInputDialog(null, output, " ",
                                                     JOptionPane.QUESTION_MESSAGE);
               number2=Integer.parseInt(mnumber2);
               return number2;    
         }//method modify_flight

         int reportmenu()
         {
             String mnumber3;
               int number3;
               String output = "ACME AIRLINES" + " \n " +
                   "1. All Flight Info" + " \n " +
                   "2. All Reservation Info" + " \n " +
                   "3. Value of Reservations of a specific type" + " \n " +
                   "4. All Reservations of a specific flight" + " \n" + 
                   " 5. All Flights from a specific city" + " \n" +
                   " 6. Specific Reservation Information" + " \n" +
                   " 7. Summary of all flights" + " \n" +
                   " 8. All Flights to a specific city" + " \n" +
                   " 9. Exit Report Menu" + " \n" +
                   " Please make your selection  >";
                    mnumber3 = JOptionPane.showInputDialog(null, output, " ",
                                                     JOptionPane.QUESTION_MESSAGE);
               number3=Integer.parseInt(mnumber3);
               return number3; 
         }//method report_menu

         int start_program()
         {
                String newLine;
                  try
                  {
                    //define a file valuable for Buffered read
                     BufferedReader Flights_file = new BufferedReader(new FileReader("flightsx.dat"));
                     //read lines in file until there are no more lines in the file to read
                     while ((newLine = Flights_file.readLine()) != null)
                       {
                         //there is a "#" between each data item in each line
                          StringTokenizer delimiter = new StringTokenizer(newLine,"#");
                          count=count+1;
                          flight[count] =delimiter.nextToken();
                          flight_number[count] = Integer.parseInt(delimiter.nextToken());
                          origin[count] =delimiter.nextToken();
                          destination[count] =delimiter.nextToken();
                          date[count] =delimiter.nextToken();
                          time[count] =delimiter.nextToken();
                       }//while loop
                       Flights_file.close();
                    }//end try
                catch (IOException error)
                  {
                  //there was an error on the file writing
                  System.out.println("Error on file read " + error);
                  }//error on read
                return count;
          }//end start_program

         int start_program1()
         {
                        String newLine;
                          try
                          {
                            //define a file valuable for Buffered read
                             BufferedReader Reservation_file = new BufferedReader(new FileReader("reservationx.dat"));
                             //read lines in file until there are no more lines in the file to read
                             while ((newLine = Reservation_file.readLine()) != null)
                               {
                                 //there is a "#" between each data item in each line
                                  StringTokenizer delimiter = new StringTokenizer(newLine,"#");
                                  rcount=rcount+1;
                                  reservation_code[rcount] = Integer.parseInt(delimiter.nextToken());
                                  fl_number[rcount] = Integer.parseInt(delimiter.nextToken());
                                  last_name[rcount] =delimiter.nextToken();
                                  first_name[rcount] =delimiter.nextToken();
                                  seat_type[rcount] =delimiter.nextToken();
                                  seat_cost[rcount] = Double.parseDouble(delimiter.nextToken());
                                }//while loop
                               Reservation_file.close();
                            }//end try
                        catch (IOException error)
                          {
                          //there was an error on the file writing
                          System.out.println("Error on file read " + error);
                          }//error on read
                        return rcount;
        }//end start_program1   

         void flight_report()
         {
            // DECLARED VARIABLES]
               int selection2;
               selection2 =modify_flight();
            //DO WHILE LOOP    
                while(selection2!=4)
               {
               if (selection2 == 1)
                {
                  //put call to add flight
                   add_flight();
                }
               else if (selection2 == 2)
                {
                  //put call to delete flight
                   delete_flight();
                }
               else if (selection2 == 3)
                {
                  //put call to mod flight
                   mod_flight();
                }
               selection2 =modify_flight();
                 }//END WHILE LOOP
            }//method report

         int add_flight()
          {
            //add new flight information
                String svalue,Output;
                count=count+1;
                Output = "Enter the Flight Company";                    //string
                svalue =JOptionPane.showInputDialog(null,Output,
                          "",JOptionPane.QUESTION_MESSAGE);
                Output = "Enter the Flight Number";                     //4 digit integer
                svalue =JOptionPane.showInputDialog(null,Output,
                          "",JOptionPane.QUESTION_MESSAGE);
                flight_number[count] = Integer.parseInt(svalue);
                Output = "Enter the Flight City Origin";                //string
                svalue =JOptionPane.showInputDialog(null,Output,
                          "",JOptionPane.QUESTION_MESSAGE);
                Output = "Enter the Flight City Destination";           //string
                svalue =JOptionPane.showInputDialog(null,Output,
                          "",JOptionPane.QUESTION_MESSAGE);
                Output = "Enter the Flight Date";                       //string
                svalue =JOptionPane.showInputDialog(null,Output,
                          "",JOptionPane.QUESTION_MESSAGE);
                Output = "Enter the Flight Time";                       //string
                svalue =JOptionPane.showInputDialog(null,Output,
                          "",JOptionPane.QUESTION_MESSAGE);
                return count;
         }//method modify_flight

        void delete_flight()
        {
            String output, svalue;
            int position=0,i,modselect;
            output="Enter the Flight Number to delete ";
            svalue=JOptionPane.showInputDialog(null,output,
                "Input Data",JOptionPane.QUESTION_MESSAGE);;
            for(i=0;i<=count;++i)
            {
                if(flight_number.equals(output))
                    position =i;
            }
            for(i=position;i<=count-1;++i)
            {
                output=output+1;
            }
            count=count=1;
        }

        void mod_flight()
        {
            String output,svalue, value;
            int position=0,i,modselect;
            output="Enter the Flight Number to modify ";
            svalue=JOptionPane.showInputDialog(null,output,
                "Input Data",JOptionPane.QUESTION_MESSAGE);;
            for(i=0;i<=count;++i)
            {
                if(flight_number.equals(output))
                    position =-i;
            }
            output="";
            output=output+"1. Modify Flight Company "+"\n";
            output=output+"2. Modify City Origin "+"\n";
            output=output+"3. Modify City Destination "+"\n";
            output=output+"4. Modify Flight Date "+"\n";
            output=output+"5. Modify Flight Time "+"\n";
            output=output+" Please make your selection ";
            value=JOptionPane.showInputDialog(null,output,
                    "Input Data",JOptionPane.QUESTION_MESSAGE);
            modselect=Integer.parseInt(value);
            if(modselect ==1)
            {
                output = "Enter the Flight Company";
                svalue =JOptionPane.showInputDialog(null,output,
                          "",JOptionPane.QUESTION_MESSAGE);
            }
            else
                if(modselect==2)
                {
                    output = "Enter the Flight City Origin";
                    svalue =JOptionPane.showInputDialog(null,output,
                              "",JOptionPane.QUESTION_MESSAGE);
                }
                else
                    if(modselect==3)
                    {
                        output = "Enter the Flight City Destination";
                        svalue =JOptionPane.showInputDialog(null,output,
                                  "",JOptionPane.QUESTION_MESSAGE);
                    }
                    else
                        if(modselect==4)
                        {
                            output = "Enter the Flight Date";
                            svalue =JOptionPane.showInputDialog(null,output,
                                      "",JOptionPane.QUESTION_MESSAGE);
                        }
                        else
                            if(modselect==5)
                            {
                                output = "Enter the Flight Time";
                                svalue =JOptionPane.showInputDialog(null,output,
                                          "",JOptionPane.QUESTION_MESSAGE);
                            }
        } 

        int modify_reservation()
            {
                        //add new flight information
                            String svalue,Output;
                            rcount=rcount+1;
                            Output = "Enter the Reservation Code";                      //4 digit integer
                            svalue =JOptionPane.showInputDialog(null,Output,
                                      "",JOptionPane.QUESTION_MESSAGE);
                            reservation_code[rcount] = Integer.parseInt(svalue);
                            Output = "Enter the Flight Number";                         //4 digit integer
                            svalue =JOptionPane.showInputDialog(null,Output,
                                      "",JOptionPane.QUESTION_MESSAGE);
                            fl_number[rcount] = Integer.parseInt(svalue);
                            Output = "Enter the Last Name";                             //string
                            svalue =JOptionPane.showInputDialog(null,Output,
                                      "",JOptionPane.QUESTION_MESSAGE);
                            Output = "Enter the First Name";                            //string
                            svalue =JOptionPane.showInputDialog(null,Output,
                                      "",JOptionPane.QUESTION_MESSAGE);
                            Output = "Enter the Type of Seat";                          //string
                            svalue =JOptionPane.showInputDialog(null,Output,
                                      "",JOptionPane.QUESTION_MESSAGE);
                            Output = "Enter the Cost of seat";                          //double
                            svalue =JOptionPane.showInputDialog(null,Output,
                                      "",JOptionPane.QUESTION_MESSAGE);
                            seat_cost[rcount] = Double.parseDouble(svalue);
                            return rcount;
        }//method modify_reservation

         void report()
         {
            // DECLARED VARIABLES]
               int selection3;
               selection3 =reportmenu(); 
            //DO WHILE LOOP    
                while(selection3!=9)
               {
               if (selection3 == 1)
                {
                  //put call to All Flight Info
                  display_flight();
                }
               else if (selection3 == 2)
                {
                  //put call to All Reservation Info
                   display_reservation();
                }
               else if (selection3 == 3)
                {
                  //put call to Value of Reservations of a specific type
                   seat_value();
                }
               else if (selection3 == 4)
                {
                  //put call to All Reservations on a specific flight
                   print_flight();
                }
               else if (selection3 == 5)
                {
                  //put call to All flights from a specific city
                  city_origin();
                }
               else if (selection3 == 6)
                {
                  //put call to Specific reservation information 
                  reserve_info();
                }
               else if (selection3 == 7)
                {
                  //put call to Summary of all flights 
                   all_flights();
                }
               else if (selection3 == 8)
                {
                  //put call to All flights to a specific city 
                   city_destination();
                }
               selection3 =reportmenu();
                 }//END WHILE LOOP
         }//method report

         void display_flight()
         {
             int i;
             System.out.println("All flight Information:");
             for(i=0;i<=count;++i)
             {
                 System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
             }
         }// method display_flight

         void display_reservation()
         {
             int i;
             System.out.println("All Reservations Information:");
             for(i=0;i<=rcount;++i)
             {
                 System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
             }
         }// method display_reservation

         void seat_value()
            {
             int i;
             double total=0;
             String search_seat = "";
             String output = "Enter the Seat Type you are searching for";
             search_seat = JOptionPane.showInputDialog(null,
                                                       output, " ",
                                                       JOptionPane.QUESTION_MESSAGE);
             for (i = 0; i <=rcount; ++i) {
                //CHECK IF coach, first, or business
                  if(seat_type[i].equals(search_seat))
                     {
                         total+=seat_cost[i];
                         System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
                     }
             }
              System.out.println("The total for " +search_seat+ " = " +total);
            }// method seat_value

         void print_flight()
            {
             int i, total=0;

             String search_flight = "";
             String output = "Enter the Flight Number you are searching for";
             search_flight = JOptionPane.showInputDialog(null,
                                                       output, " ",
                                                       JOptionPane.QUESTION_MESSAGE);

             for (i = 0; i <=rcount; ++i) {
                //CHECK flight number
                  int flight_number = Integer.parseInt(search_flight);
                  if(fl_number[i] == flight_number)

                     {
                         total+=fl_number[i];
                         System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
                     }
             }
            }//method print_flight

         void city_origin()
            {
             int i, j;
             int match_count= 0;
             String search_city = "";
             String output = "Enter the City from a particular flight you are searching for";
             search_city = JOptionPane.showInputDialog(null,
                                                       output, " ",
                                                       JOptionPane.QUESTION_MESSAGE);

             System.out.println(" All flights from "+search_city);
             for (i = 0; i <=count; ++i) {
                      if(origin[i].equals(search_city))
                         {
                             System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
                            match_count=0;
             for (j = 0; j <=rcount; ++j) 
             {
                         if(flight_number[i] == fl_number[j])
                                               match_count=match_count+1;
                         }//j loop
                         System.out.println("The total reservations for " +flight_number[i]+ " = " +match_count);
                        }//if match
             }
             }//method city_origin

         void reserve_info()
         {
             int i, j;
             int match_count=0;
             String search_reservation = "";
             String output = "Enter the Reservation Code";
             search_reservation = JOptionPane.showInputDialog(null,
                                                       output, " ",
                                                       JOptionPane.QUESTION_MESSAGE);

             for (i = 0; i <=rcount; ++i) {
                //CHECK reservation code
                  int r_code= Integer.parseInt(search_reservation);
                  if(reservation_code[i] == r_code) 
                     {
                         System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
                         match_count=0;
             for (j = 0; j <=count; ++j)
             {
                 if(fl_number[i] == flight_number[j]);                      //print flight info from that fl_number
                                    match_count=match_count+1;
                    }//j loop
             System.out.println(flight[j]+" "+flight_number[j]+" "+origin[j]+" "+destination[j]+" "+date[j]+" "+time[j]);
                     }//if match
         } 
         }//method reserve_info

         void all_flights ()
         {
             int i;
             System.out.println("All flight Information:");
             for(i=0;i<=count;++i)
             {
                 System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
             }// NEED TO CATEGORIZE ALL RESERVATIONS (FL_NUMBER) BENEATH EACH FLIGHT (FLIGHT_NUMBER)
         }//method all_flights

         void city_destination ()
         {
             int i, j;
             int match_count= 0;
             String search_destination= "";
             String output = "Enter the City to a particular flight you are searching for";
             search_destination= JOptionPane.showInputDialog(null,
                                                       output, " ",
                                                       JOptionPane.QUESTION_MESSAGE);
             System.out.println(" All flights from "+search_destination);
             for (i = 0; i <=count; ++i) 
             {
                      if(destination[i].equals(search_destination))
                         {
                             System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
                            match_count=0;
             for (j = 0; j <=rcount; ++j) 
             {
                         if(flight_number[i] == fl_number[j])
                                               match_count=match_count+1;
                         }//j loop
                         System.out.println("The total reservations for " +flight_number[i]+ " = " +match_count);
                        }//if match
             }
         }//method city_destination

        void exit_program()
           {
            System.out.println("Executing exit_program");
           }//method exit_program 


                   }//END OF CLASS
第二阶段工程包;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.StringTokenizer;
导入javax.swing.JOptionPane;
公营二期{
/**
*@param args
*/
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
数组_info data=新数组_info();
int选择;
selection=data.menu();
//调用启动程序和启动程序1
//边做边循环
while(选择!=4)
{
如果(选择==1)
{
//打电话修改航班
数据。飞行报告();
}
else if(选择==2)
{
//put调用以修改预订
data.modify_reservation();
}
else if(选择==3)
{
//打电话报告
data.report();
}
selection=data.menu();
}//边结束边循环
//调用退出程序
data.exit_程序();
系统出口(0);
}//端主方法
}
类数组\u信息
{
int count=-1,i;
int rcount=-1;
字符串[]航班=新字符串[100];
int[]航班号=新int[100];
字符串[]原点=新字符串[100];
字符串[]目的地=新字符串[100];
字符串[]日期=新字符串[100];
字符串[]时间=新字符串[100];
int[]fl_编号=新int[100];
int[]保留_代码=新int[100];
String[]last_name=新字符串[100];
String[]first_name=新字符串[100];
字符串[]座位类型=新字符串[100];
双人[]座位成本=新双人[100]{
计数=启动程序();
rcount=start_program1(){
}
}
int菜单()
{
字符串编号;
整数;
字符串输出=“ACME航空公司系统”+“\n”+“\n”+
“1.添加/修改航班信息”+“\n”+
“2.添加/修改预订信息”+“\n”+
“3.报告节”+“\n”+
“4.退出航空公司系统”+“\n”+“\n”+
“请选择>”;
mnumber=JOptionPane.showInputDialog(null,输出,“,
JOptionPane.QUESTION_消息);
number=Integer.parseInt(mnumber);
返回号码;
}//方法菜单
int modify_flight()
{
字符串mnumber2;
整数2;
字符串输出=“修改航班信息菜单”+“\n”+“\n”+
“1.添加航班”+“\n”+
“2.删除航班”+“\n”+
“3.修改航班”+“\n”+
4.退出此菜单“+”\n“+”\n+
“请选择>”;
mnumber2=JOptionPane.showInputDialog(null,输出,“,
JOptionPane.QUESTION_消息);
number2=整数.parseInt(mnumber2);
返回编号2;
}//飞行方法
int reportmenu()
{
字符串mnumber3;
整数3;
字符串输出=“ACME AIRLINES”+“\n”+
“1.所有航班信息”+“\n”+
“2.所有预订信息”+“\n”+
“3.特定类型的保留值”+“\n”+
“4.特定航班的所有预订”+“\n”+
“5.来自特定城市的所有航班”+“\n”+
“6.特定预订信息”+“\n”+
“7.所有航班的摘要”+“\n”+
“8.到特定城市的所有航班”+“\n”+
9.退出报告菜单“+”\n+
“请选择>”;
mnumber3=JOptionPane.showInputDialog(null,输出,“,
JOptionPane.QUESTION_消息);
number3=整数.parseInt(mnumber3);
返回号码3;
}//方法报告菜单
int start_程序()
{
字符串换行符;
尝试
{
//定义对缓冲读取有价值的文件
BufferedReader Flights_file=new BufferedReader(new FileReader(“flightsx.dat”);
//读取文件中的行,直到
    if(fl_number[i] == flight_number[j]);
public class PhaseIII {


     public static void main(String[] args) {
         array_info data= new array_info();
         int selection;

         selection = data.menu();

         //call start_program & start_program1  
         //DO WHILE LOOP    
         while(selection!=4)
         {
             if (selection == 1)
             {
                 //put call to Modify_flight
                 data.flight_report();
             }
             else if (selection == 2)
             {
                 //put call to Modify_reservation
                 //data.modify_reservation();
             }
             else if (selection == 3)
             {
                 //put call to Report
                 data.report();
             }
             selection =data.menu();
         }//END WHILE LOOP
         //call exit_program   
         data.exit_program();
         System.exit(0);
     }//end main method
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.StringTokenizer;

import javax.swing.JOptionPane;

public class array_info
{
    int count=-1;
    int rcount=-1;
    String [] flight = new String [100];
    int    [] flight_number = new int [100];
    String [] origin = new String [100];
    String [] destination = new String [100];
    String [] date = new String [100];
    String [] time = new String [100];

    int    [] fl_number = new int [100];
    int    [] reservation_code = new int [100];
    String [] last_name = new String [100];
    String [] first_name = new String [100];
    String [] seat_type = new String [100];
    double [] seat_cost = new double [100];
    {

        count=start_program();
        rcount=start_program1();{
        }
    }

    int menu()
    {
        String mnumber ="";
        int number;
        String output = "ACME AIRLINE SYSTEM" + " \n " + " \n " +
                "1. ADD/MODIFY FLIGHT INFORMATION" + " \n " +
                "2. ADD/MODIFY RESERVATION INFORMATION (Don't Work Yet)" + " \n " +
                "3. REPORT SECTION" + " \n " +
                "4. EXIT AIRLINE SYSTEM" + " \n" + " \n " +
                "Please make your selection  >";
        mnumber = JOptionPane.showInputDialog(null, output, " ",
                JOptionPane.QUESTION_MESSAGE);

        if(mnumber == null || mnumber.length() == 0 ){
            number = 4;
        }
        else{
            try{
                number=Integer.parseInt(mnumber);
            }
            catch(Exception e){
                number = 4;
            }
        }

        return number;
    }//method menu

    int modify_flight()
    {
        String mnumber2;
        int number2;
        String output = "Modify Flight Information Menu" + " \n " + " \n " +
                "1. ADD FLIGHT" + " \n " +
                "2. DELETE FLIGHT" + " \n " +
                "3. MODIFY FLIGHT" + " \n " +
                "4. EXIT THIS MENU" + " \n" + " \n " +
                "Please make your selection  >";
        mnumber2 = JOptionPane.showInputDialog(null, output, " ",
                JOptionPane.QUESTION_MESSAGE);
        if(mnumber2 == null || mnumber2.length() == 0 ){
            number2 = 4;
        }
        else{
            try{
                number2=Integer.parseInt(mnumber2);
            }
            catch(Exception e){
                number2 = 4;
            }
        }
        return number2;    
    }//method modify_flight

    int reportmenu()
    {
        String mnumber3;
        int number3;
        String output = "ACME AIRLINES" + " \n " +
                " 1. All Flight Info" + " \n " +
                " 2. All Reservation Info (Don't Work Yet)" + " \n " +
                " 3. Value of Reservations of a specific type (Don't Work Yet)" + " \n " +
                " 4. All Reservations of a specific flight (Don't Work Yet)" + " \n" + 
                " 5. All Flights from a specific city (Don't Work Yet)" + " \n" +
                " 6. Specific Reservation Information (Don't Work Yet)" + " \n" +
                " 7. Summary of all flights (Don't Work Yet)" + " \n" +
                " 8. All Flights to a specific city (Don't Work Yet)" + " \n" +
                " 9. Exit Report Menu" + " \n" +
                " Please make your selection  >";
        mnumber3 = JOptionPane.showInputDialog(null, output, " ",
                JOptionPane.QUESTION_MESSAGE);
        if(mnumber3 == null || mnumber3.length() == 0 ){
            number3 = 9;
        }
        else{
            try{
                number3=Integer.parseInt(mnumber3);
            }
            catch(Exception e){
                number3 = 9;
            }
        }
        return number3; 
    }//method report_menu

    int start_program()
    {
        String newLine;
        try
        {
            //define a file valuable for Buffered read
            BufferedReader Flights_file = new BufferedReader(new FileReader("flightsx.dat"));
            //read lines in file until there are no more lines in the file to read
            while ((newLine = Flights_file.readLine()) != null)
            {
                //there is a "#" between each data item in each line
                StringTokenizer delimiter = new StringTokenizer(newLine,"#");
                count=count+1;
                flight[count] =delimiter.nextToken();
                flight_number[count] = Integer.parseInt(delimiter.nextToken());
                origin[count] =delimiter.nextToken();
                destination[count] =delimiter.nextToken();
                date[count] =delimiter.nextToken();
                time[count] =delimiter.nextToken();
            }//while loop
            Flights_file.close();
        }//end try
        catch (IOException error)
        {
            //there was an error on the file writing
            System.out.println("Error on file read " + error);
        }//error on read
        return count;
    }//end start_program

    int start_program1()
    {
        String newLine;
        try
        {
            //define a file valuable for Buffered read
            BufferedReader Reservation_file = new BufferedReader(new FileReader("reservationx.dat"));
            //read lines in file until there are no more lines in the file to read
            while ((newLine = Reservation_file.readLine()) != null)
            {
                //there is a "#" between each data item in each line
                StringTokenizer delimiter = new StringTokenizer(newLine,"#");
                rcount=rcount+1;
                reservation_code[rcount] = Integer.parseInt(delimiter.nextToken());
                fl_number[rcount] = Integer.parseInt(delimiter.nextToken());
                last_name[rcount] =delimiter.nextToken();
                first_name[rcount] =delimiter.nextToken();
                seat_type[rcount] =delimiter.nextToken();
                seat_cost[rcount] = Double.parseDouble(delimiter.nextToken());
            }//while loop
            Reservation_file.close();
        }//end try
        catch (IOException error)
        {
            //there was an error on the file writing
            System.out.println("Error on file read " + error);
        }//error on read
        return rcount;
    }//end start_program1   

    void flight_report()
    {
        // DECLARED VARIABLES]
        int selection2;
        selection2 =modify_flight();
        //DO WHILE LOOP    
        while(selection2!=4)
        {
            if (selection2 == 1)
            {
                //put call to add flight
                add_flight();
            }
            else if (selection2 == 2)
            {
                //put call to delete flight
                delete_flight();
            }
            else if (selection2 == 3)
            {
                //put call to mod flight
                mod_flight();
            }
            selection2 =modify_flight();
        }//END WHILE LOOP
    }//method report

    int add_flight()
    {
        //add new flight information
        String svalue,Output;

        if(count<99){
            count=count+1;
            Output = "Enter the Flight Company";                    //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            flight[count] = svalue;

            Output = "Enter the Flight Number";                     //4 digit integer
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            flight_number[count] = Integer.parseInt(svalue);

            Output = "Enter the Flight City Origin";                //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            origin[count] = svalue;

            Output = "Enter the Flight City Destination";           //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            destination[count] = svalue;

            Output = "Enter the Flight Date";                       //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            date[count] = svalue;

            Output = "Enter the Flight Time";                       //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            time[count] = svalue;
        }


        return count;
    }//method modify_flight

    void delete_flight()
    {
        String output, svalue;
        int position=0;
        int numFlight = 0;
        output="Enter the Flight Number to delete ";
        svalue=JOptionPane.showInputDialog(null,output,
                "Input Data",JOptionPane.QUESTION_MESSAGE);

        if(svalue == null || svalue.length() == 0 ){
            numFlight = -1;
        }
        else{
            try{
                numFlight=Integer.parseInt(svalue);
            }
            catch(Exception e){
                numFlight = -1;
            }
        }

        if(count>-1 && numFlight > -1){
            if(count <99 ){
                for(int i=0;i<=count;i++)
                {
                    if(flight_number[i] == numFlight)
                        position =i;
                }
                for(int i=position;i<=count;i++)
                {
                    flight_number[i] = flight_number[i+1];
                    flight[i] = flight[i+1];
                    origin[i] = origin[i+1];
                    destination[i] = destination[i+1];
                    date[i] = date[i+1];
                    time[i] = time[i+1];
                }
            }
            else{
                flight_number[99] = 0;
                flight[99] = "";
                origin[99] = "";
                destination[99] = "";
                date[99] = "";
                time[99] = "";
            }
            count-=1;
        }

    }

    void mod_flight()
    {
        String output,svalue, value;
        int position=-1;
        int modselect;
        int numFlight = 0;
        output="Enter the Flight Number to modify ";
        svalue=JOptionPane.showInputDialog(null,output,
                "Input Data",JOptionPane.QUESTION_MESSAGE);

        if(svalue == null || svalue.length() == 0 ){
            numFlight = -1;
        }
        else{
            try{
                numFlight=Integer.parseInt(svalue);
            }
            catch(Exception e){
                numFlight = -1;
            }
        }

        if(count >-1 && numFlight > -1){
            for(int i=0;i<=count;++i)
            {
                if(flight_number[i] == numFlight)
                    position =i;
            }

            if(position>-1){

                output="";
                output=output+"1. Modify Flight Company "+"\n";
                output=output+"2. Modify City Origin "+"\n";
                output=output+"3. Modify City Destination "+"\n";
                output=output+"4. Modify Flight Date "+"\n";
                output=output+"5. Modify Flight Time "+"\n";
                output=output+" Please make your selection ";

                value=JOptionPane.showInputDialog(null,output,
                        "Input Data",JOptionPane.QUESTION_MESSAGE);
                modselect=Integer.parseInt(value);

                if(modselect ==1)
                {
                    output = "Enter the Flight Company";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);
                    flight[position] = svalue;

                }
                else if(modselect==2)
                {
                    output = "Enter the Flight City Origin";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);
                    origin[position] = svalue;
                }
                else if(modselect==3)
                {
                    output = "Enter the Flight City Destination";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);

                    destination[position] = svalue;
                }
                else if(modselect==4)
                {
                    output = "Enter the Flight Date";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);

                    date[position] = svalue;
                }
                else if(modselect==5)
                {
                    output = "Enter the Flight Time";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);

                    time[position] = svalue;
                }

            }
        }
    } 

    /*int modify_reservation()
    {
        //add new flight information
        String svalue,Output;
        rcount=rcount+1;
        Output = "Enter the Reservation Code";                      //4 digit integer
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        reservation_code[rcount] = Integer.parseInt(svalue);
        Output = "Enter the Flight Number";                         //4 digit integer
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        fl_number[rcount] = Integer.parseInt(svalue);
        Output = "Enter the Last Name";                             //string
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        Output = "Enter the First Name";                            //string
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        Output = "Enter the Type of Seat";                          //string
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        Output = "Enter the Cost of seat";                          //double
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        seat_cost[rcount] = Double.parseDouble(svalue);
        return rcount;
    }*///method modify_reservation

    void report()
    {
        // DECLARED VARIABLES]
        int selection3;
        selection3 =reportmenu(); 
        //DO WHILE LOOP    
        while(selection3!=9)
        {
            if (selection3 == 1)
            {
                //put call to All Flight Info
                display_flight();
            }
            else if (selection3 == 2)
            {
                //put call to All Reservation Info
                //display_reservation();
            }
            else if (selection3 == 3)
            {
                //put call to Value of Reservations of a specific type
                //seat_value();
            }
            else if (selection3 == 4)
            {
                //put call to All Reservations on a specific flight
                //print_flight();
            }
            else if (selection3 == 5)
            {
                //put call to All flights from a specific city
                //city_origin();
            }
            else if (selection3 == 6)
            {
                //put call to Specific reservation information 
                //reserve_info();
            }
            else if (selection3 == 7)
            {
                //put call to Summary of all flights 
                all_flights();
            }
            else if (selection3 == 8)
            {
                //put call to All flights to a specific city 
                //city_destination();
            }
            selection3 =reportmenu();
        }//END WHILE LOOP
    }//method report

    void display_flight()
    {
        int i;
        System.out.println("All flight Information:");
        for(i=0;i<=count;++i)
        {
            System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
        }
    }// method display_flight

    /*void display_reservation()
    {
        int i;
        System.out.println("All Reservations Information:");
        for(i=0;i<=rcount;++i)
        {
            System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
        }
    }*/// method display_reservation

    /*void seat_value()
    {
        int i;
        double total=0;
        String search_seat = "";
        String output = "Enter the Seat Type you are searching for";
        search_seat = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);
        for (i = 0; i <=rcount; ++i) {
            //CHECK IF coach, first, or business
            if(seat_type[i].equals(search_seat))
            {
                total+=seat_cost[i];
                System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
            }
        }
        System.out.println("The total for " +search_seat+ " = " +total);
    }*/// method seat_value

    /*void print_flight()
    {
        int i;
        int total=0;

        String search_flight = "";
        String output = "Enter the Flight Number you are searching for";
        search_flight = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);

        for (i = 0; i <=rcount; ++i) {
            //CHECK flight number
            int flight_number = Integer.parseInt(search_flight);
            if(fl_number[i] == flight_number)

            {
                total+=fl_number[i];
                System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
            }
        }
    }*///method print_flight

    /*void city_origin()
    {
        int i, j;
        int match_count= 0;
        String search_city = "";
        String output = "Enter the City from a particular flight you are searching for";
        search_city = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);

        System.out.println(" All flights from "+search_city);
        for (i = 0; i <=count; ++i) {
            if(origin[i].equals(search_city))
            {
                System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
                match_count=0;
                for (j = 0; j <=rcount; ++j) 
                {
                    if(flight_number[i] == fl_number[j])
                        match_count=match_count+1;
                }//j loop
                System.out.println("The total reservations for " +flight_number[i]+ " = " +match_count);
            }//if match
        }
    }*///method city_origin

    /*void reserve_info()
    {
        int i, j;
        int match_count=0;
        String search_reservation = "";
        String output = "Enter the Reservation Code";
        search_reservation = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);

        for (i = 0; i <=rcount; ++i) {
            //CHECK reservation code
            int r_code= Integer.parseInt(search_reservation);
            if(reservation_code[i] == r_code) 
            {
                System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
                match_count=0;
                for (j = 0; j <=count; ++j)
                {
                    if(fl_number[i] == flight_number[j]);                      //print flight info from that fl_number
                    match_count=match_count+1;
                }//j loop
                System.out.println(flight[j]+" "+flight_number[j]+" "+origin[j]+" "+destination[j]+" "+date[j]+" "+time[j]);
            }//if match
        } 
    }*///method reserve_info

    void all_flights ()
    {
        int i;
        System.out.println("All flight Information:");
        for(i=0;i<=count;++i)
        {
            System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
        }// NEED TO CATEGORIZE ALL RESERVATIONS (FL_NUMBER) BENEATH EACH FLIGHT (FLIGHT_NUMBER)
    }//method all_flights

    /*void city_destination ()
    {
        int i, j;
        int match_count= 0;
        String search_destination= "";
        String output = "Enter the City to a particular flight you are searching for";
        search_destination= JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);
        System.out.println(" All flights from "+search_destination);
        for (i = 0; i <=count; ++i) 
        {
            if(destination[i].equals(search_destination))
            {
                System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
                match_count=0;
                for (j = 0; j <=rcount; ++j) 
                {
                    if(flight_number[i] == fl_number[j])
                        match_count=match_count+1;
                }//j loop
                System.out.println("The total reservations for " +flight_number[i]+ " = " +match_count);
            }//if match
        }
    }//method city_destination*/

    void exit_program()
    {
        String string ;
        FileWriter fw;
        try {
            //System.out.println(count);
            fw = new FileWriter(new File("flightsx.dat"),false);
            BufferedWriter bw = new BufferedWriter(fw);
            //String string = "";
            for(int i =0;i<=count;i++){
                string =flight[i]+"#"+flight_number[i]+"#"+origin[i]+"#"+destination[i]+"#"+date[i]+"#"+time[i]+"\n";
                //System.out.println(string);
                bw.write(string);
            }
            bw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        System.out.println("Executing exit_program");
    }//method exit_program 


}//END OF CLASS
Southwest#1234#Pittsburgh#Phoenix#04/02/10#10:30am
USAirways#4567#Boston#New York#04/03/10#11:10am
Jet Blue#9876#Pittsburgh#Seattle#04/04/10#1:30pm
Jet Blue#8888#Chicago#Pittsburgh#04/05/10#2:45pm
Southwest#7777#Pittsburgh#Miami#04/06/10#9:35am
Southwest#2892#Las Vegas#New York#04/07/10#8:10pm
USAirways#4444#Pittsburgh#San Francisco#04/08/10#5:55pm
Jet Blue#2222#Atlanta#New York#04/09/10#4:30pm
Southwest#9281#Pittsburgh#Seattle#04/11/10#2:15pm
USAirways#1000#Pittsburgh#Phoenix#04/12/10#3:25pm
1189#1234#Smith#James#coach#299.99#
1190#9876#Jones#Marie#coach#150.00#
1191#2000#Atkins#John#first#789.00#
1192#1000#Gallo#James#first#465.00#
1193#4567#Marion#Kevin#business#300.00#
1194#4444#Johnson#Greg#business#765.99#
1195#8888#Brown#Andrew#first#567.39#
1196#4567#Green#Eric#coach#234.00#
1197#9876#Thomas#Chris#business#1900.99#
1198#7777#Hilling#Cara#first#876.76#
1199#2222#Cole#James#coach#256.99#
1200#9281#Bartko#Grant#business#896.00#
1201#2000#Best#Curtis#first# 543.99#
1202#1000#Campbell#Nicholas#coach#287.00#
1203#4444#Dietz#Merrialyce#coach# 219.00#
1204#9281#Duran#Alexander#business#690.00#
1205#2892#Gurung#Suraj#first# 789.99#
1206#7777#Kumpfmiller#Ryan#first#278.99#
1207#4444#Mccomb#David#coach#451.99#
1208#8888#Mclain#Jaime#coach#199.00#
1209#9876#Mullen#Matthew#coach#189.00#
1210#1234#Nguyen#Tommy#coach#299.00#
1211#1234#Ossler#Aimee#coach#300.00#
1212#7777#Polenavitch#Michael#coach#198.99#
1213#2222#Raymond#Chase#first#908.99#
1214#2222#Rosales#David#coach#216.99#
1215#2892#Schwartz#Dustin#business#987.00#
1216#4444#Short#Samuel#coach#245.99#
1217#8888#Soltis#Josh#coach#178.00#
1218#1234#Webster#Ronald#business#892.00#
1219#1234#Wielock#William#first#589.00#
1220#2892#Bonelli#Andrew#coach#178.00#
1221#4444#Bright#Adam#coach#235.00#
1222#9876#Clymer#Jesse#coach#568.00#
1223#4444#Costello#Michael#coach#200.00#
1224#7777#Currin#Sean#business#908.00#
1225#1000#Farrar#Gary#first#588.00#
1226#1000#Finn#Lynn#business#799.00#
1227#4567#Freise#Brian#coach#254.00#
1228#4567#Huang#Pao-Jen#coach# 199.00#
1229#4567#Kamani#Nelson#coach#150.00#
1230#2000#Loughner#Ryan#coach#175.00#
1231#2000#Menzies#Adam#coach#199.00#
1232#1234#Neupane#Kiran#coach# 135.00#
1233#1234#Nickel#Brandon#first#999.00#
1234#7777#Ropchack#Joseph#first#899.00#
1235#7777#Whitten#Walter#coach#786.99#
1236#4444#Woods#Mary#coach#299.00#
1237#4444#Xing#Zhenli#coach#126.00#
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.StringTokenizer;

import javax.swing.JOptionPane;

public class array_info
{
    int count=-1;
    int rcount=-1;
    String [] flight = new String [100];
    int    [] flight_number = new int [100];
    String [] origin = new String [100];
    String [] destination = new String [100];
    String [] date = new String [100];
    String [] time = new String [100];

    int    [] fl_number = new int [100];
    int    [] reservation_code = new int [100];
    String [] last_name = new String [100];
    String [] first_name = new String [100];
    String [] seat_type = new String [100];
    double [] seat_cost = new double [100];
    {

        count=start_program();
        rcount=start_program1();{
        }
    }

    int menu()
    {
        String mnumber ="";
        int number;
        String output = "ACME AIRLINE SYSTEM" + " \n " + " \n " +
                "1. ADD/MODIFY FLIGHT INFORMATION" + " \n " +
                "2. ADD/MODIFY RESERVATION INFORMATION (Don't Work Yet)" + " \n " +
                "3. REPORT SECTION" + " \n " +
                "4. EXIT AIRLINE SYSTEM" + " \n" + " \n " +
                "Please make your selection  >";
        mnumber = JOptionPane.showInputDialog(null, output, " ",
                JOptionPane.QUESTION_MESSAGE);

        if(mnumber == null || mnumber.length() == 0 ){
            number = 4;
        }
        else{
            try{
                number=Integer.parseInt(mnumber);
            }
            catch(Exception e){
                number = 4;
            }
        }

        return number;
    }//method menu

    int modify_flight()
    {
        String mnumber2;
        int number2;
        String output = "Modify Flight Information Menu" + " \n " + " \n " +
                "1. ADD FLIGHT" + " \n " +
                "2. DELETE FLIGHT" + " \n " +
                "3. MODIFY FLIGHT" + " \n " +
                "4. EXIT THIS MENU" + " \n" + " \n " +
                "Please make your selection  >";
        mnumber2 = JOptionPane.showInputDialog(null, output, " ",
                JOptionPane.QUESTION_MESSAGE);
        if(mnumber2 == null || mnumber2.length() == 0 ){
            number2 = 4;
        }
        else{
            try{
                number2=Integer.parseInt(mnumber2);
            }
            catch(Exception e){
                number2 = 4;
            }
        }
        return number2;    
    }//method modify_flight

    int reportmenu()
    {
        String mnumber3;
        int number3;
        String output = "ACME AIRLINES" + " \n " +
                " 1. All Flight Info" + " \n " +
                " 2. All Reservation Info " + " \n " +
                " 3. Value of Reservations of a specific type " + " \n " +
                " 4. All Reservations of a specific flight " + " \n" + 
                " 5. All Flights from a specific city " + " \n" +
                " 6. Specific Reservation Information " + " \n" +
                " 7. Summary of all flights " + " \n" +
                " 8. All Flights to a specific city " + " \n" +
                " 9. Exit Report Menu" + " \n" +
                " Please make your selection  >";
        mnumber3 = JOptionPane.showInputDialog(null, output, " ",
                JOptionPane.QUESTION_MESSAGE);
            try{
                number3=Integer.parseInt(mnumber3);
            }
            catch(Exception e){
                number3 = 9;
            }
        return number3; 
    }//method report_menu

    int start_program()
    {
        String newLine;
        try
        {
            //define a file valuable for Buffered read
            BufferedReader Flights_file = new BufferedReader(new FileReader("flightsx.dat"));
            //read lines in file until there are no more lines in the file to read
            while ((newLine = Flights_file.readLine()) != null)
            {
                //there is a "#" between each data item in each line
                StringTokenizer delimiter = new StringTokenizer(newLine,"#");
                count=count+1;
                flight[count] =delimiter.nextToken();
                flight_number[count] = Integer.parseInt(delimiter.nextToken());
                origin[count] =delimiter.nextToken();
                destination[count] =delimiter.nextToken();
                date[count] =delimiter.nextToken();
                time[count] =delimiter.nextToken();
            }//while loop
            Flights_file.close();
        }//end try
        catch (IOException error)
        {
            //there was an error on the file writing
            System.out.println("Error on file read " + error);
        }//error on read
        return count;
    }//end start_program

    int start_program1()
    {
        String newLine;
        try
        {
            //define a file valuable for Buffered read
            BufferedReader Reservation_file = new BufferedReader(new FileReader("reservationx.dat"));
            //read lines in file until there are no more lines in the file to read
            while ((newLine = Reservation_file.readLine()) != null)
            {
                //there is a "#" between each data item in each line
                StringTokenizer delimiter = new StringTokenizer(newLine,"#");
                rcount=rcount+1;
                reservation_code[rcount] = Integer.parseInt(delimiter.nextToken());
                fl_number[rcount] = Integer.parseInt(delimiter.nextToken());
                last_name[rcount] =delimiter.nextToken();
                first_name[rcount] =delimiter.nextToken();
                seat_type[rcount] =delimiter.nextToken();
                seat_cost[rcount] = Double.parseDouble(delimiter.nextToken());
            }//while loop
            Reservation_file.close();
        }//end try
        catch (IOException error)
        {
            //there was an error on the file writing
            System.out.println("Error on file read " + error);
        }//error on read
        return rcount;
    }//end start_program1   

    void flight_report()
    {
        // DECLARED VARIABLES]
        int selection2;
        selection2 =modify_flight();
        //DO WHILE LOOP    
        while(selection2!=4)
        {
            if (selection2 == 1)
            {
                //put call to add flight
                add_flight();
            }
            else if (selection2 == 2)
            {
                //put call to delete flight
                delete_flight();
            }
            else if (selection2 == 3)
            {
                //put call to mod flight
                mod_flight();
            }
            selection2 =modify_flight();
        }//END WHILE LOOP
    }//method report

    int add_flight()
    {
        //add new flight information
        String svalue,Output;

        if(count<99){
            count=count+1;
            Output = "Enter the Flight Company";                    //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            flight[count] = svalue;

            Output = "Enter the Flight Number";                     //4 digit integer
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            flight_number[count] = Integer.parseInt(svalue);

            Output = "Enter the Flight City Origin";                //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            origin[count] = svalue;

            Output = "Enter the Flight City Destination";           //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            destination[count] = svalue;

            Output = "Enter the Flight Date";                       //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            date[count] = svalue;

            Output = "Enter the Flight Time";                       //string
            svalue =JOptionPane.showInputDialog(null,Output,
                    "",JOptionPane.QUESTION_MESSAGE);
            time[count] = svalue;
        }


        return count;
    }//method modify_flight

    void delete_flight()
    {
        String output, svalue;
        int position=0;
        int numFlight = 0;
        output="Enter the Flight Number to delete ";
        svalue=JOptionPane.showInputDialog(null,output,
                "Input Data",JOptionPane.QUESTION_MESSAGE);

        if(svalue == null || svalue.length() == 0 ){
            numFlight = -1;
        }
        else{
            try{
                numFlight=Integer.parseInt(svalue);
            }
            catch(Exception e){
                numFlight = -1;
            }
        }

        if(count>-1 && numFlight > -1){
            if(count <99 ){
                for(int i=0;i<=count;i++)
                {
                    if(flight_number[i] == numFlight)
                        position =i;
                }
                for(int i=position;i<=count;i++)
                {
                    flight_number[i] = flight_number[i+1];
                    flight[i] = flight[i+1];
                    origin[i] = origin[i+1];
                    destination[i] = destination[i+1];
                    date[i] = date[i+1];
                    time[i] = time[i+1];
                }
            }
            else{
                flight_number[99] = 0;
                flight[99] = "";
                origin[99] = "";
                destination[99] = "";
                date[99] = "";
                time[99] = "";
            }
            count-=1;
        }

    }

    void mod_flight()
    {
        String output,svalue, value;
        int position=-1;
        int modselect;
        int numFlight = 0;
        output="Enter the Flight Number to modify ";
        svalue=JOptionPane.showInputDialog(null,output,
                "Input Data",JOptionPane.QUESTION_MESSAGE);

        if(svalue == null || svalue.length() == 0 ){
            numFlight = -1;
        }
        else{
            try{
                numFlight=Integer.parseInt(svalue);
            }
            catch(Exception e){
                numFlight = -1;
            }
        }

        if(count >-1 && numFlight > -1){
            for(int i=0;i<=count;++i)
            {
                if(flight_number[i] == numFlight)
                    position =i;
            }

            if(position>-1){

                output="";
                output=output+"1. Modify Flight Company "+"\n";
                output=output+"2. Modify City Origin "+"\n";
                output=output+"3. Modify City Destination "+"\n";
                output=output+"4. Modify Flight Date "+"\n";
                output=output+"5. Modify Flight Time "+"\n";
                output=output+" Please make your selection ";

                value=JOptionPane.showInputDialog(null,output,
                        "Input Data",JOptionPane.QUESTION_MESSAGE);
                modselect=Integer.parseInt(value);

                if(modselect ==1)
                {
                    output = "Enter the Flight Company";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);
                    flight[position] = svalue;

                }
                else if(modselect==2)
                {
                    output = "Enter the Flight City Origin";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);
                    origin[position] = svalue;
                }
                else if(modselect==3)
                {
                    output = "Enter the Flight City Destination";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);

                    destination[position] = svalue;
                }
                else if(modselect==4)
                {
                    output = "Enter the Flight Date";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);

                    date[position] = svalue;
                }
                else if(modselect==5)
                {
                    output = "Enter the Flight Time";
                    svalue =JOptionPane.showInputDialog(null,output,
                            "",JOptionPane.QUESTION_MESSAGE);

                    time[position] = svalue;
                }

            }
        }
    } 

    /*int modify_reservation()
    {
        //add new flight information
        String svalue,Output;
        rcount=rcount+1;
        Output = "Enter the Reservation Code";                      //4 digit integer
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        reservation_code[rcount] = Integer.parseInt(svalue);
        Output = "Enter the Flight Number";                         //4 digit integer
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        fl_number[rcount] = Integer.parseInt(svalue);
        Output = "Enter the Last Name";                             //string
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        Output = "Enter the First Name";                            //string
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        Output = "Enter the Type of Seat";                          //string
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        Output = "Enter the Cost of seat";                          //double
        svalue =JOptionPane.showInputDialog(null,Output,
                "",JOptionPane.QUESTION_MESSAGE);
        seat_cost[rcount] = Double.parseDouble(svalue);
        return rcount;
    }*///method modify_reservation

    void report()
    {
        // DECLARED VARIABLES]
        int selection3;
        selection3 =reportmenu(); 
        //DO WHILE LOOP    
        while(selection3!=9)
        {
            if (selection3 == 1)
            {
                //put call to All Flight Info
                display_flight();
            }
            else if (selection3 == 2)
            {
                //put call to All Reservation Info
                display_reservation();
            }
            else if (selection3 == 3)
            {
                //put call to Value of Reservations of a specific type
                seat_value();
            }
            else if (selection3 == 4)
            {
                //put call to All Reservations on a specific flight
                print_flight();
            }
            else if (selection3 == 5)
            {
                //put call to All flights from a specific city
                city_origin();
            }
            else if (selection3 == 6)
            {
                //put call to Specific reservation information 
                reserve_info();
            }
            else if (selection3 == 7)
            {
                //put call to Summary of all flights 
                all_flights();
            }
            else if (selection3 == 8)
            {
                //put call to All flights to a specific city 
                city_destination();
            }
            selection3 =reportmenu();
        }//END WHILE LOOP
    }//method report

    void display_flight()
    {
        int i;
        System.out.println("All flight Information:");
        for(i=0;i<=count;++i)
        {
            System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
        }
    }// method display_flight

    void display_reservation()
    {
        int i;
        System.out.println("All Reservations Information:");
        for(i=0;i<=rcount;++i)
        {
            System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
        }
    }// method display_reservation

    void seat_value()
    {

        double total=0;
        String search_seat = "";
        String output = "Enter the Seat Type you are searching for";
        search_seat = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);
        for (int i = 0; i <=rcount; ++i) {
            //CHECK IF coach, first, or business
            if(seat_type[i].equals(search_seat))
            {
                total+=seat_cost[i];
                System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
            }
        }
        System.out.println("The total for " +search_seat+ " = " +total);
    }// method seat_value

    void print_flight()
    {
        int total=0;
        int flight_number = -1;
        String search_flight = "";
        String output = "Enter the Flight Number you are searching for";
        search_flight = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);
        try {
            flight_number = Integer.parseInt(search_flight);
        } catch (Exception e) {
            flight_number = -1;
        }
        if(flight_number >-1){
            for (int i = 0; i <=rcount; ++i) {
                //CHECK flight number

                if(fl_number[i] == flight_number)

                {
                    total++;
                    System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
                }
            }
            System.out.println("Total of Reservation: "+total);
        }

    }//method print_flight

    void city_origin()
    {
        String search_city = "";
        String output = "Enter the City from a particular flight you are searching for";
        int match_count = 0;
        search_city = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);

        System.out.println(" All flights from "+search_city);
        for (int i = 0; i <=count; ++i) {
            if(origin[i].equals(search_city))
            {
                System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
                for (int j = 0; j <=rcount; ++j) 
                {
                    if(flight_number[i] == fl_number[j])
                        match_count++;
                }//j loop
                System.out.println("The total reservations for " +flight_number[i]+ " = " +match_count);

            }//if match
        }
    }//method city_origin

    void reserve_info()
    {
        int r_code= -1;
        int flightNum = -1;
        String search_reservation = "";
        String output = "Enter the Reservation Code";

        search_reservation = JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);
        if(search_reservation == null || search_reservation.length() == 0 ){
            r_code = -1;
        }
        else{
            try{
                r_code=Integer.parseInt(search_reservation);
            }
            catch(Exception e){
                r_code = -1;
            }
        }

        if(r_code > -1){
            for (int i = 0; i <=rcount; i++) {
                //CHECK reservation code
                if(reservation_code[i] == r_code) 
                {
                    flightNum = fl_number[i];
                    System.out.println(reservation_code[i]+" "+fl_number[i]+" "+last_name[i]+" "+first_name[i]+" "+seat_type[i]+" "+seat_cost[i]);
                }//if match
            } 
            if(flightNum >-1){
                for (int j = 0; j <=count; j++)
                {
                    if( flight_number[j] == flightNum){
                        //print flight info from that fl_number
                        System.out.println(flight[j]+" "+flight_number[j]+" "+origin[j]+" "+destination[j]+" "+date[j]+" "+time[j]);
                    }   
                }//j loop   
            }
        }

    }//method reserve_info

    void all_flights ()
    {
        int i;
        System.out.println("All flight Information:");
        System.out.println("***********************");
        for(i=0;i<=count;++i)
        {
            System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);
            System.out.println("All Reservation of this Flight("+flight_number[i]+") : ");
            System.out.println("*************************************************************************************");
            for(int j=0;j<=rcount;j++)
            {
                System.out.println(reservation_code[j]+" "+fl_number[j]+" "+last_name[j]+" "+first_name[j]+" "+seat_type[j]+" "+seat_cost[j]);
            }
            System.out.println("*************************************************************************************");
        }
    }//method all_flights

    void city_destination ()
    {
        int match_count= 0;
        String search_destination= "";
        String output = "Enter the City to a particular flight you are searching for";
        search_destination= JOptionPane.showInputDialog(null,
                output, " ",
                JOptionPane.QUESTION_MESSAGE);
        System.out.println(" All flights To "+search_destination);
        for (int i = 0; i <=count; ++i) 
        {
            if(destination[i].equals(search_destination))
            {
                System.out.println(flight[i]+" "+flight_number[i]+" "+origin[i]+" "+destination[i]+" "+date[i]+" "+time[i]);

                for (int j = 0; j <=rcount; ++j) 
                {
                    if(flight_number[i] == fl_number[j])
                        match_count++;
                }//j loop
                System.out.println("The total reservations for " +flight_number[i]+ " = " +match_count);
            }//if match
        }
    }//method city_destination*/

    void exit_program()
    {
        String string ;
        FileWriter fw = null;
        BufferedWriter bw = null;
        try {
            //System.out.println(count);
            fw = new FileWriter(new File("flightsx.dat"),false);
            bw = new BufferedWriter(fw);
            //String string = "";
            for(int i =0;i<=count;i++){
                string =flight[i]+"#"+flight_number[i]+"#"+origin[i]+"#"+destination[i]+"#"+date[i]+"#"+time[i]+"\n";
                //System.out.println(string);
                bw.write(string);
            }
            bw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("Executing exit_program");
    }//method exit_program 
}//END OF CLASS