Snabb hjälp med c# miniräknare

Permalänk

Snabb hjälp med c# miniräknare

Hej,
Jag har gjort en miniräknare som första projekt på programmeringen i skolan och den ska vara klar imorgon så jag behöver snabb hjälp av någon som kan se varför det blir ett konstigt tal som jag inte förstår var det kommer ifrån när man trycker på tex 5+5 eller liknande och sen summerar det.

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace alkylator { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int clear = 1; decimal result, mresult = 0; string op; int Clear(int cl) { switch (cl) { case 1: { label1.Text = ""; } break; case 2: { label1.Text = ""; label2.Text = ""; op = ""; } break; case 3: { label1.Text = ""; label2.Text = label2.Text.Remove(label2.Text.IndexOf('r')); } break; case 4: { label1.Text = ""; label2.Text = label2.Text.Remove(label2.Text.IndexOf('s')); } break; case 5: { label1.Text = ""; label2.Text = label2.Text.Remove(label2.Text.LastIndexOf(' ') + 1); } break; } return 0; } decimal eval(string op) { clear = 1; switch (op) { case "+": result = result + Convert.ToDecimal(label1.Text); break; case "-": result = result - Convert.ToDecimal(label1.Text); break; case "/": result = result / Convert.ToDecimal(label1.Text); break; case "*": result = result * Convert.ToDecimal(label1.Text); break; case "Mod": result = result % Convert.ToDecimal(label1.Text); break; } return result; } private void button10_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "0"; } private void button1_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "1"; } private void button2_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "2"; } private void button3_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "3"; } private void button4_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "4"; } private void button5_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "5"; } private void button6_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "6"; } private void button7_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "7"; } private void button8_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "8"; } private void button9_Click(object sender, EventArgs e) { clear = Clear(clear); if (label1.Text.Length < 28) label1.Text = label1.Text + "9"; } private void button11_Click(object sender, EventArgs e) { label1.Text = label1.Text + "."; } private void button12_Click(object sender, EventArgs e) { if (clear == 3 || clear == 5 || clear == 5) label2.Text = label2.Text + " + "; else label2.Text = label2.Text + label1.Text + " + "; label1.Text = eval(op).ToString(); op = "+"; } private void button13_Click(object sender, EventArgs e) { if (clear == 3 || clear == 5 || clear == 5) label2.Text = label2.Text + " - "; else label2.Text = label2.Text + label1.Text + " - "; label1.Text = eval(op).ToString(); op = "-"; } private void button14_Click(object sender, EventArgs e) { if (clear == 3 || clear == 5 || clear == 5) label2.Text = label2.Text + " / "; else label2.Text = label2.Text + label1.Text + " / "; label1.Text = eval(op).ToString(); op = "/"; } private void button15_Click(object sender, EventArgs e) { if (clear == 3 || clear == 5 || clear == 5) label2.Text = label2.Text + " * "; else label2.Text = label2.Text + label1.Text + " * "; label1.Text = eval(op).ToString(); op = "*"; } private void button19_Click(object sender, EventArgs e) { if (clear == 3 || clear == 5 || clear == 5) label2.Text = label2.Text + " Mod "; else label2.Text = label2.Text + label1.Text + " Mod "; label1.Text = eval(op).ToString(); op = "Mod"; } private void button22_Click(object sender, EventArgs e) { if (label2.Text.Contains("reciproc")) { label2.Text = label2.Text.Insert(label2.Text.IndexOf('r'), "reciproc("); label2.Text = label2.Text.Insert(label2.Text.IndexOf(')'), ")"); } else label2.Text = label2.Text + "reciproc(" + label1.Text + ")"; label1.Text = (1 / Convert.ToDecimal(label1.Text)).ToString(); clear = 3; } private void button18_Click(object sender, EventArgs e) { if (label2.Text.Contains("sqrt")) { label2.Text = label2.Text.Insert(label2.Text.IndexOf('s'), "sqrt("); label2.Text = label2.Text.Insert(label2.Text.IndexOf(')'), ")"); } else label2.Text = label2.Text + "sqrt(" + label1.Text + ")"; label1.Text = Math.Sqrt(Convert.ToDouble(label1.Text)).ToString(); clear = 4; } private void button17_Click(object sender, EventArgs e) { label1.Text = (result * Convert.ToDecimal(label1.Text) / 100).ToString(); label2.Text = label2.Text + label1.Text; } private void button23_Click(object sender, EventArgs e) { if (label1.Text.Contains('-')) { label1.Text = label1.Text.Remove(label1.Text.IndexOf('-'), 1); } else label1.Text = "-" + label1.Text; } private void button16_Click(object sender, EventArgs e) { if (clear != 3 && clear != 4 && clear != 5) label2.Text = label2.Text + label1.Text; label1.Text = eval(op).ToString(); clear = 2; } private void button20_Click(object sender, EventArgs e) { Clear(2); clear = 1; label1.Text = "0"; } private void button21_Click(object sender, EventArgs e) { Clear(1); clear = 1; label1.Text = "0"; } private void button26_Click(object sender, EventArgs e) { mresult = Convert.ToDecimal(label1.Text); clear = 1; } private void button27_Click(object sender, EventArgs e) { label1.Text = mresult.ToString(); clear = 1; } private void button25_Click(object sender, EventArgs e) { mresult = mresult + Convert.ToDecimal(label1.Text); clear = 1; } private void button24_Click(object sender, EventArgs e) { mresult = mresult - Convert.ToDecimal(label1.Text); clear = 1; } private void button28_Click(object sender, EventArgs e) { mresult = 0; clear = 1; } } }

Tack på förhand

Visa signatur

CPU:Intel Core I7 2600K (Socket 1155) MOBO:Asus P8P67 Deluxe GPU:Asus gtx 780 ti RAM:Kingston HyperX 2400 MHz 8GB (Dual channel) SSD:Force 3 120GB, OCZ Revodrive x2 HDD:Samsung Spinpoint F3 1TB Chassi:Corsair 750D PSU:Corsair Tx650 v2Ljud:Pro-Ject HeadBox II Hörlurar: Sennheiser hd600+ATH-M50 Högtalare: Dali Ikon 2 Mikrofon: Samson go mic Mus: Logitech G700 Matta: steelseries Qck+ Skärmar: en Asus Ve247h x3| citera mig för svar.

Permalänk

Det är nog något med +-/* tecknena som är fel för det händer utan att man trycker på =

Visa signatur

CPU:Intel Core I7 2600K (Socket 1155) MOBO:Asus P8P67 Deluxe GPU:Asus gtx 780 ti RAM:Kingston HyperX 2400 MHz 8GB (Dual channel) SSD:Force 3 120GB, OCZ Revodrive x2 HDD:Samsung Spinpoint F3 1TB Chassi:Corsair 750D PSU:Corsair Tx650 v2Ljud:Pro-Ject HeadBox II Hörlurar: Sennheiser hd600+ATH-M50 Högtalare: Dali Ikon 2 Mikrofon: Samson go mic Mus: Logitech G700 Matta: steelseries Qck+ Skärmar: en Asus Ve247h x3| citera mig för svar.

Permalänk
Medlem

Först saker som "snabb hjälp" brukar inte uppskattas här, detta är ingen konsult firma utan mänskor som p.g.a. intresse hjälper till HELT GRATIS på sin fritid. Som vanligt som jag sagt ganska många gånger vid det har laget är vi inte intresserade av att göra dina läxor men om du har några mer konkreta frågor finns många kunniga här på forumet.

Till problemet. Det du först måste göra är att felsöka programmet genom att lämpligtvis använda "debug:en" och stega igenom programmet för ett (gärna flera) test case du vet inte fungerar. Eftersom koden är väldigt rörig och näst intill okommenterad har jag inte tid att gå igenom den. Jag har en känsla av att du kanske glömt prioriterings reglerna d.v.s. 4 * 2 + 2 = (4 * 2)+2 som exempel, och inte 4 * (2+2).

Permalänk
Medlem

Skulle du kunna ladda upp hela projektet så skulle jag kunna ta en titt åt dig snabbt då jag inte har lust att gå igenom hela din kod.