Projektowanie aplikacji internetowych
Uwaga! Egzamin poprawkowy z PAI w sesji letniej odbedzie sie w czwartek, 30 czerwca, Aula a5, godzina 16.00
Wyniki kolokwium z dnia 4-go stycznia 2010
nr indeksu/I termin/II termin
152396 2 4,5
152404 3,5 -
152408 2 3
152411 3 3
152424 4 -
152437 2 5
152441 2 4
152444 3 5
152445 3,5 -
152449 2 4
152476 4 -
152478 - 5
152499 5 -
152503 2 3,5
152507 2 5
152509 4 5
154511 4,5 -
Przydatne linki
Strony w j. angielskim
http://java.sun.com
http://www.javaworld.com
http://www.javareport.com
http://www.jars.com
http://www.javalobby.com
Strony w j. polskim:
http://www.java.pl
http://www.javasoft.pl
http://www.jdn.pl
http://www.webdeveloper.pl
API
JSE 6 API Specification
Laboratorium
-
Materialy pomocnicze
Java basics
Objects, classes, interfaces, packages, annotations
Exceptions
Threads
Generics, collections
Networking
JDBC
Input/Output
Cwiczenia laboratoryjne
Uwaga! Cwiczenia 5-9 (i oczywiscie projekt) nalezy pokazac osobiscie prowadzacemu!
- 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.
- 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.
- 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.
- 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.
- 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.:
- Napisz abstrakcyjna klase Lokalizacja a nastepnie dziedziczace z niej klasy Budynek, Pietro, Pokoj. Klasa lokalizacja ma abstrakcyjna metode opis, ktora opisuje dana Lokalizacje i wwszystkie jej podLokalizacje. Zaproponuj takie pola i metody klas Budynek, Pietro, Pokoj by zapewnialy one mozliwosc utworzenia trojstopniowej struktury hierarchicznej (Budynek -> Pietra (przypisane do budynku) -> Pokoje (przypisane do pietra)).
Kazdy obiekt klasy Lokalizacja powinien posiadac pole klasy Identyfikator.
Klasa Identyfikator posiada 3 pola (numer budynku, numer pietra, numer pokoju) i implementuje interfejs Comparable.
Zapewnij by w trakcie tworzenia hierarchicznej struktury zapewnione bylo automatyczne tworzenie identyfikatorow.
W oparciu o klase Identyfikator napisz metody sprawdzajace relacje pomiedzy dwoma dowolnymi lokalizacjami.
- Napisz program, ktory pobiera liste plikow z linii polecen i wyswietla liczbe wierszy kazdego z nich.
Program powinien utworzyc jeden watek dla kazdego z plikow i uzyc tych watkow do zliczenia liczby wierszy kazdego z plikow rownoczenie.
Utworz wersje programu, ktora odczytuje pliki nie jednoczesnie a sekwencyjnie.
Porownaj wydajnosc wielowatkowego i jednowatkowego programu uzywajac System.currentTimeMillis() do okreslenia czasu wykonania.
Porownania dokonaj dla dwoch, trzech i pieciu plikow.
- Napisz program laczacy sie ze strona podana jako argument wywolania programu i wypisujacy
wszystkie znalezione na niej linki i adresy email wykorzystujac w tym celu wyrazenia regularne (pakiet java.util.regex). Oprocz tego program ma zapisac do pliku wszystkie parametry polaczenia, adres IP komputera na ktorym znajduje sie strona oraz naglowek strony (zawartosc sekcji <head>).
- Echo klient i echo serwer wielowatkowy (dla ulatwienia zacznij od jednowatkowego)
- Aplikacja obslugujaca bank czasu. Klient zglasza (i wycofuje) uslugi jakie moze wykonac i ich terminy, moze tez zarzadac wyswietlenia wszystkich dostepnych uslug w banku i zarezerwowac sobie wybrana usluge. Serwer rozsyla komunikaty o nowych, zarezerwowanych, niewykorzystanych i wycofanych uslugach i terminach do wszystkich klientow. Nalezy zadbac o odpowiednia synchronizacje dostepu do zasobow i ich aktualizacje.
Projekt:
Gra sieciowa wykonana w formie appletu komunikujaca sie z serwerem za posrednictwem protokolu http. Gracze komunikuja sie wylacznie za posrednictwem serwera.
Gra musi umozliwiac funkcjonalnosci takie jak gra w nieograniczonej ilosci pokoi, wspierac proces
przylaczania sie graczy. Funkcjonalnosc gier ma byc analogiczna do istniejacych serwisow tego typu,
np. kurnik.pl.
LISTA GIER
PLANSZOWE:
- szachy
- warcaby
- kolko i krzyzyk
- chinczyk
- pilka
- statki
- Scrabble
|
KARCIANE:
- 3-5-8
- brydz
- kanasta
- kierki
- makao
- Pan
- planowanie
- remik
- tysiac
|
KASYNO:
- texas holdem
- poker 5 cards
- poker Omaha
- ruletka
- bingo
- jednoreki bandyta
- video poker
- black Jack (oko)
|
ROZNE:
- domino
- mahjong
- kosci
- Kulki
|
Projekt (VI semestr)
Przydatne linki:
Specyfikacje XHTML, CSS, XML i innych
W3Schools - Zestaw tutoriali
Kurs HTML i CSS
Webmastering
Wymagania odnosnie projektow:
- Minimum 5 stron, w tym jeden rozbudowany formularz
- XHTML 1.1 STRICT
- 3 poziomy CSS
- Kodowanie znaków: utf-8
- Obecnosc meta: keywords, description, content-type
- JavaScript do sprawdzania formularzy
- JavaScript do menu na warstwach (ewentualnie menu na warstwach zrobione w CSS)
- Identyczne wyswietlanie strony pod IE6.0,7.0, Firefox 2.x, Firefox 3.x
- Poprawne wyswietlanie strony pod Opera
- Pozycjonowanie oparte na elementach <div> i stylach CSS (nie na tabelach)
- Glowna czesc strony ma byc nieznanego rozmiaru, tzn. bez wzgledu na ilosc wierszy tekstu (lub innych elementow) w niej zawartych,
stopka strony (obowiazkowa) ma sie wyswietlac poprawnie
- Ladna grafika
- Strona ma byc oddana w pliku o nazwie pai_2011_imie_nazwisko_tytul_projektu.zip zawierajacego w srodku katalog o takiej samej nazwie. Tylko takie pliki beda przyjmowane