You are on page 1of 29

SVEUČILIŠTE/UNIVERZITET „VITEZ“ TRAVNIK

FAKULTET INFORMACIONIH TEHNOLOGIJA

STUDIJ I CIKLUSA; GODINA STUDIJA: I CIKLUS: II GODINA


SMJER: INFORMACIONE TEHNOLOGIJE

VISUAL BASIC RIJEŠENI PRIMJERI

SEMINARSKI RAD

Travnik, novembar 2023. godine


SVEUČILIŠTE/UNIVERZITET „VITEZ“ TRAVNIK
FAKULTET INFORMACIONIH TEHNOLOGIJA

STUDIJ I CIKLUSA; GODINA STUDIJA: I CIKLUS: II GODINA


SMJER: INFORMACIONE TEHNOLOGIJE

VISUAL BASIC RIJEŠENI PRIMJERI

SEMINARSKI RAD

IZJAVA: Ja _______________ student Sveučilišta/Univerziteta „Vitez“ u Travniku,


Indeks broj: ___________ odgovorno i uz moralnu i akademsku odgovornost izjavljujem
da sam ovaj rad izradio potpuno samostalno uz korištenje citirane literature i pomoć
profesora odnosno asistenata.

Potpis studenta: _________________

STUDENT: _______________
PREDMET: Viši programski jezici
PROFESOR: prof. dr Zoran Ž. Avramović
ASISTENT: Admir Sivro

1
SADRŽAJ:

Zadatak - Zamjena slova 3


Zadatak - Pogodi broj 4
Zadatak - Bingo izvlačenje 6
Zadatak - Pizza party 7
Zadatak - Kafa i peciva 9
Zadatak - Hotelski smještaj 12
Zadatak - Fitness Club 15
Zadatak - Automehaničarska radnja 18
Zadatak - Predmetna ocjena 23
Zadatak - Auto Lizing 26

2
1. Zadatak - Zamjena slova

Načiniti program koji mijenja set karaktera u novi set, tako što korisnik unese slova koja želi da
zamijeni u postojećoj u rečenici i slova koja će ih zamijeniti.

Izgled interfejsa programa:

SLIKA1. Izgled programa

● Korisnik unosi rečenicu te slova koja želi da zamjeni i unosi slova zamjene.
● Krajnji rezultat je novi string koji na mjestima zamjenutih slova ima nove karaktere.
● Klikom na dugme Zamjeni slova izvršava se program.

Kod programa:

Public Class Form1


Dim strOriginal As String
Dim strZamjene As String
Dim strNovi As String
Dim strRijec As String
Private Sub btnZamjeniSlova_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnZamjeniSlova.Click
' Korisnik pise rijeci i slova koje hoce da zamijeni.
' Nove rijeci se prikazuju u labelu Prikaz
strRijec = txtRijec.Text.ToLower
strOriginal = txtSlovaZaPromijeniti.Text.ToLower
strZamjene = txtZamjenskaSlova.Text.ToLower

3
strNovi = strRijec.Replace(strOriginal, strZamjene)
lblPrikaz.Text = strNovi
End Sub
End Class

2. Zadatak - Pogodi broj


Program u kojem korisnik pogađa broj od 1 do 100.

SLIKA2. Izgled programa

● Korisnik pogađa broj od 1 do 100.


● Ukolike unese manji ili veći broj od onog koji treba do pogodi, program šalje poruku da
je broj prevelik ili premal.
● Pogađa se sve do ne unese pravi broj koji je program slučajno izabrao na početku
izvršavanja.
● Program ispisuje sa koliko pokušaja je korisnik pogodio broj.

Kod programa:

Public Class Form1

Private Sub btnPogodi_Click(sender As Object, e As EventArgs) Handles btnPogodi.Click


Dim intBroj As Integer ' Deklarisi integer varijablu

4
Dim randBroj As New Random ' Napravi slucajni broj

Dim intBrojac As Integer = 0 ' Varijabla brojac, inicijalizirana na vrijednost 0


Dim intPogodak As Integer ' Varijabla cuva vrijednost broja koji unese
korisnik, kao pokusaj pogodtka
Dim strUnos As String ' Varijabla za korisnicki input

' Kreira slucajni broj integer i dodjeljuje tu vrijednost varijabli intBroj


intBroj = randBroj.Next(1, 100)

' Dohvati svaki pokusaj pogodka broja


Do While intPogodak <> intBroj
' Dohvati broj koji pogadja korisnik.
strUnos = InputBox("Unesite broj koji se pogađa.")

' Konvertuj korisnicki unos u integer.


If Integer.TryParse(strUnos, intPogodak) Then
' Odredi da li je broj veci, manji ili jednak zamisljenom.
If intPogodak > intBroj Then
MessageBox.Show("Broj je veći od zamišljenog. Pokušajte ponovo.")
ElseIf intPogodak < intBroj Then
MessageBox.Show("Broj je manji od zamišljenog. Pokušajte ponovo.")
ElseIf intPogodak = intBroj Then
MessageBox.Show("Broj je tačan. Pogodili ste. Bravo!!!")
End If
' Dodaj vrijednost 1 brojacu
intBrojac += 1
Else
' Ispisi poruku o gresci ako je unos neispravan.
MessageBox.Show("Unesite brojčanu vrijednost!")
End If
Loop
' Prikaži broj pogađanja.
lblBrojPogadjanja.Text = intBrojac.ToString()
End Sub

Private Sub btnIzlaz_Click(sender As Object, e As EventArgs) Handles btnIzlaz.Click


' Zatvori formu.
Me.Close()
End Sub

End Class

5
3. Zadatak - Bingo izvlačenje
Program koji imitira izvlačenje bingo brojeva od 1 do 100.

SLIKA3. Izgled programa

● Klikom na dugme Bingo učita se 10 nasumičnih brojeva u rasponu od 1 do 100.


● Najmanji broj daje najmanji broj u nizu a dugme najveći broj prikazuje najveći broj u
nizu.

Kod programa:

Public Class Form1


Dim slucajniBroj As Random = New Random()
' Slucajni broj je generisan u varijabli slucajniBroj
Dim intNizBrojeva(9) As Integer ' Kreiran je niz brojeva od 10
Private Sub btnBingoIzvlacenje_Click(sender As Object, e As EventArgs) Handles
btnBingoIzvlacenje.Click
' Kada se klikne dugme pokrenu se se procedure GenerisiBrojeve i PrikaziBrojeve
GenerisiBrojeve()
PrikaziBrojeve()
End Sub
Private Sub btnNajveciBroj_Click(sender As Object, e As EventArgs) Handles
btnNajveciBroj.Click
' Najveci broj je prikazan u labelu lblNajveciBroj
lblNajveciBroj.Text = "Najveci broj je " & intNizBrojeva.Max
End Sub
Private Sub btnNajmanjBroj_Click(sender As Object, e As EventArgs) Handles

6
btnNajmanjBroj.Click
' Najmanji broj je prikazan u labelu lblNajmanjiBroj
lblNajmanjiBroj.Text = "Najmanji broj je " & intNizBrojeva.Min
End Sub
Public Sub GenerisiBrojeve()
For i = 0 To 9
intNizBrojeva(i) = slucajniBroj.Next(1, 101) ' Generise se broj od 1 do 100
Next
End Sub
Public Sub PrikaziBrojeve()
lstBingoBrojevi.Items.Clear()
' Brisu se vrijednosti iz listboxa lstBingoBrojevi
lblNajveciBroj.Text = "" ' Brise se label NajveciBroj
lblNajmanjiBroj.Text = "" ' Brise se label NajmanjiBroj
For i = 0 To 9
lstBingoBrojevi.Items.Add(intNizBrojeva(i)) ' Dodaju se 10 brojeva listbox-u
Next
End Sub

End Class

4. Zadatak - Pizza party


Program naručivanje pizza-e.

SLIKA4. Izgled programa

7
● Korisnik odabire pizzu i sastojke
● Klikom na dugme naruči ispisuje se cijena i broj narudžbe

Kod programa:

Public Class Form1


' Globalna varijabla ukupnaCijena da sadrzi sve sto je odabrano
Dim ukupnaCijena As Double
Private Sub btnNaruci_Click(sender As Object, e As EventArgs) Handles btnNaruci.Click
' Dodavanje cijena dodataka na ukupnuCijenu
If chkGljive.Checked Then
ukupnaCijena += 2.95
End If

If chkMasline.Checked Then
ukupnaCijena += 3.95
End If

If chkPaprika.Checked Then
ukupnaCijena += 1.95
End If

If chkSudzuka.Checked Then
ukupnaCijena += 2.5
End If

If radMala.Checked Then
ukupnaCijena *= 1
End If

If radVelika.Checked Then
ukupnaCijena *= 2
End If
' Random varijabla
Dim randomVrijednost As New System.Random()
Static brojNarudzbe As Integer = randomVrijednost.Next(100, 1001)
' Prikaz broja narudzbe
lblBrojNarudzbe.Text = "Naruždba br. " & brojNarudzbe
' PDV
Dim PDV As Double = ukupnaCijena * 0.17
' Ukupno za platiti
Dim zaPlatiti As Double = PDV + ukupnaCijena
' Prikazuje ukupnu cijenu za platiti u KM

lblZaPlatiti.Text = "Molimo platite: " & Math.Round(zaPlatiti, 2).ToString() + " KM"

End Sub

End Class

8
5. Zadatak - Kafa i peciva
Program narudžbe kafe i peciva.

SLIKA5. Izgled programa

● Korisnik odabire kafu, pecivo i namaze.


● Klikom na dugme Izračunaj ukupno prikazuje se ukupna cijena naručenog uvećena za
PDV.

Kod programa:

Public Class Form1

Const decPDV As Decimal = 0.17D ' PDV


Const decBIJELA_VEKNA As Decimal = 1.3D ' Cijena bijele vekne
Const decINTEGRALNA As Decimal = 1.5D ' Cijena integralne vekne
Const decKREMASTI_SIR As Decimal = 0.5D ' Cijena namza kremastog sira
Const decMASLAC As Decimal = 0.25D ' Cijena namaza maslaca
Const decBOROVNICE As Decimal = 0.75D ' Cijena namza dzema od borovnica
Const decJAGODE As Decimal = 0.75D ' Cijena namaza dzema od jagoda
Const decSLJIVE As Decimal = 0.75D ' Cijena namaza dzema od sljiva
Const decOBICNA_KAFA As Decimal = 1.25D ' Cijena obicne kafe
Const decKAPUCINO As Decimal = 2D ' Cijena kapucina

9
Const decMAKIJATO As Decimal = 1.75D ' Cijena makijata

Private Sub btnUkupnaCijena_Click(sender As Object, e As EventArgs) Handles


btnUkupnaCijena.Click
' Ova procedura racuna ukupnu cijenu narudzbe.
Dim decUkupno As Decimal ' Varijabla sadrzi Ukupno vrijednost
Dim decPDV As Decimal ' Varijabla sadrzi PDV vrijednost
Dim decZaPlatiti As Decimal ' Varijabla sadrzi ZaPlatiti vrijednost

decUkupno = RacunajCijenuVekne() + RacunajCijenuNamaza() + RacunajCijenuKafe()


decPDV = RacunajPDV(decUkupno)
decZaPlatiti = decUkupno + decPDV

lblUkupno.Text = decUkupno.ToString()
lblPDV.Text = decPDV.ToString()
lblZaPlatiti.Text = Math.Round(decZaPlatiti, 2).ToString() + " KM"
End Sub

Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click


' Ova procedura vraca kontrole na pocetne vrijednosti.
ResetujVekne()
ResetujNamaze()
ResetujKafe()
ResetujCijene()
End Sub

Private Sub btnIzlaz_Click(sender As Object, e As EventArgs) Handles btnIzlaz.Click


' Zatvara formu.
Me.Close()
End Sub

Function RacunajCijenuVekne() As Decimal


' Ova funkcija vraca cijenu odabrane vekne.
Dim decVekna As Decimal

If radBijela.Checked = True Then


decVekna = decBIJELA_VEKNA
Else
decVekna = decINTEGRALNA
End If

Return decVekna
End Function

Function RacunajCijenuNamaza() As Decimal


' Ova funkcija vraca cijenu odabranih namaza.
Dim decCijenaNamaza As Decimal = 0D

If chkKremastiSir.Checked = True Then


decCijenaNamaza += decKREMASTI_SIR
End If

10
If chkMaslac.Checked = True Then
decCijenaNamaza += decMASLAC
End If

If chkBorovnica.Checked = True Then


decCijenaNamaza += decBOROVNICE
End If

If chkJagoda.Checked = True Then


decCijenaNamaza += decJAGODE
End If

If chkSljiva.Checked = True Then


decCijenaNamaza += decSLJIVE
End If

Return decCijenaNamaza
End Function

Function RacunajCijenuKafe() As Decimal


' Ova funkcija vraca cijenu odabrane kafe.
Dim decKafa As Decimal

If radBezKafe.Checked = True Then


decKafa = 0D
ElseIf radObicnaKafa.Checked = True Then
decKafa = decOBICNA_KAFA
ElseIf radKapucino.Checked = True Then
decKafa = decKAPUCINO
ElseIf radMakijato.Checked = True Then
decKafa = decMAKIJATO
End If

Return decKafa
End Function

Function RacunajPDV(ByVal decIznos As Decimal) As Decimal


' Ova funkcija prima iznos prodaje i vraca taj izos uvecan za PDV.
Return decIznos * decPDV
End Function

Sub ResetujVekne()
' Ova procedura vraca vrijednost vekni na pocetne postavke.
radBijela.Checked = True
End Sub

Sub ResetujNamaze()
' Ova procedura vraca vrijednost namaza na pocetne postavke.
chkKremastiSir.Checked = False
chkMaslac.Checked = False
chkBorovnica.Checked = False
chkJagoda.Checked = False

11
chkSljiva.Checked = False
End Sub

Sub ResetujKafe()
' Ova procedura vraca vrijednost kafa na pocetne postavke.
radBezKafe.Checked = True
End Sub

Sub ResetujCijene()
' Ova procedura brise cijene.
lblUkupno.Text = String.Empty
lblPDV.Text = String.Empty
lblZaPlatiti.Text = String.Empty
End Sub

End Class

6. Zadatak - Hotelski smještaj


Program za plaćanje hotelskog smještaja

SLIKA6. Izgled programa

● Nakon što se unesu podaci u polja, validiraju se da li su numerički podaci

12
● Klikom na dugme Izračunaj troškove prikazuju se pojedinačni i ukupni trošak
● Očisti formu dugme briše sve unose

Kod programa:

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


' Dohvati trenutni datum i prikazi.
lblDanasnjiDatum.Text = Now.ToString("D")

' Dohvati trenutno vrijeme i prikazi.


lblVrijeme.Text = Now.ToString("T")

' Stavi fokus na broj nocenja.


txtBrojNocenja.Select()
End Sub

Private Sub btnIzračunaj_Click(sender As Object, e As EventArgs) Handles


btnIzračunaj.Click
' Varijable za racunanje troskova nocenja
Dim decCijenaNocenja As Decimal ' Ukupna cijena nocenja
Dim decOstaleUsluge As Decimal ' Naplata ostalih usluga
Dim decUkupno As Decimal ' Ukupna cijena
Dim decPDV As Decimal ' PDV
Dim decZaPlatiti As Decimal ' Ukupno za platiti
Const decPDVVrijednost As Decimal = 0.17D ' PDV Vrijednost

Try
' Izracunaj cijenu nocenja i prikazi.
decCijenaNocenja = CDec(txtBrojNocenja.Text) *
CDec(txtCijenaNocenja.Text)
lblNocenja.Text = decCijenaNocenja.ToString() + " KM"

' Izracunaj ostale usluge i prikazi.


decOstaleUsluge = CDec(txtSobnaDostava.Text) +
CDec(txtTVInternet.Text) +
CDec(txtOstalo.Text)
lblOstaleUsluge.Text = decOstaleUsluge.ToString() + " KM"

' Izracunaj ukupno troskve i prikazi.


decUkupno = decCijenaNocenja + decOstaleUsluge
lblUkupno.Text = decUkupno.ToString() + " KM"

' Calculate and display the tax. ' Izracunaj PDV i prikazi.
decPDV = decUkupno * decPDVVrijednost
lblPDV.Text = decPDV.ToString() + " KM"

' Izracunaj ukupno za platiti i prikazi.


decZaPlatiti = decUkupno + decPDV
lblZaPlatiti.Text = decZaPlatiti.ToString() + " KM"

13
Catch
' Poruka o gresci
MessageBox.Show("Svi unosi moraju biti numeričke vrijednosti.")
End Try
End Sub

Private Sub btnOcisti_Click(sender As Object, e As EventArgs) Handles btnOcisti.Click


' Obrisi podatke o nocenju.
txtBrojNocenja.Clear()
txtCijenaNocenja.Clear()

' Obrisi ostale usluge.


txtSobnaDostava.Clear()
txtTVInternet.Clear()
txtOstalo.Clear()

' Obrisi polja placanja.


lblNocenja.Text = String.Empty
lblOstaleUsluge.Text = String.Empty
lblUkupno.Text = String.Empty
lblPDV.Text = String.Empty
lblZaPlatiti.Text = String.Empty

' Dohvati trenutni datum i prikazi.


lblDanasnjiDatum.Text = Now.ToString("D")

' Dohvati trenutno vrijeme i prikazi.


lblVrijeme.Text = Now.ToString("T")

' Stavi fokus na broj nocenja.


txtBrojNocenja.Focus()
End Sub

Private Sub btnIzlaz_Click(sender As Object, e As EventArgs) Handles btnIzlaz.Click


' Zatvori formu.
Me.Close()
End Sub

End Class

14
7. Zadatak - Fitness Club
Program za plaćanje članarine u fitnes klubu.

SLIKA7. Izgled programa

● Korisnik odabire vrstu članstva, zatim odabire dodatni izbor (joga, karate, privatni
trener).
● Unosi broj mjesci za članstvo u klubu.
● Klikom na dugme Izračunaj prikazuje se cijena mjesečne članarine i ukupne za unešenih
broj mjesci.

Kod programa:

Public Class Form1

Private Sub btnIzracunaj_Click(sender As Object, e As EventArgs) Handles


btnIzracunaj.Click

15
Dim decBaznaClanarina As Decimal ' Bazna mjesecna clanarina
Dim decUkupnaClanarina As Decimal ' Ukupna clanarina
Dim intMjeseci As Integer ' Broj mjeseci
Dim blnUlazOK As Boolean = True ' Ispravan unos podataka

' Konstante za baznu naplatu.


Const decODRASLI_NAKNADA As Decimal = 40D
Const decDJECA_NAKNADA As Decimal = 20D
Const decSTUDENTI_NAKNADA As Decimal = 25D
Const decSTARIJI_NAKNADA As Decimal = 30D

' Konstante za naplatu dodatnog izbora.


Const decJOGA_NAKNADA As Decimal = 10D
Const decKARATE_NAKNADA As Decimal = 30D
Const decTRENER_NAKNADA As Decimal = 50D

' Provjeri i konvertuj broj mjeseci.


lblPoruka.Text = String.Empty
If Integer.TryParse(txtMjeseci.Text, intMjeseci) = False Then
lblPoruka.Text = "Mjeseci moraju biti cijeli broj."
blnUlazOK = False
ElseIf intMjeseci < 1 Or intMjeseci > 24 Then
' Provjeri broj mjeseci.
lblPoruka.Text = "Mjeseci moraju biti u rasponu od 1 do 24."
blnUlazOK = False
End If

If blnUlazOK = True Then


' Odredi mjesecnu naknadu.
If radOdrasli.Checked = True Then
decBaznaClanarina = decODRASLI_NAKNADA
ElseIf radDjeca.Checked = True Then
decBaznaClanarina = decDJECA_NAKNADA
ElseIf radStudenti.Checked = True Then
decBaznaClanarina = decSTUDENTI_NAKNADA
ElseIf radStariji.Checked = True Then
decBaznaClanarina = decSTARIJI_NAKNADA
End If

' Provjeri za dodatne izbore.


If chkJoga.Checked = True Then
decBaznaClanarina += decJOGA_NAKNADA
End If

If chkKarate.Checked = True Then


decBaznaClanarina += decKARATE_NAKNADA
End If

If chkTrener.Checked = True Then


decBaznaClanarina += decTRENER_NAKNADA
End If

16
' Racuna ukupnu clanarinu.
decUkupnaClanarina = decBaznaClanarina * intMjeseci

' Prikazuje naknade korisnika.


lblMjesecnaClanarina.Text = decBaznaClanarina.ToString() + " KM"
lblUkupnaClanarina.Text = decUkupnaClanarina.ToString() + " KM"

End If

End Sub

Private Sub btnOcisti_Click(sender As Object, e As EventArgs) Handles btnOcisti.Click


' Vraca na pocetne postavke radio dugme, odabrano Odrasli.
radOdrasli.Checked = True

' Odznacava odabir dodatnog izbora.


chkJoga.Checked = False
chkKarate.Checked = False
chkTrener.Checked = False

' Brise broj mjeseci.


txtMjeseci.Clear()

lblMjesecnaClanarina.Text = String.Empty
lblUkupnaClanarina.Text = String.Empty
lblPoruka.Text = String.Empty

' Stavlja fokus na txtMjeseci.


txtMjeseci.Focus()
End Sub

Private Sub btnIzlaz_Click(sender As Object, e As EventArgs) Handles btnIzlaz.Click


' Zatvara formu.
Me.Close()
End Sub

End Class

17
8. Zadatak - Automehaničarska radnja
Program za naplatu automehaničarskih usluga.

SLIKA8. Izgled programa

● Korisnik odabire ponuđene usluge: izmjena ulja, zamjena filtera i ostale usuge.
● Zatim se unosi cijena dijelova ugrađenih u vozilo i broj radnih sati utrošenih na servisu
vozila.
● Klikom na dugme izračunaj prikazuje se cijena odabranih usluga i radnih sati te dijelova i
ukupnog troška uvećanog za PDV.

Kod programa:

Public Class Form1


Const decPDV As Decimal = 0.17D ' PDV na dijelove
Const decFILTER_KLIME As Decimal = 26D ' Cijena zamjene filtera klime
Const decFILTER_ZRAKA As Decimal = 18D ' Cijena zamjene filtera zraka
Const decMOTORNO_ULJE As Decimal = 30D ' Cijena izmjene motrnog ulja
Const decULJE_MJENJACA As Decimal = 80D ' Cijena izmjene ulja mjenjaca
Const decPREGLED As Decimal = 15D ' Cijena pregleda vozila
Const decIZMJENA_KOCNICA As Decimal = 100D ' Cijena izmjene kocnica

18
Const decGEOMETRIJA_TOCKOVA As Decimal = 20D ' Cijena geometrije tockova

Private Sub btnIzracunaj_Click(sender As Object, e As EventArgs) Handles


btnIzracunaj.Click
Dim decDijeloviCijena As Decimal ' Cijena dijelova
Dim decRadniciSati As Decimal ' Cijena radnika po satu
Dim decServisiIRadniciSati As Decimal ' Ukupno servisa i sati radnika
Dim decPDVDijelova As Decimal ' PDV na dijelove
Dim decUkupno As Decimal ' Ukupno za plati

If DijeloviCijenaValidni() And RadniciSatiValidni() Then


' Dohvaca cijenu dijelova.
Decimal.TryParse(txtDijeloviCijena.Text, decDijeloviCijena)

' Dohvaca radne sate.


Decimal.TryParse(txtRadniciSati.Text, decRadniciSati)

' Dohvaca ukupnu cijenu za servise i radne sate.


decServisiIRadniciSati = IzmjenaFiltera() + ZamjenaUlja() + OstaloCijena() +
CijenaRadnihSati(decRadniciSati)

' Dohvaca PDV dijelova


decPDVDijelova = PDV(decDijeloviCijena)

' Dohvaca ukupnu cijenu za naplatiti klijentu.


decUkupno = UkupnoZaNaplatiti(decServisiIRadniciSati, decDijeloviCijena,
decPDVDijelova)

' Prikazuje detalje naplate formatirane u KM.


lblServisiIRadnici.Text = decServisiIRadniciSati.ToString() + " KM"
lblDijelovi.Text = decDijeloviCijena.ToString() + " KM"
lblPDVZaDijelove.Text = decPDVDijelova.ToString() + " KM"
lblZaPlatiti.Text = decUkupno.ToString() + " KM"
End If

End Sub

Private Sub btnOcisti_Click(sender As Object, e As EventArgs) Handles btnOcisti.Click


' Ova procedura brise sve unose iz forme i postavlja ih na pocetne vrijednosti.
OcisitiOdabirZamjeneFiltera()
OcisitiOdabirZamjeneUlja()
OcistiOdabirOstalihUsluga()
OcistiDijeloviIRadnici()
OcistiNaplatu()
End Sub

Private Sub btnIzlaz_Click(sender As Object, e As EventArgs) Handles btnIzlaz.Click


' Zatvara formu.
Me.Close()
End Sub

Function DijeloviCijenaValidni() As Boolean

19
' Varijabla koja privremeno cuva vrijednost varijable txtDijeloviCijena.
Dim decDijeloviPrivremenaVrijednost As Decimal

' Pokusaj konvertovati vrijednost koju je unio korisnik u decimalni tip.


' Ako se ne moze konvertovati prikazi poruku o gresci i vrati False vrijednost.
If Not Decimal.TryParse(txtDijeloviCijena.Text, decDijeloviPrivremenaVrijednost)
Then
MessageBox.Show("Unesite brojčanu vrijednost za cijenu dijelova.")
Return False
End If

' Odredi da li je unesena vrijednost negativna.


' Ako jeste, prikazi poruku o gresci i vrati False vrijednost.
If decDijeloviPrivremenaVrijednost < 0 Then
MessageBox.Show("Unesite pozitivnu brojčanu vrijednost za cijenu dijelova.")
Return False
End If

' Ako je vrijednost ispravna vrati True.


Return True
End Function

Function RadniciSatiValidni() As Boolean


' Varijabla koja privremeno cuva vrijednost varijable txtRadniciSati
Dim decRadniciSatiPrivremenaVrijednost As Decimal

' Pokusaj konvertovati vrijednost koju je unio korisnik u decimalni tip.


' Ako se ne moze konvertovati prikazi poruku o gresci i vrati False vrijednost.
If Not Decimal.TryParse(txtRadniciSati.Text, decRadniciSatiPrivremenaVrijednost)
Then
MessageBox.Show("Unesite brojčanu vrijednost za radne sate.")
Return False
End If

' Odredi da li je unesena vrijednost negativna.


' Ako jeste, prikazi poruku o gresci i vrati False vrijednost.
If decRadniciSatiPrivremenaVrijednost < 0 Then
MessageBox.Show("Unesite pozitivnu vrijednost za radne sate")
Return False
End If

' Ako je vrijednost ispravna vrati True.


Return True
End Function

Private Function IzmjenaFiltera() As Decimal


' Ova funkcija vraca cijenu izmjene filtera klime i zraka.
Dim decCijenaIzmjeneFiltera As Decimal = 0D

If chkFIlterKlime.Checked = True Then


decCijenaIzmjeneFiltera += decFILTER_KLIME

20
End If

If chkFilterZraka.Checked = True Then


decCijenaIzmjeneFiltera += decFILTER_ZRAKA
End If

Return decCijenaIzmjeneFiltera
End Function

Function ZamjenaUlja() As Decimal


' Ova funkcija vraca cijenu zamjene ulja motora i mjenjaca.
Dim decCijenaZamjeneUlja As Decimal = 0D

If chkMotornoUlje.Checked = True Then


decCijenaZamjeneUlja += decMOTORNO_ULJE
End If

If chkUljeMjenjaca.Checked = True Then


decCijenaZamjeneUlja += decULJE_MJENJACA
End If

Return decCijenaZamjeneUlja
End Function

Function OstaloCijena() As Decimal


' Ova funkcija vraca cijenu ostalih usluga.
Dim decCijenaOstalihUsluga As Decimal = 0D

If chkPregledVozila.Checked = True Then


decCijenaOstalihUsluga += decPREGLED
End If

If chkIzmjenaKocnica.Checked = True Then


decCijenaOstalihUsluga += decIZMJENA_KOCNICA
End If

If chkGeometrijaTockova.Checked = True Then


decCijenaOstalihUsluga += decGEOMETRIJA_TOCKOVA
End If

Return decCijenaOstalihUsluga
End Function

Function CijenaRadnihSati(ByVal decRadniSati As Decimal) As Decimal


' Ova funkcija prima vrijednost provedenih sati u radu i vraca cijenu za radne sate.
Dim decRadniSatiCijena As Decimal
decRadniSatiCijena = decRadniSati * 20

' Vrati cijenu radnih sati.


Return decRadniSatiCijena
End Function

21
Function PDV(ByVal decDijelovi As Decimal) As Decimal
' Ova funkcija prima vrijednost cijene dijelova i vraca uvecanu za PDV.
Return decDijelovi * decPDV
End Function

Function UkupnoZaNaplatiti(ByVal decServisiIRadnici As Decimal,


ByVal decDijelovi As Decimal,
ByVal decPDVnaDijelove As Decimal) As Decimal
' Ova funkcija vraca vrijednost ukupne naplate klijentu.
Return decServisiIRadnici + decDijelovi + decPDVnaDijelove
End Function

Sub OcisitiOdabirZamjeneFiltera()
' Ova procedura vraca odabir zamjene filtera na pocetne vrijednosti.
chkFIlterKlime.Checked = False
chkFilterZraka.Checked = False
End Sub

Sub OcisitiOdabirZamjeneUlja()
' Ova procedura vraca odabir zamjene ulja na pocetne vrijdnosti.
chkMotornoUlje.Checked = False
chkUljeMjenjaca.Checked = False
End Sub

Sub OcistiOdabirOstalihUsluga()
' Ova procedura restuje odabir ostalih usluga.
chkPregledVozila.Checked = False
chkIzmjenaKocnica.Checked = False
chkGeometrijaTockova.Checked = False
End Sub

Sub OcistiDijeloviIRadnici()
' Ova procedura brise polja cijene dijelova i radnih sati.
txtDijeloviCijena.Clear()
txtRadniciSati.Clear()
End Sub

Sub OcistiNaplatu()
' Ova procedura brise svu naplatu.
lblServisiIRadnici.Text = String.Empty
lblDijelovi.Text = String.Empty
lblPDVZaDijelove.Text = String.Empty
lblZaPlatiti.Text = String.Empty
End Sub

End Class

22
9. Zadatak - Predmetna ocjena
Program za računanje predmetne ocjene na osnovu bodova iz predispitnih aktivnosti i bodova
ostvarenih na ispitu.

SLIKA9. Izgled programa

● Korisnik unosi podatke u naznačena polja i na dugme Izračunaj dobija kolko je postigao
bodova i koliko to procentualno iznosi.

23
Kod programa:

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


' Stavlja fokus na polje Aktivnost.
txtAktivnost.Focus()
End Sub

Private Sub btnIzracunaj_Click(sender As Object, e As EventArgs) Handles


btnIzracunaj.Click
' Deklarisane varijable za proracun ocjene
Dim intKokolvij As Integer ' Bodovi iz kolokvija
Dim intTest2 As Integer ' Bodovi iz test-a 2.
Dim intAktivnost As Integer ' Bodovi iz aktivnosti
Dim intPredavanje As Integer ' Bodovi iz pristustva na predavanju
Dim intVjezbe As Integer ' Bodovi iz pristustva na vjezbama
Dim intIntegralniIspit As Integer ' Integralni ispit na popravnom roku
Dim intSeminarskiRad As Integer ' Bodovi iz seminarskog rada

Dim intMaksimalniBrojBodova As Integer = 100 ' Maksimalan broj bodova


Dim intBrojOstvarenihBodova As Integer ' Ukupno ostvarenih bodova
Dim dblProcenatOcjene As Double ' OCjena izrazena u procentima

Try
' Pokusaj citanja vrijednosti iz TextBox-ova
intKokolvij = CInt(txtKolokvij.Text)
intTest2 = CInt(txtTest2.Text)
intAktivnost = CInt(txtAktivnost.Text)
intPredavanje = CInt(txtPredavanje.Text)
intVjezbe = CInt(txtVjezbe.Text)
intIntegralniIspit = CInt(txtIntegralniIspit.Text)
intSeminarskiRad = CInt(txtSeminarskiRad.Text)

' Izracun ukupnog broja bodova


intBrojOstvarenihBodova = intKokolvij + intTest2 +
intAktivnost + intPredavanje + intVjezbe +
intIntegralniIspit + intSeminarskiRad

' Racunanje procenta ocjene


dblProcenatOcjene = intBrojOstvarenihBodova / intMaksimalniBrojBodova

lblMaksimalniBrojBodova.Text = CStr(intMaksimalniBrojBodova)
lblUkupnoBodovaOstvareno.Text = CStr(intBrojOstvarenihBodova)

' Prikaz procenta ocjene


lblProcenatOcjene.Text = dblProcenatOcjene.ToString("p")

Catch
' Prikazi poruku o gresci
MessageBox.Show("Greska: Svi unosi moraju biti numericke vrijednosti.")

24
End Try
End Sub

Private Sub btnObrisi_Click(sender As Object, e As EventArgs) Handles btnObrisi.Click


' Ocisiti sva polja.
txtKolokvij.Clear()
txtTest2.Clear()
txtAktivnost.Clear()
txtPredavanje.Clear()
txtVjezbe.Clear()
txtIntegralniIspit.Clear()
txtSeminarskiRad.Clear()

lblMaksimalniBrojBodova.Text = String.Empty
lblUkupnoBodovaOstvareno.Text = String.Empty
lblProcenatOcjene.Text = String.Empty

' Stavi fokus na Aktivnost.


txtAktivnost.Focus()
End Sub

Private Sub btnIzlaz_Click(sender As Object, e As EventArgs) Handles btnIzlaz.Click


' Izlaz iz forme.
Me.Close()
End Sub

End Class

25
10. Zadatak - Auto Lizing
Program za računanje plaćanja tokom uzimanja vozila na leasing opciju.

SLIKA10. Izgled programa

● Korisnik odabire novo ili polovno vozilo i time određuje godišnju kamatnu stopu za
otplatu vozila.
● Unosi se cijena vozila, iznos pretplate i broj mjeseci otplate.
● Klikom na dugme Izračunaj prikazuje se način otplate.

Kod programa:

Public Class Form1

Const dblMJESECI_GODISNJE As Double = 12 ' Mjesci u godini


Const dblNOVA_KAMATA As Double = 0.05 ' Kamatna stopa, nova auta
Const dblPOLOVNA_KAMATA As Double = 0.08 ' Kamatna stopa, polovna auta
Dim dblGodisnjaKamata As Double = dblNOVA_KAMATA ' Varijabla cuva vrijednost godisnje
kamatne stope

26
Private Sub btnIzracunaj_Click(sender As Object, e As EventArgs) Handles
btnIzracunaj.Click
Dim dblCijenaVozila As Double ' Cijena vozila
Dim dblPretplata As Double ' Pretplata
Dim intMjeseciZajma As Integer ' Broj mjeseci za pozajmicu
Dim dblPozajmica As Double ' Visina pozajmice
Dim dblMjesecnaPlacanja As Double ' Mjesecno placanje
Dim dblKamata As Double ' Kamata za period zajma
Dim dblGlavnica As Double ' Glavnica za period zajma
Dim intBrojac As Integer ' Brojac za petlju
Dim strPrikaz As String ' String za prikaz korisniku
Dim blnUlazOk As Boolean = True ' Varijabla za provjeru ulaznih
vrijednosti
' Dohvati cijenu vozila i provjeri ispravnost podatka.
If Not Double.TryParse(txtCijenaVozila.Text, dblCijenaVozila) Then
lblPoruka.Text = " Cijena vozila mora biti numericka vrijednost."
blnUlazOk = False
End If

' Dohvati pretplatu i provjeri ispravnost podatka.


If Not Double.TryParse(txtIznosOtplate.Text, dblPretplata) Then
lblPoruka.Text = "Pretplata mora biti numericka vrijednost."
blnUlazOk = False
End If

' Dohvati broj mjeseci i provjeri ispravnost podatka.


If Not Integer.TryParse(txtBrojMjeseci.Text, intMjeseciZajma) Then
lblPoruka.Text = "Mjeseci moraju biti numericka vrijednost."
blnUlazOk = False
End If

If blnUlazOk = True Then


' Izracunaj visinu zajma i mjesecna placanja.
dblPozajmica = dblCijenaVozila - dblPretplata
dblMjesecnaPlacanja = Pmt(dblGodisnjaKamata / dblMJESECI_GODISNJE,
intMjeseciZajma, -dblPozajmica)

' Ocisti prikaz i poruke o gresci.


lstPrikaz.Items.Clear()
lblPoruka.Text = String.Empty

For intBrojac = 1 To intMjeseciZajma


' Izracunaj kamatu za period zajma.
dblKamata = IPmt(dblGodisnjaKamata / dblMJESECI_GODISNJE,
intBrojac, intMjeseciZajma, -dblPozajmica)

' Izracunaj glavnicu za period zajma.


dblGlavnica = PPmt(dblGodisnjaKamata / dblMJESECI_GODISNJE,
intBrojac, intMjeseciZajma, -dblPozajmica)

' Napravi String za prikaz otplate.


strPrikaz = "Mjesec " & intBrojac.ToString()

27
strPrikaz &= ": rata = " & dblMjesecnaPlacanja.ToString("n2")

strPrikaz &= ", kamata = " & dblKamata.ToString("n2")


strPrikaz &= ", glavnica = " & dblGlavnica.ToString("n2")

' Dodaj string na prikaz.


lstPrikaz.Items.Add(strPrikaz)
Next
End If
End Sub

Private Sub btnOcisti_Click(sender As Object, e As EventArgs) Handles btnOcisti.Click


' Ocisiti formu, stavi pocetne vrijednosti
radNovoVozilo.Checked = True
dblGodisnjaKamata = dblNOVA_KAMATA
lblaKamatnaStopaProcenat.Text = dblNOVA_KAMATA.ToString()
txtCijenaVozila.Clear()
txtIznosOtplate.Clear()
txtBrojMjeseci.Clear()
lstPrikaz.Items.Clear()
lblPoruka.Text = String.Empty

' Stavi fokus na txtCijenuVozila


txtCijenaVozila.Focus()
End Sub

Private Sub btnIzlaz_Click(sender As Object, e As EventArgs) Handles btnIzlaz.Click


' Zatvori formu.
Me.Close()
End Sub

Private Sub radNovoVozilo_CheckedChanged(sender As Object, e As EventArgs) Handles


radNovoVozilo.CheckedChanged
' Ako je odabrano novo vozilo, korisnik odabire kamatnu stopu za novo vozilo.
If radNovoVozilo.Checked = True Then
dblGodisnjaKamata = dblNOVA_KAMATA
lblaKamatnaStopaProcenat.Text = dblNOVA_KAMATA.ToString()
lstPrikaz.Items.Clear()
End If
End Sub

Private Sub radPolovnoVozilo_CheckedChanged(sender As Object, e As EventArgs) Handles


radPolovnoVozilo.CheckedChanged
' Ako je odabrano polovno vozilo, korisnik odabire kamatnu stopu za polovno vozilo.
If radPolovnoVozilo.Checked = True Then
dblGodisnjaKamata = dblPOLOVNA_KAMATA
lblaKamatnaStopaProcenat.Text = dblPOLOVNA_KAMATA.ToString()
lstPrikaz.Items.Clear()
End If
End Sub
End Class

28

You might also like