用C#制作一个简易的计算器
请设计简易计算器,要求界面类似操作系统自带的简易计算器,并且:–1、具备加减乘除功能2、显示数字的文本框只读–3、数据在文本框右对齐显示,并且在文本框中显示数字的始终是有...
请设计简易计算器, 要求界面类似操作系统自带的简易计算器,并且:
–1、具备加减乘除功能
2、显示数字的文本框只读
–3、数据在文本框右对齐显示,并且在文本框中显示数字的始终是有效的数值
–4、可用键盘操作 展开
–1、具备加减乘除功能
2、显示数字的文本框只读
–3、数据在文本框右对齐显示,并且在文本框中显示数字的始终是有效的数值
–4、可用键盘操作 展开
5个回答
2013-11-09
展开全部
以前用C#写过一个计算器,我上传到66RPG网了,你下来看看合不合适。地址: http://bbs.66rpg.com/upload_program/d/yidou15_计算器C#_105789359.rar(有全部源代码)
2013-11-09
展开全部
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
/*
计算器算法
当每次安1~9的数字按键,调用一个anniu方法,
在aniu方法
用是否输入运算符来判断是否是输入的是
第一个第二个值,中间在判断是否是小数的数值算法。
普通值的算法是
a=a*10+i;
i为传入的参数的值
小数值的算法是
a=a+i/s;
s=s*10;
s为小数的位数,1为无10为1位,100为2位。
运算符号方法的算法
调用fh这个方法
判断当前是否有输入过运算符
如果无则给运算字符串赋值为传入的值,并置空小数位
有则调js计算的方法,并并置空小数位,在给运算字符串赋值为传入的值。
计算的方法
由于数不能为0所以
首先判断是否为处号除数不能为0
如果是则不计算跳出
否则计算相应的符号计算并显示
*/
namespace WindowsApplication1
{
public partial class Form1 : Form
{
String Fh="";//用于存储符号运算符
double a, b, c;//a为第一个接收的值,b为第二个值,c为计算结果
long s = 1;//初始小数的位数
public Form1()
{
InitializeComponent();
}
public void anniu(double i)//按钮的方法
{
if (Fh.Equals(""))//是否当前有运算符
{
if (s == 1)//判断是否有小数点
{
a = a * 10 + i;//计算无小数的值
}
else
{
a = a + i / s;//计算有小数的值
s = s * 10;//计算下一个小数的位置
}
textBox1.Text = a.ToString();//显示计算的结果
}
else //当前有运算符的方法
{
if (!(c == 0)) { b = 0; c = 0; }//当有计算结果就清除B的值
if (s == 1)//判断是否有小数点
{
b = b * 10 + i;//计算无小数的值
}
else
{
if (i == 0)//判断在小数位后添加0
{
s = s * 10;//计算下一个小数的位置
}
else
{
b = b + i / s;//计算有小数的值
s = s * 10;//计算下一个小数的位置
}
}
textBox1.Text = b.ToString();//显示计算的结果
}
}
public void js() {//数学计算的方法
if (Fh=="/")//判断是否除数等于0
{
if (b == 0) //是则不计算
{
textBox1.Text = "被除数不能为0";//显示被除数不能为0
return;//返回
}
else
{
c = a / b;
}
}
else//如果不是出发计算则执行其他计算
{
if (Fh.Equals("+")) { c = a + b; }
if (Fh.Equals("-")) { c = a - b; }
if (Fh.Equals("*")) { c = a * b; }
if (Fh.Equals("%")) { c = a % b; }
}
textBox1.Text = c.ToString(); //显示计算结果
a = c;//将结果给第一个变量作为
}
public void fh(string str) //接收运算符的方法
{
if (Fh.Equals(""))//当前是否已经有运算符
{
Fh = str; s = 1;//没有则接收运算符,小数点失效
}
else
{
js(); s = 1; Fh = str;//有则计算当前的值,小数点失效
}
}
private void button1_Click(object sender, EventArgs e)//监听按钮1的单击事件
{
anniu(1);//调用按钮方法
}
private void button2_Click(object sender, EventArgs e)
{
anniu(2);
}
private void button3_Click(object sender, EventArgs e)
{
anniu(3);
}
private void button4_Click(object sender, EventArgs e)
{
anniu(4);
}
private void button5_Click(object sender, EventArgs e)
{
anniu(5);
}
private void button7_Click(object sender, EventArgs e)
{
anniu(6);
}
private void button6_Click(object sender, EventArgs e)
{
anniu(7);
}
private void button8_Click(object sender, EventArgs e)
{
anniu(8);
}
private void button9_Click(object sender, EventArgs e)
{
anniu(9);
}
private void button10_Click(object sender, EventArgs e)
{
if (!textBox1.Text.Equals("0"))
{
anniu(0);
}
}
private void button11_Click(object sender, EventArgs e)//监听运算符按钮的事件
{
fh("+");//调用运算符的方法
}
private void button12_Click(object sender, EventArgs e)
{
fh("-");
}
private void button14_Click(object sender, EventArgs e)//清空按钮
{
textBox1.Text = "0";//清空TEXTBOX的显示值
a = 0; b = 0; c = 0; s = 1; Fh = "";//初始化所有值
}
private void button13_Click(object sender, EventArgs e)//等于按钮
{
js();//调用计算方法
}
private void button16_Click(object sender, EventArgs e)
{
fh("/");
}
private void button17_Click(object sender, EventArgs e)
{
fh("%");
}
private void button15_Click(object sender, EventArgs e)
{
fh("*");
}
private void button19_Click(object sender, EventArgs e)//正负号
{
if (Fh.Equals("")) { a = -a; textBox1.Text = a.ToString(); } else { b = -b; textBox1.Text = b.ToString(); }//初始当前值的正负号
}
private void button18_Click(object sender, EventArgs e)//小数点
{
if (s == 1) { s = 10; }//如果之前有过使用小数点则跳过当前小数点按钮的方法,否则初始小数点的
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
/*
计算器算法
当每次安1~9的数字按键,调用一个anniu方法,
在aniu方法
用是否输入运算符来判断是否是输入的是
第一个第二个值,中间在判断是否是小数的数值算法。
普通值的算法是
a=a*10+i;
i为传入的参数的值
小数值的算法是
a=a+i/s;
s=s*10;
s为小数的位数,1为无10为1位,100为2位。
运算符号方法的算法
调用fh这个方法
判断当前是否有输入过运算符
如果无则给运算字符串赋值为传入的值,并置空小数位
有则调js计算的方法,并并置空小数位,在给运算字符串赋值为传入的值。
计算的方法
由于数不能为0所以
首先判断是否为处号除数不能为0
如果是则不计算跳出
否则计算相应的符号计算并显示
*/
namespace WindowsApplication1
{
public partial class Form1 : Form
{
String Fh="";//用于存储符号运算符
double a, b, c;//a为第一个接收的值,b为第二个值,c为计算结果
long s = 1;//初始小数的位数
public Form1()
{
InitializeComponent();
}
public void anniu(double i)//按钮的方法
{
if (Fh.Equals(""))//是否当前有运算符
{
if (s == 1)//判断是否有小数点
{
a = a * 10 + i;//计算无小数的值
}
else
{
a = a + i / s;//计算有小数的值
s = s * 10;//计算下一个小数的位置
}
textBox1.Text = a.ToString();//显示计算的结果
}
else //当前有运算符的方法
{
if (!(c == 0)) { b = 0; c = 0; }//当有计算结果就清除B的值
if (s == 1)//判断是否有小数点
{
b = b * 10 + i;//计算无小数的值
}
else
{
if (i == 0)//判断在小数位后添加0
{
s = s * 10;//计算下一个小数的位置
}
else
{
b = b + i / s;//计算有小数的值
s = s * 10;//计算下一个小数的位置
}
}
textBox1.Text = b.ToString();//显示计算的结果
}
}
public void js() {//数学计算的方法
if (Fh=="/")//判断是否除数等于0
{
if (b == 0) //是则不计算
{
textBox1.Text = "被除数不能为0";//显示被除数不能为0
return;//返回
}
else
{
c = a / b;
}
}
else//如果不是出发计算则执行其他计算
{
if (Fh.Equals("+")) { c = a + b; }
if (Fh.Equals("-")) { c = a - b; }
if (Fh.Equals("*")) { c = a * b; }
if (Fh.Equals("%")) { c = a % b; }
}
textBox1.Text = c.ToString(); //显示计算结果
a = c;//将结果给第一个变量作为
}
public void fh(string str) //接收运算符的方法
{
if (Fh.Equals(""))//当前是否已经有运算符
{
Fh = str; s = 1;//没有则接收运算符,小数点失效
}
else
{
js(); s = 1; Fh = str;//有则计算当前的值,小数点失效
}
}
private void button1_Click(object sender, EventArgs e)//监听按钮1的单击事件
{
anniu(1);//调用按钮方法
}
private void button2_Click(object sender, EventArgs e)
{
anniu(2);
}
private void button3_Click(object sender, EventArgs e)
{
anniu(3);
}
private void button4_Click(object sender, EventArgs e)
{
anniu(4);
}
private void button5_Click(object sender, EventArgs e)
{
anniu(5);
}
private void button7_Click(object sender, EventArgs e)
{
anniu(6);
}
private void button6_Click(object sender, EventArgs e)
{
anniu(7);
}
private void button8_Click(object sender, EventArgs e)
{
anniu(8);
}
private void button9_Click(object sender, EventArgs e)
{
anniu(9);
}
private void button10_Click(object sender, EventArgs e)
{
if (!textBox1.Text.Equals("0"))
{
anniu(0);
}
}
private void button11_Click(object sender, EventArgs e)//监听运算符按钮的事件
{
fh("+");//调用运算符的方法
}
private void button12_Click(object sender, EventArgs e)
{
fh("-");
}
private void button14_Click(object sender, EventArgs e)//清空按钮
{
textBox1.Text = "0";//清空TEXTBOX的显示值
a = 0; b = 0; c = 0; s = 1; Fh = "";//初始化所有值
}
private void button13_Click(object sender, EventArgs e)//等于按钮
{
js();//调用计算方法
}
private void button16_Click(object sender, EventArgs e)
{
fh("/");
}
private void button17_Click(object sender, EventArgs e)
{
fh("%");
}
private void button15_Click(object sender, EventArgs e)
{
fh("*");
}
private void button19_Click(object sender, EventArgs e)//正负号
{
if (Fh.Equals("")) { a = -a; textBox1.Text = a.ToString(); } else { b = -b; textBox1.Text = b.ToString(); }//初始当前值的正负号
}
private void button18_Click(object sender, EventArgs e)//小数点
{
if (s == 1) { s = 10; }//如果之前有过使用小数点则跳过当前小数点按钮的方法,否则初始小数点的
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-09
展开全部
去MSDN看看,对你可能有意外的收获
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-09
展开全部
别多看别人的例子 要写自己的程序 走自己的路
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询