用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>
最后执行结果如下:
模仿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>
最后执行结果如下:
相关文章推荐
- c#调用COM组件
- 你应该学习哪种编程语言?
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- [转]我们需要一种其他人能使用的编程语言
- 一步一步跟我学易语言之第二个易程序菜单设计
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法