Mein Lehrer gab eine Aufgabe, die ich nicht vollständig verstehe. Es ist in Java. Hier ist die Zuordnung:So importieren Sie Daten aus Datei und drucken in geordneten Spalten in Java
Sales Report
Sie sind ein Programm zu schreiben, das die Informationen aus einer Datei erhalten. Der Dateiname lautet Inventory.dat. Das Format der Aufzeichnungen dieser Datei sind, um: Artikelnummer (integer) Elementname (string) Zahl verkauft (integer) Kosten (double)
es können mehrere Datensätze für jede Position Name sein. Es gibt keine Sequenz für diese Datei.
Sie müssen einen Bericht erstellen, der den Artikelnamen, die verkaufte Menge (Anzahl verkauft) und die Kosten für diesen Artikel anzeigt. Die Berichtssequenz wird in absteigender Reihenfolge angezeigt.
wird es eine Summe am Ende der Seite sein. Sie müssen den Bericht in drei Spalten mit Spaltenüberschriften drucken.
, dass die Zuordnung ist, und hier ist mein Code:
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);
}
}
Hier ist meine Ausgabe. Wie kann ich sie in absteigender Reihenfolge nach Kostenspalte abrufen? Ich bin ratlos. Bitte helfen Sie.
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
Sie müssen die Daten in irgendeiner Weise sammeln. Füge jedes Element (eine Linie) zu einer Sammlung irgendeiner Art hinzu (ich würde wahrscheinlich ein Objekt wie SoldItem erstellen, um jede Zeile darzustellen, aber keine Schulaufgabe scheint sich überhaupt um OO zu kümmern, die ich gesehen habe). Wiederholen Sie dann die Sammlung, sammeln Sie die Summen, sortieren und geben Sie sie aus. – KevinO
Ich darf ArrayList nicht verwenden. nur normale arrays und bubblesort – aarontemp
Alles, was Sie mit einer ArrayList tun können, kann mit Arrays nicht-OO gehandhabt werden. Wenn Sie jedoch Einschränkungen haben, müssen Sie diese in Ihrer Frage auflisten, da sie Teil der Anforderungen sind. Sie sollten auch lesen, was ** ist ** in der Zuweisung, die besagt, dass es mehr als eine Zeile für einen bestimmten Artikel geben kann, und keine, wo im ursprünglichen Code Sie nach Artikel ansammeln. – KevinO