аренда, показ и возвращение автомашины не работает должным образом - PullRequest
0 голосов
/ 17 декабря 2011

Ну, в принципе, у меня есть задание, которое должно быть выполнено на январь.Мне нужно создать фиктивную службу проката, которая позволит клиентам арендовать автомобили.Я основываю логику ArrayList, используя ее методы для управления моей коллекцией автомобилей.

У меня есть некоторые проблемы с моим кодом, во многих моих методах логика работает неправильно.В пример кода я включил методы showCar, rentTheCar и returnCar, которые не работают должным образом.Метод showCar отображает все автомобили, хотя при вызове метода запрашивает carNumber.rentThecar и returnCar, кажется, арендуют / возвращают все автомобили, а не только тот, который я указал.

Я показываю соответствующий код из моих классов ниже, если кто-то может помочь мне выяснить, где явозможно, что-то пошло не так. Пожалуйста, я хочу прояснить, что я не хочу, чтобы моя домашняя работа была сделана просто как-то.Спасибо.

Показать метод автомобиля:

public void showCar (int carNumber)
{

    if (cars.size() < 0 ) {
        System.out.println ("Add cars first!!!");
    }
    else if (carNumber < cars.size()) {
        System.out.println(cars.get(carNumber));
    }
    else{
        System.out.println("Error!! This note cannot be shown, because it does not exist!!");
    }
}

Метод аренды автомобиля:

public void rentTheCar (int carNumber, String CustomerName, String hireDate, String returnDate, int daysOfHire)
{

    if (cars.size() < 0) {
       System.out.println("Empty list!! Add cars first!!");
    }
    else if (carNumber > cars.size()) {
       System.out.println("This car does not exist!!");
    }
    else {
        for (Car car : cars) {
            int index = 0;
            cars.get (carNumber);
            car.rentTheCar(CustomerName, hireDate, returnDate, daysOfHire);
            index ++;
        }
    } 
}

Метод возврата автомобиля:

public void returnCar (int carNumber)
{
    cars.get(carNumber);
    if (cars.size() < 0) {
       System.out.println("Error!! It is impossible to return a car from an empty list");
    }
    else if (carNumber > cars.size()) {
        System.out.println("Error!! Not a valis car!!");
    }
    else {
        for (Car car : cars) {
            car.returnTheCar();
            System.out.println ("The car has been returned correctly");
        }
    }
}

Ответы [ 3 ]

1 голос
/ 17 декабря 2011

Так, какова цель циклов for в ReturnCar и RentTheCar?

Что они делают?

Приведенная выше подсказка должна поставить вас на правильный путь.

0 голосов
/ 17 декабря 2011

Я думаю, вам стоит взглянуть на цикл foreach, может быть, вы найдете там пару подсказок!Эта строка:

for (Car car : cars) {
    // do something...
}

Существует причина, по которой она называется циклом for- каждый .:) Надеюсь, я помог.

0 голосов
/ 17 декабря 2011

Ваш showCar метод выглядит хорошо, вы уверены, что он показывает все автомобили в вашей коллекции?Что касается двух других ваших методов, вы перебираете всю свою коллекцию и вызываете операцию аренды для каждого элемента.Вы основываете всю свою логику на индексированных массивах, поэтому используйте свой индекс.

http://docs.oracle.com/javase/6/docs/api/java/util/List.html

add(int index, E element) 
          Inserts the specified element at the specified position in this list (optional operation).

get(int index) 
          Returns the element at the specified position in this list.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...