计算器

原创 2012年03月21日 16:24:35

一、  计算器

(一)整数计算器

步骤一:1. 向Form1中添加16个Button(数字Name:Button1至Button0;加减乘除Name:ButtonAdd,ButtonSub,ButtonMul,ButtonDiv;等号,取消Name:ButtonEqu,ButtonCan)和1个Edit组件。

        2. 利用View菜单---Alignment Palette功能使16个Button排列整齐。

步骤二:

1.      在implementation后面添加变量x,y:

           var

          x,y:integer;

2.  填写16个Button的代码:

Button1至Button0(以Button1为例):

       edit1.Text:=edit1.Text+'1';

       ButtonCan:

edit1.Text:='';

ButtonAdd:

x:=strtoint(edit1.Text);

y:=1;

edit1.Text:='';

ButtonSub:

x:=strtoint(edit1.Text);

y:=2;

edit1.Text:='';

ButtonMul:

x:=strtoint(edit1.Text);

y:=3;

edit1.Text:='';

ButtonDiv:

x:=strtoint(edit1.Text);

y:=4;

edit1.Text:='';

ButtonEqu:

case y of

 1:edit1.Text:=inttostr(x+strtoint(edit1.Text));

 2:edit1.Text:=inttostr(x-strtoint(edit1.Text));

 3:edit1.Text:=inttostr(x*strtoint(edit1.Text));

 4:edit1.Text:=inttostr(x div strtoint(edit1.Text));

 end;

设置键盘输入:

Button1---OnKeyPress事件:

if (Key>='0')and (Key<='9') then edit1.Text:=edit1.Text+Key;

if (Key='+') then

begin

x:=strtoint(edit1.Text);

y:=1;

edit1.Text:='';

end;

if (Key='-') then

begin

x:=strtoint(edit1.Text);

y:=2;

edit1.Text:='';

end;

if (Key='*') then

begin

x:=strtoint(edit1.Text);

y:=3;

edit1.Text:='';

end;

if (Key='/') then

begin

x:=strtoint(edit1.Text);

y:=4;

edit1.Text:='';

end;

if (Key='=') then

begin

case y of

1:edit1.Text:=inttostr(x+strtoint(edit1.Text));

2:edit1.Text:=inttostr(x-strtoint(edit1.Text));

3:edit1.Text:=inttostr(x*strtoint(edit1.Text));

4:edit1.Text:=inttostr(xdiv strtoint(edit1.Text));

end;

end;  //need two end

把其他15个Button--- OnKeyPress事件 设置成与Button1--- OnKeyPress相同即可。

收尾工作:

Edit1---OnEnter事件:

button1.SetFocus;

小数计算器

步骤一:1. 在整数计算器的16个Button的基础上,继续添加4个Button(小数点 Name:ButtonDot 取相反数(+/-)  Name:ButtonFu 取算术平方根(sqrt)  Name:ButtonSqrt  退出: Name: ButtonExit)        

2. 利用View菜单---Alignment Palette功能使16个Button排列整齐。

步骤二:Button1至Button0 与整数计算器的代码相同

在implementation后面添加变量x,y:

var

            x:real;

            y:integer;

ButtonDot:

   edit1.Text:=edit1.Text+'.';

   ButtonDot.Enabled:=false;

   ButtonFu:

   Edit1.Text:=floattostr(-strtofloat(edit1.Text));

   ButtonSqrt:

  edit1.Text:=floattostr(sqrt(strtofloat(edit1.Text)));

   ButtonExit:

   close;

       ButtonCan:

edit1.Text:='';

ButtonAdd:

x:=strtofloat(edit1.Text);

y:=1;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonSub:

x:=strtofloat(edit1.Text);

y:=2;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonMul:

x:=strtofloat(edit1.Text);

y:=3;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonDiv:

x:=strtofloat(edit1.Text);

y:=4;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonEqu:

   case y of

  1:edit1.Text:=floattostr(x+strtofloat(edit1.Text));

  2:edit1.Text:=floattostr(x-strtofloat(edit1.Text));

  3:edit1.Text:=floattostr(x*strtofloat(edit1.Text));

  4:edit1.Text:=floattostr(x/strtofloat(edit1.Text));

   end;  

3.  设置键盘输入:

Button1---OnKeyPress事件:

if(key>='0')and (key<='9') then edit1.Text:=edit1.Text+key;

   if(key='+') then

   begin

   x:=strtofloat(edit1.Text);

   y:=1;

   edit1.Text:='';

   end;

   if(key='-') then

   begin

   x:=strtofloat(edit1.Text);

   y:=2;

   edit1.Text:='';

   end;

   if(key='*') then

   begin

   x:=strtofloat(edit1.Text);

   y:=3;

   edit1.Text:='';

   end;

   if(key='/') then

   begin

   x:=strtofloat(edit1.Text);

   y:=4;

   edit1.Text:='';

   end;

   if(key='.') then edit1.Text:=edit1.Text+'.';

   if(key='=') then

   begin

   case y of

  1:edit1.Text:=floattostr(x+strtofloat(edit1.Text));

  2:edit1.Text:=floattostr(x-strtofloat(edit1.Text));

  3:edit1.Text:=floattostr(x*strtofloat(edit1.Text));

   4:edit1.Text:=floattostr(x/strtofloat(edit1.Text));

   end;

   end;

把其他所有Button--- OnKeyPress事件 设置成与Button1--- OnKeyPress相同即可。

收尾工作:

Button1---OnEnter事件:

button1.SetFocus;

相关文章推荐

C#小实验 - 简易计算器

实验一 计算器的制作 信息学院 网工一班 黄文彬 201130720109  一. 实验要求 1)参照Windows提供的计算器工具,设计一个与之类似的程序;   2)基本要求:实现“普通运...

编译原理-用Bison构造语法分析程序-小小计算器

问题描述: 编译原理实验要求构造语法分析程序,实现一个简单计算器的功能 实现功能: 1,基本运算 a) 加、减、乘、除 b) 乘方、开方 c) 位运算:与、或、非 d) 阶乘运算 e) 三角函数运...

jsp简单的计算器如何在本页显示数据

  • GGdido
  • GGdido
  • 2016年07月17日 21:24
  • 805

计算器vc版算法解析与源码分享

/****************************计算器解决方案与步骤***********************************/ 实验需求: 1.使用模板栈来进...

jsp实现一个简单的计算器

计算器 function checkNum(){ // alert("1");alert("0"); if(document.form1.num1...
  • yaoyy09
  • yaoyy09
  • 2012年12月29日 19:35
  • 9750

java实现简易计算器完整代码

早起起来没事,打开mac突然想写个小程序,就写来个简易的计算器,可以实现基本的运算,测试目前无bug,下面分享下自己的代码。 首先写了个简单的界面如下: 整个面板用了BorderLayout布局,...
  • sddchina
  • sddchina
  • 2015年03月08日 17:39
  • 29113

Android 计算器解析(二): 加入计算功能

上一篇博客用的CSDN默认的编辑器,感觉不怎么好用,于是用markdown写了下,结果发现markdown写出来没有CSDN原生的美观,于是又换回CSDN默认的编辑器... 上一篇博客 Andr...

第八周项目5 定期存款利息计算器

问题及代码:

Java —— 表达式计算器

Java —— 表达式计算器 在JavaScript中,我们知道有eval()这个函数,专门用来运行表达式字符串,用起来非常方便。但是在C++、Java中,就没有这么方便的工具给我们使用了。 对一个表...

Ubuntu 14.04 + QT 计算器开发实例1-----全局变量的使用以及double、字符串类型互转

本文主要记录我Ubuntu 14.04 + QT环境下的
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算器
举报原因:
原因补充:

(最多只允许输入30个字)