Druckerauftrag hinzufügen

Garfild2015

Aktives Mitglied
Mit der Methode fuegeDruckauftragHinzu der Klasse Auftragsverwaltung können neue Druckaufträge hinzugefügt werden. Dabei soll ein Objekt der Klasse Druckauftrag entsprechend seiner Priorität in die Liste eingeordnet werden. Die Methode prüft selbst nicht, ob der Druckauftrag zu groß ist.
Die Methode hat den Methodenkopf
public void fuegeDruckauftragHinzu(Druckauftrag pAuftrag)


Entwickeln Sie eine Lösungsidee zur Implementation der Methode
fuegeDruckauftragHinzu entsprechend der im Anhang angegebenen Dokumentation.



Dokumentation:

Auftrag void fuegeDruckauftragHinzu(Druckauftrag pAuftrag)
Der als Parameter übergebene Druckauftrag wird in die Folge der wartenden
Druckaufträge eingereiht. Der Auftrag wird entsprechend der Priorität eingereiht:
Er wird nach allen Aufträgen mit höherer oder gleich hoher Priorität eingereiht.
Damit steht er vor allen Druckaufträgen mit niedrigerer Priorität.
Der Druckauftrag wird auch dann in die Folge der wartenden Druckaufträge eingereiht, wenn es keinen Druckauftrag gibt, der gerade gedruckt wird und die Liste leer ist.

Die Methode prüft nicht, ob noch genügend Speicherplatz für den Druckauftrag
vorhanden ist.

Kann da wer helfen?
Das ist eine Abituraufgabe aus NRW 2014. Leider finde ich die Lösungen im Internet nicht. Hat sie wer für mich?
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Hm... da fehlt mir irgendwie der Kontext, ansonsten ist die Lösung doch trivial: Auftrag (ggf. mit negativer Priorität) in eine Prioritätswarteschlange einfügen, fertig.
 

Garfild2015

Aktives Mitglied
Hm... da fehlt mir irgendwie der Kontext, ansonsten ist die Lösung doch trivial: Auftrag (ggf. mit negativer Priorität) in eine Prioritätswarteschlange einfügen, fertig.
Das steht über der Aufgabe:
Moderne Drucker haben umfangreiche Funktionen, die über das Drucken einer Seite nach der anderen hinausgehen. Zum Beispiel haben Sie einen integrierten Druckerserver, der es ermöglicht, Druckaufträge aus dem Netzwerk von verschiedenen Benutzern und Rechnern anzunehmen. Um die übermittelten Aufträge selbstständig zu verwalten, ist eine Software nötig. Im Folgenden soll eine vereinfachte Software zur Verwaltung von Druckaufträgen simuliert werden. Ein Objekt der Klasse Auftragsverwaltung kann nacheinander Druckaufträge annehmen und in eine Folge einsortieren. Diese Druckaufträge sollen durch Objekte der Klasse Druckauftrag repräsentiert werden. Neben den eigentlichen Daten werden auch weitere Daten wie die Anzahl der Seiten, die Größe eines Druckauftrags und eine eindeutige Identifikationsnummer gespeichert. Die Verwaltung der Druckaufträge mithilfe dieser Metadaten steht im Mittelpunkt dieser Aufgabe. Auf die Speicherung der eigentlichen Druckdaten soll nicht eingegangen werden. Jedem Druckauftrag ist eine Priorität zwischen 0 und 3 zugeordnet. 0 entspricht der niedrigsten Priorität, 3 der höchsten Priorität. Druckaufträge mit höherer Priorität werden vor Druckaufträgen mit niedriger Priorität gedruckt. Die Druckaufträge mit der gleichen Priorität sollen in der Reihenfolge gedruckt werden, in der sie eintreffen. Der Druckauftrag, der am Anfang der Folge der wartenden Druckaufträge gespeichert ist, wird als nächster gedruckt.
 

mihe7

Top Contributor
Hm... das ändert jetzt nicht wirklich was am Prinzip. Die Frage wäre, mit welchen Mitteln das gelöst werden soll oder ob ein Hinweis auf parallele Verarbeitung gegeben ist. Außerdem steht da nur was von Lösungsidee.

Man kann das natürlich auch ganz poplig mit einer verketteten Liste machen.
 

Garfild2015

Aktives Mitglied
Hm... das ändert jetzt nicht wirklich was am Prinzip. Die Frage wäre, mit welchen Mitteln das gelöst werden soll oder ob ein Hinweis auf parallele Verarbeitung gegeben ist. Außerdem steht da nur was von Lösungsidee.

Man kann das natürlich auch ganz poplig mit einer verketteten Liste machen.
könnten sie mir zeigen wie es mit einer liste geht?
 

mihe7

Top Contributor
Zum Beispiel in der Richtung:
Java:
ListIterator<Druckauftrag> it = auftraege.listIterator(0);
while (it.hasNext()) {
    Druckauftrag auftrag = it.next();
    if (auftrag.getPrio() < pAuftrag.getPrio()) {
        it.previous();
        break;
    }
}
it.add(pAuftrag);

Es gibt aber zig Möglichkeiten, das zu implementieren.
 

Garfild2015

Aktives Mitglied
Zum Beispiel in der Richtung:
Java:
ListIterator<Druckauftrag> it = auftraege.listIterator(0);
while (it.hasNext()) {
    Druckauftrag auftrag = it.next();
    if (auftrag.getPrio() < pAuftrag.getPrio()) {
        it.previous();
        break;
    }
}
it.add(pAuftrag);

Es gibt aber zig Möglichkeiten, das zu implementieren.
Das hat sehr geholfen, Danke!
zur einer Teilaufgabe hätte ich noch eine FRage

Die Auftragsverwaltung soll auch die Möglichkeit einer einfachen Benutzerverwaltung haben, um kontrollieren zu können, dass nur zugelassene Benutzer drucken. Druckaufträge von unbekannten Benutzern sollen nicht angenommen werden. Ebenso wenig sollen Druckaufträge von Benutzern angenommen werden, die ein falsches Passwort mit dem Druckauftrag übermitteln. Dazu muss die Auftragsverwaltung gültige Benutzernamen und Passwörter verwalten. Es muss also möglich sein, Kombinationen aus Benutzername und Passwort anzulegen, zu prüfen und zu löschen. Bei jeder Kommunikation mit der Auftragsverwaltung müssen die Informationen über den Benutzer, von dem der Auftrag oder die Anfrage kommt, und sein Passwort enthalten sein. Jedem Druckauftrag wird der Benutzer zugeordnet, der den Auftrag hinzugefügt hat. Außerdem soll jeder Benutzer nur seine eigenen Druckaufträge löschen können. Modellieren Sie diese Erweiterung der Software.

Leider sind dort keine anderen Informationen angegeben. Wie würde dort der Code aussehen (ungefähr)?
 

mihe7

Top Contributor
Hier ist nach der Modellierung und nicht nach Code gefragt. Du sollst Dir überlegen, welche zusätzlichen Klassen Du brauchst und wie die vorhandenen angepasst werden müssten. Erwartet wird hier schätzungsweise ein UML-Diagramm. Der Code gibt dann wieder, was im Modell steht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Warum muss ich ein SSL cert immer manuell hinzufügen? Java Basics - Anfänger-Themen 46
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
F SSL zu keystore hinzufügen Java Basics - Anfänger-Themen 1
mervanpolat Methoden Warum müssen wir "int ans = -1;" hinzufügen? Java Basics - Anfänger-Themen 2
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
I JPA CriteriaBuilder -> Custom SQL hinzufügen Java Basics - Anfänger-Themen 5
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
B Zu Property Feld weitere Informationen hinzufügen? Java Basics - Anfänger-Themen 4
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
Gaudimagspam Assertions im Programm hinzufügen Java Basics - Anfänger-Themen 4
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
M Hinzufügen eines Objekts auf ein Map Java Basics - Anfänger-Themen 4
T Collections Methode (Knoten hinzufügen) für Graphen Java Basics - Anfänger-Themen 32
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
B String zu einem bestehenden String hinzufügen Java Basics - Anfänger-Themen 9
S IndexOutOfBoundsException beim hinzufügen eines Elements zu einer Liste Java Basics - Anfänger-Themen 11
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
CptK Datentypen Objekt lässt sich nicht zu arraylist hinzufügen Java Basics - Anfänger-Themen 2
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
J Hinzufügen eines Objekts in eine Liste, um später dann nochmal auf das Objekt zugreifen zu können Java Basics - Anfänger-Themen 8
J mögliche Spielzüge zu Liste hinzufügen Java Basics - Anfänger-Themen 6
L Methoden Methoden hinzufügen?! Java Basics - Anfänger-Themen 1
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
Arif Collections Unkonstruiertes Objekt einer Collection hinzufügen Java Basics - Anfänger-Themen 2
G Wie kann ich einem StringBuilder einen int Wert formatiert hinzufügen? Java Basics - Anfänger-Themen 8
D Hinzufügen einer Site zur Ausnahmeliste nicht möglich Java Basics - Anfänger-Themen 1
O Wert in einer URL hinzufügen (in meinem Beispiel Google) Java Basics - Anfänger-Themen 7
Silvascus Void Methode einem Stringparameter im syso-Befehl hinzufügen Java Basics - Anfänger-Themen 3
L0MiN Erste Schritte Neue Punkte zu einer Map hinzufügen und dauerhaft speichern? Java Basics - Anfänger-Themen 4
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
Spencer Reid JavaDoc zu JavaFx hinzufügen Java Basics - Anfänger-Themen 1
J ArrayList<int[]> wird beim hinzufügen von werten komplett überschrieben warum? Java Basics - Anfänger-Themen 1
F Zeile bei JTable hinzufügen Java Basics - Anfänger-Themen 6
J Element zu jList hinzufügen NullPointerExcepetion Java Basics - Anfänger-Themen 2
S JTextField zu ArrayList hinzufügen Java Basics - Anfänger-Themen 3
M JMenuItem per Button hinzufügen Java Basics - Anfänger-Themen 2
K Windows Symbolleiste Icons hinzufügen Java Basics - Anfänger-Themen 7
B Listener beim Laden (deserialize) wieder hinzufügen bzw. mitspeichern? Java Basics - Anfänger-Themen 3
B Neue Bibliothek hinzufügen Java Basics - Anfänger-Themen 2
U Dokumentation einer Library hinzufügen Java Basics - Anfänger-Themen 3
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
X Konstante hinzufügen Java Basics - Anfänger-Themen 3
A Fächer hinzufügen Java Basics - Anfänger-Themen 7
G element in ArrayList Hinzufügen Java Basics - Anfänger-Themen 16
J Bei Hinzufügen von JButton Programm langsam Java Basics - Anfänger-Themen 3
M ArrayList-Element hinzufügen u. löschen Java Basics - Anfänger-Themen 2
S Hinzufügen von jid3lib-0.5.4 Java Basics - Anfänger-Themen 3
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
V Java Libraries Hinzufügen Ubuntu Java Basics - Anfänger-Themen 3
G Element einem Array hinzufügen Java Basics - Anfänger-Themen 7
B Wie kann man auf das JFrame einer anderen Klasse zugreifen, etwas hinzufügen und entfernen?? Java Basics - Anfänger-Themen 3
M Object people[][] Daten hinzufügen Java Basics - Anfänger-Themen 3
Joew0815 Classpath Eclipse - Library hinzufügen (NativeBass) Java Basics - Anfänger-Themen 23
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
P Per Button, Linien Hinzufügen und bearbeiten Java Basics - Anfänger-Themen 30
J Punkte hinzufügen Tabelle Java Basics - Anfänger-Themen 5
S Externe Bibliothek zu Resources hinzufügen? Java Basics - Anfänger-Themen 5
M Map mit Vektor: Element hinzufügen Java Basics - Anfänger-Themen 21
A Compiler-Fehler static Array Wert hinzufügen Java Basics - Anfänger-Themen 8
A Threads Zur Laufzeit hinzufügen/entfernen Java Basics - Anfänger-Themen 10
C Variablen array element hinzufügen/entfernen Java Basics - Anfänger-Themen 10
R Bestehendes Array ein Feld hinzufügen Java Basics - Anfänger-Themen 4
I Bestimmte Objekte einer Liste hinzufügen Java Basics - Anfänger-Themen 16
M Jlist Elemente hinzufügen Java Basics - Anfänger-Themen 2
P Nachträglich Klasse zu Package hinzufügen Java Basics - Anfänger-Themen 16
T jar datei Bild hinzufügen Java Basics - Anfänger-Themen 4
S JDom API Doc in eclipse hinzufügen? Java Basics - Anfänger-Themen 2
eLogic Panel hinzufügen Java Basics - Anfänger-Themen 4
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
P Dropdownbox nach hinzufügen wieder öffnen Java Basics - Anfänger-Themen 7
K jButton zur Laufzeit hinzufügen Java Basics - Anfänger-Themen 22
J String zu String[] hinzufügen Java Basics - Anfänger-Themen 4
M Properties hinzufügen Java Basics - Anfänger-Themen 12
D Buchstaben den jeweiligen Zahlen hinzufügen mit einer if. Java Basics - Anfänger-Themen 6
K Funktion zu einem JButton hinzufügen Java Basics - Anfänger-Themen 27
R Datentypen In String nach String suchen und hinzufügen Java Basics - Anfänger-Themen 2
N Dateiinhalt zu jTextArea hinzufügen Java Basics - Anfänger-Themen 2
A Array ein element hinzufügen. Java Basics - Anfänger-Themen 6
P | zu einer hashtable hinzufügen Java Basics - Anfänger-Themen 7
S OOP Wie bei Spiel "17+4" eine Karte an bestimmte Position hinzufügen Java Basics - Anfänger-Themen 13
A int[] werte hinzufügen Java Basics - Anfänger-Themen 3
I Daten über Konsole hinzufügen Java Basics - Anfänger-Themen 22
G Zeichen Pro schleifendurchlauf hinzufügen Java Basics - Anfänger-Themen 7
S GridBagLayout neue Objekte hinzufügen Java Basics - Anfänger-Themen 3
A Hinzufügen neuer Pakete Java Basics - Anfänger-Themen 5
X ZipFile: wie kann ich darin eine Datei löschen und hinzufügen? Java Basics - Anfänger-Themen 5
0x7F800000 "Kommentare" an Dateien hinzufügen/auslesen? [edit: "Metadaten"] Java Basics - Anfänger-Themen 4
A Hinzufügen von Elementen in ArrayList Java Basics - Anfänger-Themen 2
A Applet Bild zu laufzeit hinzufügen Java Basics - Anfänger-Themen 4
M im Programm TextArea hinzufügen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben