Kann mir bitte jemand bei der folgende Aufgabe helfen. Ich hocke schon seit 5 Tagen daran und muss heute um 16 Uhr abgeben. War leider die Woche in der die Vorlesung dazu kam krank und habe mir es etliche mal durchgelesen und komme nicht weiter. Wäre um jede Hilfe, so klein sie auch sein möge, sehr dankbar.
Soweit bin ich gekommen
Mobiltelefon
-hersteller:String
-bezeichnung: String
-imei:String
-farbe:Color
-qcApproved: boolean
+MobilTelfon()
+MobilTelefon(hersteller:String, beteichnung:String, farbe:Color, imei:String)
+getIMEI():String
-setIMEI(imei:String)
-checkIMEI(imei:String):boolean
-querSumme(zahl:int):int
+rufeAn(nr : TelefonNummer, nachricht : String)
+toString(): String
TelefonNummer
-laendercode:int
-vorwahl:int
-nummer:int
+TelefonNummer(laendercode:int, vorwahl:int, nummer:int)
+getLaendercode():int
+setLaendercode(laendercode:int)
+getVorwahl():int
+setVorwahl(vorwahl:int)
+getNummer() :int
setNummer(nummer:int)
toString():String
Hier die Augabenstellung dazu:
1. Der Default-Konstruktor von MobilTelefon soll die Attribute mit Standardwerten
versehen, wahrend der Parameter-Konstruktor die ubergebenen Parameter
den jeweiligen Attributen zuweist. Verwenden Sie zum Setzen der imei die entsprechende Methode!
2. Die IMEI ist eine 15-stellige Nummer, die ein Telefon identiziert. Sie besteht aus
einer 8-stelligen TAC (type approval code), einer 6-stelligen SNR (serial number)
und einer Prufzier. Die IMEI soll nachtraglich nicht verandert werden konnen,
weswegen nur getIMEI() von außen aufrufbar ist und die gesetzte imei als String
zuruckgibt. Die Methode setIMEI(), die von den Konstruktoren verwendet wird,
soll eine IMEI nur dann setzen, wenn sie von checkIMEI() als korrekt eingestuft
worden ist. In diesem Fall wird auch das Attribut qcApproved auf true gesetzt.
Im Fehlerfall ist das MobilTelefon defekt und qcApproved wird false.
3. Die Methode checkIMEI() uberpruft die ubergebene IMEI auf Korrektheit. Damit
eine IMEI korrekt ist, muss sie 2 Bedingungen erfullen:
(a) Die IMEI muss aus genau 15 Zeichen bestehen.
(b) Die letzte Zier ist eine Prufzier, die passend zu den vorherigen 14 Ziern
sein muss.
Der Algorithmus zur Berechnung der Prufzier funktioniert folgendermaßen, ausgehend
von einer 14-stelligen IMEI ohne die Prufzier:
- Jede Zier der 14-stelligen IMEI an einer ungeraden Stelle wird verdoppelt.
- Die dadurch entstandenen Zahlen werden wieder ziernweise aufaddiert. Bei
Zahlen >= 10 muss also erst eine Quersumme gebildet werden.
- Endet die im vorherigen Schritt entstandene Summe mit einer 0, ist die
Prufzier auch 0. Endet sie mit einer anderen Zahl, wird die Summe von der
nachst groeren Zahl abgezogen, die mit 0 endet.
Zur Verdeutlichung ein Beispiel:
1 2 3 4 5 6 7 8 1 2 3 4 5 6
1 4 3 8 5 12 7 16 1 4 3 8 5 12
Dies ist Schritt eins des Algorithmus. Im zweiten Schritt werden die Einzelziern
aufaddiert.
1 + 4 + 3 + 8 + 5 + (1 + 2) + 7 + (1 + 6) + 1 + 4 + 3 + 8 + 5 + (1 + 2)
= 62
Achten Sie dabei besonders auf die fettgedruckten Additionen. Zur Berechnung
der Einzelziernsumme ist es hilfreich, die Quersummenberechnung in eine Methode
querSumme() auszulagern.
Als letzten Schritt muss die 62 von der nachst groeren Zahl mit 0 am Ende
abgezogen werden, d.h. in diesem Fall ist die Prufzier 70-62 = 8
Hinweis: Verwenden Sie dazu den modulo-Operator % oder nutzen Sie aus, dass
zwei int-Werte miteinander dividiert wieder einen int-Wert ergeben.
Stimmt die berechnete Prufzier mit der letzten Zier der ubergebenen IMEI
uberein, ist die IMEI korrekt. Stimmt sie nicht uberein, ist sie nicht korrekt.
4. In den Methoden rufeAn() und sendeSMS() soll neben der Art der ausgehenden
Nachricht (SMS oder Anruf) jeweils die Telefonnummer auf stdout ausgegeben
werden. Geben Sie bei der Methode sendeSMS() zusatzlich die ubergebene Nachricht
aus. Beide Methoden sollen vor der Ausgabe uberprufen, ob qcApproved auf
true gesetzt ist. Ist das Attribut false, soll stattdessen ausgegeben werden, dass
das Telefon nicht funktionsfahig ist.
5. Die Methode toString() soll uberschrieben werden und den Hersteller, die Bezeichnung,
die Farbe und die IMEI des Mobiltelefons ausgeben.
6. Zur Benutzung des Mobiltelefons fehlt noch die Implementierung der Methoden
in der Klasse TelefonNummer, die Telefonnummern nach dem Muster Ländercode
+ Vorwahl + Nummer abspeichern können soll. Der Parameter-Konstruktor soll
wie gehabt die übergebenen Parameter den entsprechenden Attributen zuweisen.
Zu jedem Attribut soll es außerdem eine set- und get-Methode geben, mit denen
die Attribute gesetzt und ausgelesen werden können. Die Methode toString()
soll wiederum überschrieben werden und die Telefonnummer in folgender Form
zurückgeben:
+<laendercode><vorwahl><nummer>
Soweit bin ich gekommen
Java:
import java.awt.Color;
public class MobilTelefon {
private String hersteller;
private String bezeichnung;
private String imei;
private Color farbe;
private boolean qcApproved;
public MobilTelefon(){
this.hersteller = "Samsung";
this.bezeichnung = "SG 500";
setIMEI ["000000000000000"];
this.farbe = Color.blue;
}
public MobilTelefon(String hersteller, String bezeichnung, Color farbe,
String imei) {
this.hersteller = hersteller;
this.bezeichnung = bezeichnung;
this.farbe = farbe;
setIMEI(imei);
}
public static String getIMEI() {
return imei;
}
private void setIMEI(String imei) {
if (checkIMEI(imei) == true) {
this.imei = imei;
this.qcApproved = true;
} else {
this.qcApproved = false;
}
}
public static boolean checkIMEI(String imei){
if (imei.length == 15){
}
if (){
}else{
this.qcApproved = false;
}
return qcApproved;
}
}
-hersteller:String
-bezeichnung: String
-imei:String
-farbe:Color
-qcApproved: boolean
+MobilTelfon()
+MobilTelefon(hersteller:String, beteichnung:String, farbe:Color, imei:String)
+getIMEI():String
-setIMEI(imei:String)
-checkIMEI(imei:String):boolean
-querSumme(zahl:int):int
+rufeAn(nr : TelefonNummer, nachricht : String)
+toString(): String
TelefonNummer
-laendercode:int
-vorwahl:int
-nummer:int
+TelefonNummer(laendercode:int, vorwahl:int, nummer:int)
+getLaendercode():int
+setLaendercode(laendercode:int)
+getVorwahl():int
+setVorwahl(vorwahl:int)
+getNummer() :int
setNummer(nummer:int)
toString():String
Hier die Augabenstellung dazu:
1. Der Default-Konstruktor von MobilTelefon soll die Attribute mit Standardwerten
versehen, wahrend der Parameter-Konstruktor die ubergebenen Parameter
den jeweiligen Attributen zuweist. Verwenden Sie zum Setzen der imei die entsprechende Methode!
2. Die IMEI ist eine 15-stellige Nummer, die ein Telefon identiziert. Sie besteht aus
einer 8-stelligen TAC (type approval code), einer 6-stelligen SNR (serial number)
und einer Prufzier. Die IMEI soll nachtraglich nicht verandert werden konnen,
weswegen nur getIMEI() von außen aufrufbar ist und die gesetzte imei als String
zuruckgibt. Die Methode setIMEI(), die von den Konstruktoren verwendet wird,
soll eine IMEI nur dann setzen, wenn sie von checkIMEI() als korrekt eingestuft
worden ist. In diesem Fall wird auch das Attribut qcApproved auf true gesetzt.
Im Fehlerfall ist das MobilTelefon defekt und qcApproved wird false.
3. Die Methode checkIMEI() uberpruft die ubergebene IMEI auf Korrektheit. Damit
eine IMEI korrekt ist, muss sie 2 Bedingungen erfullen:
(a) Die IMEI muss aus genau 15 Zeichen bestehen.
(b) Die letzte Zier ist eine Prufzier, die passend zu den vorherigen 14 Ziern
sein muss.
Der Algorithmus zur Berechnung der Prufzier funktioniert folgendermaßen, ausgehend
von einer 14-stelligen IMEI ohne die Prufzier:
- Jede Zier der 14-stelligen IMEI an einer ungeraden Stelle wird verdoppelt.
- Die dadurch entstandenen Zahlen werden wieder ziernweise aufaddiert. Bei
Zahlen >= 10 muss also erst eine Quersumme gebildet werden.
- Endet die im vorherigen Schritt entstandene Summe mit einer 0, ist die
Prufzier auch 0. Endet sie mit einer anderen Zahl, wird die Summe von der
nachst groeren Zahl abgezogen, die mit 0 endet.
Zur Verdeutlichung ein Beispiel:
1 2 3 4 5 6 7 8 1 2 3 4 5 6
1 4 3 8 5 12 7 16 1 4 3 8 5 12
Dies ist Schritt eins des Algorithmus. Im zweiten Schritt werden die Einzelziern
aufaddiert.
1 + 4 + 3 + 8 + 5 + (1 + 2) + 7 + (1 + 6) + 1 + 4 + 3 + 8 + 5 + (1 + 2)
= 62
Achten Sie dabei besonders auf die fettgedruckten Additionen. Zur Berechnung
der Einzelziernsumme ist es hilfreich, die Quersummenberechnung in eine Methode
querSumme() auszulagern.
Als letzten Schritt muss die 62 von der nachst groeren Zahl mit 0 am Ende
abgezogen werden, d.h. in diesem Fall ist die Prufzier 70-62 = 8
Hinweis: Verwenden Sie dazu den modulo-Operator % oder nutzen Sie aus, dass
zwei int-Werte miteinander dividiert wieder einen int-Wert ergeben.
Stimmt die berechnete Prufzier mit der letzten Zier der ubergebenen IMEI
uberein, ist die IMEI korrekt. Stimmt sie nicht uberein, ist sie nicht korrekt.
4. In den Methoden rufeAn() und sendeSMS() soll neben der Art der ausgehenden
Nachricht (SMS oder Anruf) jeweils die Telefonnummer auf stdout ausgegeben
werden. Geben Sie bei der Methode sendeSMS() zusatzlich die ubergebene Nachricht
aus. Beide Methoden sollen vor der Ausgabe uberprufen, ob qcApproved auf
true gesetzt ist. Ist das Attribut false, soll stattdessen ausgegeben werden, dass
das Telefon nicht funktionsfahig ist.
5. Die Methode toString() soll uberschrieben werden und den Hersteller, die Bezeichnung,
die Farbe und die IMEI des Mobiltelefons ausgeben.
6. Zur Benutzung des Mobiltelefons fehlt noch die Implementierung der Methoden
in der Klasse TelefonNummer, die Telefonnummern nach dem Muster Ländercode
+ Vorwahl + Nummer abspeichern können soll. Der Parameter-Konstruktor soll
wie gehabt die übergebenen Parameter den entsprechenden Attributen zuweisen.
Zu jedem Attribut soll es außerdem eine set- und get-Methode geben, mit denen
die Attribute gesetzt und ausgelesen werden können. Die Methode toString()
soll wiederum überschrieben werden und die Telefonnummer in folgender Form
zurückgeben:
+<laendercode><vorwahl><nummer>
Zuletzt bearbeitet von einem Moderator: