Naloga:
Sestavi program, ki bo za podan znesek v SIT, DEM ali LIT izracunal ustrezni znesek v SIT, DEM ali LIT. Na sliki je viden primer
možnega uporabniškega vmesnika:
Namig:
Se nekaj opomb:
Rešitev:
Gradniki:
1.
Tip |
Okno(Form) |
Name |
OknoMenjaj |
Caption |
Menjalnica |
2.
Tip |
okvir(Frame) |
Name |
okvirIz |
Caption |
|
BorderStyle |
none |
3.
Tip |
Izbirni gumb(OptionButton) |
Name |
izSIT |
Caption |
SIT |
Value |
True |
opomba |
Je v okvirIz |
4.
Tip |
Izbirni gumb(OptionButton) |
Name |
izDEM |
Caption |
DEM |
opomba |
Je v okvirIz |
5.
Tip |
Izbirni gumb(OptionButton) |
Name |
IzLIT |
Caption |
LIT |
opomba |
Je v okvirIz |
6.
Tip |
okvir(Frame) |
Name |
OkvirV |
Caption |
|
BorderStyle |
None |
7.
Tip |
Izbirni gumb(OptionButton) |
Name |
vSIT |
Caption |
SIT |
Value |
True |
opomba |
Je v okvirV |
8.
Tip |
Izbirni gumb(OptionButton) |
Name |
vDEM |
Caption |
DEM |
opomba |
Je v okvirV |
9.
Tip |
Izbirni gumb(OptionButton) |
Name |
vLIT |
Caption |
LIT |
opomba |
Je v okvirV |
10.
Tip |
Tekstovni okvir (textFrame) |
Name |
TxtIz |
Text |
0 |
11.
Tip |
Oznaka (Label) |
Name |
OznV |
Text |
0 |
BackColor |
VbWhite |
AutoSize |
True |
Koda:
Option Explicit
Dim sit_dem As Single
Dim sit_lit As Single
Dim lit_dem As Single
Dim lit_sit As Single
Dim dem_sit As Single
Dim dem_lit As Single
Private Sub Form_Load() |
|
|
sit_dem = InputBox("1 Sit = ? DEM", "Vnos tecaja", 0.01059) |
|
sit_lit = InputBox("1 Sit = ? LIT", "Vnos tecaja", 10.45) |
|
lit_dem = InputBox("1 Lit = ? DEM", "Vnos tecaja", 0.0010135) |
|
lit_sit = InputBox("1 Lit = ? SIT", "Vnos tecaja", 0.0957) |
|
dem_lit = InputBox("1 DEM = ? LIT", "Vnos tecaja", 986.804) |
|
dem_sit = InputBox("1 DEM = ? SIT", "Vnos tecaja", 94.38) |
End Sub |
Private Sub izSIT_Click() |
|
|
txtIz_Change |
End Sub |
Private Sub izLIT_Click() |
|
|
txtIz_Change |
End Sub |
Private Sub izDEM_Click() |
|
|
txtIz_Change |
End Sub |
Private Sub vSIT_Click() |
|
|
txtIz_Change |
End Sub |
Private Sub vLIT_Click() |
|
|
txtIz_Change |
End Sub |
Private Sub vDEM_Click() |
|
|
txtIz_Change |
End Sub |
Private Sub txtIz_Change() |
||||
|
If izSIT Then |
|||
|
If vDEM Then |
|||
|
oznV.Caption = "= " & Str(Val(txtIz.Text) * sit_dem) |
|||
ElseIf vLIT Then |
||||
oznV.Caption = "= " & Str(Val(txtIz.Text) * sit_lit) |
||||
Else |
||||
oznV.Caption = "= " & txtIz.Text |
||||
End If |
||||
ElseIf izDEM Then |
||||
|
If vSIT Then |
|||
|
OznV.Caption = "= " & Str(Val(txtIz.Text) * dem_sit) |
|||
ElseIf vLIT Then |
||||
oznV.Caption = "= " & Str(Val(txtIz.Text) * dem_lit) |
||||
Else |
||||
oznV.Caption = "= " & txtIz.Text |
||||
End If |
||||
Else 'LIT |
||||
|
If vSIT Then |
|||
|
OznV.Caption = "= " & Str(Val(txtIz.Text) * lit_sit) |
|||
ElseIf vDEM Then |
||||
OznV.Caption = "= " & Str(Val(txtIz.Text) * lit_dem) |
||||
Else |
||||
OznV.Caption = "= " & txtIz.Text |
||||
End If |
||||
End If |
||||
End Sub |
Datoteki: MENJAJ.VBP, MENJAJ.FRM
Opombe:
Pri izpisu nas moti, da je izpis na tako veliko stevilo decimalk. Prav tako je izpis "cuden", ce menjamo 1 LIT v DEM
Zdi se, kot da je 1 LIT 1.01 DEM. Razlog je v tem, da je zadeva prikazana v eksponentnem zapisu, ki pa ni viden.
Zato namesto funkcije
Str raje uporabimo funkcijo Format v obliki: Format(izraz, "#####0.000").
|
|
If vSIT Then |
|
|
|
|
OznV.Caption = "= " & Format(Val(txtIz.Text) * dem_sit, "#####0.000")) |
|
|
ElseIf vLIT Then |
|
|
|
|
oznV.Caption = "= " & Format(Val(txtIz.Text) * dem_lit, "#####0.000") |
Izpis je lepši
Vaje
: