Как распечатать записи, сделанные в моем LinkedList? - PullRequest
0 голосов
/ 13 февраля 2019

Мне нужна помощь относительно моей курсовой работы по программированию на Java.Я создаю консольное приложение Flower (магазин), в котором хранится название, цвет, возраст и цена цветка.Однако у меня возникли проблемы с печатью LinkedList, который я создал для хранения записей о добавленных цветах.Я уже некоторое время пытался настроить метод showFlowers в классе Test, но ничего не работает.Буду признателен за помощь, спасибо.Вот мой код.

Цветочный класс

public class Flower {
    //variables
    private String name; //name of flower
    private String colour; //colour of flower
    private int age; //age of flower (days)
    private double price; //price of flower

    public Flower(String n, String c, int a, double p) {
        this.name = n;
        this.colour = c;
        this.age = a;
        this.price = p;
    }

    public void getName() {
        System.out.println("Name: " + this.name);
    }

    public void getColour() {
        System.out.println("Colour: " + this.colour);
    }

    public void getAge() {
        System.out.println("Age (Days): " + this.age);
    }

    public void getPrice() {
        System.out.println("Price: " + this.price);
    }

    public void getFullDetails(){
        System.out.println("Name: " + this.name);
        System.out.println("Colour: " + this.colour);
        System.out.println("Age (Days): " + this.age);
        System.out.println("Price: " + this.price);
    }
}

Цветочный класс

package flower;

import java.util.LinkedList;
import java.util.Scanner;

public class FlowerTest {

    private static LinkedList<Flower> myFlowers = new LinkedList();

    public static void firstMenu() {
        System.out.println("<------------ Welcome to the Flower Menu -------------->");
        System.out.println("1. Add Flower Details");
        System.out.println("2. Show All Flowers");
        System.out.println("3. Exit");
        System.out.println("Enter choice: ");
    }

    public static void mainMenu() {

        for (;;) {
            firstMenu();
            Scanner inputScanner = new Scanner(System.in);
            int choice = inputScanner.nextInt();

            switch (choice) {
                case 1:
                    createFlower(inputScanner);
                    break;

                case 2:
                    showFlowers(inputScanner);
                    break;

                case 3:
                    System.out.println("Goodbye");
                    System.exit(0);
                    break;

                default:
                    //error handling
                    System.err.println("Unrecognized option");
                    break;
            }
        }
    }

    public static Flower createFlower(Scanner in) {
        System.out.println("<-------- Adding Flower ---------->");
        System.out.println("Input Flower Name: ");
        String name = in.next();
        System.out.println("Input Flower Colour: ");
        String colour = in.next();
        System.out.println("Input Flower Age (Days): ");
        int age = in.nextInt();
        System.out.println("Input Flower Price: ");
        double price = in.nextDouble();
        return new Flower(name, colour, age, price);
    }

    public static void showFlowers(Scanner in){
                    for (Flower flower : myFlowers) {
                        flower.getFullDetails();
                    }
    }
    public static void main(String[] args) {
        mainMenu();
    }
}

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Изменение:

createFlower(inputScanner)

на:

myFlowers.add(createFlower(inputScanner));
0 голосов
/ 13 февраля 2019

Похоже, ваш код никогда не добавляет цветы в ваш список myFlowers.Ваш метод createFlower() просто возвращает вновь созданный объект Flower, но возвращаемое значение никогда не используется в вашем операторе switch.

Вы должны либо создать метод createFlower() void, и добавить егоцветок в ваш список напрямую, или пусть он вернет цветок, и код обработки в операторе switch добавит его в список.

...