Har via visual studio.net gjort en simpel miniräknare i visual basic.net. Den är gjort så att det finns två rutor där man skriver in tal1, tal2 och ruta för resultatet och 4 radio buttons där man när man skrivit in siffrorna markerar den uträkning man vill göra men nu skall jag göra en mer avancerad miniräknare där det bara finnas följande: har själv gjort en miniräknare i en C# kurs.. då löste jag det genom att först definiera operatorerna som enums och sen sparade jag den operatorn man tryckte på. Skall se ut enligt bilden nedan. Jag har själv gjort en miniräknare med knappar så som du har förklarat, fast med en annan layout. Jag gjorde i alla fall så att jag spara sparade den valda operatorn i en enum. Jag definierade min enum som sådan. Kan väl skriva att uttrycket Option Strict On måste finnas med. Förlåt mig, nu såg jag inte att det var VB.net. Men det fungerar likadant som i C# fallet: En fråga bara var skriver jag in koden för själva beräkningen?Miniräknare i visualbasic.net.
En ruta där man skriver in talen, knappar för +, -, *, /, C, = och en end knapp. Skall också finnas en list ruta där beräkningen visas och en knapp töm listruta. Att lägga in själva objekten är inga problem men hur skriver jag för själva uträkningen på den simpla miniräknare så var det ju rätt enkelt:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Assign text box values to variables
FirstNum = TextBox1.Text
SecondNum = TextBox2.Text
'Determine checked button and calculate
If RadioButton1.Checked = True Then
TextBox3.Text = FirstNum + SecondNum
End If
If RadioButton2.Checked = True Then
TextBox3.Text = FirstNum - SecondNum
End If
If RadioButton3.Checked = True Then
TextBox3.Text = FirstNum * SecondNum
End If
If RadioButton4.Checked = True Then
TextBox3.Text = FirstNum / SecondNum
End If
End Sub
Men hur gör jag nu när jag har knappar istället för radio buttons.
Någon som kan hjälpa till?Sv: Miniräknare i visualbasic.net.
mata in tal1 -> spara
mata in operator -> spara
mata in tal2 -> spara
mata in operator -> utför beräkning och spara undan operator.
osv...
Hoppas att det hjälpte nått! Annars får du fråga mer så får jag svara mer =)
Lycka till!Sv:Miniräknare i visualbasic.net.
http://server1.pictiger.com/img/83462/picture-hosting/miniraknares.jpgSv: Miniräknare i visualbasic.net.
enum operators {add, sub, mul, div, none};
En operator görs varje gång man väljer en ny operator
private void btnAdd_Click(object sender, System.EventArgs e)
{
doOperation();
op = (int)operations.add;
}
I doOperation utförde jag operatorn, med hjälp av en switch-sats som du har använt innan, och sen sparade undan svaret.
Här har du en bild på hur min layout såg ut, men principen att använda knappar istället för radioknappar är densamma.
www.kimmen.se/minicalc.png
Sv:Miniräknare i visualbasic.net.
Kan man skriva då:
<CODE>
enum operators {add, sub, mul, div, none};
private void btnAdd_Click(object sender, System.EventArgs e) Handles Button1.Click
'Assign text box values to variables
FirstNum = TextBox1.Text
SecondNum = TextBox1.Text
'Determine checked button and calculate
If RadioButton1.Checked = True Then
{
doOperation();
op = (int)operations.add;
}
End If
If RadioButton2.Checked = True Then
{
doOperation();
op = (int)operations.sub;
}
</CODE>
och så vidareSv: Miniräknare i visualbasic.net.
I vb.net defineras en enum som så:
Enum Operators
AddOp 'Addition
SubOp 'Subtraktion
MulOp 'Mulitplikation
DivOp 'Divition
NoneOp 'Likamed
End Enum
Kan ju inte skriva koden till dig, men jag kan berätta hur jag la upp det hela.
Du börjar med att ha två medlemsvariabler som håller i talen: InputNum och AnswerNum.
InputNum är den variabel där du sparar all input i.
AnswerNum är den variabel där du sparar svaret i, initieras till 0 varje gång du börjar på en ny uträkning.
Du har även en medlemsvariabel som håller i den senast tryckta operationen, CurrenOperator. Den initieras till Operators.NoneOp.
Som jag skrev innan så utför du den nuvarande beräkningen innan du lagrar undan den nya operatorn.
När du utför den nuvarande beräkningen använder du av en Select Case-sats.
Select Case CurrentOperator
Case Operators.AddOp
'Uför addition mellan InputNum och AnswerNum och spara svaret i AnswerNum
Case Operators.NoneOp
'Spara undan InputNum i AnswerNum
Fast du får tillägga med alla operatorerna. Om man ska lista ner vad som sker ser det väl ut så här från början.
1: AnswerNum = 0
2: Matar in ett tal till InputNum
3: Trycker på +, utför beräkning "NoneOp" mellan AnswerNum och InputNum och sen sätter CurrentOp att vara AddOp.
4: Matar in ett nytt tal till InputNum
5: Trycker på =, utför beräkningen "AddOp" mellan AnswerNum och InputNum och sätter CurrentOp till "NoneOp".
Mer än så här kan jag inte hjälpa dig =). Jag är tyvärr inte så bra på att förklara, men hoppas det ger dig nån aning om hur jag gjorde. Men det finns förmodligen andra lösningar! Lycka till!
Sv:Miniräknare i visualbasic.net.
Om jag väljer att klicka på + knappen så får jag ju möjlighet att skriva koden just för den knappen men skall jag skriva koden för beräkningen av den knappen där eller skriver jag hela koden tillsammans?