新手求教DEPHIE简易计算机的代码
delphi吧
全部回复
仅看楼主
level 2
能实现加减乘除和退空,希望不要太长,谢谢
最好能有注释
2016年01月02日 01点01分 1
吧务
level 14
淘宝欢迎你
2016年01月02日 04点01分 2
level 1
本人最开始学delphi写的计算机程序,除了退空没有,乘除是可以直接加上去的
unit Count;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm2 = class(TForm)
btn1: TBitBtn;
btn2: TBitBtn;
btn3: TBitBtn;
edt1: TEdit;
btn4: TBitBtn;
btn5: TBitBtn;
BitBtn1: TBitBtn;
btn6: TBitBtn;
btn7: TBitBtn;
btn8: TBitBtn;
btn9: TBitBtn;
btn10: TBitBtn;
btn11: TBitBtn;
btn12: TBitBtn;
btn13: TBitBtn;
btn14: TBitBtn;
btn15: TBitBtn;
btn16: TBitBtn;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure btn7Click(Sender: TObject);
procedure btn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure btn6Click(Sender: TObject);
procedure btn8Click(Sender: TObject);
procedure btn9Click(Sender: TObject);
procedure btn10Click(Sender: TObject);
procedure btn11Click(Sender: TObject);
procedure btn14Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
var
Str1 : String ; //“接受数字”
Str2 : String ; //“接受数字”
Flag1 : Integer ; //“计算前一次的运算”
Num1 : Integer ; //“决定用str1或str2”
Num2 : Integer ;
Flag : Integer ; //“区别是第几位数字”
//Flag1 : Integer;
procedure TForm2.BitBtn1Click(Sender: TObject); //"4"
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '4' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '4';
Str2 := edt1.Text
end;
end;
procedure TForm2.btn10Click(Sender: TObject); //"9"
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '9' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '9';
Str2 := edt1.Text
end;
end;
var
Subtraction: Integer;
procedure TForm2.btn11Click(Sender: TObject); //"-"
begin
Subtraction :=2;
if Num1=0 then //“清楚上一位数字”
begin
Num1 :=1 ;
edt1.Clear ;
end;
Num2 :=Num2 + 1 ;
if Str1 <> '' then
begin
if Num2 > 1 then
begin
edt1.Clear ;
case Flag1 of
1:
begin
edt1.Text := IntToStr( StrToInt(Str2) + StrToInt(str1) ); //"+"
end;
2:
begin
edt1.Text := IntToStr( StrToInt(Str2) - StrToInt(str1) ); //"-"
end;
end;
Str1 := '' ;
//Flag1 :=Subtraction ;
Str2 := edt1.Text ;
Flag := Flag +1 ;
Flag1 := 2 ;
end ;
end
else
begin
edt1.Text := '-' ;
Flag1 := 2 ;
end ;
end;
procedure TForm2.btn14Click(Sender: TObject);
begin
edt1.Clear ;
Num2 := 0 ;
Num1 := 0 ;
Flag := 0 ;
Flag1 := 0 ;
Str1 := '' ;
Str2 := '' ;
end;
procedure TForm2.btn1Click(Sender: TObject); //"1"
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '1' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '1';
Str2 := edt1.Text
end;
end;
procedure TForm2.btn2Click(Sender: TObject); //"2"
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '2' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '2';
Str2 := edt1.Text
end;
end;
var
Addtion: Integer;
procedure TForm2.btn3Click(Sender: TObject); //"+"
begin
//Addtion := 1 ;
if Num1=0 then //“清楚上一次输入数字”
begin
Num1 :=1 ;
edt1.Clear ;
end;
Num2 :=Num2 + 1 ;
if Str1 <> '' then
begin
if Num2 > 1 then
begin
//edt1.Clear ;
case Flag1 of
1: edt1.Text :=IntToStr( StrToInt(Str2) + StrToInt(str1) ); //"+"
2: edt1.Text :=IntToStr( StrToInt(Str2) - StrToInt(str1) ); //"-"
end;
Str2 := edt1.Text ;
Flag := Flag +1 ;
Str1 := '' ;
Flag1 := 1 ;
end ;
end
else
begin
edt1.Text := '+' ;
Flag1 := 1 ;
end ;
end;
procedure TForm2.btn4Click(Sender: TObject);
begin
edt1.Text :=IntToStr( StrToInt(Str1)+StrToInt(str2) );
end;
procedure TForm2.btn5Click(Sender: TObject); //"3"
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '3' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '3';
Str2 := edt1.Text
end;
end;
procedure TForm2.btn6Click(Sender: TObject); //"5"
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '5' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '5';
Str2 := edt1.Text
end;
end;
procedure TForm2.btn7Click(Sender: TObject); //"6";
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '6' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '6';
Str2 := edt1.Text
end;
end;
procedure TForm2.btn8Click(Sender: TObject); //"7"
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '7' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '7';
Str2 := edt1.Text
end;
end;
procedure TForm2.btn9Click(Sender: TObject); //"8";
begin
if Flag = 1 then
begin
edt1.Clear ;
Flag := 0
end;
if Num1>0 then
begin
if str1 = '' then
edt1.Clear ;
edt1.Text := edt1.Text + '8' ;
Str1 := edt1.Text
end
else
begin
edt1.Text := edt1.Text + '8';
Str2 := edt1.Text
end;
end;
procedure TForm2.FormCreate(Sender: TObject); //“界面 ”
begin
Num2 := 0 ;
Num1 := 0 ;
Flag := 0 ;
Str1 := '';
Str2 := '';
Flag1 := 0 ;
end;
end.
2016年01月02日 10点01分 3
level 8
需要帮助?
2016年01月11日 07点01分 8
level 13
事实上要写好这个看上去最简单的四则运算,背后的算法还是挺费脑筋的,不过值得初学入手,对于编程是很好的训练。
2016年01月13日 08点01分 11
回复 哥是W单身 :是有专门的算法,需要仔细研究一下,里面涉及到编程的许多技巧。
2016年01月31日 05点01分
1