早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用delphi科学计算器设计制作一个类似于Windows操作系统附件中所带的计算器程序,该程序具有标准型和科学型两大功能.系统功能要求1.标准型计算器,主要具有能进行加减乘出和求余等基本的

题目详情
用delphi科学计算器设计
制作一个类似于Windows操作系统附件中所带的计算器程序,该程序具有标准型和科学型两大功能.系统功能要求1.标准型计算器,主要具有能进行加减乘出和求余等基本的计算功能.2.科学型计算器除具有全部标准型功能外,还具有三角函数计算,如正弦、余弦、正切和对数计算,如自然对数和常用对数,指数计算如平方、立方和任意次方计算,在统计计算中,具有求和、求平均数等功能.在科学计算中,除了十进制数计算以外,还具有十六进制、八进制和二进制计算功能,在三角函数运算中,支持角度和弧度两种单位.总之,功能基本上和操作系统中的计算器类似.
▼优质解答
答案和解析
部分源代码
s_result:='0';
result:=0;
point_flag:=false;
operation_symbol:=0;
input_2:=false;
display_refresh();
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
operation_over:=true;
source_1:=strtofloat(s_source_1);
if input_2 then
begin
source_2:=strtofloat(s_source_2);
end
else
begin
// source_2:=source_1;
// s_source_2:=floattostr(source_2);
end;
case operation_symbol of
0:
begin
result:=source_1;
display_refresh();
exit;
end;
1:
begin
result:=source_1+source_2;
display_refresh();
end;
2:
begin
result:=source_1-source_2;
display_refresh();
end;
3:
begin
result:=source_1 * source_2;
display_refresh();
end;
4:
begin
if source_2 = 0 then
begin
messagebox(form1.Handle,'0 不能做除数','错误!',0);
exit;
end;
result:=source_1 / source_2;
display_refresh();
end;
end;
input_2:=false;
source_1:=result;
s_source_1:=floattostr(result);
s_source_2:='0';
point_flag:=false;
end;
procedure TForm1.Button19Click(Sender: TObject);
begin
if result>=0 then
begin
operation_over:=true;
result:=sqrt(result);
display_refresh();
if input_2=true then
begin
source_2:=result;
s_source_2:='0';
input_2:=false;
end
else
begin
s_source_1:=floattostr(result);
end;
end
else
begin
messagebox(form1.Handle,'负数不能开根号','错误!',0);
end;
end;
procedure TForm1.Button30Click(Sender: TObject);
begin
if (operation_symbol >0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=1;
// source_2:=0;
// s_source_2:='0';
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
if (operation_symbol >0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=2;
// source_2:=0;
// s_source_2:=floattostr(source_2);
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
if (operation_symbol >0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=3;
// source_2:=0;
// s_source_2:=floattostr(source_2);
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
if (operation_symbol >0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=4;
// source_2:=0;
// s_source_2:=floattostr(source_2);
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button24Click(Sender: TObject);
begin
if result 0 then
begin
operation_over:=true;
result:=1 / result;
display_refresh();
if input_2=true then
begin
source_2:=result;
s_source_2:='0';
input_2:=false;
end
else
begin
s_source_1:=floattostr(result);
end;
end
else
begin
messagebox(form1.Handle,'0 不能求倒数','错误!',0);
end;
end;
procedure TForm1.Button28Click(Sender: TObject);
begin
if input_2 = true then
begin
s_source_2:='0';
source_2:=0;
result:=0;
display_refresh();
end
else
begin
s_source_1:='0';
source_1:=0;
result:=0;
display_refresh();
end;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
result:=(-1)*result;
if input_2 then
begin
source_2:=result;
s_source_2:=floattostr(source_2);
end
else
begin
s_source_1:=floattostr(result);
end;
display_refresh();
end;
procedure TForm1.Button27Click(Sender: TObject);
begin
if input_2 = false then
begin
if length(s_source_1)>2 then
begin
delete(s_source_1,length(s_source_1),1);
result:=strtofloat(s_source_1);
display_refresh();
exit;
end;
if length(s_source_1)