计算器

原创 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++】C++顺序栈实现的计算器

实现原理 该计算器数据存储是通过声明一个栈模板,来创建一个int类型和char类型的栈。int栈存储表达式中的数字,char类型的栈存储表达式中的运算符。   在输入表达式时,通过在表达式首尾添...
  • White_Idiot
  • White_Idiot
  • 2016年09月08日 14:05
  • 7238

IOS实现小型计算器

对于初学者来说在编辑一款在IOS操作系统上可以运行的计算器对于鼓舞大家的士气很有必要,但是网上有好多的计算器虽然功能很强大,但是对于初学者 来说难于理解,所以作为曾经的一名初学者,我做了一个简单的计算...
  • HHL110120
  • HHL110120
  • 2013年12月10日 19:46
  • 2014

linux命令行计算器

下面总结linux下的三个命令,来介绍一下linux下的计算方法: 1)bc bc在默认的情况下是个交互式的指 令。在bc工作环境下,可以使用以下计算符号: + 加法 - 减法 * 乘法 /...
  • Hynial
  • Hynial
  • 2015年09月15日 17:26
  • 2260

python3实现计算器基本功能

用Python3写一个计算器:实现基本功能如+,-,*,/,^, 要注意的是:输入含有括号( ),小数点 .思路就是逆波兰表达式的算法: 从中缀式的左端开始逐个读取字符x,逐序进行如下步骤: ...
  • qq_15015129
  • qq_15015129
  • 2017年07月11日 19:23
  • 2467

C#编写的计算器程序(仿windows自带的计算器)

C#初学者,水平肯定是比较差的,欢迎大家批评指正!(开发环境visual studio2010,源代码下载地址:http://pan.baidu.com/s/1skOZGhZ) 废话不多数,上图上代...
  • yuren_xia
  • yuren_xia
  • 2017年09月05日 16:16
  • 984

一个比较好的Java写的计算器代码

import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt....
  • iliya
  • iliya
  • 2010年06月14日 01:43
  • 81829

设计模式——工厂模式在开发中的应用(简单计算器)

下面以一个简单的计算器为例子来说明,怎么用工厂模式。 如果你没有用任何设计模式,你可能会这样写: package com.meritit; import java.util.Scanner; pu...
  • lxq_xsyu
  • lxq_xsyu
  • 2013年08月10日 22:16
  • 2995

仿安居客房贷计算器

最近领导分配了一个房贷计算器的需求给我,我将安居客的房贷计算器拷贝下来了,在本地能运行,导入到项目就各种报错,它的js用不了,没办法只有自己写js了,样式用的是安居客的样式,当然导入进来难免有些样式冲...
  • wangwei2043869
  • wangwei2043869
  • 2015年10月14日 12:04
  • 1989

Swift 实践之简单计算器

使用Storyboard快速而又方便的进行控件的布局,功能操作简单的进行一些运算;代码实现// // ViewController.swift // Swift_Calculator // // ...
  • qq_29284809
  • qq_29284809
  • 2016年03月04日 16:13
  • 2033

ubuntu 计算器xcalc

xcalc 管理员在2009年8月13日编辑了该文章文章。 --> ...
  • kelsel
  • kelsel
  • 2016年10月08日 17:35
  • 314
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算器
举报原因:
原因补充:

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