delphi编写计算器实验报告一.docx
- 文档编号:6770407
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:12
- 大小:17.24KB
delphi编写计算器实验报告一.docx
《delphi编写计算器实验报告一.docx》由会员分享,可在线阅读,更多相关《delphi编写计算器实验报告一.docx(12页珍藏版)》请在冰豆网上搜索。
delphi编写计算器实验报告一
实验报告
学号:
080304041姓名:
林燕玉专业:
08信管班级:
____第8周
课程名称
面向对象程序设计
实验课时
6
实验项目
简易计算器
实验时间
2010-4-9至2010-4-23
实验目的
1、掌握DELPHI函数和过程的定义及使用方法
2、熟练使用全局变量和局部变量进行程序设计
实验环境
1、WindowsXp
2、DELPHI7
实验内容和完成情况
实验内容:
unitU4_9;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,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;
Button15:
TButton;
Button16:
TButton;
Button17:
TButton;
Button18:
TButton;
Button19:
TButton;
edit1:
TEdit;
procedureButton5Click(Sender:
TObject);
procedureButton6Click(Sender:
TObject);
procedureButton7Click(Sender:
TObject);
procedureButton9Click(Sender:
TObject);
procedureButton10Click(Sender:
TObject);
procedureButton11Click(Sender:
TObject);
procedureButton13Click(Sender:
TObject);
procedureButton14Click(Sender:
TObject);
procedureButton15Click(Sender:
TObject);
procedureButton17Click(Sender:
TObject);
procedureButton19Click(Sender:
TObject);
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureButton8Click(Sender:
TObject);
procedureButton12Click(Sender:
TObject);
procedureButton16Click(Sender:
TObject);
procedureButton4Click(Sender:
TObject);
procedureButton18Click(Sender:
TObject);
procedureButton3Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
num1,num2:
real;
ittype:
integer;
flag:
boolean=true;
new:
boolean=true;
implementation
{$R*.dfm}
procedureTForm1.Button5Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'7'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'7';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button6Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'8'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'8';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button7Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'9'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'9';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button9Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'4'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'4';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button10Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'5'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'5';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button11Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'6'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'6';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button13Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'1'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'1';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button14Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'2'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'2';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button15Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'3'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'3';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button17Click(Sender:
TObject);
begin
ifnewthen
edit1.Text:
=edit1.Text+'0'
else
begin
edit1.clear;
edit1.Text:
=edit1.Text+'0';
flag:
=true;
new:
=true;
end;
end;
procedureTForm1.Button19Click(Sender:
TObject);
begin
ifstrpos(pchar(edit1.text),'.')=nilthen
edit1.Text:
=edit1.Text+'.';
end;
procedureTForm1.Button1Click(Sender:
TObject);
begin
ittype:
=3;
ifflagthen
begin
num1:
=strtofloat(edit1.Text);
edit1.clear;
flag:
=false;
end
else
begin
Button16Click(Sender);
edit1.Clear;
flag:
=false;
end;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
ittype:
=4;
ifflagthen
begin
num1:
=strtofloat(edit1.Text);
edit1.clear;
flag:
=false;
end
else
begin
Button16Click(Sender);
edit1.Clear;
flag:
=false;
end;
end;
procedureTForm1.Button8Click(Sender:
TObject);
begin
ittype:
=1;
ifflagthen
begin
num1:
=strtofloat(edit1.Text);
edit1.clear;
flag:
=false;
end
else
begin
Button16Click(Sender);
edit1.Clear;
flag:
=false;
end;
end;
procedureTForm1.Button12Click(Sender:
TObject);
begin
ittype:
=2;
ifflagthen
begin
num1:
=strtofloat(edit1.Text);
edit1.clear;
flag:
=false;
end
else
begin
Button16Click(Sender);
edit1.Clear;
flag:
=false;
end;
end;
procedureTForm1.Button16Click(Sender:
TObject);
begin
new:
=false;
caseittypeof
1:
num2:
=num1+strtofloat(edit1.text);
2:
num2:
=num1-strtofloat(edit1.text);
3:
num2:
=strtofloat(edit1.text)*num1;
4:
ifstrtofloat(edit1.text)=0then
begin
showmessage('除数为0!
');
exit;
end
else
num2:
=num1/strtofloat(edit1.text);
end;
edit1.text:
=floattostr(num2);
num1:
=num2;
end;
procedureTForm1.Button4Click(Sender:
TObject);
begin
edit1.text:
='';
flag:
=true;
new:
=true;
end;
procedureTForm1.Button18Click(Sender:
TObject);
begin
edit1.Text:
=edit1.Text+'-';
end;
procedureTForm1.Button3Click(Sender:
TObject);
Begin
edit1.Text:
=copy(edit1.Text,1,length(edit1.text)-1);
end;
end.
实验完成情况:
本实验可实现的是一个简易计算器的加减乘除:
●定义两个全局变量num1,num2,任意按下1、2、3、4、5、6、7、8、9、0、-/=、.向edit1.Text中输入一个数赋给num1,将edit1.Text清空;
●再按下你所要做的算法(+、-、*、/),再任意按下1、2、3、4、5、6、7、8、9、0、-/=、.可向edit1.text中输入另一个数,可直接按下=,即可求出结果。
●若想实现连续几个数相加减乘除(如1+2+3+4+5+……+10=?
),本程序也做出了初步的实现。
在程序中定义两个boolean(布尔)类型的全局变量flag、new:
根据变量flag的true、false来控制+(-、*、/)号是否是第一次按下,在第二次按下+(-、*、/)的情况下可通过调用按钮=的函数(即Button16Click(Sender))来实现连续几个数的相加减乘除;根据变量new的true、false来判断edit.text中的数是一个新输入的数还是一个运算的结果,若为运算结果的数,可直接将edit1.text清空再显示新输入的数。
●按钮ON是将edit1.text清空,使运算可以重新进行;
按钮CE是退一格的意思,即如:
输入78,按下CE就可将8删除,剩余7可继续做一切运算,按钮CE可重复使用。
出现的
问题
1.本程序不能实现加减乘除在同一个运算式中同时使用,如“1+2*3=”,它的结果就是随机的一个数;
2.在本程序中对于局部变量和全局变量有点混合不清,用起来很不熟悉,导致总是出现编译错误;在使用boolean(布尔)类型时,思维不够清晰,有时对怎样正确的使用true、false都搞昏掉了。
3.对delphi的学习还是不够深入,思路不够清晰,思维不够明了。
解决方案
1.若想实现加减乘除在同一个运算式中使用,可在=函数(即procedureTForm1.Button16Click(Sender:
TObject))中再编写一段关于+、-、*、/相互套用的代码,这个对于我这初学者来说难了点。
2.认真学习,一定要弄懂局部变量和全局变量之间的区别,正确的理解与运用;对于boolean(布尔)类型,要正确的明白所定义的变量在程序中的作用,理清思路,必要是要在草稿纸上条例明文的确立整体过程,为编写程序奠定基础。
3.平时多看看关于delphi的程序设计,理解一些函数、变量的使用,尽量的去独立思考,不懂之处多问,也要加强对delphi习题的练习。
小结
通过本次程序设计,让自己更明白了学的不够,理解的不够,练的不够。
在编写程序时总是思维局限,思路不够清晰。
在往后学习delphi的过程中,要真正的去理解相关代码的含义做到学以致用,从而去巩固知识。
这次编写计算器,总的来说自己学的有限,编写所实现的功能也有限,希望通过以后的学习可以再来完善这个程序。
指导老师评议
成绩评定:
指导教师签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- delphi 编写 计算器 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)