先生は、私が完全に理解していないという課題を出しました。これはjavaにあります。ファイルからデータをインポートし、Javaの列で印刷する方法
売上レポート
あなたはファイルから情報を取得するプログラムを書くことは、次のとおりです。ここでは割り当てがあります。ファイル名はInventory.datです。順番に このファイルのレコードのフォーマットは、次のとおり 項目数(整数) 項目名(文字列)販売 数(整数) コスト(ダブル)
各項目名に対して複数のレコードが存在してもよいです。このファイルにはシーケンスはありません。
あなたは、そのアイテムのアイテム名、数量(販売数)、およびコストを示すレポートを作成する必要があります。レポートの順序は降順になります。
ページの下部に合計が表示されます。 レポートを3つの列に列見出しで印刷する必要があります。
割り当てであり、ここでは私のコードです:ここでは
public static void main(String[] args) throws IOException {
FileReader freader = new FileReader("E:/Personal/Inventory.dat");
BufferedReader file = new BufferedReader(freader);
int numberSold;
double cost;
String numberSoldParse;
String costParse;
double costTotal = 0;
int numberSoldTotal = 0;
//
//print column headings
System.out.println("Item Name: Qty Sold: Total:");
for (String itemName = file.readLine(); itemName != null; itemName = file.readLine()) {
//print file in columns
numberSoldParse = file.readLine();
numberSold = Integer.parseInt(numberSoldParse);
costParse = file.readLine();
cost = Double.parseDouble(costParse);
//totals
costTotal = costTotal + cost;
numberSoldTotal = numberSoldTotal + numberSold;
//sort
System.out.printf("%-21s %-10s %4.2f%n", itemName, numberSold, cost);
}
//print totals
System.out.println("___________________________________________");
System.out.printf("%-21s %-10d %4.2f%n", "Total:", numberSoldTotal, costTotal);
System.exit(0);
}
}
は私の出力です。どのように私はコスト列で降順にそれらを得ることができますか?私は困惑している。助けてください。
Item Name: Qty Sold: Total:
Malibu 1 20000.00
Subaru 2 20000.00
F150 1 30000.00
Camaro 1 30000.00
BMW 1 30000.00
Audi 2 29000.00
___________________________________________
Total: 8 159000.00
何らかの方法でデータを蓄積する必要があります。いくつかの並べ替えのコレクションに各項目(行)を追加します(おそらく、各行を表すSoldItemなどのオブジェクトを作成しますが、私が見たオブジェクト指向について気にする必要はありません)。次に、コレクションをループし、合計を集め、ソートして出力します。 – KevinO
ArrayListを使用することはできません。 – aarontemp
ArrayListでできることは、配列を使って非OO形式で処理することができます。しかし、制約がある場合は、それらが要件の一部であるため、質問内の制約をリストする必要があります。また、あるアイテムに複数の行が存在する可能性があり、元のコードのどこに項目が累積しているのかはわかりません。 – KevinO