问题描述

模拟电脑计算器制作一个计算器实现简单加减乘除

考点

  1. Delphi 窗体与组件设置及使用
  2. 数据类型、函数过程、程序设计(选择循环等)的考核

代码实现

页面显示:

Unit1.pas

unit Unit1;
interface
usesSysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,QStdCtrls;typeTForm1 = 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;Edit1: TEdit;Button17: TButton;Button18: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);procedure Button4Click(Sender: TObject);procedure Button5Click(Sender: TObject);procedure Button6Click(Sender: TObject);procedure Button7Click(Sender: TObject);procedure Button8Click(Sender: TObject);procedure Button9Click(Sender: TObject);procedure Button10Click(Sender: TObject);procedure Button11Click(Sender: TObject);procedure Button13Click(Sender: TObject);procedure Button14Click(Sender: TObject);procedure Button15Click(Sender: TObject);procedure Button16Click(Sender: TObject);procedure Button17Click(Sender: TObject);procedure Button18Click(Sender: TObject);procedure Button12Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;typeTNew1= objecttemp1: Double;temp2: Double;flag: Char;sign: Integer;publicfunction Add(x: Double; y: Double): Double;function Sub(x: Double; y: Double): Double;function Mul(x: Double; y: Double): Double;function Divv(x: Double; y: Double):Double;function Get(z: Char):Double;end;varForm1: TForm1;New1: TNew1;implementation{$R *.xfm}function TNew1.Get(z: Char):Double;
beginif(z = '+')thenresult:= New1.Add(New1.temp2, New1.temp1)elseif(z = '-')thenresult:= New1.Sub(New1.temp2, New1.temp1)elseif(z = '*')thenresult:= New1.Mul(New1.temp2, New1.temp1)elseif(z = '/')thenresult:= New1.Divv(New1.temp2, New1.temp1);
end;procedure TForm1.Button1Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '1';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button2Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '2';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button3Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '3';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button4Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '4';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button5Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '5';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button6Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '6';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button7Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '7';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button8Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '8';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button9Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '9';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button10Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '0';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button11Click(Sender: TObject);
beginif(New1.sign = 1)thenbeginEdit1.Clear;New1.sign:= 0;end;Edit1.Text := Edit1.Text + '.';New1.temp1 := StrTofloat(Edit1.text);
end;procedure TForm1.Button13Click(Sender: TObject);
beginEdit1.Clear;if(New1.flag = '')thenNew1.temp2:= New1.temp1elsebeginNew1.temp2:= New1.Get(New1.flag);end;New1.flag:= '+';
end;procedure TForm1.Button14Click(Sender: TObject);
beginEdit1.Clear;if(New1.flag = '')thenNew1.temp2:= New1.temp1elsebeginNew1.temp2:= New1.Get(New1.flag);end;New1.flag:= '-';
end;procedure TForm1.Button15Click(Sender: TObject);
beginEdit1.Clear;if(New1.flag = '')thenNew1.temp2:= New1.temp1elsebeginNew1.temp2:= New1.Get(New1.flag);end;New1.flag:= '*';
end;procedure TForm1.Button16Click(Sender: TObject);
beginEdit1.Clear;if(new1.flag = '')thenNew1.temp2:= New1.temp1elsebeginNew1.temp2:= New1.Get(New1.flag);end;New1.flag:= '/';
end;procedure TForm1.Button17Click(Sender: TObject);
beginEdit1.Clear;New1.temp1:= 0;New1.temp2:= 0;New1.flag:= #0;New1.sign:= 0;
end;procedure TForm1.Button18Click(Sender: TObject);
beginif(Length(Edit1.Text) < 2)thenbeginEdit1.Text:= '0';endelseEdit1.Text:= Copy(Edit1.Text,1,Length(Edit1.Text)-1);New1.temp1 := StrTofloat(Edit1.text);
end;function TNew1.Add(x: Double; y: Double): Double;
beginResult:= x + y;
end;function TNew1.Sub(x: Double; y: Double): Double;
beginResult:= x - y;
end;function TNew1.Mul(x: Double; y: Double): Double;
beginResult:= x * y;
end;function TNew1.Divv(x: Double; y: Double):Double;
beginif(y = 0)thenbeginResult:= 0;ShowMessage('除数不能为0');New1.temp1:= 0;New1.temp2:= 0;endelseResult:= x / y;
end;procedure TForm1.Button12Click(Sender: TObject);
beginif(New1.flag = '+')thenForm1.Edit1.Text:= FloatToStr(New1.Add(New1.temp2, New1.temp1))elseif(New1.flag = '-')thenForm1.Edit1.Text:= FloatToStr(New1.Sub(New1.temp2, New1.temp1))elseif(New1.flag = '*')thenForm1.Edit1.Text:= FloatToStr(New1.Mul(New1.temp2, New1.temp1))elseif(New1.flag = '/')thenForm1.Edit1.Text:= FloatToStr(New1.Divv(New1.temp2, New1.temp1));New1.temp1:= StrToFloat(Form1.Edit1.Text);New1.temp2:= StrToFloat(Form1.Edit1.Text);New1.sign:= 1;New1.flag:= #0;
end;
end.

代码升级之处

  1. 可以实现两个以上的数的运算
  2. 每次出结果前会清除上一步结果
  3. 可以实现结果作加数、减数等继续计算

【Delphi练习】简易计算器(升级版)相关推荐

  1. web简易计算器代码_30秒内便能学会的30个超实用Python代码片段

    许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...

  2. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  3. python表达式计算器_Python正则表达式实现简易计算器功能示例

    本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+ ...

  4. PyQt5 简易计算器

    剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 [知识点] 1.利用循环添加按钮部件,及给每个按钮设置信号/槽 2.给按钮设置固定大小:button.setFixedSi ...

  5. JAVA(利用jsp+javabean+servlet)实现简易计算器

    代码解释基本都在代码中给出 1 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...

  6. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  7. 数据结构:栈实现简易计算器

    文章目录 栈实现简易计算器 思路 代码实现 栈结构 运算方法 测试 栈实现简易计算器 之前的博客已经介绍了栈数据结构,栈有着数据先进后出的特点,因此用于实现简易计算器时相当方便.本博文中将介绍如何用栈 ...

  8. linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  9. 简易计算器 (C语言)作业

    从Github下载 从CSDN下载 // // ViewController.h // SimpleCalculator // // Created by Mewlan Musajan on 11/2 ...

  10. Python之实现一个简易计算器

    自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...

最新文章

  1. ORACLE nvarchar2和varchar2的区别
  2. 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题
  3. php 检测密码,php检测密码强度
  4. 笔记-中项案例题-2019年下-信息系统安全管理
  5. entOS 7 安装 python3+pip3+chrome+chromedriver+selenium+requests 无GUI运行脚本
  6. 字符串野指针 百练2681
  7. 美国副教授现身说法:如何改变“只收藏不阅读”的习惯
  8. html5音乐播放时间监测,html5 video如何实现实时监测当前播放时间(代码)
  9. [转载]——Axure+SVN配置
  10. mysql xtrabackup-v2_MySQL物理备份基础知识(基于xtrabackup2.4版本)
  11. 七牛云存储,资源云存储平台
  12. plsql developer导出表结构Excel
  13. 《基础微积分教材中译版》--目录
  14. excel转word_扫描全能王扫描仪PDF、拍文件转word和excel
  15. 将Excel表格导入到数据库中
  16. 今日头条自动开宝箱脚本
  17. servlet常见错误
  18. Markdown小技巧:代码格式、缩进和字体大小
  19. 微型计算机硬盘安装在哪,微型计算机的硬盘是该机的
  20. Android颜色对照表

热门文章

  1. 【寒假每日一题】AcWing 3443. 学分绩点(补)
  2. 吴建国 安徽大学 计算机学院,安徽大学计算机科学与技术学院硕士生导师:谢莹副教授...
  3. python字符类型判断以及转换
  4. python数值型转化为字符型
  5. SQL语句 统计 当日 本周 过去7天 当月 近半年
  6. 使用TFTP Server
  7. uber_uber和airbnb是寄生虫,但不必
  8. 微信网页JSAPI支付
  9. 计算机网络的性能(速率、带宽、吞吐量、时延、时延带宽积、往返时间RTT、利用率)
  10. 如何实现一个虚拟路由器(2)