2017-04-06 25 views
-3

我必须编写一个程序来显示一些摩托车,然后客户租一辆摩托车,并且这辆摩托车不再可用。然后,我必须记录租赁时间以及某人返回时的记录返还时间并计算成本。我是一个noob程序员。如果有人能够以简单的方式解释我如何完成这件事。我写过这样的东西。感谢您的时间。布尔型数组列表中的chaning值

Scanner s = new Scanner(System.in); 
byte numBikes = 15; 

boolean[] available = new boolean[numBikes]; 
String [] timeRented = new String [numBikes]; 
Arrays.fill(available , true); 


System.out.println("The following bikes are avaialable:\n"); 
for(byte b = 0; b <= numBikes - 1; b++) 
    if(available [b]== true){ 
     System.out.println(" Bike No" + (byte)(b+1)); 

    } 
System.out.print("Enter your bike number you want choose"); 
byte bikeNo = s.nextByte(); 

if (available[bikeNo - 1]== true) 
    available[bikeNo - 1] = false; 

System.out.println("The following bikes are avaialable:\n"); 
for(byte b = 0; b <= numBikes - 1; b++) 
    if(available [b]== true){ 
     System.out.println(" Bike No" + (byte)(b+1)); 
    } 
+0

这是一个简单的旧Java对象(PO​​JO)会很方便,因为您可以将所有必需的信息封装到一个或两个对象中,具体取决于您的设计。实际上,您需要在两个数组之间同步信息,以使'timeRented'的索引对应于'available'的相同索引。还有一些方法可以使它更简单地管理 – MadProgrammer

+0

感谢您对POJO的建议,我将阅读有关这方面的内容。 – BloodySandwich

回答

0

我做了一个样品给你我promp的计算成本的用户,因为我不知道你是怎么想计算成本,我不知道你的房租,但希望你可以改变它的字母b选择

import java.util.*; 
    public class Help 
    { 

    public static void main(String[] args) 
    { 
     Scanner scan = new Scanner(System.in); 
     int numBikes =15; 
     int availableBike=15; 
     int bikeFound=0; 

     boolean[] available = new boolean[numBikes]; 
     String[] timeRented = new String [numBikes]; 
     String[] returningTime = new String[numBikes]; 
     int[] calculateCost = new int[numBikes]; 
     Arrays.fill(available,true); 
     String choice=""; 
     do 
     { 
      System.out.println("What do you want to do zzz to quit?"); 
      System.out.println("a.rent a bike b. return a bike"); 
      choice = scan.nextLine(); 
      if(choice.charAt(0)=='a') 
      { 
       System.out.println("The following bikes are available:\n"); 
       for(int b = 0; b <= numBikes - 1; b++) 
        if(available [b]== true)     
         System.out.println(" Bike No:" + (b+1)); 
       System.out.println("Enter your bike number you want choose"); 
       int bikeNo = scan.nextInt(); 
       scan.nextLine(); 
       if(availableBike>0) 
       { 
        if(available[bikeNo-1]==true) 
        {     
         available[bikeNo-1]=false; 
         System.out.println("Enter time of renting"); 
         timeRented[bikeNo-1]=scan.nextLine(); 
         --availableBike; 
        } 
        else 
         System.out.println("Sorry bike's not available choose another"); 
       } 
       else 
        System.out.println("Sorry all bikes are not available at this time"); 
      } 
      else if(choice.charAt(0)=='b') 
      { 
       System.out.println("The following bikes are not available:\n"); 
       for(int b = 0; b <= numBikes - 1; b++) 
        if(available [b]== false)    
         System.out.println(" Bike No:" + (b+1)); 

       System.out.println("Enter bike number you want to return"); 
       int bikeNo=scan.nextInt(); 
       scan.nextLine(); 
       if(available[bikeNo-1]==false) 
       { 
        available[bikeNo-1]=true; 
        System.out.println("Enter out time"); 
        returningTime[bikeNo-1]=scan.nextLine(); 
        System.out.println("Enter cost total"); 
        calculateCost[bikeNo-1]=scan.nextInt(); 
        scan.nextLine(); 
        System.out.println("Total is:"+calculateCost[bikeNo-1]); 
        calculateCost[bikeNo-1]=0; 
        ++availableBike; 
       } 
       else 
        System.out.println("Sorry error"); 
      } 
     } 
     while(!(choice.equals("zzz"))); 

    } 

} 
+0

感谢您的快速响应。我会从其他班级的方法中计算出时间。你认为在文本文件中记录时间是个好主意吗?当人们返回时,它会从该文件读取?我不想让事情变得复杂。 – BloodySandwich

+0

你正在尝试创建什么系统?你正在尝试创建一个只有数据库或文本文件的系统吗?这取决于你,因为你不想让事情变得复杂,所以我建议将它只存储在文本文件中,因为数据库也是另一种语言 – abcOfJavaAndCPP

+0

再一次,非常感谢你帮助我。我想要做的是创建一个简单的系统。客户登录后,显示可用自行车列表,选择自行车和时间记录到文本文件。过了一段时间他想要归还自行车,当他退回时间计算并从他的账户中扣除费用。 – BloodySandwich