求c#高手,计算器的混合运算怎么设计啊?

[复制链接]
查看11 | 回复1 | 2011-6-16 21:36:50 | 显示全部楼层 |阅读模式
例如:3*(2+3)
下面是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Calculator
{

public partial class Form1 : Form

{

//定义一个控制标志

int flag=-1;

//存储第一个操作数

int num1;

int num2=0;

//存储最后的结果

int results;



public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

//当用户按下0-9数字键时触发

private void num_Click(object sender, EventArgs e)

{

Button a = (Button)sender;

txtOutput.Text = txtOutput.Text + a.Text;



}

//当用户按下运算符时触发

private void operator_Click(object sender, EventArgs e)

{

Button b = (Button)sender;

if (b.Text == "+")

{

if (flag == -1)

{

num1 = int.Parse(txtOutput.Text);

}

else

{

switch(flag)

{

case 0:

num1 = num1 + int.Parse(txtOutput.Text);

break;

case 1:

num1 = num1 - int.Parse(txtOutput.Text);

break;

case 2:

num1 = num1 *int.Parse(txtOutput.Text);

break;

case 3:

num1 = num1 / int.Parse(txtOutput.Text);

break;

}

};

if (num2==-1)

{

num1 = 0;

}

txtOutput.Text = "";

flag = 0;

}

if (b.Text == "-")

{

if (flag == -1)

{

num1 = int.Parse(txtOutput.Text);

}

else

{

switch (flag)

{

case 0:

num1 = num1 + int.Parse(txtOutput.Text);

break;

case 1:

num1 = num1 - int.Parse(txtOutput.Text);

break;

case 2:

num1 = num1 * int.Parse(txtOutput.Text);

break;

case 3:

num1 = num1 / int.Parse(txtOutput.Text);

break;

}

};

txtOutput.Text = "";

flag = 1;

}
if (b.Text == "*")

{

if (flag == -1)

{

num1 = int.Parse(txtOutput.Text);

}

else

{

switch (flag)

{

case 0:

num2 = num2 + int.Parse(txtOutput.Text);

break;

case 1:

num1 = num1 - int.Parse(txtOutput.Text);

break;

case 2:

num1 = num1 * int.Parse(txtOutput.Text);

break;

case 3:

num1 = num1 / int.Parse(txtOutput.Text);

break;

}

}

txtOutput.Text = "";

flag = 2;

}

回复

使用道具 举报

千问 | 2011-6-16 21:36:50 | 显示全部楼层
我这里有一个计算器的样本,不知道你想不想要,C#源代码,可以实现科学计算的混合运算,如果想要的话,hi我,那是我刚学C#的时候写的。别忘了把分给我...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行