Programowanie obiektowe II (Java)



Reguły zaliczenia wykładu

Przydatne linki

Strony w języku angielskim

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

Strony w języku polskim

http://www.java.pl

API

JSE 8 API Specification
JSE 11 API Specification

Materiały wykładowe

Laboratorium

Zadania

  1. Równanie kwadratowe

    Napisz program rozwiązujący równanie kwadratowe ax2 + bx + c = 0. Współczynniki a, b, c przekazywane są z linii poleceń. Uwzględnij w programie pomyłkę użytkownika polegającą na przekazaniu do programu nieprawidłowej liczby parametrów.

    Wskazówka: do konwersji parametrów skorzystaj z funkcji parseDouble w klasie Double. Przed użyciem tej funkcji zapoznaj się z jej specyfikacją. Realizację zadania rozpocznij od napisania programu wczytującego parametry wywołania programu i konwertującego je do typu double.

  2. Konwersja tekstu

    Napisz program, który pobiera dwie liczby oraz łańcuch znaków z wiersza poleceń, a następnie wyświetla fragment podanego łańcucha określony wprowadzonymi liczbami. Na przykład:

    java Substring Witaj 2 4
    wyświetla:
    taj

    java Substring Katamaran 5 7
    wyświetla:
    ara

    java Substring Katamaran 3 40
    wyświetla:
    amaran

    Uwzględnij w programie wszelkie możliwe pomyłki użytkownika w przekazaniu parametrów do programu.

  3. Gra

    Napisz program losujący liczbę z zakresu 0-N. Limit zakresu N przekazywany jest z linii poleceń. Program pyta użytkownika, jaka jest wylosowana liczba. Jeżeli użytkownik nie zgadł, dowiaduje się czy wylosowana liczba jest większa czy mniejsza od podanej. Jeżeli zgadł, dowiaduje się ile wykonał prób i jest pytany czy chce kontynuować grę. Uwzględnij w programie wszelkie możliwe pomyłki użytkownika w przekazaniu parametru do programu.

  4. Lista zakupów

    Napisz program umożliwiający przygotowanie listy zakupów. Praca z programem odbywa się w trybie tekstowym (bez interfejsu graficznego). Program wczytuje z pliku tekstowego listę możliwych do zakupienia produktów, które podzielone są na kategorie. Przykładowo w pliku mogą być zapisane następujące produkty:

    Zaproponuj odpowiedni format danych, tak aby był on prosty i wygodny dla użytkownika. Plik z listą produktów jest przygotowywany przez użytkownika przy pomocy edytora tekstowego. Nie jest on modyfikowany przez program.

    Podczas uruchamiania program wczytuje listę produktów. Program ma umożliwiać:

    Przy kolejnym uruchomieniu program wczytuje do edycji ostatnio zapisaną listę zakupów (program nie umożliwia jednoczesnego zapisania kilku odrębnych list zakupów).

    W zadaniu można dla uproszczenia pominąć kategorie produktów. Tak uproszczone zadanie oceniane jest na ocenę 3.

  5. Numer telefoniczny

    Napisz klasę NrTelefoniczny, posiadającą dwa pola: nrkierunkowy i nrTelefonu i implementującą interfejs Comparable. Następnie utwórz abstrakcyjną klasę Wpis a następnie dziedziczące z niej klasy Osoba i Firma. Klasa Wpis ma abstrakcyjną metodę opis, która opisuje dany wpis. Być może ma również inne metody abstrakcyjne lub nie w miarę potrzeb. Klasa Osoba ma zawierać informacje o imieniu, nazwisku, adresie i (w tym nrTelefonu). Klasa Firma ma mieć nazwę i adres (w tym NrTelefonu). Utwórz kilka obiektów klasy Osoba i kilka obiektów klasy Firma i umieść je w kontenerze TreeMap, posługując się jako kluczem numerem telefonicznym. Następnie wypisz utworzoną w ten sposób książkę telefoniczną za pomocą iteratora. Następnie zaproponuj sposób eliminacji tych wpisów, które mają identyczną nazwę ulicy w adresie. Wypisz ponownie zawartość mapy.

  6. Wektory

    Napisz program proszący o podanie 2 wektorów (wektor to ciąg liczb). Koniec wektora oznacza się za pomocą wciśnięcia klawisza enter. Jeżeli podany ciąg nie jest liczbą, jest ignorowany. Następnie należy spróbować dodać wektory, jeżeli są równej długości (są równej długości jeśli mają tę samą liczbę elementów). Jeżeli nie są, rzucany jest własny wyjątek WektoryRoznejDlugosciException, za pomocą którego można podać a następnie odczytać długości tych wektorów (należy tak skonstruować wyjątek, aby możliwe było skonstruowanie zdania po jego przechwyceniu : "Długość pierwszego wektora to AA a drugiego to BB" lub dowolnego innego zdania wykorzystującego wartości AA i BB, np. określającego różnicę w długościach). Jeżeli są równej długości, wynik dodawania zapisywany jest do pliku. Jeżeli nie są równej długości, użytkownik jest proszony o ponowne wprowadzenie tych wektorów.

  7. Program sieciowy

    Napisz program sieciowy (aplikacja kliencka + aplikacja serwerowa) służący do kolejkowania i wysyłania notyfikacji. Program powinien obsługiwać domyślne wyjątki oraz implementację przynajmniej jednego wyjątku związanego z walidacją treści wprowadzanych przez użytkownika w aplikacji klienckiej.

    Funkcje aplikacji klienckiej:

    Funkcje aplikacji serwerowej:

Projekt (przykładowe propozycje tematów do wyboru)

  1. Gra warcaby

    Napisz program dla gry warcaby.

    Program na ocenę 3 ma umożliwiać:

    Dodatkowo na ocenę 4 program ma umożliwiać:

    Dodatkowo na ocenę 5 program ma umożliwiać:

  2. Lista zakupów

    Rozbuduj program "Lista zakupów" z zadania 4.

    Program na ocenę 3 ma umożliwiać:

    Dodatkowo na ocenę 4 program ma umożliwiać:

    Dodatkowo na ocenę 5 program ma umożliwiać:

Terminy i reguły zaliczenia laboratorium

Terminy i reguły zaliczenia podaje na początku semestru prowadzący laboratorium.