小女子初学C#,学编计算器,只实现简单计算功能,但在纪录操作数或者是监听操作码的问题上有漏洞,麻烦高手指点指点,不胜感激!!!!
前面计算器面板可以不用看,主要是实现计算功能部分!如能我我修改,更是感激得五体投地!!!!
public PForm()
{
//Backspace键
void buttonBS_Click(object obj, EventArgs e)
{
SendKeys.Send("{BACKSPACE}");
tb.Focus();
}
//CE键
void buttonCE_Click(object obj, EventArgs e)
{
tb.Text = "";
v1 = "";
tb.Focus();
}
//C键
void buttonC_Click(object obj, EventArgs e)
{
tb.Text = "";
tb.Focus();
}
//开方
void buttonSQ_Click(object obj,EventArgs e)
{
double i;
res = Double.Parse(tb.Text);
i = Math.Sqrt(res);
tb.Text = i.ToString();
} //1/x 按钮
void buttonQUY_Click(object obj,EventArgs e)
{
res = Double.Parse(tb.Text);
if ( res != 0 )
{
tb.Text = (1/res).ToString();
}
else
{
MessageBox.Show("error");
}
} //%的点击事件
void buttonMOD_Click(object obj,EventArgs e)
{
double i = Double.Parse(tb.Text);
res = (i * i) / 100;
tb.Text = res.ToString();
}
void buttonEqu_Click(object obj,EventArgs e)
{
Cal();
tb.Text = res.ToString();
} //数字点击事件
void buttonNum_Click(object obj, EventArgs e)
{ Button b = (Button)obj;
SendKeys.Send(b.Text);
v1=tb.Text;
tb.Focus();
} //操作符点击事件
void buttonOPER_Click(object obj, EventArgs e)
{
flag ++;
Button b = (Button)obj;
opt = Char.Parse(b.Text);
if(flag <= 1)
{
tb.Text = "";
} else
{
Cal();
v1 = res.ToString();
}
tb.Text = res.ToString(); }
void Cal()
{
switch(opt)
{
case '+': res = Double.Parse(v1) + Double.Parse(tb.Text); break;
case '-': res = Double.Parse(v1) - Double.Parse(tb.Text); break;
case '*': res = Double.Parse(v1) * Double.Parse(tb.Text); break;
case '/': res = Double.Parse(v1) / Double.Parse(tb.Text); break;
default: break;
}
}
static void Main()
{
Application.Run(new PForm());
}
}
前面计算器面板可以不用看,主要是实现计算功能部分!如能我我修改,更是感激得五体投地!!!!
public PForm()
{
//Backspace键
void buttonBS_Click(object obj, EventArgs e)
{
SendKeys.Send("{BACKSPACE}");
tb.Focus();
}
//CE键
void buttonCE_Click(object obj, EventArgs e)
{
tb.Text = "";
v1 = "";
tb.Focus();
}
//C键
void buttonC_Click(object obj, EventArgs e)
{
tb.Text = "";
tb.Focus();
}
//开方
void buttonSQ_Click(object obj,EventArgs e)
{
double i;
res = Double.Parse(tb.Text);
i = Math.Sqrt(res);
tb.Text = i.ToString();
} //1/x 按钮
void buttonQUY_Click(object obj,EventArgs e)
{
res = Double.Parse(tb.Text);
if ( res != 0 )
{
tb.Text = (1/res).ToString();
}
else
{
MessageBox.Show("error");
}
} //%的点击事件
void buttonMOD_Click(object obj,EventArgs e)
{
double i = Double.Parse(tb.Text);
res = (i * i) / 100;
tb.Text = res.ToString();
}
void buttonEqu_Click(object obj,EventArgs e)
{
Cal();
tb.Text = res.ToString();
} //数字点击事件
void buttonNum_Click(object obj, EventArgs e)
{ Button b = (Button)obj;
SendKeys.Send(b.Text);
v1=tb.Text;
tb.Focus();
} //操作符点击事件
void buttonOPER_Click(object obj, EventArgs e)
{
flag ++;
Button b = (Button)obj;
opt = Char.Parse(b.Text);
if(flag <= 1)
{
tb.Text = "";
} else
{
Cal();
v1 = res.ToString();
}
tb.Text = res.ToString(); }
void Cal()
{
switch(opt)
{
case '+': res = Double.Parse(v1) + Double.Parse(tb.Text); break;
case '-': res = Double.Parse(v1) - Double.Parse(tb.Text); break;
case '*': res = Double.Parse(v1) * Double.Parse(tb.Text); break;
case '/': res = Double.Parse(v1) / Double.Parse(tb.Text); break;
default: break;
}
}
static void Main()
{
Application.Run(new PForm());
}
}
解决方案 »
- 简单的对SQL2000和对access的操作
- C# 将datagridview的数据插入到数据库
- asp.net ajax 中,使用FileUpload的问题..
- 紧急求助一个关于excel的问题!!!
- 关于编写收藏夹功能的帮助。
- 谁有c#的在线编辑器,以分相许(在线等,告诉我链接地址即可)
- WPF DataGridTextColumn.Visibility绑定问题
- sybase.Data.AseClient.AseConnection的类型初始值设定项引发异常
- 紧急求助:如何实现Label控件在WinForm中的拖拽
- 请问结构体和类的不同之处?
- 关于"并非所有路径都返回值"
- System.Configuration.ConfigurationSettings.AppSettings取值问题?高手请进,谢谢
细心一点,仔细调试OK