Projektowanie obiektowe. dr Jarosław Skaruz

Podobne dokumenty
Metody Metody, parametry, zwracanie wartości

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Metody dostępu do danych

Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania

Podstawy i języki programowania

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Programowanie obiektowe

Iteracyjno-rozwojowy cykl oprogramowania cykl 2. Java Zofia Kruczkiewicz 1

Podstawy programowania obiektowego

Programowanie obiektowe i zdarzeniowe

TEMAT : KLASY POLIMORFIZM

Java: interfejsy i klasy wewnętrzne

Programowanie i struktury danych

Programowanie obiektowe

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów, tabel oraz plików typu properties

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 5

Programowanie i projektowanie obiektowe

Klasy i obiekty cz II

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Programowanie Obiektowe Ćwiczenie 4

Tworzenie aplikacji w języku Java

Programowanie w języku Java. Bazy danych SQLite w Javie

Hibernate mapowanie baz danych

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Lista dwukierunkowa - przykład implementacji destruktorów

Tablice i łańcuchy znakowe jako obiektowe typy danych. dr Jarosław Skaruz

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Programowanie obiektowe

Algorytmy i język C++

Rozdział 4 KLASY, OBIEKTY, METODY

Diagram stanów Laboratorium 9

Kompozycja i dziedziczenie klas

Bazy danych SQLite w Javie

Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018

Programowanie obiektowe i zdarzeniowe

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Kompozycja i dziedziczenie klas

Programowanie obiektowe i zdarzeniowe

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Instrukcja 4 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwa klienta: Interfejs graficzny użytkownika

Platformy Programistyczne Podstawy języka Java

Programowanie obiektowe

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm. dr Jarosław Skaruz

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Dziedziczenie. dr Jarosław Skaruz

Wykład 4. Klasa List Kolejki Stosy Słowniki

Wykład 4_2 część druga. Iteracyjno-rozwojowy cykl oprogramowania 4

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Definiowanie własnych klas

Te atrybuty wewnętrzne są wyrażane za pomocą tzw. metryk, czyli prostych wyrażeń, wiążących pewne elementy programu (projektu, kodu źródłowego itp.).

Budowa prostej aplikacji wielowarstwowej

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Laboratorium 8 Diagramy aktywności

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 5

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

PARADYGMATY PROGRAMOWANIA Wykład 4

Podejście obiektowe do relacyjnych baz danych Hibernate.

Wykład 4: Klasy i Metody

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

Języki i metody programowania Java. Wykład 2 (część 2)

11.6 Klasa do obsługi liczb wymiernych

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Programowanie obiektowe

Instrukcja Wprowadzenie do tworzenia oprogramowania. Relacja 1 do 1..0 instrukcja z lab1

Tworzenie aplikacji w języku Java

Podstawy programowania obiektowego

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Definiowanie własnych klas

Zaawansowane aplikacje WWW - laboratorium

Przypomnienie o klasach i obiektach

Przewodnik krok po kroku:

Przykład zastosowania notacji UML dla realizacji zastosowania wzorca Mediator (materiały dla studentów na prawach rękopisu)

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Aplikacje w środowisku Java

Programowanie i projektowanie obiektowe

Aplikacje w środowisku Java

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

Instrukcja 1 Laboratorium z Podstaw Inżynierii Oprogramowania. Relacja 1 do 1..0 instrukcja z lab1

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Metryki. Przykłady pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Te atrybuty wewnętrzne są wyraŝane za pomocą tzw. metryk, czyli prostych wyraŝeń, wiąŝących pewne elementy programu (projektu, kodu źródłowego itp.).

PARADYGMATY PROGRAMOWANIA Wykład 3

Podstawy obiektowości

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Instrukcja 1 Laboratorium z Podstaw Inżynierii Oprogramowania. Relacja 1 do 1..0 instrukcja z lab1


Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Wstęp. Ale po co? Implementacja

Programowanie obiektowe

Transkrypt:

Projektowanie obiektowe dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Zadanie Na terenie Siedlec funkcjonuje piekarnia Klawisz, która dostarcza swoje produkty do sklepów spożywczych. Każdy sklep identyfikowany jest przez nazwę i adres. Piekarnia zatrudnia kilkunastu sprzedawców (imię i nazwisko) odpowiedzialnych za dostarczanie różnych towarów do sklepów. Każdy ze sprzedawców ma przydzielony wydzielony obszar miasta (nazwa), na który dostarcza towar. Sklep może złożyć zamówienie na różne towary u sprzedawcy, który obsługuje obszar miasta, na którym funkcjonuje dany sprzedawca. Napisz aplikację która umożliwi: 1. Zdefiniowanie obszarów miasta 2. Dodanie sklepu i przypisanie go do obszaru miasta 3. Dodanie sprzedawcy i przypisanie go do obszaru miasta 4. Zapisanie w aplikacji nowego zamówienia na różne towary 5. Wypisanie wartości wszystkich zamówień dla sklepu oraz dla sprzedawcy

Projekt aplikacji class Class Model Logika Obszar - nazwa :String Sklep - nazwa :String - ulica :String - lokal :String Sprzedaw ca - imie :String - nazwisko :String Zamow ienie 1 Towar 1..* - nazwa :String - cena :double Dane ListaSprzedaw cow - sprzedawcy :List:Sprzedawca ListaTow arow - towary :List:Towar ListaSklepow - sklepy :List:Sklep ListaZamow ien - zamowienia :List:Zamowienie ListaObszarow - obszary :List:Obszar

public class Obszar { private String nazwa; public Obszar(String nazwa) { this.nazwa = nazwa; public String getnazwa() { return nazwa; public void setnazwa(string nazwa) { this.nazwa = nazwa;

public class Towar { private String nazwa; private double cena; public Towar(String nazwa, double cena) { this.nazwa = nazwa; this.cena = cena; public String getnazwa() { return nazwa; public void setnazwa(string nazwa) { this.nazwa = nazwa; public double getcena() { return cena; public void setcena(double cena) { this.cena = cena;

public class Sklep { private Obszar obszar; private String nazwa; private String ulica; private String lokal; public Sklep(Obszar obszar, String nazwa, String ulica, String lokal) { this.obszar = obszar; this.nazwa = nazwa; this.ulica = ulica; this.lokal = lokal; public Obszar getobszar() { return obszar; public String getnazwa() { return nazwa; public String getulica() { return ulica; public String getlokal() { return lokal;

public class Sprzedawca { private String imie; private String nazwisko; private Obszar obszar; public Sprzedawca(String imie, String nazwisko, Obszar obszar) { this.imie = imie; this.nazwisko = nazwisko; this.obszar = obszar; public String getimie() { return imie; public String getnazwisko() { return nazwisko; public Obszar getobszar() { return obszar;

public class Zamowienie { private Sklep sklep; private List<Towar> towary; private Sprzedawca sprzedawca; public Zamowienie(Sklep sklep, Sprzedawca sprzedawca) { this.sklep = sklep; this.sprzedawca = sprzedawca; towary = new ArrayList<Towar>(); public void dodajtowar(towar towar) { this.towary.add(towar); public double zwrocwartosczamowienia() { double wynik = 0.0; for (Towar t : towary) { wynik = wynik + t.getcena(); return wynik; public Sklep getsklep() { return sklep; public List gettowary() { return towary; public Sprzedawca getsprzedawca() { return sprzedawca;

public class ListaTowarow { private List<Towar> towary; public ListaTowarow() { towary = new ArrayList<Towar>(); public void dodaj(towar towar) { this.towary.add(towar); public Towar zwroctowar(string nazwa) { Towar towar = null; for (Towar t : towary) { if (t.getnazwa().equals(nazwa)) { towar = t; return towar;

public class ListaZamowien { private List<Zamowienie> zamowienia; public ListaZamowien() { zamowienia = new ArrayList<Zamowienie>(); public void dodaj(zamowienie zamowienie) { this.zamowienia.add(zamowienie); public double zwrocwartoscdlasklepu(string nazwasklepu) { double wartosc = 0.0; for (Zamowienie t : zamowienia) { if (t.getsklep().getnazwa().equals(nazwasklepu)) { wartosc = wartosc + t.zwrocwartosczamowienia(); return wartosc; public double zwrocwartoscdlasprzedawcy(string nazwisko) { double wartosc = 0.0; for (Zamowienie t : zamowienia) { if (t.getsprzedawca().getnazwisko().equals(nazwisko)) { zamowienie = t.zwrocwartosczamowienia(); return wartosc;