You are on page 1of 10

Universiteti i Elbasanit

Teknologji Informacioni

Detyre kursi 1

Lenda: Programimi i orientuar ne objekte

Tema: Klasat dhe objektet. Prbrja.

Data e dorzimit: 12/12/2010 23:59

Dorzimi: Dergoni kodin burim me e-mail ne ueti09@gmail.com, si subjekt ne email


shkruani : POO - Detyra 1 [ <emri> <mbiemri>]

N kt detyr do t hartohet nje program n Java, i cili do te simuloj nj model t


thjeshtzuar t nj sistemi bankar. Banka ka klientt, t cilt kan nj ID (nj string
unik pr secilin klient ), emrin, mbiemrin, vitin e lindjes dhe numrin e telefonit
(string). Gjithashtu ka llogarit t cilat kan nj ID (nj string unik pr seciln
llogari), monedhn (lek, euro, dollar etj. ) dhe gjendjen (nr i plote, sasia e monedhs
s depozituar). N bank mund t prdoren vetm katr monedha leke (ALL), dollare
(USD), euro (EUR) dhe paund (GBP). Interesi (prqindja e fitimit q shtohet n mnyr
periodike) varet nga monedha dhe sht i njejt pr llogarit me t njejtn monedh.
Vlerat prkatse t interesit jan lek 7.5%, dollar 5.6%, euro 4.3% dhe paund 3.8%,
por gjat ekzekutimit kto vlera mund t ndryshohen kur n input ndodhet komanda
NDRYSHOINTERESIN (qe shpjegohet me detaje n vijim). Secili nga klientt mund t
ket asnj ose disa llogari. Klienti mund t hap disa llogari, t cilat duhet t jen n
monedha t ndryshme (pra nj klient nuk mund t hap dy llogari n lek, por mund t
hap nj llogari n lek dhe nj n euro). Secila nga llogarit do t jet n emr t
saktsisht nj klienti (nuk mund t ket llogari n emr t askujt, apo llogari n emr t
m shum se nj klienti).

Programi q do t hartohet nuk do t ket ndrfaqe grafike, por do t funksionoj duke


lexuar inputin nga command line, i cili do t jet nj sr komandash tekst.
Komandat do t ken nj format t prcaktuar me saktsi dhe supozohet q nuk do t
ket gabime formati n input (ju nuk mbani prgjegjsi nse n inputin e dhn nuk
respektohet me saktsi formati i komandave i cili do t specifikohet n vijim ). Pra ju
krkohet t prmbushni saktsin (correctness), dhe pjesrisht qndrueshmrin
(robustness) e programit (programi nuk sht prgjegjs pr gabime n format, por
sht prgjegjs pr gabime integriteti n komanda, sic do t shpjegohet n vijim ).
Secila nga komandat do t lexohet, do t ekzekutohet dhe do t afishojn n ekran nje
output ne lidhje me statusin e saj.
Formati dhe funksionaliteti i komandave t inputit, si dhe outputi prkats.

N ket pik do t sqarojm me saktsi formatin e komandave, funksionalitetin e tyre


si dhe formatin e outputit q do t afishohet.

Komanda SHTOKLIENT :

Formati
SHTOKLIENT <ID> <emri> <mbiemri> <viti i lindjes> <nr telefonit>
Psh: SHTOKLIENT K00036A Arben Hoxha 1981 0672000001
ose SHTOKLIENT K00044A Artan Prifti 1978 0682000002

Funksionaliteti
Kjo komand do t regjistroj n sistem nj klient te ri sipas t dhnave prkatse.
Q komanda t ekzekutohet me sukses duhet q:
o ID t jet unike ( t mos jet regjistruar nj klient tjetr me t njejtn ID).
o ID t jet nj string me 7 karaktere q fillon me K0 dhe mbaron me
shkronjen A.
o Viti i lindjes t jet midis 1930 dhe 1995
o Numri i telefonit t prbhet nga 10 shifra dhe t filloj me 067, 068 ose
069.

Outputi
Nse komanda ekzekutohet me sukses, n ekran do t afishohet:
Klienti <emri> <mbiemri> u regjistrua me sukses.
Psh pr rastet e dhna m sipr outputi do t ishte:
Klienti Arben Hoxha u regjistrua me sukses.
Klienti Artan Prifti u regjistrua me sukses.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga katr
kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:
Klienti nuk mund t regjistrohet. ID nuk eshte unike.
ose
Klienti nuk mund t regjistrohet. ID nuk eshte e rregullt.
ose
Klienti nuk mund t regjistrohet. Viti i lindjes nuk eshte i rregullt.
ose
Klienti nuk mund t regjistrohet. Numri i telefonit nuk eshte i rregullt.

Nse n nj komand ka m shum s nj nga kushtet q nuk plotsohet (psh edhe


ID nuk sht unike, edhe viti i lindjes nuk sht midis 1930-1995) mjafton t
shkruhet vetm nj nga shpjegimet.
Komanda SHTOLLOGARI

Formati
SHTOLLOGARI <ID e llogarise> <ID e klientit> <monedha> <gjendja>
Psh: SHTOLLOGARI L000001Z K00036A USD 3500
ose SHTOLLOGARI L000009Z K00044A USD 4600

Funksionaliteti
Kjo komand do t regjistroj n sistem nj llogari t re me ID (ID e llogaris),
monedhn dhe gjendjen e dhn, pr klientin, ID e t cilit sht sa ID e dhn (ID e
klientit).
N shembullin e msiprm komanda e par regjistron llogarin me ID L000001Z, n
dollar (USD) me gjendje 3500, pr klientin, ID e t cilit sht K00036A.

Q komanda t ekzekutohet me sukses duhet q:


o ID e llogaris t jet unike. (t mos jet regjistruar llogari tjetr me t
njejtn ID)
o ID e llogaris t jet nj string me 8 karaktere q fillon me L0 dhe mbaron
me shkronjen Z.
o ID e klientit duhet t jet nj nga ID e klientve t regjistruar m par.
o Klienti n fjal t mos ket nj llogari tjetr n t njjtn monedh.
o Monedha t jet ALL, USD, EUR ose GBP.
o Gjendja duhet t jete jonegative.

Outputi
Nese komanda ekzekutohet me sukses, ne ekran do te afishohet:
Llogaria ne <monedha> me gjendje <gjendja> e klientit <Emri> <Mbiemri> u
regjistrua me sukses.
Psh per komandat e dhna konkretisht m sipr, outputi do t ishte:
Llogaria ne USD me gjendje 3500 e klientit Arben Hoxha u regjistrua me sukses.
Llogaria ne USD me gjendje 4600 e klientit Artan Prifti u regjistrua me sukses.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga gjasht
kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:
Llogaria nuk mund t regjistrohet. ID nuk eshte unike.
ose
Llogaria nuk mund t regjistrohet. ID nuk eshte e rregullt.
ose
Llogaria nuk mund t regjistrohet. ID e klientit nuk ekziston.
ose
Llogaria nuk mund t regjistrohet. Klienti nuk mund te kete me shume se nje
llogari me te njejten monedhe.
ose
Llogaria nuk mund t regjistrohet. Monedha nuk eshte e rregullt.
ose
Llogaria nuk mund t regjistrohet. Gjendja nuk mund te jete negative.

Nse n nj komand ka m shum s nj nga kushtet q nuk plotsohet (psh edhe


ID e klientit nuk ekziston, edhe monedha nuk eshte e rregullt) mjafton t shkruhet
vetm nj nga shpjegimet.

Komanda TERHIQ

Formati: TERHIQ <ID e llogarise> <sasia>


Psh TERHIQ L000001Z 600

Funksionaliteti
Kjo komand do t kryeje trheqjen nga llogaria e dhn e sasis s caktuar.
Q komanda t ekzekutohet me sukses duhet q:
o ID e llogaris t jet e regjistruar m par.
o Sasia e trhequr t mos jet m e madhe se gjendja n llogari.
o Sasia duhet t jet jonegative.

Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:
Klienti <emri> <mbiemri> terhoqi <sasia> <monedha> me sukses. Gjendja e
mbetur: <gjendja> <monedha>.
Psh pr komandn e dhn konkretisht m sipr, outputi do t ishte:
Klienti Arben Hoxha terhoqi 600 USD me sukses. Gjendja e mbetur: 2900 USD.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga tri
kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:
Terheqja nuk mund te kryhet. ID e llogarise nuk ekziston.
ose
Terheqja nuk mund te kryhet. Gjendja nuk eshte e mjaftueshme.
ose
Terheqja nuk mund te kryhet. Sasia nuk mund te jete negative.

Nse n nj komand ka m shum s nj nga kushtet q nuk plotsohet (psh edhe


ID e llogarise nuk ekziston, edhe sasia eshte negative) mjafton t shkruhet vetm
nj nga shpjegimet.
Komanda DEPOZITO

Formati
DEPOZITO <ID e llogarise> <sasia>
Psh DEPOZITO L000001Z 1800

Funksionaliteti
Kjo komand do t kryej depozitimin n llogarin e dhn t sasis s caktuar.
Q komanda t ekzekutohet me sukses duhet q:
o ID e llogaris t jet e regjistruar m par.
o Sasia duhet t jet jonegative.

Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:
Klienti <emri> <mbiemri> depozitoi <sasia> <monedha> me sukses. Gjendja e re:
<gjendja> <monedha>.
Psh pr komandn e dhn konkretisht m sipr, outputi do t ishte:
Klienti Arben Hoxha depozitoi 1800 USD me sukses. Gjendja e re: 4700 USD.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga dy


kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:
Depozitimi nuk mund te kryhet. ID e llogarise nuk ekziston.
ose
Depozitimi nuk mund te kryhet. Sasia nuk mund te jete negative.

Nse n nj komand ka m shum s nj nga kushtet q nuk plotsohet (psh edhe


ID e llogarise nuk ekziston, edhe sasia eshte negative) mjafton t shkruhet vetm
nj nga shpjegimet.

Komanda TRANSFERO

Formati:
TRANSFERO <ID e llogarise transferuese> <ID e llogarise pritese> <sasia>
Psh TRANSFERO L000001Z L000009Z 500

Funksionaliteti
Kjo komand do t kryej transferimin nga njra llogari n tjetrn t sasis s
caktuar.

Q komanda t ekzekutohet me sukses duhet q:


o ID e llogaris transferuese t jet e regjistruar m par.
o ID e llogaris pritse t jet e regjistruar m par.
o T dyja llogarit t jen n t njjtn monedh.
o Sasia t mos jet m e madhe se gjendja n llogarin transferuese.

Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:
Klienti <emri> <mbiemri> i transferoi klientit <emri> <mbiemri> <sasia>
<monedha> me sukses.
Psh pr komandn e dhn konkretisht m sipr, outputi do t ishte:
Klienti Artan Prifti i transferoi klientit Arben Hoxha 500 USD me sukses.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga katr
kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:

Transferta nuk mund te kryhet. ID e llogarise transferuese nuk ekziston.


ose
Transferta nuk mund te kryhet. ID e llogarise pritese nuk ekziston.
ose
Transferta nuk mund te kryhet. Llogarite nuk jane ne te njejten monedhe.
ose
Transferta nuk mund te kryhet. Gjendja e llogarise transferuese nuk mjafton.

Nse n nj komand ka m shum s nj nga kushtet q nuk plotsohet (psh edhe


ID e llogarise pritese nuk ekziston, edhe gjendja e llogarise transferuese nuk
mjafton) mjafton t shkruhet vetm nj nga shpjegimet.

Komanda PERFITOINTERES

Formati
PERFITOINTERES <ID e llogarise>
Psh PERFITOINTERES L000009Z

Funksionaliteti
Kjo komand do t shtoj gjendjen e llogaris sipas interesit prkats. Interesi
sht sipas monedhs s llogaris. Shtesa behet me numra te plote, pjesa dhjetore
n shtes nuk merret parasysh.

Q komanda t ekzekutohet me sukses duhet q:


o ID e llogaris transferuese t jet e regjistruar m par.
Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:
Klienti <emri> <mbiemri> perftoi interes ne llogarine ne <monedha>. Gjendja e re:
<gjendja>.
Psh pr komandn e dhn konkretisht m sipr, outputi do t ishte:
Klienti Artan Prifti perftoi interes ne llogarine ne USD. Gjendja e re: 4329
(Shenim: Kishim parasysh qe gjendja aktuale ne llogarine USD te Artan Priftit ishte
4100 USD dhe u be 4100 + 5.6% * 4100 = 4329 )

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t kushtit t prmendur


m sipr, n ekran do t afishohet:
Interesi nuk mund te perfitohet. ID e llogarise nuk ekziston.

Komanda NDRYSHOINTERES

Formati
NDRYSHOINTERES <monedha> <interesi i ri>
Psh NDRYSHOINTERES EUR 4.5

Funksionaliteti
Kjo komand ndryshon interesin e monedhs prkatse. Te gjitha komandat
PERFITOINTERES per llogarit n at monedh llogariten me interesin e ri.

Q komanda t ekzekutohet me sukses duhet q:


o Monedha t jet ALL, USD, EUR ose GBP.
o Interesi t jet m i madh se 0 dhe m i vogl se 20

Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:
Interesi i monedhes <monedha> u be <interesi i ri> %.
Psh pr komandn e dhn konkretisht m sipr, outputi do t ishte:
Interesi i monedhes EUR u be 4.5%.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga dy


kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:
Interesi nuk mund te ndryshohet. Monedha nuk eshte e rregullt.
ose
Interesi nuk mund te ndryshohet. Vlera e re nuk eshte e pranueshme.
Komanda LISTOKLIENTET

Formati: LISTOKLIENTET

Funksionaliteti: Kjo komand afishon n ekran listn e klientve t regjistruar n


bank, me t dhnat prkatse t tyre.

Outputi Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:

=====================
Lista e klienteve
=====================

[Klienti 1]
<Id e klientit 1>
<emri i klientit 1> <mbiemri i klientit 1>
<viti i lindjes i klientit 1>
<nr i tel i klientit 1>
[Llogaria 1]
<ID e llogarise 1 te klientit 1>
<monedha e llogarise 1>
<gjendja e llogarise 1>
[Llogaria 2]
<ID e llogarise 2 te klientit 1>
<monedha e llogaris 2>
<gjendja e llogarise 2>
...(pra listohen te gjithe llogarite e klientit 1)

[Klienti 2]
<Id e klientit 2>
<emri i klientit 2> <mbiemri i klientit 2>
<viti i lindjes i klientit 2>
<nr i tel i klientit 2>
[Llogaria 1]
<ID e llogarise 1 te klientit 2>
<monedha e llogarise 1>
<gjendja e llogarise 1>
[Llogaria 2]
<ID e llogarise 2 te klientit 2>
<monedha e llogaris 2>
<gjendja e llogarise 2>
...(pra listohen te gjithe llogarite e klientit 2)

... (pra ne kete menyre listohen te dhenat per te gjithe klientet )


Komanda LISTOLLOGARITE

Formati: LISTOLLOGARITE <monedha>


Psh LISTOLLOGARITE EUR

Funksionaliteti
Kjo komand afishon n ekran listn e llogarive t hapura n monedhn prkatse.
Q komanda t ekzekutohet me sukses duhet q:
o Monedha t jet ALL, USD, EUR ose GBP.

Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:

==============================
Lista e llogarive ne <monedha>
==============================

[Llogaria 1]
<id e llogarise 1>
<emri i klientit><mbiemri i klientit>
<gjendja e llogarise 1>

[Llogaria 2]
<id e llogarise 2>
<emri i klientit><mbiemri i klientit>
<gjendja e llogarise 2>

.... (pra ne kete menyre listohen te dhenat per te gjithe llogarite )

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t kushtit t prmendur


m sipr, n ekran do t afishohet:
Llogarite nuk mund te listohen. Monedha nuk eshte e rregullt.

Komanda FSHIJLLOGARI

Formati:
FSHIJLLOGARI <ID e llogaris>
Psh FSHIJLLOGARI L000001Z

Funksionaliteti
Kjo komand fshin llogarin me ID e dhn.
Q komanda t ekzekutohet me sukses duhet q:
o ID t jet e nj llogarie ekzistuese.
o Gjendja n llogari t jet zero.

Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:
Llogaria ne <monedha> e klientit <Emri> <Mbiemri> u fshi me sukses.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga dy


kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:
Llogaria nuk mund te fshihet. ID nuk ekziston.
ose
Llogaria nuk mund te fshihet. Gjendja nuk eshte zero.

Komanda FSHIJKLIENT

Formati:
FSHIJKLIENT <ID e klientit>
Psh FSHIJKLIENT K00036A

Funksionaliteti
Kjo komand fshin klientin me ID e dhn.
Q komanda t ekzekutohet me sukses duhet q:
o ID t jet e nj klienti ekzistues.
o Klienti t mos ket llogari t hapura.

Outputi
Nse komanda ekzekutohet me sukses, ne ekran do te afishohet:
Klienti <Emri> <Mbiemri> u fshi me sukses.

Nse komanda nuk ekzekutohet per arsye t mosplotsimit t ndonjrit nga dy


kushtet e prmendura m sipr, n ekran do t afishohet, sipas rastit prkats, nj
nga rreshtat e mposhtm:
Klienti nuk mund te fshihet. ID nuk ekziston.
ose
Klienti nuk mund te fshihet. Ai ka llogari te hapura.

You might also like