lab report 5

background image

Laboratorium Podstaw Programowania

Laboratorium V: Biblioteka II

1

Cel

W tym zadaniu poznasz podstawy korzystania z kolekcji w języku java oraz strumieni wejścia/wyjścia.

2

Wprowadzenie

Biblioteka, dla której zaimplementowaliśmy na poprzednich zajęciach system obsługi wzbogaciła się o spory zbiór książek
historycznych. Niestety nasz system ma pewną wadę, otóż nie ma możliwości przechowywania w nim więcej niż stu książek.
Twoim zadaniem jest rozwiązać ten problem.

3

Zadanie

3.1

Część 1

Powinieneś bazować na swoim rozwiązaniu poprzedniego zadania. Zadanie polega na takiej modyfikacji klasy Biblioteka,
aby była możliwość przechowywania w niej dowolnej liczby książek, ograniczonej tylko ilością pamięci komputera.

3.2

Część 2

Plik nowe_ksiazki.csv zawiera listę książek, które biblioteka otrzymała w prezencie od miejscowej księgarni historycz-
nej. Twoim zadaniem jest zaimplementowanie klasy KsiążkaHistoryczna, rozszerzającej klasę Ksiazka z poprzedniego
zadania, tak aby można w niej było przechować informacje zawarte na liście (tytuł, autor książki, wydawnictwo, słowny
opis). Następnie należy wczytać dane z pliku nowe_ksiazki.csv, tworząc nowy obiekt klasy KsiążkaHistoryczna dla
każdego wiersza i dodając go do kolekcji książek w bibliotece. Po zakończeniu dodawania książek do biblioteki wypisz na
konsolę ilość dodanych książek.

4

Sposób postępowania

Powinieneś zastąpić tablicę z klasy Biblioteka wybraną kolekcją. Zmieni się również sposób implementacji niektórych
metod.
W celu wczytania pliku linijka po linijce skorzystaj z klas java.io.BufferedReader i java.io.FileReader.

Klasa

BufferedReader posiada metodę String readLine(), za pomocą której można wczytać pojedynczą linię z pliku.
Podział linii na fragmenty odpowiadające parametrom książki możesz zrealizować za pomocą klasy java.util.StringTokenizer.
Konstruktor tej klasy przyjmuje dwa parametry: łańcuch tekstowy, który zostanie podzielony (czyli pojedyncza linia uzy-
skana metodą BufferedReader.readLine()) oraz wzorzec (string), który rozdziela wartości w linii (w naszym przypadku
wartości w pliku CSV oddziela znak tabulacji, czyli "\t").

Politechnika Wrocławska

Mateusz Lis

Strona 1 z 2

background image

Laboratorium Podstaw Programowania

Laboratorium V: Biblioteka II

5

Uwagi

Spróbuj wykorzystać cechy danej kolekcji, np. wykorzystaj pętlę typu foreach zamiast zwyczajnej pętli for.
Do wczytania pliku CSV możesz użyć poniższy kod:

Listing 1: csv

try

{

B u f f e r e d R e a d e r

w e j s c i e

=

new

B u f f e r e d R e a d e r

(

new

F i l e R e a d e r

(

" n o w e _ k s i a z k i . csv "

) )

;

// otwieramy

p l i k

S t r i n g

l i n i a

;

while

( (

l i n i a

=

w e j s c i e

.

r e a d L i n e

( ) ) !=

n u l l

)

// wczytujemy

l i n i e

{

S t r i n g T o k e n i z e r t o k e n

=

new

S t r i n g T o k e n i z e r

(

l i n i a

,

" \ t "

) ;

// d z i e l i m y

l i n i e

S t r i n g

t y t u l

=

t o k e n

.

nextToken

( ) ;

S t r i n g

a u t o r

=

t o k e n

.

nextToken

( ) ;

S t r i n g wydawnictwo

=

t o k e n

.

nextToken

( ) ;

S t r i n g

o p i s

=

t o k e n

.

nextToken

( ) ;

// Tu s t w o r z nowa k s i a z k e

i

d o d a j do b i b l i o t e k i

}

w e j s c i e

.

c l o s e

( )

;

}

catch

(

I O E x c e p t i o n e

)

{

e

.

p r i n t S t a c k T r a c e

( )

;

}

Politechnika Wrocławska

Mateusz Lis

Strona 2 z 2


Wyszukiwarka

Podobne podstrony:
lab report 7
lab report 4 new
lab report 5
spis lab I sem 2010
III WWL DIAGN LAB CHORÓB NEREK i DRÓG MOCZ
Diagnostyka lab wod elektrolit
ZW LAB USTAWY, OCHRONA
LAB PROCEDURY I FUNKCJE
sprzet lab profilografy
sprzet lab mikromanometry
Mechanika Plynow Lab, Sitka Pro Nieznany
Lab 02 2011 2012
PO lab 5 id 364195 Nieznany
lab pkm 4
MSIB Instrukcja do Cw Lab krystalizacja

więcej podobnych podstron