在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1. 编写一个简单计算器 思路: 1. 设置0-9数字,小数点,+,-,*,/,=按钮。 2. 为了方便获取用户输入的操作数和操作符,设置三个文本框,第一个文本框专门用于用户输入第一操作数和第二操作数,第二个文本框用于给用户输入操作符并显示,第三个文本框用于显示第一操作数和运算结果。 3. 当点击数字按钮时,第一个文本框后面连接数字。 4. 当点击操作符按钮时,作处理:将第一个文本框中显示的第一操作数移到第三个文本框,并在第二个文本框中显示操作符。对各个操作符,要考虑异常情况。 5. 输入第二个操作数后,按=时,取第一个文本框中的第一操作数,取第二个文本框中的操作符,取第三文本框中的第二操作数,运算后,将结果显示在第一文本框中。 源代码: unit Unit1; 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; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; procedure Button3Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a:double; b:double; result:double; str:string; c:integer=0; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin Edit2.text:=edit2.Text+'1' end; procedure TForm1.Button7Click(Sender: TObject); begin Edit2.text:=edit2.Text+'2' end; procedure TForm1.Button11Click(Sender: TObject); begin Edit2.text:=edit2.Text+'3' end; procedure TForm1.Button2Click(Sender: TObject); begin Edit2.text:=edit2.Text+'4' end; procedure TForm1.Button6Click(Sender: TObject); begin Edit2.text:=edit2.Text+'5' end; procedure TForm1.Button10Click(Sender: TObject); begin Edit2.text:=edit2.Text+'6' end; procedure TForm1.Button1Click(Sender: TObject); begin Edit2.text:=edit2.Text+'7' end; procedure TForm1.Button5Click(Sender: TObject); begin Edit2.text:=edit2.Text+'8' end; procedure TForm1.Button9Click(Sender: TObject); begin Edit2.text:=edit2.Text+'9' end; procedure TForm1.Button8Click(Sender: TObject); begin Edit2.text:=edit2.Text+'.' end; procedure TForm1.Button16Click(Sender: TObject); begin edit3.Text:='+'; if edit2.text<>'' then edit1.text:=edit2.Text; edit2.Text:=''; c:=1; end; procedure TForm1.Button15Click(Sender: TObject); begin edit3.Text:='-'; if edit2.text<>'' then edit1.text:=edit2.Text; edit2.Text:=''; c:=2; end; procedure TForm1.Button14Click(Sender: TObject); begin edit3.Text:='*'; if edit2.text<>'' then edit1.text:=edit2.Text; edit2.Text:=''; c:=3; end; procedure TForm1.Button13Click(Sender: TObject); begin edit3.Text:='/'; if edit2.text<>'' then edit1.text:=edit2.Text; edit2.Text:=''; c:=4; end; procedure TForm1.Button12Click(Sender: TObject); begin if edit1.text<>'' then a:=strtofloat(edit1.Text); if edit2.text<>'' then b:=strtofloat(edit2.text); case c of 1:result:=a+b; 2:result:=a-b; 3:result:=a*b; 4:result:=a/b; 0:result:=b; end; edit1.text:=floattostr(result); edit2.text:=''; edit3.Text:=''; end; procedure TForm1.Button4Click(Sender: TObject); begin Edit2.text:=edit2.Text+'0' end; end. 运行截图:
心得体会: 在这次实验中我做了一个最简单的计算器,只能实现+,-,*,/功能,并设置了三个文本框来使问题更简单化,对目前市场上的计算器,基本上只有一个文本框,这个可以通过对按下操作符按钮后响应的做处理来实现.(按下操作符按钮时,使用一个变量存下第一操作数,和一个变量记录操作符)。 2. 编写一个程序,读入四对数据作为四边形的四个顶点的坐标值,并确定四边形是矩形还是正方形或其它形状。 思路: 1. 由于矩形具有这么一个特性:任意两点间距离与另两个顶点间距离相等。所以对于输入的四个顶点,只要判断三组没有公共顶点的线段长度是否相等即可 2. 对于正方形,在矩形的基础上再加上一个条件:具有公共顶点的两条边长度也相等。 3. 具体实现:通过if else语句。对应于输入的不同的四对数据,可以输出以下三个信息中的一种: 1) 输入的四个点可以构成正方形。 2) 输入的四个点可以构成矩形,但不能构成正方形。 3) 输入的四个点即不能构成正方形,也不能构成矩形。 源代码: program Project2; {$APPTYPE CONSOLE} uses SysUtils; type tposition=record x,y:real; end; var p1,p2,p3,p4:tposition; var l12,l13,l14,l23,l24,l34:real; begin write('请输入p1点坐标:'); read(p1.x,p1.y); write('请输入p2点坐标:'); read(p2.x,p2.y); write('请输入p3点坐标:'); read(p3.x,p3.y); write('请输入p4点坐标:'); read(p4.x,p4.y); l12:=(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y); l13:=(p1.x-p3.x)*(p1.x-p3.x)+(p1.y-p3.y)*(p1.y-p3.y); l14:=(p1.x-p4.x)*(p1.x-p4.x)+(p1.y-p4.y)*(p1.y-p4.y); l23:=(p2.x-p3.x)*(p2.x-p3.x)+(p2.y-p3.y)*(p2.y-p3.y); l24:=(p4.x-p2.x)*(p4.x-p2.x)+(p4.y-p2.y)*(p4.y-p2.y); l34:=(p3.x-p4.x)*(p3.x-p4.x)+(p3.y-p4.y)*(p3.y-p4.y); if(l12=l34)and (l13=l24)and(l14=l23)then begin if (l12=l13)then writeln('输入的四个点可以构成正方形。'); if (l12<>l13)then writeln('输入的四个点可以构成矩形,但不能构成正方形。'); end else writeln('输入的四个点即不能构成正方形,也不能构成矩形。'); readln; readln; end. 运行结果截图: 心得体会: 对于一个计算几何题目:一个好的算法总是占很大优势,不仅在代码长度上,有时在代码效率(包括时间,空间)等也能有很大的提高。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论