c#简易计算器设计
2013-12-04 19:38
267 查看
c#简易计算器设计,这是我学习时的练习作品,能够完成简单的运算,但设计还有很多不周的地方,仅供参考。
源代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace jisuanqi
{
public partial class Form1 : Form
{
double numA, numB, result;//numA数A,numB数B,result结果
bool flag;//判断是否为小小数
string myOperator;//操作类型
string historytxt;//记录原有的操作数
/// <summary>
/// NumberClick类
/// </summary>
public void NumberClick(int myNumber)
{
if (flag)
{
textBox1.Text = textBox1.Text + myNumber;
historytxt = historytxt + myNumber;
}
else
{
if (historytxt == "")
{
//输入的是整数的第一个数字
textBox1.Text =textBox1 .Text + myNumber + "";
historytxt = myNumber + "";
}
else
{
//输入的不是整数的第一个数字
textBox1.Text = textBox1.Text.Substring
(0, textBox1.Text.Length) + myNumber + "";
historytxt = historytxt.Substring(0, historytxt.Length) + myNumber + "";
}
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
historytxt = "";
textBox1.Text = "";
//指定文本框的对齐方式为右对齐
textBox1.TextAlign = HorizontalAlignment.Right;
}
private void button0_Click(object sender, EventArgs e)
{
NumberClick(0);
}
private void button1_Click(object sender, EventArgs e)
{
NumberClick(1);
}
private void button2_Click(object sender, EventArgs e)
{
NumberClick(2);
}
private void button3_Click(object sender, EventArgs e)
{
NumberClick(3);
}
private void button4_Click(object sender, EventArgs e)
{
NumberClick(4);
}
private void button5_Click(object sender, EventArgs e)
{
NumberClick(5);
}
private void button6_Click(object sender, EventArgs e)
{
NumberClick(6);
}
private void button7_Click(object sender, EventArgs e)
{
NumberClick(7);
}
private void button8_Click(object sender, EventArgs e)
{
NumberClick(8);
}
private void button9_Click(object sender, EventArgs e)
{
NumberClick(9);
}
private void bDot_Click(object sender, EventArgs e)
{
flag = true;//输入小数点
textBox1.Text = textBox1.Text + ".";
historytxt = historytxt + ".";
}
private void bCle_Click(object sender, EventArgs e)
{
numA = 0;
numB = 0;
textBox1.Text = "";
historytxt = "";
flag = false;
}
private void bPlus_Click(object sender, EventArgs e)
{
myOperator = "add";
numA = double.Parse(historytxt);
historytxt = "";
textBox1.Text = textBox1.Text + "+";
flag = false;
}
private void bSub_Click(object sender, EventArgs e)
{
myOperator = "Sub";
numA = double.Parse(historytxt);
textBox1.Text= textBox1.Text + "-";
historytxt ="";
flag = false;
}
private void bMul_Click(object sender, EventArgs e)
{
myOperator = "Mul";
numA = double.Parse(historytxt);
textBox1.Text = textBox1.Text + "*";
historytxt ="";
flag = false;
}
private void bDiv_Click(object sender, EventArgs e)
{
myOperator = "Div";
numA = double.Parse(historytxt);
textBox1.Text = textBox1.Text + "/";
historytxt = "";
flag = false;
}
private void bEqu_Click(object sender, EventArgs e)
{
numB = double.Parse(historytxt);
switch (myOperator)
{
case "add":
result = numA + numB;
textBox1.Text = textBox1.Text +"="+ result.ToString();
break;
case "Sub":
result = numA - numB;
textBox1.Text =textBox1.Text +"="+ result.ToString();
break;
case "Mul":
result = numA * numB ;
textBox1.Text =textBox1.Text +"="+ result.ToString();
break;
case "Div":
if (numB == 0)
{
textBox1.Text = "除数不能为零!";
}
else
{
result = numA / numB;
textBox1.Text =textBox1 .Text +"="+ result.ToString();
}
break;
}
// numA = result;
historytxt = result.ToString();
}
}
}
相关文章推荐
- C# Enum 简易权限设计 使用FlagsAttribute属性
- C# 简易版的计算器程序
- 客户端websocket(C#)长连接及简易RPC框架设计(一)
- 【C#】简易网页计算器实现
- 用C#自制了一个简易的计算器(并规定了其计算范围)
- 客户端websocket(c#)长连接及简易rpc框架设计(二)
- 使用C#模拟简易的计算器
- C#简单工厂设计模式实现计算器
- C#开发简易winform计算器程序
- C#计算器简单设计
- C# Enum 简易权限设计 使用FlagsAttribute属性
- C# 标签(条码)的打印与设计(一)
- 【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
- [C#]设计模式-简单工厂-创建型模式
- C#设计模式之简单工厂篇
- Atitit.收银机小票打印功能的设计 java php c#.net版本
- C#高性能大容量SOCKET并发(四):缓存设计
- 借鉴 C# 关于 LINQ 的设计思想用 C++ 11 来实现 LINQ to Object
- C#--设计模式之建造者模式
- C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子