首页 > 解决方案 > 4种不同车辆的预订系统

问题描述

PS:如果有帮助,这是我使用学校制作的“Clavier.class”的完整代码,它允许读取用户的键盘输入。

public class Facturation {
    public static void main (String [] args) {
while (true) {
   int Choix ;
   int random;
   int HrDebut;

   final String MSG_PRESENTATION = "Programme de facturation a la minute pour"
   + "\n" + "la location de vehicules electriques. ";
   final String MENU = "----" 
   + "\n" + "MENU" 
   + "\n" + "----"
   + "\n" + "1. Louer un vehicule"
   + "\n" + "2. Facturer la remise d'un vehicule"
   + "\n" + "3. Annuler une location"
   + "\n" + "4. Afficher le montant des recettes"
   + "\n"+ "5. Reinitialiser le montant des recettes"
   + "\n" + "6. Quitter le programme"
   + "\n" + "\n"+ "Entrez votre choix";
   final String MSG1 = "LOCATION" ;
   final String MSG_SOLLICITATION1 = "Entrez l'heure du debut de la location";
   final String NOCAR1 = "Il n'y a plus de véhicules disponibles.";
   final String MSG_ERREUR = "Ceci n'est pas une entree valide";
   final String MSG_RTR_MENU = "Appuyez sur <ENTREE> pour revenir au menu principal" ;

   System.out.println (MSG_PRESENTATION);
   System.out.print (MENU + "\n") ;

    while (true) {
        Choix = Clavier.lireInt();
        switch (Choix) { 
           case 1:
            System.out.println(MSG1);
            double randomDouble = Math.random();
           randomDouble = randomDouble * 4 + 1;
           int randomInt = (int) randomDouble;
           System.out.println (MSG_SOLLICITATION1);

           while (true ) { 
           HrDebut= Clavier.lireInt();
           int HrHHDebut= HrDebut/100;
           int HrMMDebut= HrDebut%100;
           if (HrDebut >= 900 && HrDebut < 960 || HrDebut >= 1000 && HrDebut < 1060 ||
               HrDebut >= 1100 && HrDebut < 1160 || HrDebut >= 1200 && HrDebut < 1260 ||
               HrDebut >= 1300 && HrDebut < 1360 || HrDebut >= 1400 && HrDebut < 1460 ||
               HrDebut >= 1500 && HrDebut < 1560 || HrDebut >= 1600 && HrDebut < 1660 ||
               HrDebut >= 1700 && HrDebut < 1760 || HrDebut == 1800) {
           System.out.println("CONFIRMATION:" + "\n" + 
           "-Location du vehicule no:" + randomInt +
           "\n" + "Debut de la location:" + HrHHDebut + "h" + HrMMDebut 
           + "\n" + "\n" + MSG_RTR_MENU) ;
           Clavier.lireFinLigne();
            break;
            } else {
            System.out.println (MSG_ERREUR);
            System.out.println (MSG_SOLLICITATION1);
             } 
            }
       break;

          case 2: 
      System.out.println("test 12");


    }
     break;  

  } 
}
   } 

}

标签: java

解决方案


假设汽车#4 已经被保留,有没有办法让程序记住它,当它返回到它随机属性汽车的段时,现在只有汽车#1、2 和 3 可用于随机属性?

是的,有办法。您使用数组或集合来记录预订;例如

    boolean[] reservations = new boolean[4];

    // Assuming that cars are numbered from 0 to 3 ...

    // To reserve a car:
    reservations[carNumber] = true;

    // To test if a car is reserved:
    if (reservations[carNumber]) {
         System.out.println("Car " + carNumber + " is reserved");
    }

对于需要记录的有关汽车、预订等的其他信息,您可以执行类似的操作。(收藏会是一个更好的方式,但如果你还没有了解这些...)

我只需要向老师发送一个班级,这意味着我不能将另一个班级导入包含这些对象的第一个班级(除非这不是你试图解释的内容。

  1. 您可以在另一个类中声明一个类。例如:

    public class Homework {
        private static class Car {
            ...
        }
        private static class Reservation {
            ...
        }
    }
    
  2. 您可以将两个或多个类放在一个源代码文件中,前提是它们都在同一个包中,并且只有一个被声明为public.

所以这意味着您只提交一个文件的要求并不妨碍您以面向对象的方式编写代码。


推荐阅读