Hi,
ich habe folgendes Problem und zwar.
Mein Ansatz
Das Problem ist nun das er beim add. mekert. er kennt es nicht.
ich habe folgendes Problem und zwar.
Das ist die AufgabeProblemstellung:
Eine Reederei verwaltet eine ganze Flotte von Schiffen. In einer Reederei
gibt es im Prinzip beliebig viele Terminals, an denen man einen
Buchungsvorgang bzw. Stornierungsvorgang durchführen kann. Diese
Terminals stehen einem Kunden 24 Stunden zur Verfügung. Bei einem
Buchungs- bzw. Stornierungsvorgang wählt der Kunde ein Schiff aus und
gibt die Anzahl der zu buchenden Plätze an. Die Buchungsnummer soll
jetzt aber automatisch vom System vergeben werden und als Rückgabewert
der buchen()-Methode dem Kunden bekanntgegeben werden. Beim
Stornieren muss zwingend das Schiff, die Buchungsnummer und die Anzahl
der zu stornierenden Plätze übergeben werden. Um die Last dieser
Terminals zu simulieren soll zwischen zwei Vorgängen jeweils eine zufällige
Zeitverzögerung modelliert werden. Dazu kann man die Methode
Math.random() verwenden.
Realisieren Sie eine Klasse Reederei mit mindestens 4 Schiffen und 3
Buchungsterminals!
Selbstverständlich muss das ganze System Threadsave sein!
Mein Ansatz
Java:
import java.util.*;
public class Reederei {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Schiff B1 = new Schiff("AIDA");
B1.start();
}
}
class Schiff extends Thread{
Vector register = new Vector();
String name;
int BuchungsNr;
Schiff(String name)
{
this.name = name;
}
public void run(){
while(true)
{
int i=(int)(Math.random()*10);
i=i%2;
switch(i)
{
case 0:
//Vector register = new Vector();
this.BuchungsNr=(int)(Math.random()*10000);
add.register(this.BuchungsNr);
//Terminal wird ausgeführt
break;
case 1:
try{
sleep((int)(Math.random()*10*1000));
/*schläft zufällig zwischen 0 und 10 Sekunden*/
}
catch(Exception e){}
//Terminal besetzt
break;
default:
//Fehler
}
}
}
}
Zuletzt bearbeitet: