Za nalogo napišite aplikacijo za preprosto urejanje besedil (teksta), ki bo podobna Windows Notepad (beležnica). Aplikacija naj ima prilagodljivo velikost okvirja skupaj z vsemi gradniki (resizeable), menu in vnosno polje za vnašanje teksta. Omogoča naj:
- nalaganje
- shranjevanje
- spreminjanje tekstovnih datotek (.txt)
- kopiranje teksta (copy)
- lepljenje teksta (paste). Obe operaciji naj bosta dosegljivi preko menuja!
- možnost nalaganja večih datotek naenkrat in prikaz vsake v svojem zavihku (tabbed environment).
V vsakem zavihku naj bo mogoče spreminjanje in shranjevanje besedila neodvisno od drugih zavihkov, operaciji kopiranja in lepljenja pa naj delujeta tudi med posameznimi zavihki.
Program napišite v programskem jeziku C#.
V programskem jeziku C# napišite aplikacijo, s katero bo mogoče pregledovati slike na disku. Zahteve za aplikacijo so:
- omogoča naj pregledovanje slik v formatu JPG, BMP in GIF.
- omogoča naj nalaganje ene ali večih slik hkrati.
- omogoča naj odstranjevanje izbrane slike iz seznama slik ali večih slik iz seznama slik hkrati (ne iz diska!!).
- v seznamu slik naj bodo zapisana samo IMENA slik (brez končnic in/ali poti do slike).
- omogoča naj prikaz osnovnih informacij o sliki: dolžina in višina slike v pikah (dimenzije), format slike, velikost slike v KB, datum in ura spremembe slike.
- omogoča naj shranjevanje in nalaganje seznama izbranih slik iz datoteke (seznam ‘priljubljenih’ oz. MojaGalerija).
- omogoča naj pisanje in prikazovanje poljubnega komentarja k vsaki naloženi oz. prikazani sliki. Komentarji se naj shranijo skupaj s seznamom priljubljenih slik (v MojaGalerija).
- omogoča naj prikaz naloženih slik v seznamu po imenih in s prikaznimi sličicami (‘thumbnail’).
- omogoča naj dva različna načina predogleda slike: v naravni velikosti in prilagojeno glede na velikost prikazne površine.
- program naj bo preprost za uporabo, prijazen do uporabnika in vizualno zanimiv!
Pri izdelavi programa boste potrebovali:
- znanje iz predhodnih nalog
- razred ListView (za prikaz seznama slik)
- razred FileInfo (informacije o slikah)
- razred Image (za delo s slikovnimi podatki)
- razred PictureBox (gradnik za prikaz slik)
- preostale razrede in grafične elemente po vaši lastni presoji!!
Za opise razredov in pripadajočih metod uporabite pomoč iz MSDN!
Po vzoru primera 36 iz predavanj, zapišite lastni primer redefiniranja in prekrivanja
metod. Zapišite vsaj dva primera metod tako za prekrivanje kot redefiniranje.
V nalogi uporabite tudi manipulatorje nad izpisom v datoteko!
Nalogo 11.1 dopolnite z naslednji tremi izjemami:
Prikažite uporabo izjem.
Razširite nalogo 9.1 tako, da:
Po vzoru primera 29 iz predavanj napišite lasten program iz področja generiËnega programiranja. Naloga naj obsega naslednje:
Primer 30 iz predavanj popravite tako, da boste lahko prejeli parametre poljubne dolžine v funkciji mediana(…). Funkcija mediana vrne srednjo vrednost (natanko enako elementov je manjših in večjih od vrednosti mediane).
Nalogo si lahko poenostavite tako, da so parametri ob klicu funkcije mediana urejeni po velikosti!
Izpeljite razred Multipraktik, ki je hkrati Sekljalnik in Mesalnik. Multipraktik ima dodatno lastnost naziv (string).
Sekljalnik ima lastnost noz (string), razred Mesalnik pa lastnost velikost_posode (double). Sekljalnik in Mesalnik hkrati dedujeta iz razreda ElektricnaNaprava, ki ima dodatno lastnost moc (int). Vsi razredi imajo metodo vrni_niz (string).
V komentar programa zapiši še en primer karo dedovanja.
Primer karo dedovanja:
Osnovni tip: Računalnik
1. vrsta: Osebni
2. vrsta: Strežnik
3. vrsta: Prenosni
4. vsrta: Sluzbeni
Možnost:
Prenosni računalnik je lahko tudi Sluzbeni
torej lahko podedujemo lastnosti is Prenosni in Sluzbeni.
Pri nalogi 9.1 oz. 9.2 lahko opazite, da člani družine niso urejeni po imenih, ampak tako kot so dodani.
S pomočjo SLT knjižnice in sort funkcije uredite člane v razredu Druzina po abecednem vrstnem redu.
Pri sort uporabite za primerjavo funkcijo, kot argument funkcije sort.
Naknadno preučite in demonstrirajte uporabo map, tako da dajete kot iskani ključ ime člana, kot vrednost pa objekt tega člana.
Nalogo 9.1 dopolnite tako da prekrijete operator << za izpis družine in dodajte prijateljski funkciji: