Professional Documents
Culture Documents
Objektivat:
Struktura e kontrollit: Urdherat
kushtezues fq. 2
Rrjedha e kontrollit dhe struktura e
kontrollit
Struktura e kontrollit: Urdherat
kushtezues fq. 3
Rrjedha e kontrollit dhe struktura e
kontrollit Vazhdim
PRANUESI.METODA(ARGUMENTET)
Struktura e kontrollit: Urdherat
kushtezues fq. 4
Struktura kushtzuese e kontrollit
Struktura e kontrollit: Urdherat
kushtezues fq. 5
Struktura kushtzuese e kontrollit
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 6
Struktura kushtzuese e kontrollit
Vazhdim
TESTI?
true false
URDHRAT1 URDHRAT2
Struktura e kontrollit: Urdherat
kushtezues fq. 7
Struktura kushtzuese e kontrollit
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 8
Struktura kushtzuese e kontrollit
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 9
Struktura kushtzuese e kontrollit
Vazhdim
import javax.swing.*;
/** Konverton ort n sekonda.
* Input: numr i plot jonegativ
* Output: koha e konvertuar n sekonda */
public class ConvertHours
{ public static void main(String[] args)
{ int hours = new Integer(
JOptionPane.showInputDialog("Numri i orve")).intValue();
Struktura e kontrollit: Urdherat
kushtezues fq. 10
Struktura kushtzuese e kontrollit
Vazhdim
if ( hours >= 0 )
{ int seconds = hours * 60 * 60;
JOptionPane.showMessageDialog(null,
hours + " or jan " + seconds + " sekonda");
}
else
{ JOptionPane.showMessageDialog(null,
"Gabim: hyrje negative " + hours);
}
}
}
Struktura e kontrollit: Urdherat
kushtezues fq. 11
Urdhrat kushtzues t vendosur
prbrenda
Struktura e kontrollit: Urdherat
kushtezues fq. 12
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 13
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
import javax.swing.*;
/** Llogarit sasin e metelikeve.
* Input: dy numra t dhn n rreshtin komandues
* sasia e eurove dhe sasia e centve
* Output: sasit e metelikve */
public class MakeChange
{ public static void main (String[] args)
{ int euros = new Integer(args[0]).intValue();
if ( euros < 0 )
{ JOptionPane.showMessageDialog(null,
"Gabim: euro negativ " + euros);
}
Struktura e kontrollit: Urdherat
kushtezues fq. 14
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
else
{ int cents = new Integer(args[1]).intValue();
if ( cents < 0 )
{ JOptionPane.showMessageDialog(null,
"Gabim: cent negativ " + cents);
}
else
{ if ( cents > 99 )
{ JOptionPane.showMessageDialog(null,
"Gabim: n cent " + cents);
}
Struktura e kontrollit: Urdherat
kushtezues fq. 15
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
else
{ int money = (euros * 100) + cents;
System.out.println("Gjysma = " + (money / 50));
money = money % 50;
System.out.println("Njzetqindarka = " + (money / 20));
money = money % 20;
System.out.println("Dhjetqindarka = " + (money / 10));
money = money % 10;
System.out.println("Pesqindarka = " + (money / 5));
money = money % 5;
System.out.println("Qindarka = " + money);
}
}
}
}
}
Struktura e kontrollit: Urdherat
kushtezues fq. 16
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
lexo eurot;
euro negative?
lexo centt;
gabim
cent negativ?
total t holla;
gabim
llogarit metelikt
Struktura e kontrollit: Urdherat
kushtezues fq. 17
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
import javax.swing.*;
/** Llogarit sasin e metelikeve
* Input: dy numra t dhn n rreshtin komandues
* sasia e eurove dhe sasia e centve
* Output: sasit e metelikve */
public class MakeChange4
{ public static void main (String[] args)
{ boolean ok = true; // memoron korrektsin e t dhnave hyrse
int euros = new Integer(args[0]).intValue();
int cents = new Integer(args[1]).intValue();
if ( euros < 0 )
{ JOptionPane.showMessageDialog(null,
"Gabim: euro negativ " + euros);
ok = false; // gabimi mohon korrektsin
}
Struktura e kontrollit: Urdherat
kushtezues fq. 18
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 19
Urdhrat kushtzues t vendosur
prbrenda Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 20
Operatort logjik
import javax.swing.*;
/** Llogarit sasin e metelikeve
* Input: dy numra t dhn n rreshtin komandues
* sasia e eurove dhe sasia e centve
* Output: sasit e metelikve */
public class MakeChange
{ public static void main (String[] args)
{ int euros = new Integer(args[0]).intValue();
int cents = new Integer(args[1]).intValue();
if ( (euros < 0) || (cents < 0) || (cents > 99) )
{ JOptionPane.showMessageDialog(null,
"Gabim n hyrje " + euros + " " + cents); }
Struktura e kontrollit: Urdherat
kushtezues fq. 21
Operatort logjik Vazhdim
else
{ int money = (euros * 100) + cents;
System.out.println("Gjysma = " + (money / 50));
money = money % 50;
System.out.println("Njzetqindarka = " + (money / 20));
money = money % 20;
System.out.println("Dhjetqindarka = " + (money / 10));
money = money % 10;
System.out.println("Pesqindarka = " + (money / 5));
money = money % 5;
System.out.println("Qindarka = " + money);
}
}
}
Struktura e kontrollit: Urdherat
kushtezues fq. 22
Operatort logjik Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 24
Operatort logjik Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 25
Zbatimi i urdhrave kushtzues
Struktura e kontrollit: Urdherat
kushtezues fq. 26
Zbatimi i urdhrave kushtzues
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 27
Zbatimi i urdhrave kushtzues
Vazhdim
else { if ( hour == 12 )
{ if ( am )
{ answer = answer + "0"; }
else { answer = answer + "12"; }
}
else { if ( am )
{ answer = answer + hour; }
else { answer = answer + (hour + 12); }
}
answer = answer + ":";
if ( minute < 10 )
{ answer = answer + "0"; }
answer = answer + minute;
}
return answer;
}
Struktura e kontrollit: Urdherat
kushtezues fq. 28
Ndryshimi i rrjedhs s kontrollit
Struktura e kontrollit: Urdherat
kushtezues fq. 29
Ndryshimi i rrjedhs s kontrollit
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 30
Ndryshimi i rrjedhs s kontrollit
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 31
Urdhri switch
Semantika:
1. Llogaritet SHPREHJA n vlern e saj, t themi, v.
2. N qoft se ndonj nga VLERAk sht e barabart
me v, ather ekzekutohen urdhrat prkatse
URDHRATk ; n qoft se asnj nga VLERAk nuk sht
e barabart me v, ather ekzekutohen urdhrat
URDHRATn+1;
Struktura e kontrollit: Urdherat
kushtezues fq. 33
Urdhri switch Vazhdim
Shembull:
switch(ch)
{ case C: case c: { // Celsius
// ...
break;
}
case F: case f: { // Fahrenheit
// ...
break;
}
case K: case k: { // Kelvin
// ...
break;
}
default: { System.out.println("Gabim: TempConverter"); }
}
Struktura e kontrollit: Urdherat
kushtezues fq. 34
Komponentet model dhe kontrollues
KONTROLLUESI
MODELI
Struktura e kontrollit: Urdherat
kushtezues fq. 35
Komponentet model dhe kontrollues
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 36
Komponentet model dhe kontrollues
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 37
Komponentet model dhe kontrollues
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 38
Case study: menagjer kontosh
bankiere
Struktura e kontrollit: Urdherat
kushtezues fq. 39
Disenjimi i modelit
Struktura e kontrollit: Urdherat
kushtezues fq. 40
Disenjimi i modelit Vazhdim
import javax.swing.*;
/** Modelon nj konto. */
public class BankAccount
{ private int balance; // invariant: balance >= 0
/** Konstruktori.
* @param amount - balansi inicial */
public BankAccount(int amount)
{ if ( amount >= 0 )
{ balance = amount; }
else { balance = 0; }
}
Struktura e kontrollit: Urdherat
kushtezues fq. 41
Disenjimi i modelit Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 42
Disenjimi i modelit Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 44
Disenjimi i modelit Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 45
Arkitektura e softuerit t aplikacionit
AccountManager AccountController
main(...) processTransactions()
BankReader
BankAccount
char readCommand()
boolean deposit(int amount)
int readAmount()
boolean withdraw(int amount)
showTransaction(String message,
int amount)
showTransaction(String message)
Struktura e kontrollit: Urdherat
kushtezues fq. 47
View komponentet Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 48
View komponentet Vazhdim
import javax.swing.*;
/** Lexon transakcione bankiere. */
public class BankReader
{ private String inputLine;
/** Konstruktori. */
public BankReader()
{ inputLine = ""; }
/** Lexon linj t re komanduese.
* @param message - prompti pr shfrytzuesin
* @return karakterin e par t komands */
public char readCommand(String message)
{ inputLine
= JOptionPane.showInputDialog(message).trim().toUpperCase();
return inputLine.charAt(0);
}
Struktura e kontrollit: Urdherat
kushtezues fq. 49
View komponentet Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 50
View komponentet Vazhdim
import javax.swing.*;
import java.awt.*;
import java.text.*;
/** Shkruan transakcione bankiere. */
public class BankWriter extends JPanel
{
private int width = 300;
private int height = 200;
private BankAccount account;
private String lastTransaction = "";
Struktura e kontrollit: Urdherat
kushtezues fq. 51
View komponentet Vazhdim
/** Konstruktori.
* @param title - titulli i dritares grafike
* @param a - kontoja bankiere q afishohet */
public BankWriter(String title, BankAccount a)
{ account = a;
JFrame f = new JFrame();
f.getContentPane().add(this);
f.setTitle(title);
f.setSize(width, height);
f.setBackground(Color.white);
f.setVisible(true);
}
Struktura e kontrollit: Urdherat
kushtezues fq. 52
View komponentet Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 53
View komponentet Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 54
Konstruktimi i kontrollerit
Struktura e kontrollit: Urdherat
kushtezues fq. 55
Konstruktimi i kontrollerit Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 57
Konstruktimi i kontrollerit Vazhdim
case T :
{ int amount = reader.readAmount();
boolean ok = account.withdraw(amount);
if ( ok )
{ writer.showTransaction("Trheqje", amount); }
else { writer.showTransaction("Trheqje jovalide"); }
break;
}
default :
{ writer.showTransaction("Komand jovalide " + command); }
}
this.processTransactions();
}
}
}
Struktura e kontrollit: Urdherat
kushtezues fq. 58
Konstruktimi i kontrollerit Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 59
Konstruktimi i kontrollerit Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 60
Objekte t shumfishta nga e njjta
klas
Hyrjet, p.sh.:
Komanda (P,S,D,T,M): P
Komanda (P,S,D,T,M): d 50.50
Komanda (P,S,D,T,M): s
Komanda (P,S,D,T,M): D10.10
Komanda (P,S,D,T,M): p
Komanda (P,S,D,T,M): T 30.33
Komanda (P,S,D,T,M): m
Struktura e kontrollit: Urdherat
kushtezues fq. 61
Objekte t shumfishta nga e njjta
klas Vazhdim
AccountManager AccountController
main(...) processTransactions()
1 1
2
BankReader
BankAccount
char readCommand()
boolean deposit(int amount)
int readAmount()
2 boolean withdraw(int amount)
showTransaction(String message,
int amount)
showTransaction(String message)
Struktura e kontrollit: Urdherat
kushtezues fq. 63
Objekte t shumfishta nga e njjta
klas Vazhdim
/** Konstruktori
* @param r - input view objekti
* @param w1 - output view objekti i par
* @param a1 - model objekti i par
* @param w2 - output view objekti i dyt
* @param a2 - model objekti i dyt */
public AccountController2(BankReader r,
BankWriter w1, BankAccount a1,
BankWriter w2, BankAccount a2)
{ reader = r;
primaryWriter = w1;
primaryAccount = a1;
secondaryWriter = w2;
secondaryAccount = a2;
writer = primaryWriter;
account = primaryAccount;
}
Struktura e kontrollit: Urdherat
kushtezues fq. 64
Objekte t shumfishta nga e njjta
klas Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 65
Objekte t shumfishta nga e njjta
klas Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 66
Objekte t shumfishta nga e njjta
klas Vazhdim
case T :
{ int amount = reader.readAmount();
boolean ok = account.withdraw(amount);
if ( ok )
{ writer.showTransaction("Trheqje", amount); }
else { writer.showTransaction("Trheqje jovalide"); }
break;
}
Struktura e kontrollit: Urdherat
kushtezues fq. 67
Objekte t shumfishta nga e njjta
klas Vazhdim
case P :
{ this.resetAccount(primaryWriter, primaryAccount);
break;
}
case S :
{ this.resetAccount(secondaryWriter, secondaryAccount);
break;
}
default :
{ writer.showTransaction("Komand jovalide " + command); }
}
this.processTransactions();
}
}
}
Struktura e kontrollit: Urdherat
kushtezues fq. 68
Objekte t shumfishta nga e njjta
klas Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 69
Testimi i metodave dhe klasave
Struktura e kontrollit: Urdherat
kushtezues fq. 70
Testimi i metodave dhe klasave
Vazhdim
Struktura e kontrollit: Urdherat
kushtezues fq. 71
Testimi i metodave dhe klasave
Vazhdim