You are on page 1of 3

Detyrë Kursi

Programimi i Orientuar nga Objekti

Përshkrimi i detyrës:

Krijoni një program Java i cili stimulon manipulimin e një gare të kampionatit me makina në
Formula 1.
Për pjesën GUI nuk lejohet të përdoren tools-et drag dhe drop ( p.sh ato që gjenden në Netbeans,
etj.) për të krijuar ndërfaqen grafike të përdoruesit. I gjithë kodi grafik duhet të shkruhet
manualisht në Java Swing dhe nuk duhet të përdoret asnjë mjet që gjeneron kodin automatikisht.
Çdo detyrë për të cilën janë përdorur drag dhe drop ose mjete të tjera për gjenerim kodi nuk do
të vleresohen për pjesët ku janë përdorur këto mjete.

Duhet implementuar një klasë Formula1MenaxhimKampionati që extends ndërfaqen


MenaxhimKampionati. Klasa Formula1MenaxhimKampionati përmban informacion për numrin
e shoferëve dhe makinave,( d.m.th. prodhuesit e makinës) të cilët garojnë në kampionatin e
makinave në Formula 1. Çdo shofer bën pjesë vetëm në një skuadër(p.sh. Ferrari) dhe çdo
skuadër ka një shofer të vetëm (p.sh. Mercedes ka një shofer të vetëm të quajtur Hamilton).
Detajet për implementimin e sistemit jepen në hapat e mëposhtëm. Është e rëndësishme të
ndiqen saktësisht specifikimet dhe implementimi duhet të jetë në përputhje me to:

1. Të projektohen dhe implementohen klasat Shoferi (klasë abstrakte) dhe


ShoferiFormula1. Klasat duhet të përfshijnë metoda të përshtatshme dhe të përmbajnë
informacion për emrin e shoferit,vendndodhjen , ekipin të cilit i përket dhe statistika të
ndryshme rreth shoferëve.ShoferiFormula1 duhet të përfshijë statistika të tilla si sasinë e
herëve që shoferi ka zënë vend të parë, të dytë dhe të tretë në sezon. Numri actual i
pikëve që ka një shofer, dhe numri i garave që ka qënë pjesëmarrës në sezon deri në atë
moment duhet të përfshihen gjithashtu.

Pikët e dhëna për çdo shofer në një garë (dhe për të gjitha llogaritjet në këtë detyrë) janë
sipas skemës së mëposhtme:

1:25 2:18 3:15 4:12 5:10 6:8 7:6 8:4 9:2 10:1

dmth shoferi që ka marrë vendin e parë në garë fiton 25 pikë, i dyti 18,i treti 15 e kështu
me radhë. Një shofer duhet të përfundojë garën për të marrë pikë dhe gjithashtu ta
përfundojë atë në 10 vendet e para. (5 pikë)
2. Të implementohet një klasë Formula1MenaxhimKampionati e cila extends ndërfaqen
MenaxhimKampionati . Klasa Formula1MenaxhimKampionati përmban një numër të
shoferëve që marrin pjesë në kampionatin e Formula 1. (5 pikë).

Klasa duhet të krijojë një menu të bazuar në futjen e tekstit (p.sh. consol dhe jo
komponentë grafikë) dhe që i jep përdoruesve opsionet e:

• Krijimit të një shoferi të ri (i cili shtohet në kampionat). Shoferi duhet të jetë


në një skuadër unike (prodhues makinash) (4 pikë).
• Fshirjes së një shoferi dhe skuadrës në të cilën shoferi bën pjesë nga kampionati
i Formula 1. (2 pikë).
• Ndryshimin e shoferit për një skuadër ekzistuese (p.sh. ndryshon shoferin për
skuadrën e Ferrarit). (2 pikë)
• Shfaqjen e statistikave të ndryshme kur zgjedhet një shofer ekzistues .
(4 pikë)
• Shfaqjen e Tabelës së Shoferëve të Formulës 1, d.m.th të shfaqë të gjithë
shoferët që konkurrojnë në Kampionatin Formula 1, skuadrën e tyre dhe disa nga
statistikat e tyre, në rend zbritës në bazë të pikëve që kanë mbledhur në
sezonin e aktual.Shoferi që ka numrin maksimal të pikëve duhet të shfaqet i pari,
e kështu në vijim. Në rast se dy shoferë kanë të njëjtin numër pikësh shoferi që
ka fituar më shpesh vendin e parë në gara duhet të shfaqet në fillim. (8 pikë)
• Shtimin një gare të përfunduar me datë dhe pozicionet që arritën të gjithë
shoferët.Duhet modifikim automatik për statistikat e të gjithë shoferëve që
morën pjesë dhe Tabelës së Shoferëve të Formulës 1 .(8 pikë)
• Ruajtjen e të gjithë informacionit të futur nga përdoruesi deri më atë moment në
një file. (8 pikë).
• Në momentin që rihapet aplikacioni, duhet të lexojë të gjithë informacionin e
ruajtur në file-t e mëparshme (rifillim/rikuperim I gjendjes së mëparshme të
programit) dhe të vazhdojë funksionimin duke iu dhënë mundësia përdoruesit
të fusë informacione të reja ose të ndryshojë informacionin ekzistues. (9 pikë)

3. Të krijohet një ndërfaqe grafike e përdoruesit (GUI) bazuar në Java Swing nga menuja e
tekstit e cila është në gjendje:

• Të shfaq listën (tabelën) e të gjithë shoferëve dhe statistikat e tyre në bazë të


pikëve në rend zbritës. (4 pikë).
• Të mundësojë që përdoruesi të bëjë renditjen e tabelës së mëparshme sipas
pikëve të fituara nga shoferët (në rendin rritës). (4 pikë).
• Të mundësojë që përdoruesi të bëjë renditjen e tabelës së mëparshme sipas
numrit më të madhë të vendit të parë të fituar në gara (në rend zbritës).(4 pikë)
• Të shtohet një buton i cili çdo herë që shtypet gjeneron një garë të rastësishme
në bazë të pozicioneve të rastësishme të arritura nga shoferët ekzistues. Kjo
përditëson automatikisht Tabelën e Shoferëve të Formulës 1 duke shtuar garën
(pikët, vendin që fitoi dhe statistika të tjera). Pozicionet duhet të jenë krejtësisht
të rastësishme dhe jo të koduara në kodin burim. Butoni duhet të gjenerojë një
garë të ndryshme me shoferë që kanë fituar vende të ndryshme sa herë që
klikohet. Përdoruesi duhet të jetë në gjendje të shohë garën e krijuar rastësisht
me pozicionet e shoferit (gjithashtu tabelën e renditjes), në mënyrë që të mund
të verifikohet saktësia e kodit për informacionin e përditësuar të tabelës.
(8 pikë).
• Të shtohet një buton që është i ngjashëm në funksionalitet me pyetjet e
mëparshme (d.m.th gjenerimin e rezultatateve të një gare të plotë dhe shtimi I
tyre në statistika)duke shtuar modifikimet e mëposhtme. Shoferët e nisin garën
në një pozicion të llogaritur rastësisht (p.sh. Vettel në pozicionin fillestar 1,
Hamilton në pozicionin fillestar 2 e kështu me radhë). Këto pozicione fillestare
duhet të jenë të rastësishme dhe jo të koduara. Rezultatet e garës kanë
probabilitet të lidhur me pozicionin e nisjes, pra konkretisht: shoferi që fillon në
pozicionin 1, ka 40% probabilitet për të fituar garën, shoferi që fillon në pozicioni
2 ka 30% probabilitet për të fituar garën, shoferët që fillojnë në pozicionet 3 dhe
4 kanë nga 10% secili për të fituar garën. Të gjithë shoferët në pozicionet 5 deri
në 9 kanë secili një probabilitet prej 2% për të fituar garën dhe të gjithë shoferët
e tjerë kanë një shans 0% për të fituar garën. Pjesa tjetër e pozicioneve (2–10)
përcaktohen në mënyrë krejtësisht të rastësishme.( 8 pikë)
• Të shtohet një buton që shfaq të gjitha garat e përfunduara të renditura sipas
rendit rritës të dates që janë zhvilluar (të dyja të gjeneruara rastësisht ose të
futura manualisht duke përdorur funksionin e menusë së tekstit të përshkruar
më sipër). Kjo duhet të shfaqë të gjitha garat që u zhvilluan në sezon,përfshirë
gjithashtu garat e futura dhe të krijuara në ekzekutimet e mëparshme të
aplikacionit (duke supozuar se përdoruesi e ruajti informacionin e futur duke
përdorur funksionalitetin e menusë së tekstit më lart). (7 pikë)
• Të shtohet një buton dhe një kuti teksti që mund të përdoret për të kërkuar të
gjitha garat që një shoferë I dhënë nga përdoruesi ka marrë pjesë. Duhet të
shfaqen detajet e plota të garave (d.m.th. datat dhe pozicionet e shoferit në
garat përkatëse). (5 pikë).

Shenim : Secila nga kërkesat ka pikët përkatëse.


Kuptueshmëria e kodit (struktura, komentet, emërtimi I variablave, etj) 5 pike
Gjithsej 100 pike.

You might also like