25
Visoka tehnička skola strukovnih studija Kragujevac Programski jezici Seminarski rad Profesor: Student: Dr. Zoran Mirović Aleksandar Čobović 131/2012

Seminarski Rad

Embed Size (px)

DESCRIPTION

sss

Citation preview

Page 1: Seminarski Rad

Visoka tehnička skola strukovnih studija

Kragujevac

Programski jeziciSeminarski rad

Profesor: Student:

Dr. Zoran Mirović Aleksandar Čobović

131/2012

Kragujevac, godina 2014

Page 2: Seminarski Rad

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

Page 3: Seminarski Rad

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.

Page 4: Seminarski Rad

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

Page 5: Seminarski Rad

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.

Page 6: Seminarski Rad

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.

Page 7: Seminarski Rad

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.

Page 8: Seminarski 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,

Page 9: Seminarski Rad

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

Page 10: Seminarski Rad

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

Page 11: Seminarski Rad

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.

Page 12: Seminarski Rad

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.

Page 13: Seminarski Rad

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

Page 14: Seminarski Rad

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

Page 15: Seminarski Rad

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.

Page 16: Seminarski Rad

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”.

Page 17: Seminarski Rad

Kod programa:

Osobine (Properties):

Osobina Objasnjenje

FontSize Postavlja veličinu fonta

SelectedItem Uzima trenutno izabrane stavke

Margin Postavlja marginu elementa

Page 18: Seminarski Rad

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

Page 19: Seminarski Rad

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

Page 20: Seminarski Rad

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

Page 21: Seminarski Rad