delphi编写计算器实验报告一(共17页).doc

上传人:飞****2 文档编号:12184486 上传时间:2022-04-24 格式:DOC 页数:17 大小:49KB
返回 下载 相关 举报
delphi编写计算器实验报告一(共17页).doc_第1页
第1页 / 共17页
delphi编写计算器实验报告一(共17页).doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《delphi编写计算器实验报告一(共17页).doc》由会员分享,可在线阅读,更多相关《delphi编写计算器实验报告一(共17页).doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上实 验 报 告 学号: 姓名:林燕玉 专业:08信管 班级: 第 8 周 课程名称 面向对象程序设计实验课时6实验项目简易计算器实验时间2010-4-9至2010-4-23实验目的 1、掌握DELPHI函数和过程的定义及使用方法2、熟练使用全局变量和局部变量进行程序设计 实验环境 1、 Windows Xp2、 DELPHI 7实验内容和完成情况实验内容:unit U4_9;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,

2、StdCtrls;type TForm1 = class(TForm) 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; Button1

3、5: TButton; Button16: TButton; Button17: TButton; Button18: TButton; Button19: TButton; edit1: TEdit; procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TO

4、bject); procedure Button11Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button17Click(Sender: TObject); procedure Button19Click(Sender: TObject); procedure Button1Click(Sender: TObject);

5、 procedure Button2Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button18Click(Sender: TObject); procedure Button3Click(Sender: TObject); private P

6、rivate declarations public Public declarations end;var Form1: TForm1; num1,num2:real; ittype:integer; flag:boolean=true; new:boolean=true;implementation$R *.dfmprocedure TForm1.Button5Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+7 else begin edit1.clear; edit1.Text:=edit1.Text+7;f

7、lag:=true;new:=true; end;end;procedure TForm1.Button6Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+8 else begin edit1.clear; edit1.Text:=edit1.Text+8;flag:=true;new:=true; end;end;procedure TForm1.Button7Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+9 else begin e

8、dit1.clear; edit1.Text:=edit1.Text+9;flag:=true;new:=true; end;end;procedure TForm1.Button9Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+4 else begin edit1.clear; edit1.Text:=edit1.Text+4;flag:=true; new:=true; end;end;procedure TForm1.Button10Click(Sender: TObject);begin if new th

9、en edit1.Text:=edit1.Text+5 else begin edit1.clear; edit1.Text:=edit1.Text+5;flag:=true;new:=true; end;end;procedure TForm1.Button11Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+6 else begin edit1.clear; edit1.Text:=edit1.Text+6;flag:=true;new:=true; end;end;procedure TForm1.Button

10、13Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+1 else begin edit1.clear; edit1.Text:=edit1.Text+1;flag:=true;new:=true; end;end;procedure TForm1.Button14Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+2 else begin edit1.clear; edit1.Text:=edit1.Text+2;flag:=true;ne

11、w:=true; end;end;procedure TForm1.Button15Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+3 else begin edit1.clear; edit1.Text:=edit1.Text+3;flag:=true;new:=true; end;end;procedure TForm1.Button17Click(Sender: TObject);begin if new then edit1.Text:=edit1.Text+0 else begin edit1.clear

12、; edit1.Text:=edit1.Text+0;flag:=true;new:=true; end;end;procedure TForm1.Button19Click(Sender: TObject);begin if strpos(pchar(edit1.text),.)=nil then edit1.Text:=edit1.Text+.;end;procedure TForm1.Button1Click(Sender: TObject);begin ittype:=3; if flag then begin num1:=strtofloat(edit1.Text); edit1.c

13、lear; flag:=false; end else begin Button16Click(Sender); edit1.Clear; flag:=false; end;end;procedure TForm1.Button2Click(Sender: TObject);begin ittype:=4; if flag then begin num1:=strtofloat(edit1.Text); edit1.clear; flag:=false; end else begin Button16Click(Sender); edit1.Clear; flag:=false; end;en

14、d;procedure TForm1.Button8Click(Sender: TObject);begin ittype:=1; if flag then begin num1:=strtofloat(edit1.Text); edit1.clear; flag:=false; end else begin Button16Click(Sender); edit1.Clear; flag:=false; end;end;procedure TForm1.Button12Click(Sender: TObject);begin ittype:=2; if flag then begin num

15、1:=strtofloat(edit1.Text); edit1.clear; flag:=false; end else begin Button16Click(Sender); edit1.Clear; flag:=false; end;end;procedure TForm1.Button16Click(Sender: TObject);begin new:=false; case ittype of 1:num2:=num1+strtofloat(edit1.text); 2:num2:=num1-strtofloat(edit1.text); 3:num2:=strtofloat(e

16、dit1.text)*num1; 4:if strtofloat(edit1.text)=0 then begin showmessage(除数为0!); exit; end else num2:=num1/strtofloat(edit1.text); end; edit1.text:=floattostr(num2); num1:=num2;end;procedure TForm1.Button4Click(Sender: TObject);begin edit1.text:=; flag:=true; new:=true;end;procedure TForm1.Button18Clic

17、k(Sender: TObject);begin edit1.Text:=edit1.Text+-;end;procedure TForm1.Button3Click(Sender: TObject);Begin edit1.Text:=copy(edit1.Text,1,length(edit1.text)-1); end; end.实验完成情况:本实验可实现的是一个简易计算器的加减乘除:l 定义两个全局变量num1,num2,任意按下1、2、3、4、5、6、7、8、9、0、-/=、. 向edit1.Text中输入一个数赋给num1,将edit1.Text清空;l 再按下你所要做的算法(+、

18、-、*、/),再任意按下1、2、3、4、5、6、7、8、9、0、-/=、. 可向edit1.text中输入另一个数,可直接按下 = ,即可求出结果。l 若想实现连续几个数相加减乘除(如1+2+3+4+5+10=?),本程序也做出了初步的实现。在程序中定义两个boolean(布尔)类型的全局变量flag、new :根据变量flag的true、false来控制+(-、*、/)号是否是第一次按下,在第二次按下+(-、*、/)的情况下可通过调用按钮 = 的函数(即Button16Click(Sender))来实现连续几个数的相加减乘除;根据变量new的true、false来判断edit.text中的数

19、是一个新输入的数还是一个运算的结果,若为运算结果的数,可直接将edit1.text清空再显示新输入的数。l 按钮 ON 是将edit1.text清空,使运算可以重新进行;按钮 CE 是退一格的意思,即如:输入78,按下CE就可将8删除,剩余7可继续做一切运算,按钮CE可重复使用。 出现的问题 1.本程序不能实现加减乘除在同一个运算式中同时使用,如“1+2*3=”,它的结果就是随机的一个数;2.在本程序中对于局部变量和全局变量有点混合不清,用起来很不熟悉,导致总是出现编译错误;在使用boolean(布尔)类型时,思维不够清晰,有时对怎样正确的使用true、false都搞昏掉了。3.对delphi

20、的学习还是不够深入,思路不够清晰,思维不够明了。解决方案 1.若想实现加减乘除在同一个运算式中使用,可在 = 函数(即procedure TForm1.Button16Click(Sender: TObject))中再编写一段关于+、-、*、/ 相互套用的代码,这个对于我这初学者来说难了点。2.认真学习,一定要弄懂局部变量和全局变量之间的区别,正确的理解与运用;对于boolean(布尔)类型,要正确的明白所定义的变量在程序中的作用,理清思路,必要是要在草稿纸上条例明文的确立整体过程,为编写程序奠定基础。3.平时多看看关于delphi的程序设计,理解一些函数、变量的使用,尽量的去独立思考,不懂之处多问,也要加强对delphi习题的练习。小 结 通过本次程序设计,让自己更明白了学的不够,理解的不够,练的不够。在编写程序时总是思维局限,思路不够清晰。在往后学习delphi的过程中,要真正的去理解相关代码的含义做到学以致用,从而去巩固知识。这次编写计算器,总的来说自己学的有限,编写所实现的功能也有限,希望通过以后的学习可以再来完善这个程序。指导老师评 议 成绩评定: 指导教师签名:专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁