我正尝试从以下位置执行#4:
程序输入:
您的程序将向用户显示欢迎消息和选项菜单,供用户选择。
欢迎来到电厂分析仪程序。请从以下选项中选择:
1. Upload data
2. View data
3. Download statistics
4. Print Month
5. Exit the program
设计
您需要首先实现一个名为Entry的类,该类存储以下信息:
• Month name
• Day
• Year
• Power output
添加合适的方法。
程序选项
选项1:上传数据
如果用户选择此选项,程序将
一种。提示用户输入包含数据的文件。
b。将记录读入数组或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。
注意:在添加_stats.txt之前,它将从data.txt中删除.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;
}
答案 0 :(得分:1)
通过迭代列表来检查数据中是否有月份。
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");
}
}
}