Das Folgende ist eine Frage zur Java-Zuweisung, und ich habe die meisten davon abgeschlossen, aber ich habe ein Problem mit der Ausgabe in absteigender Reihenfolge (beginnend mit der höchsten Anzahl von Stunden bis zur niedrigsten Anzahl von geleisteten Stunden) diese Stunden auch mit dem Angestellten, der sie bearbeitet hat, übereinstimmen). Ich markierte den Teil des Problems, ich brauche Hilfe in fett und enthalten die Beispielausgabe.Java Eclipse sortiert und sortiert dann 1 Array, vielleicht mehr?
Problem:
die Wochenstunden der Mitarbeiter Computing Angenommen, die Wochenstunden für alle Mitarbeiter in einem zweidimensionalen Array gespeichert sind. In jeder Zeile werden die Arbeitsstunden eines Mitarbeiters mit n Spalten erfasst, wobei n ≥ 1 und n ≤ 7 die Anzahl der Tage in der Woche sind, an denen diese Mitarbeiter arbeiten. Die folgende Tabelle stellt beispielsweise ein Array dar, in dem die Arbeitszeit von acht Mitarbeitern 7 Tage in der Woche gespeichert wird. Schreiben Sie ein Programm, das als Eingaben die Anzahl der Mitarbeiter und die Anzahl der Arbeitstage in einer Woche berücksichtigt. Dann es dauert alle Mitarbeiter Informationen (Name und Anzahl der täglichen Stunden gearbeitet). Dieses Programm sollte Mitarbeiter und ihre gesamten Arbeitsstunden in einer Woche in abnehmender Reihenfolge der Gesamtstunden anzeigen.
Beispielausgabe:
Employee 7 worked 39 hours
Employee 6 worked 37 hours
Employee 0 worked 34 hours
Employee 4 worked 32 hours
Employee 3 worked 31 hours
Employee 1 worked 28 hours
Employee 5 worked 28 hours
Employee 2 worked 24 hours
Hier ist, was ich bisher habe, glaube ich, dass ich etwas in der letzten for
Schleife fehlt bin, aber das ist, warum ich bin Entsendung Dies. Jede Hilfe wird sehr geschätzt:
import java.util.Scanner;
import java.util.Arrays;
public class EmployeeWorkHours {
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("How many Employee's do you have?: ");
int NUM_OF_EMPLOYEES = scan.nextInt();
scan.nextLine();
int [][]hours;
int []totalHours= new int[NUM_OF_EMPLOYEES];
hours = new int[NUM_OF_EMPLOYEES][7];
String[] employee = new String[NUM_OF_EMPLOYEES];
// input Names
for (int x = 0; x < (employee.length); x++)
{
System.out.println("Name of Employee " + (x + 1) + ": ");
String name = scan.nextLine();
employee[x] = name;
}
// input Hours
for (int z = 0; z < employee.length; z++)
{
System.out.println("Beginning on Monday, enter the hours Employee "+ (z + 1)+ " has worked each day (Separate each day by spaces): ");
for (int a = 0; a < 7; a++)
{
hours[z][a] = scan.nextInt();
}
scan.nextLine();
}
// Print everything in for loop
for (int i = 0; i < employee.length; i++)
{
totalHours[i]=0;
for(int j=0; j<7; j ++)
{
totalHours[i] = totalHours[i]+hours[i][j];
}
// I THINK I NEED TO ADD SOMETHING HERE BUT I'M NOT SURE WHAT
// Arrays.sort(totalHours); gives me the wrong output, I'm stuck
System.out.println("Employee " + (i + 1) +" worked " + totalHours[i] + " hours");
}
}
}
Sie sollten damit beginnen, eine Klasse für den Mitarbeiter mit der Angestelltennummer, Stunden und Gesamtstunden zu implementieren. Erstellen Sie eine "Liste" von Mitarbeitern und sortieren Sie dann die Liste mit "Collections.sort()" nach Stunden. Löschen Sie diese Frage, und versuchen Sie eine neue, die zeigt, was Sie versucht haben, nachdem Sie es versucht haben. – Andreas
Meine EmployeeWorkHours-Klasse enthält bereits die Angestelltennummer, die Stunden und die Gesamtstunden. Ich bin mir nicht sicher was du meinst. Ich habe auch schon mehrere Versuche gemacht, aber ich stecke hier fest, weshalb ich das gepostet habe. –
Sie haben statischen Code. Sie verwenden keine Objekte. Ich meinte, dass Sie Instanzen einer "Employee" -Klasse erstellen sollten, die die Werte als Felder enthält. Wenn Sie sortieren, sortieren sie alle zusammen. – Andreas