dp
author(s): Zdenek Styblik (xstyz101)
Model reprezentuje fiktivni dopravni podnik (dale jen DP), ktery prepravuje lidi.
DP vlastni dopravni prostredky, reprezentovano tridou DopravniProstredek, ktere jsou dale rozdeleny na autobusy (extenze Autobus), letadla (extenze Letadlo) a vlaky (extenze Vlak).
Pasazeri jsou reprezentovani extenzi tridy Clovek pojmenovanou Pasazer. Soferi, ktere DP zamestnava, jsou reprezentovani extenzi tridy Clovek pojmenovanou Sofer. Sofer take muze cestovat dopravnim prostredkem jako pasazer.
Cesty jsou reprezentovany tridou Cesta. Zde je zaznamenano jakym dopravnim prostredkem, odkud, kam, kdo, atd. byl prepraven.
Workspace
Workspace Objects
-
Cesty :Set
-
DopravniProstredky :Set
-
Lide :Set
Script
"Note that variables begining with uppercase letter will be moved into the workspace pool."
Cesty := Set new.
Lide := Set new.
DopravniProstredky := Set new.
autobus1 := Autobus new.
autobus1 pocetMist: 50.
autobus1 rychlost: 100.
autobus1 porizovaciCena: 100000.
autobus1 provozNaklady: 10000.
autobus1 objemZavazProstoru: 30.
vlak1 := Vlak new.
vlak1 pocetMist: 150.
vlak1 rychlost: 150.
vlak1 porizovaciCena: 10000000.
vlak1 provozNaklady: 50000.
vlak1 objemZavazProstoru: 100.
vlak1 jeLuzkovy: 1.
vlak1 jidelniVuz: 1.
letadlo1 := Letadlo new.
letadlo1 pocetMist: 170.
letadlo1 rychlost: 700.
letadlo1 porizovaciCena: 0.
letadlo1 provozNaklady: 0.
letadlo1 objemZavazProstoru: 1000.
letadlo1 maVideo: 1.
sofer1 := Sofer new.
sofer1 jmeno: 'Franta'.
sofer1 prijmeni: 'Vomacka'.
sofer1 skill: 'spatny'.
sofer1 odpracHodin: 1000.
sofer1 plat: 30000.
sofer1 datumNarozeni: '1.1.1960' asDate.
sofer2 := Sofer new.
sofer2 jmeno: 'Pavel'.
sofer2 prijmeni: 'Prachac'.
sofer2 skill: 'dobry'.
sofer2 odpracHodin: 100.
sofer2 plat: 60000.
sofer2 datumNarozeni: '1.2.1975' asDate.
sofer3 := Sofer new.
sofer3 jmeno: 'Janek'.
sofer3 prijmeni: 'Kopyto'.
sofer3 skill: 'vyjimecny'.
sofer3 odpracHodin: 100000.
sofer3 plat: 0.
sofer3 datumNarozeni: '1.1.0' asDate.
pasazer1 := Pasazer new.
pasazer1 jmeno: 'Pepa'.
pasazer1 prijmeni: 'Zdepa'.
pasazer1 vaha: 120.
pasazer1 invalida: 0.
pasazer1 datumNarozeni: '1.3.1980' asDate.
pasazer2 := Pasazer new.
pasazer2 jmeno: 'Milos'.
pasazer2 prijmeni: 'Zeman'.
pasazer2 vaha: 130.
pasazer2 invalida: 1.
pasazer2 datumNarozeni: '5.11.1955' asDate.
pasazer3 := Pasazer new.
pasazer3 jmeno: 'Mirek'.
pasazer3 prijmeni: 'Topol'.
pasazer3 vaha: 70.
pasazer3 invalida: 1.
pasazer3 datumNarozeni: '5.5.1951' asDate.
cesta1 := Cesta new.
cesta1 dopravniProstredek: autobus1.
cesta1 sofer: sofer1.
cesta1 vychoziBod: 'Nekde'.
cesta1 cilovyBod: 'Nekam'.
cesta1 casOd: '1300'.
cesta1 casDo: '1420'.
cesta1 celkovyCas: 80.
cesta2 := Cesta new.
cesta2 dopravniProstredek: vlak1.
cesta2 sofer: sofer2.
cesta2 vychoziBod: 'Widlakof'.
cesta2 cilovyBod: 'Konec sveta'.
cesta2 casOd: '900'.
cesta2 casDo: '1300'.
cesta2 celkovyCas: 240.
cesta3 := Cesta new.
cesta3 dopravniProstredek: letadlo1.
cesta3 sofer: sofer3.
cesta3 vychoziBod: 'CR'.
cesta3 cilovyBod: 'Peklo'.
cesta3 casOd: '1155'.
cesta3 casDo: '1200'.
cesta3 celkovyCas: 5.
cesta1 pasazeri add: pasazer1; add: pasazer2.
cesta2 pasazeri add: pasazer2.
cesta3 pasazeri add: pasazer3.
Lide addAll: Pasazer allInstances.
Cesty addAll: Cesta allInstances.
DopravniProstredky addAll: DopravniProstredek allInstances.
Diagram
Classes
Cesta
|
instance variables
casDo :String
casOd :String
celkovyCas :Number
cilovyBod :String
dopravniProstredek :Object
pasazeri :Set
sofer :Object
vychoziBod :String
|
methods
casDo
casDo:
casOd
casOd:
celkovyCas
celkovyCas:
cilovyBod
cilovyBod:
dopravniProstredek
dopravniProstredek:
initialize
pasazeri
sofer
sofer:
vychoziBod
vychoziBod:
|
|
Trida Cesta
Reprezentuje jednotlivou realizovanou cestu a jeji vlastnosti tj. kdo, cim, koho, odkud, kam.
sofer
* kdo ridil
pasazeri
* kdo cestoval
vychoziBod
* odkud se jelo
* ie. Praha
cilovyBod
* kam se jelo
* ie. Prachatice
casOd
* v kolik se vyjizdelo
* ie. 1245
casDo
* v kolik se prijelo na misto
* ie. 1335
dopravniProstredek
* jakym dopravnim prostredkem se jelo
celkovyCas
* jak dlouho trvala cesta celkem v minutach
* ie. 115
|
code of non-accessing methods:
DopravniProstredek
|
instance variables
objemZavazProstoru :Number
pocetMist :Number
porizovaciCena :Number
provozNaklady :Number
rychlost :Number
|
methods
initialize
objemZavazProstoru
objemZavazProstoru:
pocetMist
pocetMist:
porizovaciCena
porizovaciCena:
provozNaklady
provozNaklady:
rychlost
rychlost:
|
|
Trida DopravniProstredek
Reprezentuje zakladni vlastnosti vsech dopravnich prostredeku, ktere jsou vlastneny DP.
pocetMist
* kolik lidi je mozno do vozidla nalozit
rychlost
* maximalni rychlost vozidla
porizovaciCena
* porizovaci cena vozidla
provozNaklady
* provozni naklady na jednu cestu
objemZavazProstoru
* kolik zavazadel o prumerne velikosti X lze nalozit
|
code of non-accessing methods:
Clovek
|
instance variables
datumNarozeni :Date
jmeno :String
prijmeni :String
|
methods
datumNarozeni
datumNarozeni:
initialize
jmeno
jmeno:
prijmeni
prijmeni:
|
|
Trida Clovek
Reprezentuje vlastnosti lidi shodne pro Pasazer a Sofer.
jmeno
* jmeno cloveka
prijmeni
* prijmeni cloveka
datumNarozeni
* datum narozeni
* ie. '1.1.1900'
|
code of non-accessing methods:
Autobus
|
instance variables
jeLuzkovy :Number
toaleta :Number
|
methods
initialize
jeLuzkovy
jeLuzkovy:
toaleta
toaleta:
|
|
Trida Autobus
Extenze tridy DopravniProstredek
Reprezentuje vlastnosti autobusu.
jeLuzkovy
* jsou v autobusu nejaka luzka?
* jeLuzkovy == 0 => False
* jeLuzkovy > 0 => True
toaleta
* disponuje autobus toaletou?
* toaleta == 0 => False
* toaleta > 0 => True
|
code of non-accessing methods:
Vlak
|
instance variables
jeLuzkovy :Number
jidelniVuz :Number
|
methods
initialize
jeLuzkovy
jeLuzkovy:
jidelniVuz
jidelniVuz:
|
|
Trida Vlak
Extenze tridy DopravniProstredek
Reprezentuje vlastnosti vlaku
jeLuzkovy
* je pripojeny luzkovy vagon?
* jeLuzkovy == 0 => False
* jeLuzkovy > 0 => True
jidelniVuz
* je pripojeny jidelni vuz?
* jidelniVuz == 0 => False
* jidelniVuz > 0 => True
|
code of non-accessing methods:
Letadlo
|
instance variables
maVideo :Number
|
methods
initialize
maVideo
maVideo:
|
|
Trida Letadlo
Extenze tridy DopravniProstredek
Reprezentuje vlastnosti letadla.
maVideo
* je mozno na palube letadla sledovat video v prubehu letu
* maVideo == 0 => False
* maVideo > 0 => True
|
code of non-accessing methods:
Pasazer
|
instance variables
invalida :Number
vaha :Number
|
methods
initialize
invalida
invalida:
vaha
vaha:
|
|
Trida Pasazer
Extenze tridy Clovek
Reprezentuje vlastnosti pasazera, ktery je prepravovan DP.
vaha
* vaha pasazera
invalida
* jedna se o invalidu?
* invalida == 0 => False
* invalida > 0 => True
|
code of non-accessing methods:
Sofer
|
instance variables
odpracHodin :Number
plat :Number
skill :String
|
methods
initialize
odpracHodin
odpracHodin:
plat
plat:
skill
skill:
|
|
Trida Sofer
Extenze tridy Clovek
Reprezentuje vlastnosti sofera dopravniho prostredku.
plat
* kolik soferovy platime mesicne (HM)
skill
* jak je sofer zkuseny
* slovni ohodnoceni dovednosti
odpracHodin
* kolik ma sofer odpracovanych hodin
* jeho skill neni zavisly na poctu hodin
|
code of non-accessing methods:
Links
Data file and
class source.
Generated by Daskalos - Object Modeling Tutor (C) 2006 V. Merunka
October 28, 2008