关闭

关闭

关闭

封号提示

内容

首页 JAVA计算器程序报告.doc

JAVA计算器程序报告.doc

JAVA计算器程序报告.doc

上传者: 吟伤忧唱 2018-01-16 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《JAVA计算器程序报告doc》,可适用于IT/计算机领域,主题内容包含JAVA计算器程序报告(封面)JAVA技术大作业院(系)电气与信息工程学院专业班级计科普学生姓名XX学号XX成绩年月日保存计算过程的计算器目录概述课符等。

JAVA计算器程序报告(封面)JAVA技术大作业院(系)电气与信息工程学院专业班级计科普学生姓名XX学号XX成绩年月日保存计算过程的计算器目录概述课程设计目的课程设计内容系统需求分析系统目标主体功能开发环境系统概要设计系统的功能模块划分系统流程图系统详细设计测试测试方案测试结果小结参考文献附录附录源程序清单保存计算过程的计算器概述课程设计目的掌握JAVA语言编程的基础知识并能熟练运用。熟悉类声明与对象的使用。理解委托时间处理模型。了解JAVA语言的图形用户界面JAVASWING的设计知识。运用JAVASWING编写简单计算器程序并实现其功能。课程设计内容设计GUI界面的计算机程序用户可以通过鼠标依次输入参加计算的数值进行加减乘除等混合运算并对用户的计算操作进行保存显示。系统需求分析系统目标一个简单的计算器程序。用户可以利用鼠标点击数值或操作符按键完成计算的输入计算的过程记录和结果将被显示在窗口上部的文本框中。主体功能按下数字键在文本框上会显示数字这是计算器最基本的功能在任何时候按下“”键计算器文本框上的数字置反上面一个文本框显示计算过程下面一个文本框显示输入的数字当按下的运算符号时前面已经按下过运算符号时下面一个文本框显示上一个运算符号以及两个数之间的运算结果。按下清除“C”键数据被全部清除。开发环境JDKeclips系统概要设计系统的功能模块划分(主界面模块(事件相应模块系统流程图保存计算过程的计算器系统详细设计(主界面模块详细设计顶层容器:ComputerPad类实现主窗口,顶层容器中包含了个panel容器个resultshow文本框个process文本框。各组件作用:其中panel容器用于放数字按钮小数点运算符按钮清零按钮正负转换按钮以及退格按钮。两个文本框一个用于显示输入数据和计算结果另一个用于显示计算过程。布局方式:顶层容器用BroadLayOut布局process和resultshow文本框以及panel容器分别放在定岑容器的nothcenter以及south面panel容器用GridLayOut布局部分代码如下数字按钮类:实现数字按钮的定义publicclassNumberButtonextendsButton{}运算符按钮类:实现运算符号的定义publicclassOperationButtonextendsButton{}主窗口类实现监视器的注册窗口布局组件颜色大小等的设置publicclassComputerPadextendsFrameimplementsActionListener{NumberButtonnumberButtonOperationButtonoprationButtonButton小数点按钮,正负号按钮,退格按钮,求倒数按钮,等号按钮,清零按钮保存计算过程的计算器PanelpanelJTextFieldresultShowJTextFieldprocessString运算符号={"","","*",""}LinkedList链表boolean是否按下等号=falsepublicComputerPad(){super("计算器")链表=newLinkedList()进行组件的声明初始化设置注册监视器numberButton=newNumberButtonfor(inti=i<=i){numberButtoni=newNumberButton(i)numberButtoniaddActionListener(this)}oprationButton=newOperationButtonfor(inti=i<i){oprationButtoni=newOperationButton(运算符号i)oprationButtoniaddActionListener(this)}小数点按钮=newButton("")正负号按钮=newButton("")等号按钮=newButton("=")求倒数按钮=newButton("x")退格按钮=newButton("退格")清零按钮=newButton("C")清零按钮setForeground(Colorred)退格按钮setForeground(Colorred)等号按钮setForeground(Colorred)求倒数按钮setForeground(Colorblue)正负号按钮setForeground(Colorblue)小数点按钮setForeground(Colorblue)退格按钮addActionListener(this)清零按钮addActionListener(this)等号按钮addActionListener(this)小数点按钮addActionListener(this)正负号按钮addActionListener(this)求倒数按钮addActionListener(this)对显示过程的文本框进行设置process=newJTextField()processsetHorizontalAlignment(JTextFieldLEFT)processsetForeground(Colorblue)processsetFont(newFont("TimesRoman",FontPLAIN,))processsetBorder(newSoftBevelBorder(BevelBorderLOWERED))保存计算过程的计算器processsetBackground(Colorwhite)processsetEditable(false)对显示输入值以及运算结果的文本框进行设置resultShow=newJTextField()resultShowsetHorizontalAlignment(JTextFieldRIGHT)resultShowsetForeground(Colorblue)resultShowsetFont(newFont("TimesRoman",FontPLAIN,))resultShowsetBorder(newSoftBevelBorder(BevelBorderLOWERED))resultShowsetBackground(Colorwhite)resultShowsetEditable(false)进行主窗口布局panel=newPanel()panelsetLayout(newGridLayout(,))Paneladd(清零按钮)Paneladd(退格按钮)paneladd(numberButton)paneladd(numberButton)paneladd(numberButton)Paneladd(numberButton)paneladd(numberButton)paneladd(numberButton)Paneladd(numberButton)paneladd(numberButton)paneladd(numberButton)Paneladd(numberButton)Paneladd(oprationButton)paneladd(oprationButton)paneladd(oprationButton)paneladd(oprationButton)paneladd(求倒数按钮)paneladd(正负号按钮)paneladd(小数点按钮)Paneladd(等号按钮)add(panel,BorderLayoutSOUTH)add(resultShow,BorderLayoutCENTER)add(process,BorderLayoutNORTH)addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){Systemexit()}})setVisible(true)setBounds(,,,)setResizable(false)validate()}(事件响应模块详细设计保存计算过程的计算器模块功能:事件响应模块用于实现数据输入保存运算以及显示。具体实现:将主窗口作为窗口中所有组件的监视器链表用来存储输入的数字以及操作符以便运算时提取出来监视器用ifelseif语句分数字按钮小数点运算符按钮清零按钮正负转换按钮以及退格按钮种情况进行相应处理其中除了清零按钮每种情况又分成链表长度为作相应的处理。事件响应模块的框架代码如下publicvoidactionPerformed(ActionEvente){按下数字按钮时的事件处理if(egetSource()instanceofNumberButton){NumberButtonb=(NumberButton)egetSource()if(链表size()==){}elseif(链表size()==是否按下等号==false){}elseif(链表size()==是否按下等号==true){}elseif(链表size()==){}elseif(链表size()==){}}按下运算符号时的事件处理elseif(egetSource()instanceofOperationButton){OperationButtonb=(OperationButton)egetSource()if(链表size()==){}elseif(链表size()==){}elseif(链表size()==){}}按下等号后的事件处理elseif(egetSource()==等号按钮){是否按下等号=trueif(链表size()==||链表size()==){}elseif(链表size()==){}}按下小数点后的事件处理elseif(egetSource()==小数点按钮){if(链表size()==){}elseif(链表size()==){}elseif(链表size()==){}}按下退格键后的事件处理elseif(egetSource()==退格按钮){if(链表size()==){}elseif(链表size()==){}}按下正负号后的事件处理保存计算过程的计算器elseif(egetSource()==正负号按钮){if(链表size()==){}elseif(链表size()==){}}按下求倒数按钮后的事件处理elseif(egetSource()==求倒数按钮){if(链表size()==||链表size()==){}elseif(链表size()==){}}按下清零按钮后的事件处理elseif(egetSource()==清零按钮){}}}测试测试方案进行各种情况的输入检测进行加减乘除运算数字很大小数整数以及先按下“=”等非法输入情况。测试结果程序正常的响应按钮事件能显示计算过程当运算结果很大时用科学记数法显示运算结果小结在做本项目是时候会遇到很多问题最大的问题的如何保存已经输入的数字保存计算过程的计算器或者符号进行运算如何显示运算过程经过多次研究和查询发现运可以运用链表进行存储和提取数据用栈也是可以的。此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己学习到了很多以前没有学习到的知识收获很大。最大的收获是在弯完成过程中培养的解决问题的能力在做项目时必然会遇到困难会有不会的东西重要的不是现在会不会而是遇到问题知道如何找到解决的途径。还使我对所学知识能够融会贯通又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识使得知识得到了巩固和提高,最后我想对教我JAVA编程的易军老师表示衷心的感谢~保存计算过程的计算器参考文献耿祥义,张跃平Java实用教程(第三版)M北京:清华大学出版社耿祥义Java课程设计(第三版)M北京:清华大学出版社张跃平Java实用教程实验指导与习题解答(第三版)M北京:清华大学出版社叶核亚Java程序设计实用教程M北京:电子工业出版社。保存计算过程的计算器附录附录源程序清单NumberButtonjavaimportjavaawt*importjavaawtevent*importjavaxswing*publicclassNumberButtonextendsButton{intnumberpublicNumberButton(intnumber){super(""number)thisnumber=numbersetForeground(Colorblue)}publicintgetNumber(){returnnumber}}OperateButtonjavaimportjavaawt*importjavaawtevent*importjavaxswing*publicclassOperationButtonextendsButton{String运算符号publicOperationButton(Strings){super(s)运算符号=ssetForeground(Colorred)}publicStringget运算符号(){return运算符号}}ComputerPadjavaimportjavaawt*importjavaawtevent*importjavaxswing*importjavaxswingborder*importjavautilLinkedListimportjavatextNumberFormat保存计算过程的计算器publicclassComputerPadextendsFrameimplementsActionListener{NumberButtonnumberButtonOperationButtonoprationButtonButton小数点按钮,正负号按钮,退格按钮,求倒数按钮,等号按钮,清零按钮PanelpanelJTextFieldresultShowJTextFieldprocessString运算符号={"","","*",""}LinkedList链表boolean是否按下等号=falsepublicComputerPad(){super("计算器")链表=newLinkedList()numberButton=newNumberButtonfor(inti=i<=i){numberButtoni=newNumberButton(i)numberButtoniaddActionListener(this)}oprationButton=newOperationButtonfor(inti=i<i){oprationButtoni=newOperationButton(运算符号i)oprationButtoniaddActionListener(this)}小数点按钮=newButton("")正负号按钮=newButton("")等号按钮=newButton("=")求倒数按钮=newButton("x")退格按钮=newButton("退格")清零按钮=newButton("C")清零按钮setForeground(Colorred)退格按钮setForeground(Colorred)等号按钮setForeground(Colorred)求倒数按钮setForeground(Colorblue)正负号按钮setForeground(Colorblue)小数点按钮setForeground(Colorblue)退格按钮addActionListener(this)清零按钮addActionListener(this)等号按钮addActionListener(this)小数点按钮addActionListener(this)正负号按钮addActionListener(this)求倒数按钮addActionListener(this)保存计算过程的计算器process=newJTextField()processsetHorizontalAlignment(JTextFieldLEFT)processsetForeground(Colorblue)processsetFont(newFont("TimesRoman",FontPLAIN,))processsetBorder(newSoftBevelBorder(BevelBorderLOWERED))processsetBackground(Colorwhite)processsetEditable(false)resultShow=newJTextField()resultShowsetHorizontalAlignment(JTextFieldRIGHT)resultShowsetForeground(Colorblue)resultShowsetFont(newFont("TimesRoman",FontPLAIN,))resultShowsetBorder(newSoftBevelBorder(BevelBorderLOWERED))resultShowsetBackground(Colorwhite)resultShowsetEditable(false)panel=newPanel()panelsetLayout(newGridLayout(,))Paneladd(清零按钮)Paneladd(退格按钮)paneladd(numberButton)paneladd(numberButton)paneladd(numberButton)Paneladd(numberButton)paneladd(numberButton)paneladd(numberButton)Paneladd(numberButton)paneladd(numberButton)paneladd(numberButton)Paneladd(numberButton)Paneladd(oprationButton)paneladd(oprationButton)paneladd(oprationButton)paneladd(oprationButton)paneladd(求倒数按钮)paneladd(正负号按钮)paneladd(小数点按钮)Paneladd(等号按钮)add(panel,BorderLayoutSOUTH)add(resultShow,BorderLayoutCENTER)add(process,BorderLayoutNORTH)addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){Systemexit()}})setVisible(true)setBounds(,,,)setResizable(false)保存计算过程的计算器validate()}publicvoidactionPerformed(ActionEvente){if(egetSource()instanceofNumberButton){NumberButtonb=(NumberButton)egetSource()if(链表size()==){intnumber=bgetNumber()链表add(""number)resultShowsetText(""number)processsetText(""number)是否按下等号=false}elseif(链表size()==是否按下等号==false){intnumber=bgetNumber()Stringnum=(String)链表getFirst()Strings=numconcat(""number)链表set(,s)resultShowsetText(s)processsetText(s)}elseif(链表size()==是否按下等号==true){intnumber=bgetNumber()链表removeFirst()链表add(""number)是否按下等号=falseresultShowsetText(""number)processsetText(""number)}elseif(链表size()==){intnumber=bgetNumber()链表add(""number)resultShowsetText(""number)processsetText(""((String)链表get())((String)链表get())number)}elseif(链表size()==){intnumber=bgetNumber()保存计算过程的计算器Stringnum=(String)链表getLast()Strings=numconcat(""number)processsetText(""((String)链表get())((String)链表get())((String)链表get())number)链表set(,s)resultShowsetText(s)}}elseif(egetSource()instanceofOperationButton){OperationButtonb=(OperationButton)egetSource()if(链表size()==){Stringfuhao=bget运算符号()processsetText(""((String)链表get())fuhao)链表add(fuhao)}elseif(链表size()==){Stringfuhao=bget运算符号()链表set(,fuhao)processsetText(""((String)链表get())((String)链表get()))}elseif(链表size()==){Stringfuhao=bget运算符号()Stringnumber=(String)链表getFirst()Stringnumber=(String)链表getLast()String运算符号=(String)链表get()processsetText(""((String)链表get())((String)链表get())((String)链表get())运算符号)try{doublen=DoubleparseDouble(number)doublen=DoubleparseDouble(number)doublen=if(运算符号equals("")){n=nn}elseif(运算符号equals("")){n=nn}elseif(运算符号equals("*"))保存计算过程的计算器{n=n*n}elseif(运算符号equals("")){n=nn}链表clear()链表add(""n)链表add(fuhao)resultShowsetText(""n)}catch(Exceptionee){}}}elseif(egetSource()==等号按钮){是否按下等号=trueif(链表size()==||链表size()==){Stringnum=(String)链表getFirst()resultShowsetText(""num)processsetText(num"=")}elseif(链表size()==){Stringnumber=(String)链表getFirst()Stringnumber=(String)链表getLast()String运算符号=(String)链表get()processsetText(""((String)链表get())((String)链表get())((String)链表get())"=")try{doublen=DoubleparseDouble(number)doublen=DoubleparseDouble(number)doublen=if(运算符号equals("")){n=nn}elseif(运算符号equals("")){n=nn}保存计算过程的计算器elseif(运算符号equals("*")){n=n*n}elseif(运算符号equals("")){n=nn}resultShowsetText(""n)链表set(,""n)链表removeLast()链表removeLast()}catch(Exceptionee){}}}elseif(egetSource()==小数点按钮){if(链表size()==){是否按下等号=false}elseif(链表size()==){Stringdot=小数点按钮getLabel()Stringnum=(String)链表getFirst()Strings=if(numindexOf(dot)==){s=numconcat(dot)链表set(,s)}else{s=num}链表set(,s)resultShowsetText(s)processsetText(s)}elseif(链表size()==){Stringdot=小数点按钮getLabel()Stringnum=(String)链表getLast()保存计算过程的计算器Strings=if(numindexOf(dot)==){s=numconcat(dot)链表set(,s)}else{s=num}resultShowsetText(s)processsetText(""((String)链表get())((String)链表get())((String)链表get()))}}elseif(egetSource()==退格按钮){if(链表size()==){Stringnum=(String)链表getFirst()if(numlength()>=){num=numsubstring(,numlength())链表set(,num)resultShowsetText(num)processsetText(""((String)链表get()))}else{链表removeLast()resultShowsetText("")}}elseif(链表size()==){Stringnum=(String)链表getLast()if(numlength()>=){num=numsubstring(,numlength())链表set(,num)resultShowsetText(num)processsetText(""((String)链表get())((String)链表get())((String)链表get()))}else{链表removeLast()resultShowsetText("")保存计算过程的计算器}}}elseif(egetSource()==正负号按钮){if(链表size()==){Stringnumber=(String)链表getFirst()try{doubled=DoubleparseDouble(number)d=*dStringstr=StringvalueOf(d)链表set(,str)resultShowsetText(str)processsetText(str)}catch(Exceptionee){}}elseif(链表size()==){Stringnumber=(String)链表getLast()try{doubled=DoubleparseDouble(number)d=*dStringstr=StringvalueOf(d)链表set(,str)resultShowsetText(str)processsetText(""((String)链表get())((String)链表get())((String)链表get()))}catch(Exceptionee){}}}elseif(egetSource()==求倒数按钮){if(链表size()==||链表size()==){Stringnumber=(String)链表getFirst()try{doubled=DoubleparseDouble(number)保存计算过程的计算器d=dStringstr=StringvalueOf(d)链表set(,str)resultShowsetText(str)processsetText(str)}catch(Exceptionee){}}elseif(链表size()==){Stringnumber=(String)链表getLast()try{doubled=DoubleparseDouble(number)d=dStringstr=StringvalueOf(d)链表set(,str)resultShowsetText(str)processsetText(""((String)链表get())((String)链表get())((String)链表get()))}catch(Exceptionee){}}}elseif(egetSource()==清零按钮){是否按下等号=falseresultShowsetText("")processsetText("")链表clear()}}publicstaticvoidmain(Stringargs){newComputerPad()}}

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/33
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部