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

2024-05-12

1. 求:用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;

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

2. 用Delphi做计算器

var
  Form1: TForm1;
  i,j,k:real;
  jia,jian,cheng,chu,dengyu:Boolean;
  a,zf:Boolean;
implementation


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='1'
  else MaskEdit1.Text:=maskEdit1.Text+'1';

  j:=StrToFloat(MaskEdit1.Text);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='2'
  else MaskEdit1.Text:=MaskEdit1.Text+'2';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin     
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='2'
  else MaskEdit1.Text:=MaskEdit1.Text+'3';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='4'
  else MaskEdit1.Text:=MaskEdit1.Text+'4';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='5'
  else MaskEdit1.Text:=MaskEdit1.Text+'5';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='6'
  else MaskEdit1.Text:=MaskEdit1.Text+'6';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='7'
  else MaskEdit1.Text:=MaskEdit1.Text+'7';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='8'
  else MaskEdit1.Text:=MaskEdit1.Text+'8';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='9'
  else MaskEdit1.Text:=MaskEdit1.Text+'9';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='0'
  else MaskEdit1.Text:=MaskEdit1.Text+'0';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  a:=True;
  jia:=True;
  jian:=False;
  cheng:=False;
  chu:=False;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button20Click(Sender: TObject);
begin
  dengyu:=True;
  a:=True;
  MaskEdit1.Clear;
  if jia=True
  then MaskEdit1.Text:=FloatToStr(i+j)
  else if jian=True
       then MaskEdit1.Text:=FloatToStr(i-j)
  else if cheng=True
       then MaskEdit1.Text:=FloatToStr(i*j)
  else if chu=True
       then
         if j0
         then MaskEdit1.Text:=FloatToStr(i/j)
         else ShowMessage('0不能做除数');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  a:=False;
  jia:=False;
  jian:=False;
  cheng:=False;
  chu:=False;
  MaskEdit1.Text:='0';
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  a:=True;
  jia:=False;
  jian:=True;
  cheng:=False;
  chu:=False;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  a:=True;
  jia:=False;
  jian:=False;
  cheng:=True;
  chu:=False;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  a:=True;
  jia:=False;
  jian:=False;
  cheng:=False;
  chu:=True;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button17Click(Sender: TObject);
var
  s:string;
begin
  MaskEdit1.Text:=copy(MaskEdit1.Text,1,length(MaskEdit1.Text)-1);
  with MaskEdit1 do
  begin
    if (Text='') 
    then Text:='0';
  end;
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
  a:=True;
  jia:=True;
  jian:=False;
  cheng:=False;
  chu:=False;
  i:=0;
  j:=0;
  MaskEdit1.Text:='0';
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  zf:=True;
  zf:=not zf;
  if zf=True
  then MaskEdit1.Text:=FloatToStr(0+StrToFloat(maskedit1.Text))
  else MaskEdit1.Text:=FloatToStr(0-StrToFloat(maskedit1.Text));
   
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  MaskEdit1.Text:=MaskEdit1.Text+'.';
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
  a:=True;
  MaskEdit1.Text:=FloatToStr(1/strtofloat(MaskEdit1.Text));
end;

procedure TForm1.N2Click(Sender: TObject);
begin
  Button13.Click;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
  Button14.Click;
end;

procedure TForm1.N4Click(Sender: TObject);
begin
  Button15.Click;
end;

procedure TForm1.N5Click(Sender: TObject);
begin
  Button16.Click;
end;

procedure TForm1.N10Click(Sender: TObject);
begin
  Button20.Click;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
  Application.CreateForm(tForm2,form2);
  Form2.ShowModal;
end;

procedure TForm1.N8Click(Sender: TObject);
begin
  Form3.ShowModal;
  //Application.MessageBox('这也要帮助!你也太没水平了吧!','鄙视你',MB_OK);
end;

procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  //如果用户输入的不是0-9,退格键和回车键则输入的字符无效
  if not (Key in['0'..'9',#8,#13])
  then key:=#0;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Length(MaskEdit1.Text)>30
  then
    begin
      if Key=#8
      then Button17.Click;
      Key:=#0;
    end; 

  Form1.KeyPreview:=True;
  if Key in ['1']
  then Button1.Click
  else if Key in['2']
       then Button2.Click
  else if Key in['3']
       then Button3.Click
  else if Key in['4']
       then Button4.Click
  else if Key in['5']
       then Button5.Click
  else if key in ['6']
       then Button6.Click
  else if Key in ['7']
       then Button7.Click
  else if key in ['8']
       then Button8.Click
  else if key in ['9']
       then button9.Click
  else if key in ['0']
       then button10.Click
  else if Key=#107
       then Button13.Click
  else if Key=#109
       then Button14.Click
  else if Key=#106
       then Button15.Click
  else if Key=#111
       then Button16.Click
  else if Key in [#103,#13,#187]
       then Button20.Click
  else if Key =#8
       then Button17.Click
  else if Key =#46
       then button18.Click;
end;

end.

3. delphi计算器之数学函数(一个简单的问题)

abs(x)    绝对值
arctan(x) 反正切
cos(x)
exp(x)    e的x次幂
frac(x)   取小数部分
int(x)    取整
ln(x)     自然对数
sin(x)
sqr(x)    x*x
sqrt(x)   平方根
pred(x)   pred('D')='C', pred(true)=1;
succ(x)   succ('Y')='Z', succ(pred(x))=x
ord(x)    求x在字符集中的序号,如ord('A')=65
chr(x)    chr(65)='A'
round(x)  四舍五入
trunc(x)  trunc(4.8)=4,trunc('-3.6')=-3
upcase(x) upcase('a')='A'

delphi计算器之数学函数(一个简单的问题)

4. 求delphi 7编写的简单计算器、音乐播放器、通讯录?最好简单一点的代码,谢谢。

计算器:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;type TForm1 = class(TForm)  Panel1: TPanel;  SpeedButton1: TSpeedButton;  SpeedButton2: TSpeedButton;  SpeedButton3: TSpeedButton;  SpeedButton4: TSpeedButton;  SpeedButton5: TSpeedButton;  SpeedButton6: TSpeedButton;  SpeedButton7: TSpeedButton;  SpeedButton8: TSpeedButton;  SpeedButton9: TSpeedButton;  SpeedButton10: TSpeedButton;  SpeedButton11: TSpeedButton;  SpeedButton12: TSpeedButton;  SpeedButton13: TSpeedButton;  SpeedButton14: TSpeedButton;  SpeedButton15: TSpeedButton;  SpeedButton16: TSpeedButton;  Edit1: TEdit;  SpeedButton17: TSpeedButton;  procedure SpeedButton1Click(Sender: TObject);  procedure SpeedButton12Click(Sender: TObject);  procedure SpeedButton13Click(Sender: TObject);  procedure SpeedButton17Click(Sender: TObject);  procedure FormKeyPress(Sender: TObject; var Key: Char); private  { Private declarations } public  { Public declarations } end; var Form1: TForm1; implementation{$R *.dfm}var Flag: Boolean = True; //。标记位 Flag1: Integer = 1; //计算方法标志位 num1, num2, result: Real; flagresult: Boolean = False; procedure TForm1.SpeedButton1Click(Sender: TObject);var str: string;begin str := Edit1.Text; if (Length(str) = 1) and (str = '0') then  Edit1.Clear; Edit1.Color := clBlue; if ((Sender as TSpeedButton).Caption = '.') then  begin   if Flag then    begin     Edit1.Text := Edit1.Text + (sender as TSpeedButton).Caption;     Flag := False;    end  end else  Edit1.Text := Edit1.Text + (sender as TSpeedButton).Caption;end;procedure TForm1.SpeedButton12Click(Sender: TObject);begin Edit1.Color := clRed; num2 := StrToFloatDef(Edit1.Text, 0.00); case Flag1 of  1: result := num1 + num2;  2: result := num1 - num2;  3: result := num1 * num2;  4: if num2 = 0 then    begin     MessageBox(0, '除数为0', '', 0);     result := 0;    end   else    result := num1 / num2; end; Edit1.Text := FloatToStr(result);end;procedure TForm1.SpeedButton13Click(Sender: TObject);begin Flag1 := (Sender as TSpeedButton).Tag; num1 := StrToFloatDef(Edit1.Text, 0.00); Edit1.Text := '0';end;procedure TForm1.SpeedButton17Click(Sender: TObject);begin Flag := True; //。标记位 Flag1 := 1; //计算方法标志位 num1 := 0; num2 := 0; result := 0; Edit1.Text := '0';end;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);begin case key of  '1': SpeedButton1.Click;  '2': SpeedButton2.Click;  '3': SpeedButton3.Click;  '4': SpeedButton4.Click;  '5': SpeedButton5.Click;  '6': SpeedButton6.Click;  '7': SpeedButton7.Click;  '8': SpeedButton8.Click;  '9': SpeedButton9.Click;  '0': SpeedButton10.Click;  '.': SpeedButton11.Click;  '+': SpeedButton13.Click;  '-': SpeedButton14.Click;  '*': SpeedButton15.Click;  '/': SpeedButton16.Click; end;end;end.

5. delphi 制作计算器

//不知道你这程序是干什么用的,但里面的错误不少
//我只对明显的错误进行了修改,并在错误语句后加了注释,你看看
procedure TForm1.Button4Click(Sender: TObject);
begin
 if b=0 then
   b:=StrToint(edit1.Text);
  if c='+'
    then  begin  //这里要加begin和end
        edit1.Text:=intToStr(a+b);
        a:=StrToint(edit1.Text) ;
        exit;
    end;
   if c='/'
    then  begin  //这里也要加begin和end
    if b=0  then edit1.Text:='cuowu'   else
    if
    b0
    then edit1.Text:=FloatToStr(b / a);  //b是除数,应该是a / b吧?

        a:=round(StrToFloat(edit1.Text)) ;  //除法的结果不能保证是整数吧?只能取近似值了
    end;
end;

delphi 制作计算器

6. 求一个简易计算器的DELPHI程序

网上类似的例程很多,这里也不方便贴代码。请参考:http://wenku.baidu.com/view/3de0781fc5da50e2524d7fb2.html

7. 一个关于delphi编写的简单计算器的问题,高手帮我看看哪里不对?

Sender是一个事件句柄。

程序计算前,先判断statictext1.Caption是否为加,减,乘,除,如果是,执行相应的计算。 

源码修改后如下:
       unit Untjisuanqi;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    StaticText1: TStaticText;
    Button1: TButton;
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
statictext1.Caption:=Tspeedbutton(sender).Caption;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
statictext1.Caption:=Tspeedbutton(sender).Caption;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
statictext1.Caption:=Tspeedbutton(sender).Caption;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
statictext1.Caption:=Tspeedbutton(sender).Caption;
end;

procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
statictext1.Caption:=Tspeedbutton(sender).Caption;
end;

procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
statictext1.Caption:=Tspeedbutton(sender).Caption;
end;


procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
if trim (statictext1.Caption)= '+' then
    edit3.Text:=floattostr(strtofloat(edit1.text)+strtofloat(edit2.text));
if trim (statictext1.Caption)='-'  then
    edit3.Text:=floattostr(strtofloat(edit1.text)-strtofloat(edit2.text));
if trim (statictext1.Caption)= '*' then
    edit3.Text:=floattostr(strtofloat(edit1.text)*strtofloat(edit2.text));
if trim (statictext1.Caption)= '/' then
    edit3.Text:=floattostr(strtofloat(edit1.text)/strtofloat(edit2.text));
if trim (statictext1.Caption)= 'pow' then
    edit3.Text:=floattostr(power(strtofloat(edit1.text
    ),strtofloat(edit2.text)));
if trim (statictext1.Caption)= 'sqrt' then
    edit3.Text:=floattostr(sqrt(strtofloat(edit1.text)));

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.Clear;
  edit2.Clear;
  edit3.Clear;
  statictext1.Caption:='';

end;

end.

一个关于delphi编写的简单计算器的问题,高手帮我看看哪里不对?

8. 急! 帮忙用Delphi编写个计算器好吗 谢谢!!

又发了一遍