课程设计计算器的制作毕业论文.doc_第1页
课程设计计算器的制作毕业论文.doc_第2页
课程设计计算器的制作毕业论文.doc_第3页
课程设计计算器的制作毕业论文.doc_第4页
课程设计计算器的制作毕业论文.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 系统分析11 系统设计要求:1利用Delphi开发工具制作一计算器,该计算器要求实现基本四则运算。2实现统计计算,三角运算,对数运算,逻辑运算。3实现十六进制,十进制,八进制,二进制的转换。12 系统原理框图本次课程设计的原理框图如图1.1所示:图1.1系统原理框图13 系统设计原理计算器的制作的实现主要通过Delphi软件的添加基本控件以及编程序来实现基本四则运算,统计运算,三角运算,对数运算,逻辑运算以及进制间的转换第二章 系统设计过程2.1 概要设计1. 各组件的基本使用该设计要求的主要是数学上的简单计算,需要输入的控件和输出的控件(显示结果)输入控件使用button。而输出控件使用便于编辑的edit框来实现。2.功能模块设计 从界面上来看,程序分两个部分.菜单和按钮。 从软件构架上分为输入模块和输出模块。 输入模块程序的主要是按钮的单击事件。输出模块主要是EDIT框的text属性的变化。2.2 详细设计1.基本四则运算 实现加,减,乘,除.的运算.使用BUTTON按钮,给对应的按钮编上相应的程序。核心原程序:var i:real;begin num2:=strtonum(edit1.text,haob); if sign=1 then begin if num2=0 then application.MessageBox(除数为零,不能运算!,提示信息,mb_ok) else begin num3:=num1 / num2; edit1.Text:=numtostr(num3,haob); end; end else if sign=2 then begin num3:=num1*num2; edit1.text:=numtostr(num3,haob); end else if sign=3 then begin num3:=num1-num2; edit1.text:=numtostr(num3,haob); end else if sign=4 then begin num3:=num1+num2; edit1.text:=numtostr(num3,haob); end。2.统计运算 实现求和,就平均值的计算。核心源程序:var s:real; i:integer;begin s:=0; for i:=1 to stat_count do s:=s+stat_memi; s:=s /stat_count; Edit1.text:=numtostr(s,haob);end; var s:real; i:integer;begin s:=0; for i:=1 to stat_count do s:=s+stat_memi; Edit1.text:=numtostr(s,haob);end;3.三角运算 实现正弦,余弦,正切函数的计算。核心源程序:var t1:real; t2:extended; s:string;begin t1:=strtofloat(Edit1.text); if radiobutton5.Checked then t1:=t1 * 3.14159 /180; t2:=sin(t1); str(t2:6:4,s); edit1.text:=s;4.对数运算 实现Ln,log的运算。核心源程序:var s:real; s1:string;begin s1:=edit1.text; s:=strtonum(s1,haob); if s0 then begin s:=log10(s); edit1.text:=numtostr(s,haob); end else application.MessageBox(数值错误,请检查!,提示信息,mb_ok);end;5.逻辑运算 实现与,或,非的运算.核心源程序: if sign=7 then begin if num1*num2=0 then num3:=0 else num3:=1; edit1.text:=numtostr(num3,haob); end else if sign=8 then begin if num1+num2=0 then num3:=0 else num3:=1; edit1.text:=numtostr(num3,haob); end else if sign=9 then begin if (num1=0) and (num20) then num3:=1 else if (num10) and (num2=0) then num3:=1 else num3:=0; edit1.text:=numtostr(num3,haob); end else application.MessageBox(1111除数为零,不能运算!,提示信息,mb_ok); n1_flag:=false;end;6.进制转换运算实现十六进制,十进制,八进制,二进制间的转换.核心源程序: begin checkHex;end; begin CheckOctavo;end; begin CheckBinary;end; begin checkHex;end; 第三章 系统调试过程在软件调试中,采用了模块化的思想进行调试。分四则运算,统计运算,三角运算,对数运算,逻辑运算,进制转换运算,6个模块进行编程调试。1. 打开Delphi7,先放置Button,edit,groupbox,mainmenu,radiobutton控件.2. 給相应的控件编程序.3. 运行程序4. 程序运行成功,但是实现功能时有可能出现乱码情况,未能解决.第五章 结论通过本系统的开发,本人对软件开发过程有了更清晰的了解,首先是问题定义、需求分析,然后是功能设计、详细设计等,并对软件测试的方法、手段有了较深的理解,同时对制造业的流程有了一个系统的认识。在开发过程还认真学习了与系统相关的知识,极大地拓宽了本人的知识面,本人感到收获不小。 在系统的开发初期,从开始熟悉这些知识到对整体设计有了解,再从概要设计、详细设计到开始编码,以及最后的测试,整个过程感觉很充实,虽然遇到了不少困难,但通过自己查资料、或是向指导老师请教以及向同事请教,而设计出解决方案并成功实现时,那种成就感和满足感足以鼓励自己加班加点的辛苦。 在调试过程中。“=”号的处理我改了5次,“+”号的处理我该了7次,很多东西是事后发现有些重大的功能没有实现,或是有严重性的错误才不得重新设计的。而且很多时候是一个地方的改动必须要牵连到其他地方的变化,这也是最令我头痛的。所以觉得在做程序之前,画好流程图,考虑好细节才是最重要的,因为毕竟一个人的能力有限,未能完全实现功能,但是这次课程设计使我学到了许多,我相信这对我以后做程序时有很大帮助。参考文献1 何鹏飞.Delphi7 程序设计教程M.北京:清华大学出版社,2003. 2 孟岩.tcp网络编程四书五经M.北京:清华大学出版社, 20033 黄超.Delphi网络应用开发技术与实例M.北京:清华大学出版社,20054 王沛.Delphi7编程入门M.北京:机械工业出版社,2006附录A:计算器外观图附录B:源程序procedure TCalculator_Form.FormActivate(Sender: TObject);begin edit1.UseRightToLeftAlignment; start_flag:=false; float_flag:=false; n1_flag:=false; mem_flag:=false; if n7.Checked then begin ScienticToStardard; haob:=10; end else begin StardardToScientic; if N10.Checked then haob:=16 else if n11.checked then haob:=10 else if n12.Checked then haob:=8 else haob:=2; end; Button35.Enabled:=false; Button36.Enabled:=false; Button37.Enabled:=false; Button38.Enabled:=false; stat_count:=0;end;procedure TCalculator_Form.N7Click(Sender: TObject);begin ScienticToStardard;end;procedure TCalculator_Form.N8Click(Sender: TObject);begin StardardToScientic;end;procedure TCalculator_Form.StardardToScientic;begin N7.Checked:=false; N8.Checked:=true; N11.Enabled:=true; N12.Enabled:=true; N13.Enabled:=true; N10.enabled:=true; N14.Enabled:=true; N15.Enabled:=true; N16.Enabled:=true; Scienticshow;end;procedure TCalculator_Form.ScienticToStardard;begin N7.Checked:=true; N8.Checked:=false; N11.Enabled:=false; N12.Enabled:=false; N13.Enabled:=false; N10.enabled:=false; N15.Enabled:=false; N16.Enabled:=false; Stardardshow;end;procedure TCalculator_Form.CheckAlgorism;var s:string; x:real;begin Button4.Enabled:=true; Button5.Enabled:=true; Button6.Enabled:=true; Button10.Enabled:=true; Button11.Enabled:=true; Button12.Enabled:=true; Button17.Enabled:=true; Button18.Enabled:=true; Button28.Enabled:=false; Button29.Enabled:=false; Button30.Enabled:=false; Button31.Enabled:=false; Button32.Enabled:=false; Button33.Enabled:=false; N10.Checked:=false; N11.Checked:=true; N12.Checked:=false; N13.Checked:=false; RadioButton2.Checked:=true; RadioButton5.Enabled:=true; RadioButton6.Enabled:=true; N15.Enabled:=true; N16.Enabled:=true; Button39.Enabled:=true; Button40.Enabled:=true; Button41.Enabled:=true; Button42.Enabled:=true; Button43.Enabled:=true; Button45.Enabled:=true; x:=StrToNum(edit1.text,haob); s:=numtostr(x,10); edit1.text:=s; haob:=10;end;procedure TCalculator_Form.CheckBinary;var s:string;begin Button4.Enabled:=false; Button5.Enabled:=false; Button6.Enabled:=false; Button10.Enabled:=false; Button11.Enabled:=false; Button12.Enabled:=false; Button17.Enabled:=false; Button18.Enabled:=false; Button28.Enabled:=false; Button29.Enabled:=false; Button30.Enabled:=false; Button31.Enabled:=false; Button32.Enabled:=false; Button33.Enabled:=false; N10.Checked:=false; N11.Checked:=false; N12.Checked:=false; N13.Checked:=true; RadioButton4.Checked:=true; RadioButton5.Enabled:=false; RadioButton6.Enabled:=false; N15.Enabled:=false; N16.Enabled:=false; Button39.Enabled:=false; Button40.Enabled:=false; Button41.Enabled:=false; Button42.Enabled:=false; Button43.Enabled:=false; Button45.Enabled:=false; s:=numtostr(StrToNum(edit1.text,haob),2); edit1.text:=s; haob:=2;end;procedure TCalculator_Form.CheckHex;var s:string;begin Button4.Enabled:=true; Button5.Enabled:=true; Button6.Enabled:=true; Button10.Enabled:=true; Button11.Enabled:=true; Button12.Enabled:=true; Button17.Enabled:=true; Button18.Enabled:=true; Button28.Enabled:=true; Button29.Enabled:=true; Button30.Enabled:=true; Button31.Enabled:=true; Button32.Enabled:=true; Button33.Enabled:=true; N10.Checked:=true; N11.Checked:=false; N12.Checked:=false; N13.Checked:=false; RadioButton1.Checked:=true; RadioButton5.Enabled:=false; RadioButton6.Enabled:=false; N15.Enabled:=false; N16.Enabled:=false; Button39.Enabled:=false; Button40.Enabled:=false; Button41.Enabled:=false; Button42.Enabled:=false; Button43.Enabled:=false; Button45.Enabled:=false; s:=numtostr(StrToNum(edit1.text,haob),16); edit1.text:=s; haob:=16;end;procedure TCalculator_Form.CheckOctavo;var s:string;begin Button4.Enabled:=true; Button5.Enabled:=false; Button6.Enabled:=false; Button10.Enabled:=true; Button11.Enabled:=true; Button12.Enabled:=true; Button17.Enabled:=true; Button18.Enabled:=true; Button28.Enabled:=false; Button29.Enabled:=false; Button30.Enabled:=false; Button31.Enabled:=false; Button32.Enabled:=false; Button33.Enabled:=false; N10.Checked:=false; N11.Checked:=false; N12.Checked:=true; N13.Checked:=false; RadioButton3.Checked:=true; RadioButton5.Enabled:=false; RadioButton6.Enabled:=false; N15.Enabled:=false; N16.Enabled:=false; Button39.Enabled:=false; Button40.Enabled:=false; Button41.Enabled:=false; Button42.Enabled:=false; Button43.Enabled:=false; Button45.Enabled:=false; s:=numtostr(StrToNum(edit1.text,haob),8); edit1.text:=s; haob:=8;end;procedure TCalculator_Form.Button4Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=7; start_flag:=true end else edit1.text:=edit1.text+7;end;procedure TCalculator_Form.Button3Click(Sender: TObject);begin edit1.text:=0; start_flag:=false; float_flag:=false; n1_flag:=false; mem_flag:=false; stat_count:=0;end;procedure TCalculator_Form.Button5Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=8; start_flag:=true end else edit1.text:=edit1.text+8;end;procedure TCalculator_Form.Button6Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=9; start_flag:=true end else edit1.text:=edit1.text+9;end;procedure TCalculator_Form.Button10Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=4; start_flag:=true end else edit1.text:=edit1.text+4;end;procedure TCalculator_Form.Button11Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=5; start_flag:=true end else edit1.text:=edit1.text+5;end;procedure TCalculator_Form.Button12Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=6; start_flag:=true end else edit1.text:=edit1.text+6;end;procedure TCalculator_Form.Button16Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=1; start_flag:=true end else edit1.text:=edit1.text+1;end;procedure TCalculator_Form.Button17Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=2; start_flag:=true end else edit1.text:=edit1.text+2;end;procedure TCalculator_Form.Button18Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=3; start_flag:=true end else edit1.text:=edit1.text+3;end;procedure TCalculator_Form.Button22Click(Sender: TObject);begin if start_flag=false then begin edit1.text:=0.; start_flag:=true; float_flag:=true end else edit1.text:=edit1.text+0;end;procedure TCalculator_Form.Button24Click(Sender: TObject);begin if float_flag=false then begin if start_flag=false then begin edit1.text:=0.; start_flag:=true; float_flag:=true end else begin edit1.Text:=edit1.Text+.; float_flag:=true end; end;end;procedure TCalculator_Form.Button1Click(Sender: TObject);var i,j:integer; s1,s2:string;begin i:=edit1.gettextlen(); if i1 then begin s1:=edit1.text; s2:=s1i; edit1.text:=; for j:=1 to i-1 do edit1.text:=edit1.text+s1j; if s2=. then float_flag:=false; end else begin edit1.text:=0; start_flag:=false; end;end;procedure TCalculator_Form.Button59Click(Sender: TObject);var num:real;begin num:=strtofloat(edit1.text); if num=0 then begin num:=sqrt(num); edit1.text:=floattostr(num); end else application.MessageBox(该数开方出错,请检查!,提示信息,mb_ok)end;procedure TCalculator_Form.Button53Click(Sender: TObject);var num:real;begin num:=strtofloat(edit1.text); edit1.text:=floattostr(1/num);end;procedure TCalculator_Form.Button7Click(Sender: TObject);begin num1:=strtonum(edit1.text,haob); sign:=1; edit1.text:=0; start_flag:=false; n1_flag:=true;end;procedure TCalculator_Form.Button13Click(Sender: TObject);begin num1:=strtonum(edit1.text,haob); sign:=2; edit1.text:=0; start_flag:=false; n1_flag:=true;end;procedure TCalculator_Form.Button19Click(Sender: TObject);begin num1:=strtonum(edit1.text,haob); sign:=3; edit1.text:=0; start_flag:=false; n1_flag:=true;end;procedure TCalculator_Form.Button25Click(Sender: TObject);begin num1:=strtonum(edit1.text,haob); sign:=4; edit1.text:=0; start_flag:=false; n1_flag:=true;end;procedure TCalculator_Form.Button26Click(Sender: TObject);var i:real;begin num2:=strtonum(edit1.text,haob); if sign=1 then begin if num2=0 then application.MessageBox(除数为零,不能运算!,提示信息,mb_ok) else begin num3:=num1 / num2; edit1.Text:=numtostr(num3,haob); end; end else if sign=2 then begin num3:=num1*num2; edit1.text:=numtostr(num3,haob); end else if sign=3 then begin num3:=num1-num2; edit1.text:=numtostr(num3,haob); end else if sign=4 then begin num3:=num1+num2; edit1.text:=numtostr(num3,haob); end else if sign=5 then begin num3:=num1-int(num1/num2)*num2; edit1.text:=numtostr(num3,haob); end else if sign=6 then begin num3:=1; i:=1; while i=num2 do begin num3:=num3*num1; i:=i+1; end; edit1.text:=numtostr(num3,haob); end else if sign=7 then begin if num1*num2=0 then num3:=0 else num3:=1; edit1.text:=numtostr(num3,haob); end else if sign=8 then begin if num1+num2=0 then num3:=0 else num3:=1; edit1.text:=numtostr(num3,haob); end else if sign=9 then begin if (num1=0) and (num20) then num3:=1 else if (num10) and (num2=0) then num3:=1 else num3:=0; edit1.text:=numtostr(num3,haob); end else application.MessageBox(1111除数为零,不能运算!,提示信息,mb_ok); n1_flag:=false;end;procedure TCalculator_Form.Button23Click(Sender: TObject);var num:real;begin num:=strtofloat(edit1.text); num:=-num; edit1.text:=floattostr(num);end;procedure TCalculator_Form.Button2Click(Sender: TObject);begin edit1.text:=0; start_flag:=false; float_flag:=false;end;procedure TCalculator_Form.Button54Click(Sender: TObject);begin mem_flag:=false;end;procedure TCalculator_Form.Button56Click(Sender: TObject);begin mem:=strtofloat(edit1.text); mem_flag:=true;end;procedure TCalculator_Form.Button55Click(Sender: TObject);begin if mem_flag=true then edit1.text:=floattostr(mem) else application.MessageBox(没有数据存储,请检查!,提示信息,mb_ok);end;procedure TCalculator_Form.Button57Click(Sender: TObject);begin if mem_flag=true then mem:=mem+strtofloat(edit1.text) else begin mem:=strtofloat(edit1.text); mem_flag:=true; end;end;procedure TCalculator_Form.Button60Click(Sender: TObject);begin num1:=strtofloat(edit1.text); sign:=5; edit1.text:=0; start_flag:=false; n1_flag:=true;end;procedure TCalculator_Form.RadioButton2Click(Sender: TObject);begin CheckAlgorism;end;procedure TCalculator_Form.RadioButton1Click(Sender: TObject);begin checkHex;end;procedure TCalculator_Form.RadioButton3Click(Sender: TObject);begin CheckOctavo;end;procedure TCalculator_Form.RadioButton4Click(Sender: TObject);begin CheckBinary;end;procedure TCalculator_Form.N10Click(Sender: TObject);begin checkHex;end;procedure TCalculator_Form.N11Click(Sender: TObject);begin CheckOctavo;end;procedure TCalculator_Form.N12Click(Sender: TObject);begin CheckOctavo;end;procedure TCalculator_Form.N13Click(Sender: TObject);begin CheckOctavo;end;procedure TCalculator_Form.RadioButton5Click(Sender: TObject);begin N15.Checked:=true; N16.Checked:=false;end;procedure TCalculator_Form.RadioButton6Click(Sender: TObject);begin N15.Checked:=false; N16.Checked:=true;end;procedure TCalculator_Form.N15Click(Sender: TObject);begin N15.Checked:=true; N16.Checked:=false; RadioButton5.Checked:=true;end;procedure TCalculator_Form.N16Click(Sender: TObject);begin N15.Checked:=false; N16.Checked:=true; RadioButton6.Checked:=true;end;procedure TCalculator_Form.Button41Click(Sender: TObject);var t1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论