Java SE programowanie w NetBeans IDE Zajęcia 2 WSM
INSTRUKCJA DO ĆWICZENIA 2
I. Standardowe wejście/wyjście: czytanie tekstu z klawiatury i wyświetlanie na ekranie monitora
1. W środowisku NetBeans utwórz nowy projekt za pomocą polecenia menu File | New Project. W oknie dialogowym New Project
wybierz w panelu Categories: Java a w panelu Projects: Java Application. W oknie New Java Application nadaj projektowi
nazwę Projekt2 a klasie głównej nazwę WeWy (nawiązującą do operacji wejścia/wyjścia tj. czytania danych i wyprowadzania
wyników). Jako miejsce docelowe projektu wybierz folder roboczy G:\ (patrz: Zajęcia 1 pkt. IV.1-4).
2. Na początku metody main(), pod nagłówkiem i po otwierającym nawiasie klamrowym kolejno:
a. Wstaw komentarz
b. Zadeklaruj 5-elementową, pustą tablicę o elementach typu całkowitego:
c. Zadeklaruj zmienną całkowitą z wartością początkową określającą liczbę elementów tablicy instrukcją:
d. Utwórz zmienną s klasy String nie przypisując jej \adnej wartości tekstowej:
e. Utwórz pole reprezentujące czytnik buforowany, który będzie wczytywał z klawiatury pojedyncze wiersze tekstu:
(Do zmiennej we jest przypisany obiekt czytnika buforowanego utworzony konstruktorem BufferedReader().
Parametrem jego konstruktora jest nienazwany obiekt klasy InputStreamReader czyli czytnik strumienia danych
wejściowych, podwiązany przez parametr konstruktora ze standardowym strumieniem wejścia systemu System.in)
f. U\yj metody System.out.print() aby wyświetlić tekst: "Wprowadz swoje imię i nazwisko: ".
3. Wybierz polecenie Fix Imports z menu podręcznego, aby zaimportować odpowiednie klasy z pakietu java.io zasobów
bibliotecznych Javy. Klauzule importu pojawią się w początkowej części programu.
4. Na poczÄ…tku metody main(), w celu wczytania wiersza tekstu z klawiatury (twojego imienia i nazwiska), wykorzystaj metodÄ™
readLine() obiektu we instrukcjÄ…:
Metoda readLine() jako operacja wejścia/wyjścia mo\e generować błędy wykonania (wyjątki) klasy IOException, dlatego
pojawia się błąd kompilacji: "unreported exception java.io.IOException; must be caught or declared to be thrown".
5. Kliknij w ikonę błędu na lewym marginesie okna edytora i z rozwijanej
listy wybierz drugÄ… pozycjÄ™ w celu otoczenia bie\Ä…cej instrukcji
odpowiedniÄ… instrukcjÄ… try-catch (rysunek obok).
6. Usuń instrukcję wywołującą metodę Logger.getlogger() w części catch.
W tym miejscu wywołaj metodę System.out.println() tak, aby przy wystąpieniu wyjątku klasy IOException wyświetlać
tekst "Błąd wejścia/wyjścia"
7. Na końcu bloku try dopisz instrukcje:
a. wyświetlającą tekst "Podaj kolejno całkowite wartości elementów tablicy tT"
b. wprowadzające z klawiatury kolejne elementy tablicy tT, w tym celu wykonaj poni\sze czynności
- umieść kursor na końcu bloku try, w pustym wierszu,
- naciśnij z klawiatury sekwencję klawiszy
(wywołanie wzorca szablonów)
- wpisz for powinna pojawić się poni\sza lista szablonów, z której wybierz tą podświetloną na niebiesko i naciśnij
- usuń wygenerowaną instrukcję znajdującą się wewnątrz pętli for a na jej miejsce dopisz trzy poni\sze:
Mamy tu instrukcję wczytania linii tekstu otoczoną dwiema instrukcjami, z których pierwsza wyświetli podpowiedz
dla u\ytkownika, a druga przekształci wczytany tekst na liczbę całkowitą i przypisze ją kolejnemu elementowi tablicy
8. Na końcu instrukcji try-catch dodaj drugą część catch, która obsłu\y wyjątek klasy NumberFormatException
wyświetlając komunikat "Niepoprawny format liczby" i zatrzymaj działanie programu:
MateriaÅ‚y tylko do u\ytku wewnÄ™trznego. OpracowaÅ‚: Zbigniew JANIK © 1
Java SE programowanie w NetBeans IDE Zajęcia 2 WSM
9. Uruchom program klawiszem lub ikoną na pasku narzędziowym. Kliknięciem przenieś kursor do okna Output
i wypróbuj wpisywanie danych do tablicy.
10. Na końcu metody main() za blokiem instrukcji try-catch dopisz samodzielnie instrukcje wyświetlające elementy tablicy tT
w jednym wierszu poprzedzone informacją, kto wprowadzał dane Wykorzystaj do tego celu nową pętlę for. Wykonanie
programu powinno wyświetlić poni\szy wydruk:
II. Tworzenie tablicy o danych wartościach elementów; tablica dwuwymiarowa; dynamiczny rozmiar tablicy
1. Na końcu metody main() wstaw komentarz
2. Poni\ej zadeklaruj drugą zmienną tablicową o nazwie tV, równie\ o elementach całkowitych, równocześnie przypisując jej nowo
utworzonÄ… tablicÄ™ o zadanych elementach:
3. Następnie zmienną m typu int, podobnie jak w punkcie I.2.b przypisując jej liczbę elementów tablicy tV.
4. Poni\ej zadeklaruj w sposób dynamiczny dwuwymiarową zmienną tablicową tW o elementach całkowitych i wymiarach nxm:
5. Poni\ej umieść dwie zagnie\d\one pętle for, a w nich instrukcję wyliczającą elementy tablicy tW, jako iloczyny odpowiednich
elementów tablic tT oraz tV:
6. Na końcu metody main() wpisz instrukcję wyświetlającą nagłówek "Tablica dwuwymiarowa tW o ... wierszach i
... kolumnach". W miejscu kropek powinny się znalezć wartości zmiennych n oraz m.
7. Na końcu metody main() w nowych zagnie\d\onych pętlach for wpisz instrukcję wyświetlającą elementy i-tego wiersza
tablicy w oddzielone spacjami; aby przejść do nowej linii po zakończeniu wiersza, pod wewnętrzną pętlą for wywołaj metodę
println() bez parametrów:
8. Uruchom program, wpisz dane i zaobserwuj wyświetlone wyniki.
III. Zapis wyników do pliku tekstowego
1. Na końcu metody main() wstaw komentarz
2. W celu zapisania do pliku zawartości tablicy wynikowej wykorzystamy klasę FileWriter z pakietu java.io; parametrem
jej konstruktora jest nazwa pliku. Aby utworzyć obiekt tej klasy, piszący do pliku o nazwie zadanej w programie, na końcu
metody main wpisz instrukcje:
3. Zaimportuj klasę FileWriter klikając w ikonę ** i wybierając pierwszą pozycję z listy rozwijanej (mo\esz te\ u\yć polecenia
Fix Imports lub skrótu ).
MateriaÅ‚y tylko do u\ytku wewnÄ™trznego. OpracowaÅ‚: Zbigniew JANIK © 2
Java SE programowanie w NetBeans IDE Zajęcia 2 WSM
4. Analogicznie jak w pkt I.5, otocz instrukcje tworzącą obiekt wy blokiem try-catch, aby obsłu\yć wyjątek klasy
IOException. W przypadku przechwycenia wyjątku wyświetl komunikat: "Nie mo\na utworzyć pliku wyniki.txt"
umieszczajÄ…c odpowiedniÄ… instrukcjÄ™ w bloku catch.
5. Na końcu bloku try wpisz instrukcję zapisującą do pliku nagłówek:
Metoda write() obiektu klasy FileWriter zapisuje do pliku łańcuch znaków podany, jako parametr.
6. Na końcu bloku try dopisz instrukcje zapisujące do pliku elementy tablicy tW, w formacie podobnym do tego, jak miało to
miejsce w pkt. II.7. Elementy tablicy w wierszu powinny być oddzielone w tym przypadku znakiem tabulacji, a po zewnętrznej
pętli for umieść wywołanie metody zamykającej plik po zapisie wyników
7. Uruchom program, wpisz dane i zaobserwuj wyświetlone wyniki. W oknie Files odszukaj i otwórz plik wyniki.txt w folderze
projektu, aby obejrzeć zapis wyników (mo\esz te\ posłu\yć się w tym celu poleceniem menu File|Open File).
IV. Instrukcja warunkowa if; zliczanie elementów tablicy
1. Na końcu metody main() wstaw komentarz
2. Zadeklaruj trzy zmienne całkowite ld, lu, lz, które posłu\ą, jako liczniki elementów tablicy; nadaj im wartości początkowe
zero:
3. W zagnie\d\onych pętlach for umieść instrukcje warunkową if, która zliczy dodatnie elementy tablicy tW:
4. Wpisz instrukcje dopisującą do pliku wynikowego wyniki.txt wiersz z tekstem ..." elementów dodatnich".
W miejscu kropek zapisz wartość zmiennej ld. W tym celu musisz ponownie otworzyć istniejący plik wyniki.txt do zapisu
z parametrem true, który pozwoli dopisać na końcu w istniejącym ju\ pliku odpowiednią informację:
Pamiętaj o bloku try-catch. W przypadku przechwycenia wyjątku wyświetl komunikat: "Nie znaleziono pliku -
wyniki.txt"
5. Wyświetl równie\ na ekranie, informacje o liczbie dodatnich elementów w tablicy tW.
6. Aby zliczyć elementy ujemne i zerowe, podobnie jak w punkcie IV.3 dodaj instrukcje if warunkowo zwiększające wartości
liczników lu i lz, w warunkach zastosuj odpowiednie operatory porównania: symbol mniejszości < oraz symbol równości ==
(dwuznak).
7. Dodaj instrukcje zapisujące wartości liczników lu oraz lz do pliku wynikowego, oraz wyświetl te informacje na ekranie
podobnie jak w punkcie IV.5.
8. Pamiętaj o zamknięciu pliku wyniki.txt instrukcją wy.close();
9. Uruchom i wykonaj program; sprawdz zawartość pliku wynikowego wyniki.txt.
V. Czytanie danych z pliku tekstowego; instrukcja if; porównywanie obiektów; instrukcja while
1. Na końcu metody main() wstaw komentarz
2. Wykonaj polecenie Format z menu podręcznego (lub u\yj skrótu ), aby standardowo sformatować tekst zródłowy
programu.
3. Na końcu metody main() wpisz wywołanie metody System.out.print() w celu wyświetlenia pytania pod adresem
u\ytkownika aplikacji: "Czy chcesz wczytać dane z pliku? [TAK/NIE]"
4. Poni\ej jako pierwszą w części try, wpisz instrukcję wczytującą odpowiedz u\ytkownika do zmiennej odp klasy String:
5. Poni\ej wpisz instrukcję warunkową if, której blok wewnętrzny będzie wykonany, je\eli u\ytkownik odpowie TAK:
Aańcuchy znaków są obiektami klasy String. Wszystkie obiekty Javy są wyposa\one w metodę equals(), która zwraca
logiczną wartość true, je\eli zachodzi równość z obiektem tej samej klasy podanym, jako parametr; w przeciwnym wypadku
zwracana jest wartość false.
MateriaÅ‚y tylko do u\ytku wewnÄ™trznego. OpracowaÅ‚: Zbigniew JANIK © 3
Java SE programowanie w NetBeans IDE Zajęcia 2 WSM
6. Za komentarzem // wczytaj dane z pliku dopisz dwie instrukcje; jedna z nich wyświetla komunikat dla u\ytkownika,
druga czyta wpisaną z klawiatury nazwę pliku danych i dodaje do niej rozszerzenie właściwe dla plików tekstowych:
7. Ze strony WWW dla przedmiotu skopiuj do foldera projektu G:\Projekt2 dwa pliki z danymi o nazwach dane1.txt oraz
dane2.txt i obejrzyj ich zawartość.
8. Aby wczytać dane liczbowe z pliku tekstowego, posłu\ymy się klasą Scanner z pakietu java.util; parametrem konstruktora
Scanner() jest nowo utworzony obiekt klasy File, reprezentujÄ…cy plik o nazwie przypisanej do zmiennej nazwaPliku.
W kolejnym wierszu części if utwórz obiekt skanera i przypisz go do zmiennej o nazwie sc instrukcją:
9. Dokonaj importu u\ytych klas Javy poleceniem Fix Imports lub skrótem .
10. W dalszym ciągu instrukcji if wyzeruj zmienną n, a następnie wpisz instrukcję iteracyjną while, a w niej u\yj metody
nextInt() obiektu sc klasy Scanner do wczytania kolejnych liczb całkowitych z pliku:
11. Poni\ej pętli while wywołaj metodę zamykającą przeczytany plik sc.close();
W powy\szym fragmencie programu (pkt.10) wykorzystaliśmy trzy metody obiektu sc klasy Scanner. Metoda
hasNextInt() zwraca logiczną wartość true, je\eli w pliku znajduje się kolejna liczba całkowita; w przeciwnym wypadku
zwracana jest wartość false. Metoda nextInt() zwraca kolejną liczbę całkowitą wczytaną z pliku. Metoda close() zamyka
plik czytany przez skaner. Dane wczytane z pliku są wyświetlane w jednym wierszu, oddzielone spacjami.
12. Aby po wyświetleniu danych przejść do nowego wiersza, poni\ej zamykającego nawiasu pętli while wywołaj metodę
System.out.println() bez parametru.
13. Uruchom program i sprawdz jego działanie, podając, jako nazwę pliku słowo dane1.
14. Następnie uruchom go ponownie, podając niewłaściwą nazwę pliku. Wystąpi wyjątek klasy IOException. Ściślej biorąc jest to
wyjątek podklasy klasy IOException, o nazwie FileNotFoundException. Po końcu części try, jako pierwszą cześć catch
dodaj obsługę klasy wyjątków FileNotFoundException:
15. Przetestuj obsługę tego wyjątku, ponownie podając niewłaściwa nazwę pliku. Zwróć uwagę na u\ycie metody getMessage(),
która zwraca tekst komunikatu opisującego wyjątek ex.
16. Uruchom program i podaj, jako nazwę pliku słowo dane2. Tym razem wystąpi błąd wykonania spowodowany znanym ju\
wyjątkiem o nazwie ArrayIndexOutOfBounds, poniewa\ liczba wartości całkowitych zawartych w pliku dane2.txt
przekracza rozmiar tablicy tT.
17. Aby uwzględnić obsługę wyjątków tej klasy, utwórz nowa cześć catch i dopisz ją po wszystkich istniejących catch.
18. Skompiluj i uruchom program i sprawdz jego działanie przy czytaniu z pliku dane2.
VI. Projekt do samodzielnego wykonania będzie sprawdzany na Zajęciach 3
1. Skopiuj istniejÄ…cy projekt Projekt2 pod nowÄ… nazwÄ™ Projekt2A, klikajÄ…c w oknie Projects nazwÄ™ projektu prawym przyciskiem
i wybierz z menu podręcznego opcję Copy&
2. Zmień w nowy projekcie strukturę programu tak (zmień kolejność instrukcji i usuń zbędne), aby wystąpił w nim tylko:
- jeden blok instrukcji try-catch, ale z kilkoma częściami catch,
- trzy pętle for, w tym tylko raz blok zagnie\d\onych (podwójnych) instrukcji for.
- czterokrotnie instrukcja if
- jednokrotnie instrukcja while
3. Funkcjonalność programu nie powinna ulec zmianie, tzn. kolejność wykonywanych czynności, nadal powinny być zgodne
z instrukcjÄ….
MateriaÅ‚y tylko do u\ytku wewnÄ™trznego. OpracowaÅ‚: Zbigniew JANIK © 4
Wyszukiwarka
Podobne podstrony:
instr2lab
instr21
temperatura instr2014
instr2
instr2 tico
więcej podobnych podstron