
delphi计算器写的差不多了,除数不能为0 谁帮帮忙~ 5
varhe:integer;chu:real;beginifform1.Edit1.Text<>'0'thenifchu:=strtoint(form1.Edit1.Te...
var
he:integer;
chu:real;
begin
if form1.Edit1.Text<>'0' then
if
chu:=strtoint(form1.Edit1.Text);
if fuhao='/' then
begin
chu:= beijiashu/jiashu;
form1.Edit1.Text:=floattostr(chu);
end;
begin
fuhao:='/';
if form1.Edit1.Text<>'' then
beijiashu:=strtoint(form1.Edit1.Text);
form1.Edit1.Text:='';
end; 展开
he:integer;
chu:real;
begin
if form1.Edit1.Text<>'0' then
if
chu:=strtoint(form1.Edit1.Text);
if fuhao='/' then
begin
chu:= beijiashu/jiashu;
form1.Edit1.Text:=floattostr(chu);
end;
begin
fuhao:='/';
if form1.Edit1.Text<>'' then
beijiashu:=strtoint(form1.Edit1.Text);
form1.Edit1.Text:='';
end; 展开
6个回答
展开全部
如果仅做加减乘除运算的话,建议把运算符改用数据型变量.0为加,1为减,2为乘,3为除,这样就可以用case of 语句来来检测算式的合法性和完成运算
比如,在编辑框中输入被除数后,按除号按钮,做三件事,一是检测被除数是否为零,如果为零,则在编辑框中显示E,表示被除数不能为零.二是将运算符号设置为ysfh:=3;三是存储第一个运算数dyyss.
再输入第二个数
再点击等于按钮,做一件事,运算,句子:
case ysfh of
0:edit1.text:=currTostr(dyyss+strtocurr(edit1.text));
1:edit1.text:=currTostr(dyyss-strtocurr(edit1.text));
2:edit1.text:=currTostr(dyyss*strtocurr(edit1.text));
3:begin
if edit1.text='0' then
begin
edit1.text:='E';
showmessage('除数不能为零');
exit;
end;
edit1.text:=currTostr(dyyss/strtocurr(edit1.text));
end;
end;
简单吧,用不着那么复杂的.
还用的着处理什么异常不异常的.
还有其它运算尽管加.
另外对编辑框用一个函数检测输入只能为1234560789和.字符(做高级一点,让其只能输入一点,不准输入其它字符
加减乘按钮的单击事件中只要一句代码
分别是:ysfh:=0;ysfh:=1;ysfh:=2;
比如,在编辑框中输入被除数后,按除号按钮,做三件事,一是检测被除数是否为零,如果为零,则在编辑框中显示E,表示被除数不能为零.二是将运算符号设置为ysfh:=3;三是存储第一个运算数dyyss.
再输入第二个数
再点击等于按钮,做一件事,运算,句子:
case ysfh of
0:edit1.text:=currTostr(dyyss+strtocurr(edit1.text));
1:edit1.text:=currTostr(dyyss-strtocurr(edit1.text));
2:edit1.text:=currTostr(dyyss*strtocurr(edit1.text));
3:begin
if edit1.text='0' then
begin
edit1.text:='E';
showmessage('除数不能为零');
exit;
end;
edit1.text:=currTostr(dyyss/strtocurr(edit1.text));
end;
end;
简单吧,用不着那么复杂的.
还用的着处理什么异常不异常的.
还有其它运算尽管加.
另外对编辑框用一个函数检测输入只能为1234560789和.字符(做高级一点,让其只能输入一点,不准输入其它字符
加减乘按钮的单击事件中只要一句代码
分别是:ysfh:=0;ysfh:=1;ysfh:=2;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用异常处理。不用判断除数是否为零的语句了
if fuhao='/' then
begin
try
chu:= beijiashu/jiashu;
except
on E:Exception do
begin
if e.Message='Division by zero' then //零作除数时,把商写为零
begin
chu:=0;
//这里可以加入自己的提示
end;
end;
form1.Edit1.Text:=floattostr(chu);
end;
if fuhao='/' then
begin
try
chu:= beijiashu/jiashu;
except
on E:Exception do
begin
if e.Message='Division by zero' then //零作除数时,把商写为零
begin
chu:=0;
//这里可以加入自己的提示
end;
end;
form1.Edit1.Text:=floattostr(chu);
end;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加一个条件就可以了呀,先判断“jiashu”是否为“0”如果为零弹出一个提示的对话框“除数不能为零请重新输入”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var
he:integer;
chu:real;
begin
if form1.Edit1.Text<>'0' then
if
chu:=strtoint(form1.Edit1.Text);
if fuhao='/' then
begin
if jiashu <> 0 then
chu:= beijiashu/jiashu
else
chu := 0 ;
form1.Edit1.Text:=floattostr(chu);
end;
begin
fuhao:='/';
if form1.Edit1.Text<>'' then
beijiashu:=strtoint(form1.Edit1.Text);
form1.Edit1.Text:='';
end;
he:integer;
chu:real;
begin
if form1.Edit1.Text<>'0' then
if
chu:=strtoint(form1.Edit1.Text);
if fuhao='/' then
begin
if jiashu <> 0 then
chu:= beijiashu/jiashu
else
chu := 0 ;
form1.Edit1.Text:=floattostr(chu);
end;
begin
fuhao:='/';
if form1.Edit1.Text<>'' then
beijiashu:=strtoint(form1.Edit1.Text);
form1.Edit1.Text:='';
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回leo 用delphi的人还有很多很多,你孤落寡闻了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询