Program je napisan v programskem jeziku Java zato ga posredno pozenemo z datoteko seminar.html.
Zaradi varnostnih omejitev v internetu, lahko uspesno uporabljamo program le na serverju,s katerega
je program poslan na internet.Program lahko pozenemo preko interneta tudi s kakim drugim racunalnikom,
vendar nimamo dostopa do datoteke s podatki.Program pozenemo, ce v Netscap-u podamo pot do datoteke
seminar.html. Ko datoteka seminar.html pozene applet, se na ekranu prikaze applet, na katerem sta dva
gumba. Obvestilo nam veli, da odpremo okno "Java Console", ki se nahaja v Netscape-ovem menuju "Window".
V to okno se izpisujejo obvestila o izvajanju programa. Ko to storimo, lahko z gumbom "Odpri menu" odpremo
glavni menu. Odpre se novo okno "Osnovni menu",ki ima dve moznosti: "Datoteka" in "Analiza". Ce kliknemo
opcijo "Datoteka", se nam odpreta dve mozni izbiri:"Podaj ime datoteke " in "Konec".
Izberemo "Podaj ime datoteke", nakar se nam odpre interaktivno okno,kamor vtipkamo URL. V vnosnem polju je
ze privzeta pot z datoteko, ki jo lahko potrdimo oziroma spremenimo. Program poisce datoteko "userinfo" in
ce jo uspesno odpre, se okno zapre. Nato v osnovnem menuju izberemo opcijo "Analiza vstopajocih". Odpre se
nam novo okno "Analiza vstopajocih", ki ima v menuju dve moznosti: Analiza" in "Prikaz".V menuju "Analiza"
najprej izberemo opcijo "Izberi mesec(e)". Odpre se nam okno, kjer izberemo mesece, za katere nas zanima
statistika vstopov v LECAD. Ko izberemo zeljene mesece, potrdimo z gumbom "Ok". Zatem izberemo opcijo "Run",
da program pregleda datoteko "userinfo". V oknu "Java Console", ki smo ga odprli na zacetku, vidimo, kdaj
program konca s pregledovanjem datoteke. To se zgodi, ko v okno izpise "Ok". Sedaj lahko pogledamo diagram
vstopov za vse osebe (lastnike kljucev), ki jih program najde v datoteki.Izberemo opcijo "Izris". Ce nas zanima
statistika vstopov se za druge mesece, enostavno izberemo druge mesece in ponovno izberemo "Run".
nazaj na vrh
Koda programa
Celoten program je sestavljen iz sestih razredov, ki se nahajajo vsak v svoji datoteki. Imena razredov (class-ov) so
enaka imenom datotek s koncnico java in so:Vrata, Menig, IskanjeVira, NastavitevStikal, AnalizaVstopajocih in Izris.
Glavni razred se imenuje "Vrata" in je podrazred razreda "Applet".Ta razred poklice datoteka
seminar.html ter tako pozene program kot applet. V razredu "Vrata" sta dodana gumba "Odpri menu" in "Zapri menu".
Ce kliknemo gumb "Odpri menu", poklicemo konstruktor razreda "Menig".
Razred "Menig" je podrazred razreda "Frame". Ker je "Frame" podrazred razreda "window", se odpre
novo okno. V razredu "Menig" je dodan glavni menu z opcijama "Datoteka" in "Analiza" in podopcijami.
Ce izberemo podopcijo "Podaj ime datoteke" opcije "Datoteka", se v razredu "Menig" klice konstruktor
razreda "IskanjeVira".Ce izberemo podopcijo "Konec" se okno z glavnim menujem zapre.V primeru da je izbrana podopcija
"Analiza vstopajocih", klicemo konstruktor razreda "AnalizaVstopajocih".
V razredu "IskanjeVira", ki je tudi podrazred razreda "Frame", se odpre novo okno, v katerem je
dodano vnosno polje, v katerega vnesemo ime datoteke z ustrezno potjo. program sam poisce ime serverja. V spremenljivki
tipa String "urlPot" program sesteje prebrano pot iz vnosnega polja ter dobljeno ime serverja v celoten URL. S tem URL-jem
program poskusa odpreti vhodni tok, preko katerega bere datoteko npr. "userinfo". Ce program uspesno odpre vhodni tok,
se okno z vnosnim poljem zapre.
Razred "AnalizaVstopajocih" je tudi podrazred razreda "Frame", ki odpre novo okno. V tem oknu je dodan menu z
opcijama "Analiza" in "Prikaz". Ce izberemo podopcijo "Izberi mesec(e)" v menuju "Analiza", klicemo konstruktor
razreda "NastavitevStikal", kjer se definira staticno polje mesec[ ], v katerega se shranijo izbrani meseci.
To polje potem uporabi razred "AnalizaVstopajocih". Ko izberemo podopcijo "Run", poklicemo funkcijo branjeVira(),
kjer se izvaja glavni del programa. V tej funkciji program skozi preverjeni vhodni tok (imputstream) bere datoteko
"userinfo" po vrsticah. Vsako prebrano vrstico razdeli na posamezne dele (Tokens), kjer prepozna: mesec, ime,kodo,
vhod/izhod. Imena nato shranjuje v vektor "ime".Funkcija uporablja tri polja, v katera se shranjujejo: ime, koda,
stevilo vstopov. V vektorju "ime" in razlicnih poljih so na mestu istega indeksa kot je v vektorju imen,
vrednosti ki pripadajo temu imenu. Ce program med izvajanjem v datoteki naleti na novo ime, ga doda na konec vektorja.
Vsak vstop pristeje vstopom na ustreznem mestu v polju vstopov. Na koncu izvajanja funkcija prepise imena iz vektorja
v polje.Ta polja sluzijo kot argumenti pri klicanju razreda "Izris". Ko izberemo podopcijo "Izris" v menuju "Prikaz",
poklicemo konstuktor razreda "Izris".
Konstruktor razreda "Izris" ima tri argumente, preko katerih dobi podatke: imen, kod kljucev in stevila vstopov,
ki pripadajo vsakemu imenu. Kode kljucev sicer prenese v razred "Izris", vendar jih ne izpise v grafu. Razred "Izris"
izrise stolpicni (bar) diagram. Stolpci so pobarvani pravokotniki konstantne debeline, visina pa se spreminja glede na
vrednost vstopov, ki jih prebere v polju. Zaradi boljse locljivosti se barva stolpcev se izmenicno spreminja.Na stolpce
program izpise ime lastnika kljuca ter stevilo vstopov v izbranih mesecih.
nazaj na vrh
Sklep
Pri seminarju sem se spoprijel z novim programskim jezikom Javo. Na zacetku sem se moral privaditi objektno
orientiranemu programiranju.Zato mi je seminar vzel nekoliko vec casa, kot sem sprva pricakoval. Sam program
bi lahko napisal tudi v kakem drugem jeziku npr. C-ju. Po zacetnih tezavah sem se lotil samega problema. Med samim
programiranjem sem se tudi ucil novega jezika, zato sem uporabil veliko objektov, ki niso bili nujno potrebni
(okna, menuje,stikala). Ce bi se sedaj lotil problema, bi najbrz vse veliko bolj poenostavil.
nazaj na vrh