您的位置:首页 > 编程语言 > C#

用C#语言编写计算器

2016-06-19 18:25 246 查看

模仿windows操作系统附件中的计算器样式进行设计,要设计基本的菜单项(快捷键、热键、和分割线等)
        
 
 
功能要求:实现如下图所示的功能键
 

设置热键方法如下:

 

先用窗体项目做出如图窗体

右击下拉菜单项

 

点击编辑项设置热键

 

点击DropdownItems集合

在这里设置热键,以此类推;

 

 

 

全部设置完毕后如图

 

 

然后点击计算器窗体

初始化显示文本框为空;为0~9以及小数点添加操作数监听,

为操作符添加操作符监听以及删除、退格、清空分别添加监听器;

全部代码如下:
<span style="font-family:Comic Sans MS;font-size:14px;">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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
//保存用户所按的运算符
private string s;
//保存用户输入的运算数
private double x, y;
//运算符按钮对象
private Button btn;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void buttond_Click(object sender, EventArgs e)
{
btn = (Button)sender;
textBox1.Text += btn.Text;
}
private void buttonop_Click(object sender, EventArgs e)
{
btn = (Button)sender;
if(btn.Name!="btn_Equal")
{
x = Convert.ToDouble(textBox1.Text);
textBox1.Text = "";
s = btn.Name;
switch (s)
{
case "btn_Recip":
textBox1.Text = "1/" + x.ToString() + "=" + (1/x).ToString();
break;
case "btn_Sqrt":
textBox1.Text = "√" + x.ToString() + "=" + Math.Sqrt(x).ToString();
break;
}
}
else
{
y = Convert.ToDouble(textBox1.Text);
switch(s)
{
case"btn_Add":
textBox1.Text = x.ToString()+"+"+y.ToString()+"="+(x + y).ToString();
break;
case "btn_Sub":
textBox1.Text = x.ToString() + "-" + y.ToString() + "=" + (x - y).ToString();
break;
case "btn_Mul":
textBox1.Text = x.ToString() + "*" + y.ToString() + "=" + (x * y).ToString();
break;
case "btn_Div":
if (y == 0)
{
MessageBox.Show("除零错误!!!", "信息提示", MessageBoxButtons.OK);
}
else
textBox1.Text = x.ToString() + "/" + y.ToString() + "=" + (x / y).ToString();
break;
case "btn_Mod":
textBox1.Text = x.ToString() + "%" + y.ToString() + "=" + (x % y).ToString();
break;
}
}
}
private void changeSign(object sender, EventArgs e)
{
double storNum;
if (textBox1.Text.Length > 0)
{
storNum = double.Parse(textBox1.Text);
storNum *= -1;
textBox1.Text = storNum.ToString();
}
btn_Equal.Select();
}
private void btnDeleteSign_Clicked(object sender, EventArgs e)
{

}
private void btnDeleteAll_Clicked(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void btnDelete1_Clicked(object sender, EventArgs e)
{
this.textBox1.Text = this.textBox1.Text.Substring(0, this.textBox1.Text.Length - 1);
if(this.textBox1.Text=="")
{
this.textBox1.Text = "";
}
}
}
}</span>
最后执行结果如下:

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息