Upload
aleksandarcobovic
View
48
Download
1
Embed Size (px)
DESCRIPTION
sss
Citation preview
Visoka tehnička skola strukovnih studija
Kragujevac
Programski jeziciSeminarski rad
Profesor: Student:
Dr. Zoran Mirović Aleksandar Čobović
131/2012
Kragujevac, godina 2014
Sadržaj:1.Uvod 3
1.1 O objektnoj orijentisanoj metodologiji 3
1.2 Istorijat objektno orijentisanog programiranja 3
1.3 Osnovne karakteristike objektno orijentisanog programiranja 4-5
1.4 O strukturi klase 6
2. Arhitektura aplikacije 7
3. .Net Framework 8
4. Class Library Namespace 9
5. System.Windows.Form 10
5.1 Kontrola ComboBox 11-14
5.2 Kontrola ListBox 15-18
6. Klasa TextReader 19
7. Literatura 20
1. Uvod1.1 O objektno orijentisanoj metodologiji
Objektno orijentisane metode polaze od činjenice da sistem predstavlja skup međusobno povezenih objekata. Svaki objekat predstavlja instancu neke klase. U okviru objektno – orijentisanog programiranja, aplikacija se tretira kao skup različitih objekata koji sarađuju sa ciljem da izvrše određeni zadatak. Klasa je šablon koj se koristi za kreiranje objekata. Svi objekti koji su kreirani korišćenjem jedne klase imaju iste funkcionalnosti. Kreiranje objekata nazivamo instaciranje, posto se i sami objekti nazivaju instance klase. Objektno orijentisana metodologija se deli na :
- Objektno orijntisanu analizu (OOA)- Objektno orijentisano dizajniranje (OOD)- Objektno orijentisano programiranje (OOA)
1.2 Istorijat objektno orijentisanog programiranja
Kriza softvera se javlja pocetkom 60-tih prošloga veka, kada dolazi do neslaganja između hardvera, koji postaje sve snažniji, brži, raznovrsniji u svojim karatkteristikama, i softvera koji ne može udovoljiti zahtevima za razvoj novih složenijih aplikacija (mogucnosti postojećih programskih jezika su skromne, programeri pojedinačno razvijaju manje zahtevne aplikacije, razvijeni programi se nikako ili neadekvanto dokumentiraju i slično). Javlja se kriza pri izradi aplikacija koja rezultira prekoračenjem raspoloživih finansiskih sredstava i vremenskih rokova predviđenih za razvoj aplikacija. Situacija postaje neodrživa.
Na konferencija o problemima softvera, F.L Bauer prvi put pominje pojam “softversko inženjerstvo”. Pojam podrazumeva primenu novih znanja, alata i metoda u inženjerstvu zahteva, modeliranju, projektovanju, razvoju, testiranju, implementaciji… odnosno pri razvoju aplikacija.
1.3 Osnovne karakteristike objektno orijentisanog programiranja
Objektno orijentisano programiranje se zasniva na sledecim principima:
1. Enkapsulacija 2. Apstrakcija3. Nasleđivanje4. Polimorfizam
Enkapsulacija predstavlja prirodan nacin na koji mi inače razmisljamo o objektima u svakodnevnom zivotu. Svi znamo da opišemo i koristimo funkcionalnosti objekata koji se zove npr mobilni telefon, dostupni su nam njegovi interfejsi (dugmad) a unutrasnja implementacija nas ne zanima. Isto se desava sa i u OO programiranju. Programeri koriste gotove objekte i zanima ih samo njihova funkcionalnost i trude se, isto kao u primeru mobilnog, da ovladaju tom funkcionalnošcu metoda koje mu se nude.
Treba pomenuti najčešce korišcen modifikator pristupa – protected, koji po restrikovnosti pristupa stoji između public i private. Član klase deklarisan sa ovim modifikatorima pristupa (protected) se ponaša kao nedostupan (private) drugim klasama.
Apstrakcija je postupak razdvajanja bitnog od nebitnog. Osnovni problem u programiranju je slozenost problema. Ne može se ceo posmatrati i rešavati odjednom. Složenost se upravo resava apstrakcijama, kontrolisanim uvođenjem detalja. Detalji se zanemaruju na nekom nivuo apstrakcije kako bi
se broj koncepata sa kojima se projektant suočava svede na razumnu meru. Apstrakcija predstavlja opis nekog fenomena za neke potrebe u kome su svesno uklonjeni detalji napotrebni sa apekta datih potreba. Moguće je kreirati različite apstrakcije za dati fenomen, od kojih svaka uklanja, odnosno ostavlja različite detalje za različite potrebe.
Nasleđivanje je veoma važna osobina OO programiranja koja izvedenoj klasi omogućava preuzimanje osobina i ponašanje osnovne klase, modifikovanje postojećeg ponašanja i dodavanje sasvim nove funkcionalnosti. Vazno je uočiti dve vrste klasa:
1. Osnovne (base class); 2. Izvedene (derived class).
Prilikom nasleđivanja podklasa nasleđuje i metode i strukturu objekata od svoje nadklase. Rezultat toga je da ne treba ponovo pisati metode koje postoje u nadklasi. Treba samo dopisati nove stvari, kao i one koje se razlikuju.
Polimorfizam. U procesu pisanja programa definiše se veliki broj različitih objekata. Neki od njih mogu imati metode sa istim nazivom. Ako uputimo poruku jednom objektu, on će je interpretirati koristeći svoje metode. Ali ako istu poruku uputimo drugom objektu, možemo dobiti potpuno drugačije rezultate, posto ce i on na poruku reagovati koristeći sopstvene metode. Dakle, metode različitih objekata mogu imati isti naziv, ali raditi potpuno različite stvari.
1. 4 O strukturi klase
Jednostavnije rečeno klasa je apstraktan model pomocu koga definišemo novi tip podataka. Svaka klasa unutur sebe sadrži podatke (polja klase, fields), konstruktore za kreiranje objekata, metode koje nam omogućavaju pristup podacima (osobine, properties) i operacije koje mogu biti sprovedene nad podacima (metode klase, methods).
Polja Fields Opisuje stanje objekta, njegove zašticene osobine koje ukazuju na njegov identitet
Konstruktori Constructors
Konstruktori se metode koje služe za kreiranje konkretnih objekata poštujući definiciju apstraktnog tipa podataka - klase.
Osobine Properties
Metode koje služe za pristup poljima, zaštićenih članovima klase. Postavljaju nove vrednosti i vraćaju programu postojece.
MetodeMethods
Metode koje opisuju funkcionalnost objekata definišu šta taj objekat radi za nas i definišu ih dizajneri klase.
2. Arhitektura aplikacijeTroslojna arhitektura je jedna od najčešće korišćenih u praksi na osnovu
dosadašnjeg iskustava. Troslojnu aplikaciju čine: prezentacioni, sloj poslovne logike i sloj logike.
Presentation Layer / GUI (Graphic user interface) je deo aplikacije koji je vidljiv korisniku. Na njemu se nalaze sve kontrole koje korisnik vidi i kojima kontroliše rad programa.Na njemu se nalaze objekti kao sto su button, label, textBox, menuStrip, pictureBox, comboBox, radioButton…
Business Logic Layer je deo aplikacije koji se bavi radom sa podacima. Data Access Layer je deo aplikacije koji komunicira sa bazom podataka u
kojoj su smešteni svi potrebni podaci za rad programa i u kojoj se čuvaju rezultati.
Datebase Management Server je baza podataka koja je povezana sa programom i koja mu pruža podatke za rad.
Data Access Layer
DBMS
Business Logic Layer
Presentation Layer
3. .NET Framework
Microsoft .NET Framework je softverska platforma koja može biti instalirana na računarima koje pokreće Microsoft Windows operativni sistem. On uključuje veliki broj gotovih biblioteka kodova za uobičajene probleme u programiranju i virtuelnu masinu koja upravlja izvršenjem programa pisanih specijalno za .NET Framework. .NET Framework podržava vise programskih jezik, na način koji omogućava interoperabilnost, pri čemu svaki jezik može biti napisan na drugom. Dostupan je svim programskim jezicima koje .NET Framework obuhvata (VB.NET, C#...). Kako bi mogle da se pišu aplikacije nije samo dovoljno imati instaliran .NET Framework, potreban je i Microsoft SDK (Microsoft Software Development Kit) i Visual Studio.
.Net Framework baza klasa pruža rad sa korisničkim interfejsom, pristup podacima, povezivanjem sa bazom podataka, kreiranje web aplikacija,
numeričkih algoritama i rad sa mrežama. Programeri proizvode softver, kombinujući svoj izvorni kod sa .NET Framework-om i drugim klasama u .NET-u. .NET je namenjen da se koristi od strane većine novih aplikacija kreiranih za Window platformu.
4. Class Library Namespace
Sve međusobno povezane klase se nalaze u kolekcijama sa odgovarajućim imenom i te kolekcije se zove namespace. U kolekcijama se nalaze srodne kalse i one definišu određeni namespace. Pošto se ne dozvoljava korišćenje razlicitih klasa sa istim imenom u programu osnovna svrha korišćenja namespace podele je da se izbegne ova vrsta konflikta. Namespace kolekcija može da sadrži i druge namespace kolekcije koji se nazivaju internim.
Primeri:
System.Resources – sadrži klase koje omogucavaju programerima da kreiraju, skadište i upravljaju specifičnim aplikacionim resursima
System.Media – sadrži klase za puštanje fajlova sa zvukom i pristup zvuku koji pruža sistem
System.Print – sadrži klase koje podržavaju štampanje, koje pružaju pristup osobinama sistema za štampanje objekata i brzo kopiranje svoj osobina na drugom objektu istog tipa
System.Text – sadrži tipove za kodiranje karaktera. Služi za obradu teksta.
System.Web – sadrži klase koje omogućavaju komunikaciju sa Web pretraživačima / serverom.
5. System.Windows.FormSystem.Windows.Forms sadrži klase za kreiranje windows aplikacija zasnovanih da u potpunosti iskoriste bogat korisnički interfejs dostupne u Microsoft Windows operativnom sistemu.
Klase u ovom namespace-u su grupisane u kategorijama:
• Controls
• Menus and Toolbars
• Layout
• Components
• Common Dialog Boxes
Control obezbeđuje različite klase tj. kontrole koje možete da koristite za kreiranje bogatog korisničkog interfejsa. Neke kontrole su dizajniranje za unos
podataka u okviru aplikacije, kao sto su textBox i comboBox kontrola. Ostale kontrole služe za prikazivanje podataka aplikacije, kao sto su label i listview.
Menus and Toolbars sadrži klase za kreiranje sopstvene trake sa alatkama i menije sa modernim izgledom i ponašanjem. Primeri: ToolStrip, MenuStrip.
Layout pomaže da se kontroliše raspored kontrola po površini ekrana, kao što su forma ili kontrola. SplitContainer deli površinu na dva ili vise delova koje mogu da se podese.
Components pruža klase koje nisu Control klasa ali i dalje obezbeđuju vizuelne funkcije aplikacije. Primer: ToolTip koji prikazuje korisniku neku informaciju na mouse hover-u.
Common Dialog Boxes obezbeđuje dijaloge koji nam pomažu prilikom otvaranja ili čuvanja fajlova, manipulisanje font ili boju teksta i štampanje. Klasa FontDialog nam prikazuje dijalog koji nam omogućuje promenu fonta koju koristi naša aplikacija.
5.1 Kontrola ComboBox
Kontrola ComboBox (kombinovani okvir) u sebi sadrži nekoliko kontrola kao sto su TextBox, Button i ListBox. Za razliku od kontrole ListBox, u kontroli ComboBox nije moguće izabrati više od jednog elementa liste. Uobičajeno je da se ova kontrola koristi kada želimo da uštedimo prostor, zato što su stalno vidljivi delovi ComboBox-a samo tekstualni okvir i kontrola Button. Kada korisnik pritisne dugme sa strelicom desno od tekstualnog okvira, pojavljuje se lista u kojoj korisnik može izabrati određeni element. Čim korisnik izabere neki element, okvir liste nestaje, a izabrani element se pojavljuje u tekstualnom okviru, vraćajući prvobitan izgled kontroli. ComboBox dodajemo tako sto ga privučemo iz prozora sa alatima(Toolbox) na formu.
Kada kontrolu dodamo na formu ona izgleda ovako:
Dodavanje stavki u ComboBox možemo uraditi na vise načina. Klikom na samu kontrolu i biranjem opcije Edit Items otvara nam se prozor kao na sledećoj slici, u kome upisujemo vrednosti koje će sadržati ComboBox.
Takođe vrednosti u ComboBox možemo da dodajemo preko koda i to na više načina.
Prvi primer:
Drugi primer:
Treci primer:
Nakon unosa vrednosti i startovanja aplikacije ComboBox izgleda kao na sledećoj slici.
Svojstva (Properties):
Osobina Objasnjenje
Name Dajemo ime kontroli koje ćemo kasnije koristiti da je pozovemo u pisanju programa.
Sort Sortiranje stavki po abecedi
ItemIndex Redni broj stavke
Size Podešavamo velicinu kontrole
Visiable Podešavamo da li je kontrola vidljiva za korisnika
Font Podešavamo izgled karaktera kontrole (boju,velicinu…)
Items Odabirom opcije Collection možemo dodavati stavke
Enabled Podešavamo da li je kontrola omogućena korisniku preko opcija True ili False
BackColor Podešavamo boju pozadine
ForeColor Podešavamo boju dodatih stavki kontrole
SelectedItem Vraća prvu stavku u trenutnoj selekciji i vraca NULL ako je prazna
Događaji (Events):
Događaj Objasnjenje
GotFocus Dešava kada elemenat dobije fokus
MouseWheel Dešava se kada korisnik pomera točkić miša dok je pokazivač iznad elementa
KeyDown Dešava kada se pritisne taster dok je fokus na ovom elementu
KeyUp Dešava kada se taster pusti dok je fokus na ovom elementu
DropDownClosed Dešava se kada se padajuća lista ComboBox-a zatvori
DropDownOpened Dešava se kada se padajuća lista ComboBox-a otvori
MouseUp Dešava se kada se bilo koji taster pusti preko ovog elementa
Metode (Methods):
Metode Objasnjenja
FindForm Vraća formu na kojoj se nalazi kontrola
Hide Sakriva kontrolu od korisnika
OnClick Poziva klik događaja
Select() Aktivira kontrolu
SelectAll Selektuje sav tekst u ComboBox-u
Show Prikazuje kontrolu korisniku
Konstruktor (Construtors):
5.2 Kontrola ListBox
Kontrola ListBox obezbeđuje prikazivanje liste stvaki. Može sadržati samo tekstualne članove. Korisnik moze označiti jednu ili vise stavki iz liste. Ovu kontrolu dodajemo na formu dvostrukim klikom na ikonicu u ToolBox-u ili prevlačenjem na formu. Kada smo dodali ListBox možemo menjati njegovu veličinu i položaj na formi pomoću miša i podešavati njegove osobine u Properties prozoru. Dodavanjem ove kontrole, forma dobija sledeći izgled.
Dodavanjem stavki u ListBox, radimo na isti način kao za kontrolu ComboBox.
Takođe možemo dodati stavke i preko koda, na sledeći nacin:
Stavke u ListBox možemo dodati i preko nekih drugih kontrola kao što su ComboBox, RadioButton, CheckBox, Button...
Primer:
Biranjem stavke iz ComboBox-a i klikom na dugme Dodaj, dodajemo vrednost ListBox-u. Ako kliknemo na dugme dodaj, a prethodno nismo izabrali ni jednu stavku iz ComboBox-a pojaviće se MessageBox sa porukom “Niste izabrali grad”.
Kod programa:
Osobine (Properties):
Osobina Objasnjenje
FontSize Postavlja veličinu fonta
SelectedItem Uzima trenutno izabrane stavke
Margin Postavlja marginu elementa
HasItem Vrednost koja označava da li kontrola sadrži stavku
Width Postavlja širinu elementa
Height Postavlja visinu elementu
Focusable Postavlja vrednost da li elemenat može da primi fokus
Događaji (Events):
Događaji Objasnjenje
FontSize Podstavlja veličinu fonta
GotFocus Dešava se kada element primi fokus
MouseMove Dešava se kada pokazivač prevučemo preko elementa
LostFocus Dešava se kada se izgubi fokus
IsVisiableChange Dešava se kada vrednost iz Visiable promeni
MouseDoubleClick Dešava se kada kliknemo duplim klikom
SizeChange Kada promenimo visinu ili širinu elementa
Metode(Methods)
Metode Objasnjenje
AddText Daje tekstualni string kontroli
Focus Postavlja fokus na elemenat
GetType Uzima tip trenutne instance
SelectedAll Selektuje sve stavke u Listbox-u
ToString Pravi string trenutno selektirane stavke
UnSelectedOn Brise sve selekcije u Listbox-u
Konstruktor (Construtors):
6. Klasa TextReader
Ova klasa predstavlja čitač koji čita sekvencijalni niz karaktera. TextReader je apstraktna baza klasa StreamReader i StringReader, koji čita karaktere iz toka i stringova. On koristi ove izvedene klase da otvori tekstualne fajlove koji čita određeni deo karaktera.
Metode(Methods):
Metoda Objasnjenje
Close Zatvara TextReader i oslobađa sve resurse sistema koji su povezani sa TextReader-om
Read() Čita sledeci karakter iz TextReader-a i postavlja poziciju za jedan napred
ReadLine Čita liniju iz TextReader-a i vraća je kao string
ToString Vraća string koji predstavlja trenutni objekat
GetType Uzima tip trenutne instance
Primer:
Literatura:1. http://msdn.microsoft.com/en-US/#fbid=6gjDlQMnwt1 2. www.wikipedia.org 3. www.dotnetperls.com 4. http://www.ucim-programiranje.com/2012/02/viseslojna-arhitektura/ 5. https://sites.google.com/site/programskijezici13/predavanja