30 likes | 152 Views
Eesnimi. Perekonnanimi. Objetorienteeritud programmeerimine 2008/2009 kevadsemester Rühm inf 1 E 12-14 ruum L203. Kontrolltöö 25.05.2009. Ettevalmistus
E N D
Eesnimi Perekonnanimi Objetorienteeritud programmeerimine 2008/2009 kevadsemester Rühm inf 1 E 12-14 ruum L203 Kontrolltöö 25.05.2009 • Ettevalmistus • Koostatavad programmid peavad kuuluma paketti kt2lahendused. Seetõttu on soovitatav luua kaust kt2lahendused • kausta Praktikum alamkaustaks. • Ülesanded • 1. (3 punkti) Koostada ja testida järgmisel algoritmil põhinev sorteerimismeetod vektori elementide sorteerimiseks. • Sorteerimise käigus kasutatakse (abi)magasine. Igas magasinis on elemendid mittekahanevas järjestuses, • alates magasini aknal olevast elemendist, mis on kõige väiksem. Sorteerimine toimub kahes etapis. • Etapp 1. Antud vektori elemendid kantakse üle magasinidesse. Vektori iga elemendi x korral võetakse see vektorist välja ja • leitakse magasin, mille aknal olev väärtus on >= x. Kui selline magasin leidub, siis lisatakse x sellesse magasini. Kui sellist • magasini ei leidu, siis luuakse uus magasin ja lisatakse x sellesse uude magasini. • Etapp 2. Elemendid magasinidest kantakse tagasi vektorisse. Igal sammul leitakse magasin, mille aknal on • (teiste magasinide aknaelementidega võrreldes) vähim element, võetakse see element sellest magasinist välja ja • lisatakse vektorisse. Kui magasin sai tühjaks, siis see eemaldatakse magasinide hulgast. • Vektori elementide tüübi võib suva kohaselt fikseerida (nt Integer). • 2. (1,5 punkti)Koostada klientprogramm, milles tsüklilise tegevusena • oodatakse sisestust konsoolilt, saadud rea (sõne) lõppu lisatakse (tühikutega eraldatult) momendi kellaeg ja • klientprogrammi kasutaja nimi (user.name) ning selliselt täiendatud sõne saadetakse serverisse. • Programmi näidisskeemi Klient25mai.java saab aadressilt • http://www.cs.ut.ee/~kiho/oo/spring09/Praktikum/kt2lahendused/ • 3. (0,5 punkti) Eeldades, et vastav server töötab, käivitada kontrolltöö lõpetamisel see klientprogramm ja saata kolm teadet, • sisestades konsoolilt • (1)Valmis. • (2)Lahendused pakitud ja saadetud e-maili teel. • (3)Lahendused pakitud ja laaditud WebCT-sse. • Lahendusedsaata zip-formaadis pakituna aadressile Juri.Kiho@ut.ee, enne kl 14 25. mai 2009. Ja laadida ka WebCT-sse. • Saadetis peab sisaldama: kausta kt2lahendused, kõigikasutatud lisapakettide kaustu (Praktikum1, Praktikum2) ja • tekstifaili readme.txt. Viimases olgu tekst: • Kontrolltöös koostatud programmid on paketis ’kt2lahendused’. • Lisatud on programmide poolt kasutatavad lisapaketid (’Praktikum1’ ja ’Praktikum2’).
Etapp2: Etapp1:
package kt2lahendused; import java.io.*; import java.net.*; class Klient25mai { PrintWriter välja; Klient25mai(String host, int port) { try { // pistiku loomine ja serverisse ühendumine Socket pistik = new Socket(host, port); välja = new PrintWriter(pistik.getOutputStream(),true); } catch (Exception e) {System.out.println("Erind: " + e); System.exit(1); } } void suhtle() { while (true) { try { // teate saatmine konsoolilt serverisse String s = Praktikum1.Praktikum1.readln(); String teade = s + " " + Praktikum2.Aeg.kellaaeg() + " " + System.getProperty("user.name"); välja.println(teade); System.out.println("Serverisse saadetud: " + teade); // kontrolltrükk } catch (Exception e) {System.out.println("Erind: " + e); break; } } } public static void main(String[] args) { Klient25mai k = new Klient25mai("193.40.37.22", 3001); System.out.println(System.getProperty("user.name") + " kell " + Praktikum2.Aeg.kellaaeg()); System.out.println("Olete yhenduses teateserveriga. Teie staatus: II kontrollt88 tegija." ); k.suhtle(); } }