当前位置:首页 > 计算机相关 > 我的开发 > 正文内容

C# 系统计算器的制作(.net)

piikee14年前 (2009-04-09)我的开发184
实验要求
参照Windows系统提供的计算器功能,制作一个自己的计算器,至少能完成数据的加减乘除的基本功能。
控件的焦点以及Tab键的设置和使用。
多个控件(按钮)事件的共享。
实现键盘输入。
设计思路
创建主体框架:建立程序的主要界面后,系统自动生成界面的主要窗口生成代码。对于每个按钮的的代码段中,分别添加事件触发的处理代码。控件textBox1,显示输入的信息和显示处理后的结果。
数字1-9的按键的事件处理都是在textBox1中分别添加相对应的数字字符,每按一次就在字符后面继续加入数字的字符,把数字当成是字符串处理。对于加减乘除四则运算按键,事件触发后的处理是判断是否numa与numb都有值,没有的话就先赋值,不做运算,直到numa与numb都有值才进行运算。
程序0-9这十个数字按钮直接用托管实现,所有执行代码置于数字键1的onclick事件中,其他按钮用托管实现。
加减乘除四个按钮实现比较复杂的判断与运算。运算是都是调用相同的计算类Computer进行计算的。
小数点和正负号按钮的实现,主要是用字符检索与字符插入删除操作,判断字符串中是否已经存在此字符。存在小数点的话就不再增加小数点,存在负号就把负号去掉。
核心代码
按钮1的代码
private void button15_Click(object sender, EventArgs e)
{//这是按钮1,其他按钮用托管实现
Button clickBtn;
clickBtn = (Button)sender;
textBox1.Text += clickBtn.Text;
num += clickBtn.Text;
}
除号按钮代码
//除号
private void button4_Click(object sender, EventArgs e)
{
SendNumber(num);
if (sign == null || numb == 10241024)
{
sign = "/";
textBox1.Text = null;
num = null;
return;
}
if (numb!= 10241024)
{
//开始进行计算
Computer ComPro = new Computer(sign,numa,numb);
this.textBox1.Text = ComPro.Comt(out numa).ToString();
//开始初始化数据
sign = "/";
textBox1.Text = null;
numb = 10241024;
num = null;
return;
}
计算类
//计算类
public class Computer
{
private string sign;
private double numa;
private double numb;
public Computer(string str, double first, double second)
{
sign = str;
numa = first;
numb = second;
}
//进行运算
public double Comt(out double  first)
{
if (sign == "+")
{
first = numa + numb;
return numa + numb;
}
else if (sign == "-")
{
first = numa - numb;
return numa - numb;
}
else if (sign == "*")
{
first = numa * numb;
return numa * numb;
}
else if (sign == "/")
{
if (numb == 0)
{
first = 1024.1024;
return first;
}
else
{
first = numa/numb;
return first;
}
}
else
{
first = 1024.1024;
return first ;
}
}
}
键盘事件(注意要在FORM1里面把键盘注册即keyPreview设置为true,还有事件里面KEY事件选KeyDown)
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.NumPad0: button20.PerformClick(); break;
case Keys.NumPad1: button15.PerformClick(); break;
case Keys.NumPad2: button14.PerformClick(); break;
case Keys.NumPad3: button13.PerformClick(); break;
case Keys.NumPad4: button10.PerformClick(); break;
case Keys.NumPad5: button9.PerformClick(); break;
case Keys.NumPad6: button8.PerformClick(); break;
case Keys.NumPad7: button1.PerformClick(); break;
case Keys.NumPad8: button2.PerformClick(); break;
case Keys.NumPad9: button3.PerformClick(); break;
case Keys.Add: button17.PerformClick(); break;
case Keys.Subtract: button12.PerformClick(); break;
case Keys.Multiply: button7.PerformClick(); break;
case Keys.Divide: button4.PerformClick(); break;
case Keys.Decimal: button19.PerformClick(); break;
case Keys.Delete: button18.PerformClick(); break;
case Keys.Enter: button16.PerformClick(); break;
default: MessageBox.Show(" 输入错误."); break;
}
}
程序运行效果
1
点击按钮3、+、3、=
显示6
点击按钮 9.0、/、3、=
显示3
[color=#008000]实验总结[/color]
通过此次实验,更好地掌握了课本学到的知识,理解面向对象的思想。其中一些按钮的实现功能需要很多判断,很好的锻炼了思维的严谨。就如等于号,要判断前后两个数字是否有输入,还有运算符。
程序源码下载:
1230131716_6437cd36
版权所有,严禁用于商业用途。

扫描二维码推送至手机访问。

版权声明:本文由萍客小居发布,如需转载请注明出处。

本文链接:https://www.piikee.net/289.html

分享给朋友:

相关文章

文件监控器

文件监控器

C#.NET开发的一个小工具,用于监控选定目录下文件的变更情况,如文件的创建,修改,重命名,删除等。如果你是一个木马病毒的玩家,这是一个不错的小工具,可以监控木马病毒在搞什么破坏~文件监控器使用须知1,如果是vista/windows 7...

flex小程序(算算你在这个世界上存活了多少天)

flex代码<code><?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxm...

U盘禁用小精灵

U盘禁用小精灵

C#.net开发的小工具,使用者电脑必须安装.net平台才可以使用。.net平台下载地址见:.NET Framework 微软官方地址 http://download.microsoft.com/download/3/F/0/3F0A922...

伪原创生成工具

伪原创生成工具

伪原创,生成工具--站长必备的工具。通过替换字符的设置,还有关键字的设置,伪原创生成工具可以把原文生成一篇伪原创文章,让搜索引擎认为你的文章是网络上独一无二的文章,从而提高你网站的权重。其次,伪原创生成会根据你设置的关键字,在文章中添加上你...

Discuz论坛批量发贴机

一、 Discuz论坛批量发贴机简介Discuz论坛批量发贴机,采用.net平台开发。该发贴机使用模块化开发,运用了多线程和xml存储技术。适用于通用的Discuz论坛程序的批量发帖。可以设置一个帖子发布到N个论坛,或者N个帖子发布到一个论...

IP地址修改器bat文件

把以下内容拷入一个记事本,并把文件后缀改为.bat即可。@echo           ################################################@echo           #####      I...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。