• Nie Znaleziono Wyników

Sporządzanie rachunków Lista wymaga

N/A
N/A
Protected

Academic year: 2021

Share "Sporządzanie rachunków Lista wymaga"

Copied!
25
0
0

Pełen tekst

(1)

Sporządzanie rachunków

Lista wymagań

1. System zawiera katalog produktów 2. Można wprowadzić wiele rachunków

3. Pozycje rachunku muszą zawierać produkty różne w sensie typu, nazwy i ceny

4. Można zakupić trzy typy produktów różniąc się sposobem naliczania ceny:

netto, z podatkiem, z promocją,

5. Każda pozycja rachunku powinna podać swoją wartość brutto oraz dane produktu oraz ilość zakupionego produktu.

6. Na rachunku powinna znajdować się wartość łączna wszystkich zakupów Przypadki użycia systemu

(2)

Dodawanie nowego produktu do katalogu (diagram klas) - etap analizy 1

(3)

Dodawanie nowego produktu do katalogu (diagram sekwencji) - etap analizy1

*

(4)

Dodawanie nowego produktu do katalogu (diagram klas) - etap projektowania1

(5)

Dodawanie nowego produktu do katalogu (diagram sekwencji) - etap projektowania1

loop

(6)

Dodawanie nowego rachunku (diagram klas) - etap projektowania2

(7)

Dodawanie nowego rachunku (diagram sekwencji) - etap projektowania2

(8)

Dodawanie nowego zakupu (diagram klas) - etap analizy2

(9)

Dodawanie nowego zakupu (diagram sekwencji) - etap analizy2

(10)

Dodawanie nowego zakupu (diagram klas) - etap projektowania3

(11)

Dodawanie nowego zakupu (diagram sekwencji) - etap projektowania3

(12)

Obliczanie wartości wybranego rachunku (diagram klas) – etap analizy3

(13)

Obliczanie wartości wybranego rachunku (diagram sekwencji) – etap analizy3

(14)

Obliczanie wartości wybranego rachunku (diagram klas) – etap projektowania4

(15)

Obliczanie wartości wybranego rachunku (diagram sekwencji) – etap projektowania4

(16)

Implementacja w języku JAVA

(17)

import java.util.*;

public class TAplikacja {

private Vector Produkty = new Vector();

private Vector Rachunki = new Vector();

public void Wstaw_zakup (int nr, int ile, TProdukt1 produkt1) { TRachunek pom;

if ((produkt1=Szukaj_produkt(produkt1))!=null) if ((pom=Szukaj_rachunek(nr))!=null)

pom.Dodaj_zakup(new TZakup(ile,produkt1));

}

public TRachunek Szukaj_rachunek (int nr) { TRachunek pom;

Iterator it = Rachunki.iterator();

while (it.hasNext())

{ pom = (TRachunek)it.next();

if (pom.equals(nr)) return pom;}

return null; }

public float Podaj_wartosc (int nr) { TRachunek pom;

pom = Szukaj_rachunek(nr);

if (pom!=null)

return pom.Podaj_wartosc();

return 0; }

public TProdukt1 Szukaj_produkt (TProdukt1 produkt) { TProdukt1 pom;

Iterator it = Produkty.iterator();

while (it.hasNext())

{ pom = (TProdukt1)it.next();

if (pom.equals(produkt)) return pom;}

return null; }

(18)

public void Dodaj_produkt (TProdukt1 pom) { if (Szukaj_produkt(pom)==null)

Produkty.add(pom);

}

public void Wstaw_rachunek (int nr) { TRachunek pom=new TRachunek(nr);

if (Szukaj_rachunek(nr)==null) Rachunki.add(pom);

}

public void Wyswietl() { TProdukt1 pom;

Iterator it = Produkty.iterator();

while (it.hasNext())

{ pom=(TProdukt1)it.next();

System.out.println(pom.toString());

} }

public static void main(String args[]) { TAplikacja app=new TAplikacja();

TProdukt1 p1=new TProdukt1("1",1);

app.Dodaj_produkt(p1);

TProdukt1 p2=new TProdukt1("2",2);

app.Dodaj_produkt(p2);

TProdukt1 p3=new TProdukt1("1",1);

app.Dodaj_produkt(p3);

TProdukt2 p4=new TProdukt2("1",1, 22);

app.Dodaj_produkt(p4);

TProdukt2 p5=new TProdukt2("2",2, 10);

app.Dodaj_produkt(p5);

TProdukt2 p6=new TProdukt2("1",1, 22);

app.Dodaj_produkt(p6);

(19)

TProdukt3 p7=new TProdukt3("1",1, 22);

app.Dodaj_produkt(p7);

TProdukt3 p8=new TProdukt3("2",2, 10);

app.Dodaj_produkt(p8);

TProdukt3 p9=new TProdukt3("1",1, 22);

app.Dodaj_produkt(p9);

System.out.println("\nProdukty\n");

app.Wyswietl();

app.Wstaw_rachunek(1);

app.Wstaw_rachunek(1);

app.Wstaw_rachunek(2);

app.Wstaw_zakup(1,1,new TProdukt1("1",1));

app.Wstaw_zakup(1,2,new TProdukt2("1",1, 22));

app.Wstaw_zakup(1,1,new TProdukt3("1",1, 22));

app.Wstaw_zakup(1,4,new TProdukt3("1",1, 22));

app.Wstaw_zakup(1,1,new TProdukt2("2",1, 22));

app.Wstaw_zakup(2,1,new TProdukt1("1",1));

app.Wstaw_zakup(2,2,new TProdukt2("1",1,22));

app.Wstaw_zakup(2,1,new TProdukt3("1",1, 22));

app.Wstaw_zakup(2,4,new TProdukt3("1",1, 22));

app.Wstaw_zakup(2,1,new TProdukt2("2",1, 22));

TRachunek pom;

if (( pom= app.Szukaj_rachunek(1))!=null) { System.out.println("\nRachunek 1\n");

pom.Wyswietl();

System.out.println("Wartosc rachunku: "+pom.Podaj_wartosc());

}

if (( pom= app.Szukaj_rachunek(2))!=null) { System.out.println("\nRachunek 2\n");

pom.Wyswietl();

System.out.println("Wartosc rachunku: "+pom.Podaj_wartosc()+"\n");

} } }

(20)

class TProdukt1 {

protected String nazwa = "";

protected float cena = 0;

public TProdukt1 (String anazwa, float acena ) { super ();

nazwa = anazwa;

cena = acena;

}

public String toString() {

StringBuffer sb = new StringBuffer ();

sb.append (" nazwa : " );

sb.append ( nazwa );

sb.append (" cena : " );

sb.append ( Podaj_cene());

return sb.toString ();

}

public boolean equals ( TProdukt1 aTProdukt1 ) {

if ( aTProdukt1 == null ) return false;

boolean bStatus = true;

if ( Podaj_typ() != aTProdukt1.Podaj_typ() ) bStatus = false;

else if ( !nazwa.equals( aTProdukt1.nazwa) ) bStatus =false;

else if (Podaj_cene()!=aTProdukt1.Podaj_cene()) bStatus = false;

return bStatus;

}

public int Podaj_typ () {return 0; }

public float Podaj_cene () { return cena+Czesc_brutto(); }

(21)

public String Podaj_nazwe () { return nazwa;}

public float Czesc_brutto () { return 0; }

public void Wyswietl ()

{ System.out.println(toString()); } }

class TProdukt2 extends TProdukt1 {

public float podatek =0 ;

public TProdukt2 (String anazwa,float acena,float apodatek ) { super (anazwa,acena);

podatek = apodatek;

}

public String toString() {

StringBuffer sb = new StringBuffer ();

sb.append(super.toString());

sb.append (" podatek : " );

sb.append ( podatek );

return sb.toString ();

}

public float Czesc_brutto () { return cena*podatek/100; }

public int Podaj_typ () { return 1; }

}

(22)

class TProdukt3 extends TProdukt1 {

public float promocja = 0;

public TProdukt3 (String anazwa,float acena,float apromocja ) { super (anazwa, acena);

promocja = apromocja;

}

public String toString() {

StringBuffer sb = new StringBuffer ();

sb.append(super.toString());

sb.append (" promocja : " );

sb.append ( promocja );

return sb.toString ();

}

public float Czesc_brutto ()

{ return -cena*promocja/100; }

public int Podaj_typ () { return 2; }

}

class TZakup {

protected int ilosc = 0;

private TProdukt1 Produkt = null;

public TZakup ( int ailosc, TProdukt1 aProdukt ) {

super ();

ilosc = ailosc;

Produkt = aProdukt;

}

(23)

public String toString() {

StringBuffer sb = new StringBuffer ();

sb.append (" ilosc : " );

sb.append ( ilosc );

sb.append (" Produkt : " );

sb.append ( Produkt.toString() );

return sb.toString ();

}

public boolean equals ( TZakup aTZakup ) {

if ( aTZakup == null ) return false;

boolean bStatus = true;

if ( !Produkt.equals(aTZakup.Produkt) ) bStatus = false;

return bStatus;

}

public float Podaj_wartosc ()

{ return ilosc*Produkt.Podaj_cene(); }

public void Dodaj_ilosc ( int ailosc) { ilosc+=ailosc; }

public int Podaj_ilosc () { return ilosc; }

}

(24)

import java.util.*;

class TRachunek { int numer;

private Vector Zakupy = new Vector();

TRachunek (int nr) { numer=nr; }

public String toString() {

StringBuffer sb = new StringBuffer ();

sb.append (" Zakupy : " );

sb.append ( numer );

return sb.toString ();

}

public boolean equals ( int nr ) {

boolean bStatus = true;

if ( numer!= nr ) bStatus = false;

return bStatus;

}

public float Podaj_wartosc () {

float suma=0;

TZakup pom;

Iterator it=Zakupy.iterator();

while (it.hasNext())

{ pom = (TZakup)it.next();

suma += pom.Podaj_wartosc();

}

return suma;

}

(25)

public TZakup Szukaj_zakup(TZakup pom) {

TZakup pom1;

Iterator it = Zakupy.iterator();

while (it.hasNext())

{ pom1=(TZakup)it.next();

if (pom1.equals(pom)) return pom1; }

return null;

}

void Dodaj_zakup(TZakup pom) {

TZakup pom1;

if ((pom1=Szukaj_zakup(pom)) != null) pom1.Dodaj_ilosc(pom.Podaj_ilosc());

else

Zakupy.add(pom);

}

void Wyswietl() {

TZakup pom;

Iterator it = Zakupy.iterator();

while (it.hasNext())

{ pom = (TZakup) it.next();

System.out.println(pom.toString());

} } }

Cytaty

Powiązane dokumenty

140 Woda źródlana niskomineralizowana niegazowana1,5l szt 1800 141 Woda żródlana niskomneralizowana niegazowana 5l szt 30. 142 Żurek śląski zakwas 500g, kubek

Opakowania jednostkowe stanowią puszki metalowe, masa netto deklarowana przez producenta nie mniej niż 400g Produkt otrzymany z nasion fasoli białej, w zalewie konserwującej z wody

Miejscowość data Podpis

2) osiągnął roczny obrót netto ze sprzedaży towarów, wyrobów i usług oraz operacji finanso- wych nieprzekraczający równowartości w złotych 50 milionów euro, lub sumy

ZIEMNIAKI, typu Irga, Irys, konsumpcyjne, umyte, bulwy o jednolitym miąższu barwy kremowej, nie dopuszcza się ziemniaków zaparzonych, zwiędniętych, zapleśniałych, o

min.: elementy zestawu do złożenia kalejdoskopu (10 szt.), karta rozszerzonej rzeczywistości AR (10 szt.), ekran do hologramu (10 szt.), karta dla nauczyciela (1 szt.),

Wyposażony w pokrywkę z otworem do uwalniania pary oraz nienagrzewające się uchwyty ze stali mocowane przy pomocy nitów. Specjalna konstrukcja dna

a) w okresie 12 m-cy do. 2) Zamawiający zastrzega, iż ilość może ulec zmniejszeniu bądź zwiększeniu w zależności od zapotrzebowania w danym okresie. ) Adres