Programowanie obiektowe 2 (Java)



Kolokwia

Wyniki kolokwium nr 1

Kolokwium nr 2 z PO2 odbedzie sie 26go czerwca o godzinie 18.00. Kolejny termin we wrzesniu.

Projekty i programy

Kolejne terminy oddawania projektow i programow beda sie pojawiac na niniejszej stronie sukcesywnie

Aktualne najblizsze terminy (dla wszystkich grup)



Przydatne linki

Strony w j. angielskim

http://www.oracle.com/technetwork/java/index.html
Java Tutorial
http://www.javaworld.com
http://www.javalobby.com

Strony w j. polskim:

http://www.java.pl
http://www.jdn.pl

API

JSE 8 API Specification

Materialy wykladowe

Java basics
Objects, classes, interfaces, packages, annotations
Exceptions
Threads

Laboratorium

  1. Napisz program czytajacy argumenty wywolania programu i konwertujacy je do Integer. Zmodyfikuj program w ten sposob, aby kolejne argumenty byly wspolczynikami wielomianu postaci Ax2+Bx+C=0. Policz pierwiastki tego wielomianu.
  2. Napisz program, ktory pobiera dwie liczby oraz lancuch znakow z wiersza polecen oraz wyswietla fragment podanego lancucha okreslony wprowadzonymi liczbami. Na przyklad:
    java Substring Witaj 2 4
    powinien wyswietlic:
    taj
    Obsluz wszystkie mozliwe wyjatki, ktore moga wystapic w przypadku zlego zestawu argumentow.
  3. Napisz program losujacy liczbe z zakresu 0-100. Nastepnie program pyta sie uzytkownika, co to za liczba. Jezeli uzytkownik nie zgadl, dowiaduje sie czy wylosowana liczba jest wieksza czy mniejsza od podanej. Jezeli zgadl, dowiaduje sie ile wykonal prob i jest pytany o ochote do dalszej gry.
  4. Napisz program losujacy 1000 znakow i zapisz je do pliku, a nastepnie odczytaj pliku i wypisz na ekran. Utworz dwie rozne pary procedur zapisujaco/odczytujacych, raz korzystajac z pakietu java.io a drugi raz z pakietu java.nio. Porownaj szybkosc zapisu i odczytu, wynik wypisz na ekranie.
  5. Napisz program proszacy o podanie 2 wektorow. Koniec wektora oznacza sie za pomoca wcisniecia klawisza enter. Jezeli podany ciag nie jest liczba, jest ignorowany. Nastepnie nalezy sprobowac dodac wektory, jezeli sa rownej dlugosci. Jezeli nie, sa, rzucany jest wlasny wyjatek WektoryRoznejDlugosciException, za pomoca ktorego mozna podac a nastepnie odczytac dlugosci tych wektorow. Jezeli sa rownej dlugosci, wynik dodawania zapisywany jest do pliku. Jezeli nie sa rownej dlugosci, uzytkownik jest proszony o ponowne wprowadzenie tych wektorow.
  6. Napisz klase NrTelefoniczny, posiadajaca 2 pola: nrkierunkowy i nrTelefonu i implementujaca interfejs Comparable. Nastepnie utworz abstrakcyjna klase Wpis a nastepnie dziedziczace z niej klasy Osoba i Firma. Klasa Wpis ma abstrakcyjna metode opis, ktora opisuje dany wpis. Byc moze ma rowniez inne metody abstrakcyjne lub nie w miare potrzeb. Klasa Osoba ma zawierac informacje o imieniu, nazwisku, adresie i (w tym nrTelefonu). Klasa Firma ma miec nazwe i adres( w tym NrTelefonu). Utworz kilka obiektow klasy Osoba i kilka obiektow klasy Firma i umiesc je w kontenerze TreeMap, poslugujac sie jako kluczem numerem telefonicznym. Nastepnie wypisz utworzona w ten sposob ksiazke telefoniczna za pomoca iteratora.

Projekt

Biblioteka oferujaca funkcjonalnosc prostej plikowej bazy danych.



W podstawowej wersji aplikacji musi byc zrealizowana funkcjonalnosc Select, Insert, Update oraz Delete. Baza danych powinna miec mozliwosc tworzenia co najmniej jednej tabeli, wieksza ilosc jest opcjonalna. Aplikacja powinna posiadac interfejs w linii polecen umozliwiajacy jej wygodna obsluge i obslugiwac przyjazny dla uzytkownika sposob wyjatki rzucane podczas pracy aplikacji.

Przyklad zastosowania przygotowanej biblioteki jest dowolny, np. kartoteka ksiazek, baza kontaktow, baza danych wartosci pomiarowych.

Powyzsze funkcjonalnosci zostana ocenione maksymalnie na ocene 3. W celu uzyskania oceny wyzszej, nalezy zaimplementowac dodatkowe elementy wypisane ponizej. Za kazdy dodatkowy element mozliwe jest uzyskanie oceny o 1 wyzej. O ostatecznej ocenie decyduje jednak takze poprawnosc kodu w rozumieniu jego przejrzystosci, poprawnie zaimplementowanej obiektowosci i szeroko obslugiwanych bledow mozliwych do popelnienia przez uzytkownika.

Dodatkowe elementy (do wyboru)