如何用Delphi制作一个加法计算器

2024-05-16 01:52

1. 如何用Delphi制作一个加法计算器

如果只是个位数的加法的话,思路可以这样:
先定义一个全局状态变量,比如bFi,并置为真,然后分别给123三个按钮添加代码为:
如果bFi为真,框1出现对应按钮的数字,否则框2出现。
给“+”按钮添加代码为:置bFi为假。
给“=”按钮添加代码为:
框3 = 框1.值 + 框2.值;
bFi置为真。

如果是多位数的加法,比如213+132=?,就要在123按钮的代码中使用字符串处理来将按钮的数据添加在对应框内容的末尾,其他一样处理。

如何用Delphi制作一个加法计算器

2. 用delphi做一个简单计算器

试试这个

unit Unit1;

interface

uses
  Windows,  Messages,  SysUtils,  Classes,  Graphics,  Controls,  Forms,  Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure SetEditText(info: string);
    { Private declarations }
  public
    { Public declarations }
  end;
type //自定义一个Tcompute的类

  Tcompute = object
  private //保护类中成员数据的安全

    temp1: double;
    temp2: double;
    temp3: double;
    sign: Char;

  public //把类中的成员函数进行共享


    function Add(x: double; y: double): Double;
    function Sub(x: double; y: double): Double;
    function Mult(x: double; y: double): Double;
    function Dived(x: double; y: double): Double;

  end;
var
  Form1: TForm1;
  Info: Tcompute; //声明Info是类Tcompute的对象
  oldinfo:string;


implementation

function Tcompute.Add(x: double; y: double): Double; //进行类的定义与实现

begin
  Result := x + y;
end;

function Tcompute.Sub(x: double; y: double): Double;
begin
  Result := x - y;
end;

function Tcompute.Mult(x: double; y: double): Double;
begin
  Result := x * y;
end;

function Tcompute.Dived(x: double; y: double): Double;
begin
  if (y = 0) then begin
    Form1.Edit1.text:='1111111111';
     //ShowMessage('除数不能为0!'); //这里判断除数不能为0
    Result := x;
  end else
    Result := x / y;
end;

{$R *.dfm}

procedure TForm1.Button4Click(Sender: TObject);
begin
  oldinfo := '';
  SetEditText('');
  Info.sign := ' ';
  Info.temp1 := 0;
  Info.temp2 := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetEditText('7');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetEditText('8');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  SetEditText('9');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  SetEditText('4');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  SetEditText('5');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  SetEditText('6');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  SetEditText('1');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  SetEditText('2');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  SetEditText('3');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  SetEditText('0');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '+';
  oldinfo := '';
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '-';
  oldinfo := '';
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '*';
  oldinfo := '';
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '/';
  oldinfo := '';
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
  if Info.sign' ' then oldinfo := '';
  if (Info.sign = '+') then
    SetEditText(FloatToStr(Info.Add(Info.temp2, Info.temp1)))
  else if (Info.sign = '-') then
    SetEditText(FloatToStr(Info.Sub(Info.temp2, Info.temp1)))
  else if (Info.sign = '*') then
    SetEditText(FloatToStr(Info.Mult(Info.temp2, Info.temp1)))
  else if (Info.sign = '/') then
    SetEditText(FloatToStr(Info.Dived(Info.temp2, Info.temp1)));
  if Edit1.Text'' then
    Info.temp1 := StrToFloat(Edit1.Text);
  Info.sign := ' ';
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  SetEditText('.');
  Info.temp1 := StrToFloat(Edit1.Text);
end;

procedure TForm1.SetEditText(info:string);
begin
  Edit1.Text := oldinfo + info;
  oldinfo := Edit1.Text;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  oldinfo := '';
end;

end.

3. delphi7制作计算器怎么设置加减乘除?

“=”不是一个按钮么?那么在它的click事件里写下你计算的代码就行了,这是最简单的方式。
按照你的这个界面设计,需要三个全局变量来处理,一个存储被处理的数,一个存储运算符号,一个存储处理数,每次按钮按下的时候只要判断存储运算符号的变量是社么就行了。PS:不建议初学者这么写计算器,因为需要你判断的逻辑太多,不如用三个输入框来处理来的明确!

delphi7制作计算器怎么设置加减乘除?

4. 怎么样用delphi7做简单计算器

加几个按钮  写上加减乘除等符号

分别在各按钮里写计算事件就行了

如果要偷懒,不用管如何写,那就用raize里面的TRzCalculator就可以了 直接拖下来就是个计算器,不用一行代码

5. 求高手解答:用delphi编写一个计算器的整个过程!~

你在知道里用"计算器"作关键字搜索一下,就是近十天内,我给别人写了一个计算器的全部代码,不过那人没有选择我的,选择了一歪的.
不过,现在谁还用计算器,用EXCEL方便的不的了.
如果搜不到,请说一声,全部代码都在.

求高手解答:用delphi编写一个计算器的整个过程!~

6. 求高手解答:用delphi编写一个计算器的整个过程!~

页面设计 就是功能的反馈,计算器的作用是与用户交互做数据运算,就说明需要有交互方面的东西 也就是数字按钮和运算符号按钮,结果输出需要有一个文本框,然后按照人们习惯或者审美观点 做成一个界面,再根据各个按钮的功能添加相应的代码,就是 + - * / 的运算
网页版的计算器是通过css与js实现的,功能和界面上可以完全一样
网页的优点是应用范围广,限制少,你打开网页就可以用,在linux,mac上也可以用,在网页输入的时候也可以调用
缺点就是一旦上不去网,就只能用单机版的计算器了
就简单的计算器而言,效率问题可以不用考虑

7. delphi设计计算器如何实现连加功能

方法1 
 用全局变量保存临时计算结果 
按下=号或+号的时候 就计算并显示临时计算结果

方法2
 在计算栏这个edit1  显示你按键的计算公式
例如  1+3+5+11
则 edit1.text:='1+3+5+11';
最后点击=号时  根据+号分割字符串  循环累加
方法2的注意事项是
1  连续按2个+号时  程序得判断一下 末尾是否是+ 如果不是 才添加+
 2 按=号 计算时 如果最后一个符号是+号 就少计算一步

delphi设计计算器如何实现连加功能

8. 求:用delphi编写一个计算器!~

so easy
我只写思路 
(0-9 . 10个键, 一个eidt1.text 做显示屏, + - * / = 归零 6个功能键)
var 
n:integer //四则运算
s1:string;

+; s1:=edit1.text a:=1 edit1.clear;//把+号前面字符串存入s1
-: s1:=edit1.text a:=2 edit1.clear;
*: s1:=edit1.text a:=3 edit1.clear;
/: s1:=edit1.text a:=4 edit1.clear;
归零:edit1.clear; //不显示 也可以显示0 不过0-9 要多了一个if
0-9:  edit1.text=edit1.text+(0-9) //
.:    if edit1.text=''then                                     edit1.text='0.'   else  edit1.text=edit1.text+'.';
// 前面的是按钮 懒的写全 带冒号的全是按钮点击事件 后面是=号的代码

begin
case n of
1: edit1.text:=inttostr(strtoint(s1)+strtoint(edit1.text));
2: edit1.text:=inttostr(strtoint(s1)-strtoint(edit1.text));
3: edit1.text:=inttostr(strtoint(s1)*strtoint(edit1.text));
4: begin
if edit1.text=0 then showmessage('不能被整除')
   else edit1.text:=inttostr(strtoint(s1)/strtoint(edit1.text));
   end;
end;
end;