Как напечатать строки ввода пользователя из входного файла в выходной файл - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь сделать # 4 из:

Ввод программы:

Ваша программа отобразит приветственное сообщение для пользователя и меню опций для выбора пользователя.

Добро пожаловать в программу Power Plant Analyzer.Пожалуйста, выберите один из следующих вариантов:

1.  Upload data 
2.  View data 
3.  Download statistics 
4.  Print Month 
5.  Exit the program 

Дизайн

Вам нужно будет начать с реализации класса Entry, в котором хранится следующая информация:

•   Month name
•   Day
•   Year
•   Power output

Добавитьподходящие методы по вашему усмотрению.

Опции программы

Опция 1: Загрузка данных

Если пользователь выберет эту опцию, программа будет
a.Предложите пользователю файл, содержащий данные.б.Считать записи в массив или ArrayList

Формат входного файла:

Месяц День Год Вывод

Пример входного файла:

January 10 2018 236.9 
January 11 2018 267.6 
January 12 2018 278.1 

Записьметод с именем UploadData для выполнения этой задачи.Выберите подходящие параметры и тип возврата.

Как только вы закончите чтение в файле, снова появится главное меню.

Опция 2: Просмотр данных

Если пользователь выберет эту опцию, программа выведет на экран данные, считанные.

Пример вывода:

Date: January 10, 2018 Output: 236.9 
Date: January 11, 2018 Output: 267.6 
Date: January 12, 2018 Output: 278.1 

Напишите метод PrintData для выполнения этой задачи.Выберите подходящие параметры и тип возврата.

После завершения печати снова появится главное меню.

Вариант 3: Загрузить статистику

Если пользователь выберет эту опцию, программа создаст файл статистики со следующими данными:

a.  Power output sorted from lowest to highest
b.  Day with highest output 
c.  Total by month 
d.  Average power output for all the data

Файл статистики будет иметь то же имя, что и входной файл, но с добавленным _stats.txt.Например, если входной файл был назван data.txt, файл статистики будет называться data_stats.txt.

Примечание. Он удалит .txt из data.txt перед добавлением _stats.txt.Он НЕ создаст файл с именем data.txt_stats.txt.Вы можете использовать метод string substr, чтобы удалить последние 4 символа из имени файла.

Напишите метод с именем CreateStatsFile для выполнения этой задачи.Выберите подходящие параметры и тип возврата.

После создания файла статистики снова появится главное меню.

Вариант 4: Печать месяца

Если пользователь выберет эту опцию, программа запросит название месяца и будет искать его.Он будет отображать все данные за этот месяц.Если данные недоступны, следует отобразить соответствующий метод.

Напишите метод PrintMonth для выполнения этой задачи.Выберите подходящие параметры и тип возврата.

Как только поиск будет завершен, снова появится главное меню

Я думаю, что мой код скелета настроен правильно, но как я теперь застрял.

public static String printMonth(ArrayList<Entry> MonthList) throws /*what?*/ {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("What is the month's name?");
    String month = keyboard.nextLine();

    for (int i = 0; i < MonthList.size(); i++)
        MonthList.get(i).print();

    Scanner fileIn = new Scanner(new File("data.txt"));
    fileIn.nextLine();
    if (fileIn.hasNext("January")) {

    }

    return month;
}

1 Ответ

1 голос
/ 12 мая 2019

Проверьте, доступен ли месяц в данных, просматривая список.

public static String printMonth(ArrayList<Entry> uploadResult) throws /*what?*/ {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("What is the month's name?");
    String month = keyboard.nextLine(); 
    boolean monthPresent = false;
    for (Entry uploadResult : uploadResults) {
        if ( uploadResult.getMonth().equals(month)){
            monthPresent = true;
            System.out.println(uploadResult.getDay() + "--" + uploadResult.getPowerOutput());
        }

        if( !monthPresent ){
            System.out.println("Month info not available");
        }
    }
} 
...