lab report 4 new

background image

Laboratorium Podstaw Programowania

Laboratorium IV: Biblioteka

1

Cel

W tym zadaniu nauczysz się tworzyć obiekty wchodzące ze sobą w interakcje. Poznasz podstawowe zastosowania dzedzi-
czenia i polimorfizmu w języku Java.
Przeczytaj uważnie całą treść zadania nim zaczniesz je rozwiązywać.

2

Wprowadzenie

Biblioteki w Bajtocji potrzebują elektronicznego systemu wypożyczania książek. Twoim zadaniem jest go zbudować. W
Bajtocji znajdują się dwie biblioteki. W każdej z nich można znaleźć różne książki. Klienci mogą chcieć uzyskać dostęp
do list katalogowych, wypożyczać oraz zwracać książki. Wszystkie biblioteki są czynne w tych samych godzinach.

3

Zadanie

Otrzymasz szablon dwóch klas, Ksiazka oraz Biblioteka. Twoim zadaniem jest zaimplementować ciała metod, które są
puste, tak aby klasy te dostarczały oczekiwaną funkcjonalność. W kolejnym kroku należy stworzyć kilka klas dziedziczących
po klasie Ksiazka, np. KsiazkaFantastyczna, Kryminal, Powiesc, Epopeja, KsiazkaNaukowa. Każda z tych klas powinna
mieć wasną implementację metod String dajRodzaj() oraz String dajOpis() zwracające odpowiednie komunikaty.

4

Sposób postępowania

4.1

Implementacja książki

Dla klasy Ksiazka wszystkie potrzebne metody są zdefiniowane, jednak ich ciało jest puste. Skopiuj kod klasy do swojego
programu a następnie zobacz jak działa. Zwrócisz uwagę, iż wartości wypisywane na ekran przez metodę main() różnią
się od tych oczekiwanych. Twoje zadanie polega na implementacji wszystkich metod, tak aby metoda main() wyświetlała
poprawny wynik. Kiedy skończysz ten etap, wynik wypisywany przez metodę main powinien wyglądać następująco:

Tytul: (powinno byc Pan Tadeusz) Pan Tadeusz
Czy wypozyczona (powinno byc false)? false
Czy wypozyczona (powinno byc true)? true
Czy wypozyczona (powinno byc false)? false

4.2

Implementacja biblioteki

W tym przypadku dysponujesz tylko metodą main(). Twoje zadanie polega na zorientowaniu się jakie metody powinny
zostać dodane aby klasa się kompilowała. W następnym kroku należy zaimplementować ciała tych metod tak, aby metoda
main() wypisywała oczekiwane komunikaty. Do końca tego etapu NIE WOLNO modyfikować metod main().
Komunikat jaki powinna wyświetlić metoda main() klasy Biblioteka po tym etapie wygląda następująco:

Godziny otwarcia bibliotek:
Biblioteki są otwarte codziennie od 9:00 do 17:00.

Adresy bibliotek:
Armii Krajowej 24
Plac Grunwaldzki 6

Wypozyczanie Pana Tadeusza
Udało się wypożyczyć Książkę: Pan Tadeusz
Przykro nam, książka jest już wypożyczona.
Przykro nam, nie mamy takiej książki.

Książki dostępne w pierwszej bibliotece
Gra o Tron
Tozsamosc Bourne’a
Analiza Matematyczna

Politechnika Wrocławska

Mateusz Lis

Strona 1 z 4

background image

Laboratorium Podstaw Programowania

Laboratorium IV: Biblioteka

Książki dostępne w drugiej bibliotece
Brak książek w bibliotece.

Zwrot Pana Tadeusza
Udało Ci się zwrócić książkę: Pan Tadeusz

Książki dostępne w pierwszej bibliotece
Pan Tadeusz
Gra o Tron
Tozsamosc Bourne’a
Analiza Matematyczna

4.3

Tworzenie różnych rodzajów książek

Ostatnim krokiem jest samodzielne stworzenie 4 rodzajów książek:

• Epopeja,

• KsiazkaFantastyczna,

• Kryminal,

• KsiazkaNaukowa.

W tych klasach należy w odpowiedni sposób korzystając z polimorfizmu zaimplementować metody dajRodzaj() oraz
dajOpis(). Opis powinien być zależny od rodzaju książki - np. dla książki naukowej podać dziedzinę, w której jest
osadzona, a dla romansu imiona kochanków. Należy pamiętać o dodaniu pól przechowujących te dane do odpowiednich
klas! Następnie należy tak zmodyfikować metodę main() z klasy Biblioteka aby zwizualizować działanie polimorfizmu.

4.4

Wskazówki

• Niektóre metody muszą być statyczne, podczas gdy inne nie. Przyjrzyj się uważnie metodzie main() klasy Biblioteka,

• zwróć uwagę na sposób porównywania obiektów typu String. Zastosuj metodę String.equals(String2),

• możesz założyć, że w bibliotece nie będzie więcej niż 100 książek,

• pisz program kawałek po kawałku, testując każdy element. Zacznij od zakomentowania całej metody main() klasy

Biblioteka.

Potem odkomentowuj linijki, które wg Ciebie są już zaimplementowane i sprawdzaj czy działają

poprawnie,

• nie modyfikuj metod main() nim dojdziesz do części 3.

Politechnika Wrocławska

Mateusz Lis

Strona 2 z 4

background image

Laboratorium Podstaw Programowania

Laboratorium IV: Biblioteka

Appendices

A

Ksiazka.java

Listing 1: Szablon klasy Ksiazka

c l a s s

K s i a z k a

{

S t r i n g

t y t u l

;

boolean

czyWypozyczona

;

public

K s i a z k a

(

S t r i n g

t y t u l

)

{

;

}

public void

wypozycz

( )

{

;

}

public void

o d d a j

( )

{

;

}

public boolean

czyWypozyczona

( )

{

return f a l s e

;

}

public

S t r i n g

d a j T y t u l

( )

{

return

" "

;

}

public

S t r i n g

d a j R o d z a j

( )

{

return

" "

;

}

public

S t r i n g

d a j O p i s

( )

{

return

" "

;

}

public s t a t i c void

main

(

S t r i n g

[ ]

argumenty

)

{

K s i a z k a p r z y k l a d o w a

=

new

K s i a z k a

(

" Pan T a d e u s z "

) ;

System

.

o u t

.

p r i n t l n

(

" T y t u l : ( p o w i n n o byc Pan T a d e u s z ) "

+

p r z y k l a d o w a

.

d a j T y t u l

( )

) ;

System

.

o u t

.

p r i n t l n

(

" Czy w y p o z y c z o n a ( p o w i n n a byc f a l s e ) ? "

+

p r z y k l a d o w a

.

czyWypozyczona

( )

) ;

p r z y k l a d o w a

.

wypozycz

( ) ;

System

.

o u t

.

p r i n t l n

(

" Czy w y p o z y c z o n a ( p o w i n n o byc t r u e ) ? "

+

p r z y k l a d o w a

.

czyWypozyczona

( )

) ;

p r z y k l a d o w a

.

o d d a j

( ) ;

System

.

o u t

.

p r i n t l n

(

" Czy w y p o z y c z o n a ( p o w i n n o byc f a l s e ) ? "

+

p r z y k l a d o w a

.

czyWypozyczona

( )

) ;

}

}

Politechnika Wrocławska

Mateusz Lis

Strona 3 z 4

background image

Laboratorium Podstaw Programowania

Laboratorium IV: Biblioteka

B

Biblioteka.java

Listing 2: Szablon klasy Biblioteka

c l a s s

B i b l i o t e k a

{

// Dodaj i m p l e m e n t a c j e o d p o w i e d n i c h metod

public s t a t i c void

main

(

S t r i n g

[ ]

argumenty

)

{

// S t w o r z dwie

b i b l i o t e k i

B i b l i o t e k a

p i e r w s z a

=

new

B i b l i o t e k a

(

" A r m i K r a j o w e j 24 "

) ;

B i b l i o t e k a dru ga

=

new

B i b l i o t e k a

(

" P l a c G r u n w a l d z k i 6 "

) ;

// Dodaj c z t e r y

k s i a z k i do p i e r w s z e j

b i b l i o t e k i

p i e r w s z a

.

d o d a j K s i a z k e

(

new

K s i a z k a

(

" Pan T a d e u s z "

) ) ;

p i e r w s z a

.

d o d a j K s i a z k e

(

new

K s i a z k a

(

" Gra o T r o n "

) ) ;

p i e r w s z a

.

d o d a j K s i a z k e

(

new

K s i a z k a

(

" T o z s a m o s c B o u r n e ’ a "

) ) ;

p i e r w s z a

.

d o d a j K s i a z k e

(

new

K s i a z k a

(

" A n a l i z a M a t e m a t y c z n a "

) ) ;

// Wypisz g o d z i n y u r z e d o w a n i a

b i b l i o t e k

System

.

o u t

.

p r i n t l n

(

" G o d z i n y o t w a r c i a b i b l i o t e k "

) ;

w y p i s z G o d z i n y O t w a r c i a

( ) ;

System

.

o u t

.

p r i n t l n

( ) ;

// p u s t a

l i n i j k a

System

.

o u t

.

p r i n t l n

(

" A d r e s y b i b l i o t e k "

) ;

p i e r w s z a

.

w y p i s z A d r e s

( ) ;

dr uga

.

w y p i s z A d r e s

( ) ;

System

.

o u t

.

p r i n t l n

( ) ;

// p u s t a

l i n i j k a

// wypozycz Pana Tadeusza z obu b i b l i o t e k

System

.

o u t

.

p r i n t l n

(

" W y p o z y c z a n i e P a n a T a d e u s z a "

) ;

p i e r w s z a

.

w y p o z y c z K s i a z k e

(

" Pan T a d e u s z "

) ;

p i e r w s z a

.

w y p o z y c z K s i a z k e

(

" Pan T a d e u s z "

) ;

// s p r o b u j

j e s z c z e

r a z

dr uga

.

w y p o z y c z K s i a z k e

(

" Pan T a d e u s z "

) ;

System

.

o u t

.

p r i n t l n

( ) ;

// p u s t a

l i n i j k a

// Wypisz d o s t e p n e

t y t u l y w obu b i b l i o t e k a c h

System

.

o u t

.

p r i n t l n

(

" K s i a z k i d o s t e p n e w p i e r w s z e j b i b l i o t e c e "

) ;

p i e r w s z a

.

w y p i s z D o s t e p n e K s i a z k i

( ) ;

System

.

o u t

.

p r i n t l n

( ) ;

// p u s t a

l i n i j k a

System

.

o u t

.

p r i n t l n

(

" K s i a z k i z d r u g i e j b i b l i o t e k i "

) ;

dr uga

.

w y p i s z D o s t e p n e K s i a z k i

( ) ;

System

.

o u t

.

p r i n t l n

( ) ;

// z wr oc Pana Tadeusza do b i b l i o t e k i

System

.

o u t

.

p r i n t l n

(

" Z w r o t P a n a T a d e u s z a "

) ;

p i e r w s z a

.

o d d a j K s i a z k e

(

" Pan T a d e u s z "

) ;

System

.

o u t

.

p r i n t l n

( ) ;

// Wypisz t y t u l y

d o s t e p n e w p i e r w s z e j

b i b l i o t e c e

System

.

o u t

.

p r i n t l n

(

" K s i a z k i d o s t e p n e w p i e r w s z e j b i b l i o t e c e "

) ;

p i e r w s z a

.

w y p i s z D o s t e p n e K s i a z k i

( ) ;

}

}

Politechnika Wrocławska

Mateusz Lis

Strona 4 z 4


Wyszukiwarka

Podobne podstrony:
lab report 7
lab report 5
12 lab Rysiek new
lab report 5
offshore accident analysis draft final report dec 2012 rev6 online new
New York City Of Aspiration Middle Class Report
spis lab I sem 2010
Prezentacja KST 2007 new
III WWL DIAGN LAB CHORÓB NEREK i DRÓG MOCZ
new employee safety orientation 1201643571904060 5
Diagnostyka lab wod elektrolit
ZW LAB USTAWY, OCHRONA
LAB PROCEDURY I FUNKCJE
sprzet lab profilografy
sprzet lab mikromanometry

więcej podobnych podstron