ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:207.04KB ,
资源ID:4549607      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4549607.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(计算器设计的java专业课程设计方案报告.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

计算器设计的java专业课程设计方案报告.doc

1、华东交通大学课程设计课程设计题目:计算器设计 课 程: Java程序设计 题 目: 计算器设计 年 级: 级 专 业: 信息一班 学 号: 姓 名: 组 员: 指导老师: 课程设计(论文)任务书 基础 学院信息和计算科学 专业1班 一、课程设计(论文)题目计算器设计 二、课程设计(论文)工作自 年 6 月23日起至 年6月 27日止。三、课程设计(论文) 地点: 计算机中心 四、课程设计(论文)内容要求:1本课程设计目标(1)使学生掌握系统各功效模块基础工作原理; (2)掌握Java基础编程原理和基础编程方法; (3)使学生学会系统调试;(4)培养学生分析、处理问题能力;(5)提升学生软件文档

2、写作能力和团体合作精神。 2课程设计任务及要求1)基础要求:(1)分析系统各功效模块工作原理;(2)提出系统设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基础要求达成后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。 3)课程设计论文编写要求(1)要根据书稿规格打印誊写设计论文;(2)论文包含目录、摘要、正文、总结等;(3)毕业论文装订按学校统一要求完成。4)答辩和评分标准: (1)达成课程设计目标和要求,程序可读性很好,并调试正确,60分;(2)能正确回复老师所提问题,可增加10分;(3)课程设计汇报书写规范整齐,可增加10分;(4)心得体会认真总结,可增加10

3、分;(5)程序有创新性,可增加10分;成绩评定实施优异、良好、中等、及格和不及格五个等级。不及格者需重做。5)参考文件:(1)丁振凡.J ava语言程序设计 清华大学出版社 (2)丁振凡.J ava语言程序设计试验指导和习题解析清华大学出版社(3)http:/ /6)课程设计进度安排内容 天数 地点总体需求和分析构思及搜集资料 1 图书馆各模块编程实现,调试和修改 3 机房撰写论文和答辩 1 图书馆,机房学生署名: 年6 月18 日课程设计(论文)评审意见(1)态度评价(20分):优()、良()、中()、通常()、差(); (2)任务难度(20分):优()、良()、中()、通常()、差();

4、(3)设计分析(20分):优()、良()、中()、通常()、差();(4)创新性评价(20分):优()、良()、中()、通常()、差();(5)回复问题(20分):优()、良()、中()、通常()、差();(6)论文格式规范性及考勤是否降等级:是()、否( ) 评阅人署名: 职称: 教授 年6 月25日目录第1章 系统概要- 1 -1.1系统介绍- 1 -1.2 基础功效要求- 1 -第2章 设计思绪和算法- 2 -2.1 应用基础工作步骤- 2 -2.2 类设计- 3 -2.3 应用界面设计- 3 -2.4 事件处理原理、具体设计- 3 -2.5 算法考虑- 4 -第3章 源程序代码- 5

5、-第4章 运行结果及分析- 15 -第5章 心得体会- 17 -5.1系统需要完善地方- 17 -5.2课程设计感想- 17 -参考文件- 17 -第1章 系统概要1.1系统介绍 编写一个简易计算器,实现Windows计算器关键功效。此次课程设计就是利用java语言来编写简单计算器应用程序,模拟Windows计算器功效,能进行加、减、乘、除四则算术运算和求倒数、求平方根等简单函数运算,且有小数点、清零和存放等功效。1.2基础功效要求经过计算器设计,掌握Java编程基础知识点。(1)掌握基于AWT图形用户界面设计,如常见布局设计,容器中面板、按钮、文本框等组件添加和布局。(2)掌握图形界面事件处

6、理方法,注册动作事件监听者。(3)掌握各类功效实现思绪,及程序表示。熟悉实例变量、类变量和局部变量差异。(4)掌握方法封装和调用。尽可能将反复用到一段功效设计为方法。(5)掌握if和switch等语句使用。(6)掌握怎样给按钮设置颜色及给页面背景设计颜色。(7)掌握java中“对象”和“类”知识,类设计及组员控制访问第2章 设计思绪和算法2.1 应用基础工作步骤1. 打开命令提醒符和记事本;2. 输入源程序代码;3. 保留并运行源程序;4. 运行,检验是否有误;5. 修改错误并再次运行;6. 测试计算器工作情况。2.2 类设计此次计算器设计,关键用到是GUI编程相关方法。所以我们所用到类和方法

7、关键有:主类:Calculation类继承父类为WindowAdapter类,实现了ActionListener接口,定义了一个窗体f和多个面板,按钮和文本框。(1)方法名:display方法作用:构建计算器主界面在方法display中,定义了窗体标题,设置了窗体大小并经过setVisible(true)方法使窗体可见,setBackground()方法设置背景颜色,setResizable(false)方法使窗体大小不可变。用setLayout()方法给容器指定按BorderLayout布局排列部件: 经过容器add()方法将面板放置在North区域:f.add(p5,BorderLayou

8、t.NORTH),经过add方法用来向面板中加入部件。添加GUI部件并给各个部件各自不一样标识,创建中间面板时,如面板p1,p1=new Panel(new GridLayout(1,3,5,5),设置为GridLayout布局,再用add方法把按钮全部加进去,按(1,3,5,5)方法排列经过按钮对象addActionListener方法为其注册事件监听处理者。 (2)方法名:actionPerformed方法作用:设置各个GUI部件事件处理在 actionPerformed方法中,分别设置了不一样按钮操作事件,当不一样按钮单击发生动作时自动调用实施对应动作,从而实现计算器多个运算功效。经过e

9、.getActionCommand()取得按钮事件对象命令名,再在if语句中依据操作命令符按情况分别处理事件,进行对应运算。经过setText()方法将结果转化为数字串写入文本输入框中。事件监听器中事件处理方法void actionPerformed(ActionEvent e)完成关键按钮事件处理。事件处理分以下多个情况:数字按钮事件(“0”,“1”,“2”,“3”“8”,“9”),小数点按钮事件(“.”),运算符按钮处理事件(“+”,“-”,“*”,“/”),正负号按钮事件(“+/-”),退格按钮事件(“Backspace”),清除按钮事件(“C”),等号按钮事件(“=”),存放按钮事件(

10、“MS”,“MC”,“MR” ,“M+”)等。(3)方法名:main方法在该方法中,经过new运算符创建一个类Calculation对象Cal,经过调用display()方法。(4)方法名:windowClosing方法在该方法中,在处理窗体“关闭”事件监听者采取继承WindowsAdapter方法。2.3 应用界面设计参考了windows计算器布局,我们把总体界面采取BorderLayout布局,文本框所在面板p5在最上方(North区域),存放按钮及显示M状态文本框所在面板p3在最左边(West区域),而Backspace,CE,C所在面板p1和数字按钮、运算符按钮等所在面板p2放置在面板

11、p4中,面板p4统一分布在中央(Center区域),同时面板中又按GridLayout布局分布多行多列。具体以下图所表示。2.4 事件处理原理、具体设计首先,对计算器整体布局构思清楚,将整个计算器分成多行多列组成单元,使得整个计算器布局愈加合理、有序。采取网格块布局,整体分为6行,第一行为输入及显示框,第二行为退格键和清零键,下面几行分别为数字按钮和运算符按钮,和MC,MR,MS,M+等存放按钮。第二,设计依次添加GUI部件。第三,为各个部件注册监听者,考虑到数字键,运算符,等于,小数点,求平方根等不一样和程序调理清楚,我们分别为其设置了不一样监听者。第四,设置对应各类算法。第五,设置主程序和

12、退出方法。在编写完源程序代码后,进行运行,发觉错误并更正。最终,测试制作计算器运行情况即计算能力。动作事件各方关系,结合代码大致以下图所表示:2.5 算法考虑在 actionPerformed方法中,分别设置了不一样按钮操作事件,当不一样按钮单击发生动作时自动调用实施对应动作,从而实现计算器多个运算功效。数字按钮和其它按钮作为事件源全部注册了监听者,且监听者符合ActionListener接口要求。数据和运算符键入经过点击按钮来触发事件,在按下“=”按钮时经过调用之前按下对应运算符所表示运算函数进行运算,将所结果保留在dResult中,并显示在文本框内。求平方根、求倒数等运算时,调用了Math

13、类方法进行运算。当输入小数时,将小数点拼接到数字串中。按下清除按钮时,变量初始化。第3章 源程序代码/用JAVA编写简易计算器程序(模拟Windows计算器)import java.awt.*;import java.awt.event.*;public class Calculation extends WindowAdapter implements ActionListener double dResult=0; double dNowInput=0; double dMemory; /记载内存中存放数据 int n=0; /记载小数位数 int nOperation=1; / 统计运算

14、符类型 int nBitsNum=0; /统计总共输入位数 boolean alreadyHaveDot=false; /是否已经有小数点 boolean keyAvailable=true; boolean alreadyClickedEqueal=false; /是否已经按下过=按钮 boolean isTempNowInput=false; /是否在计算出结果后直接按运算符将结果赋给了目前输入值 Frame f; Panel p1,p2,p3,p4,p5,p6; TextField tf1,tf2; Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0; Button

15、 bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative; Button bBackspace,bCE,bC,bMR,bMS,bMC,bM; public void display() f=new Frame(计算器); f.setSize(280,213); f.setLocation(200,200); f.setBackground(Color.LIGHT_GRAY); f.setResizable(false); f.setLayout(new BorderLayout(3,3); /采取方位布

16、局排列部件 p1=new Panel(new GridLayout(1,3,5,5); /用于存放Backspace,CE,C三键 p2=new Panel(new GridLayout(4,5,5,5); /用于存放数字区及周围共20键 p3=new Panel(new GridLayout(5,1,5,5); /用于存放MC,MR,MS,M+键及显示M状态文本框 p4=new Panel(new FlowLayout(); /用于存放p1,p2 p5=new Panel(new FlowLayout(); p6=new Panel(new FlowLayout(); p4.add(p1);

17、 p4.add(p2); tf1=new TextField(35); /存放显示区 tf1.setText(0.); tf1.setEditable(false); /判定输入框是否可编辑,非编辑状态不能输入数据 p5.add(tf1); f.add(p5,BorderLayout.NORTH); f.add(p4,BorderLayout.CENTER); f.add(p3,BorderLayout.WEST); b1=new Button(1); /数字按钮 b2=new Button(2); b3=new Button(3); b4=new Button(4); b5=new Butt

18、on(5); b6=new Button(6); b7=new Button(7); b8=new Button(8); b9=new Button(9); b0=new Button(0); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addA

19、ctionListener(this); b9.addActionListener(this); b0.addActionListener(this); bDiv=new Button(/); /运算符按钮 bSqrt=new Button(sqrt); bMulti=new Button(*); bMinus=new Button(-); bPercent=new Button(%); bPlus=new Button(+); bReciprocal=new Button(1/x); bEqual=new Button(=); bDot=new Button(.); bNegative=ne

20、w Button(+/-); bDiv.addActionListener(this); bSqrt.addActionListener(this); bMulti.addActionListener(this); bMinus.addActionListener(this); bPercent.addActionListener(this); bPlus.addActionListener(this); bReciprocal.addActionListener(this); bEqual.addActionListener(this); bDot.addActionListener(thi

21、s); bNegative.addActionListener(this); p2.add(b7); /将按钮依次添加到面板 p2.add(b8); p2.add(b9); p2.add(bDiv); p2.add(bSqrt); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(bMulti); p2.add(bPercent); p2.add(b1); p2.add(b2); p2.add(b3); p2.add(bMinus); p2.add(bReciprocal); p2.add(b0); p2.add(bNegative); p2.add(bDo

22、t); p2.add(bPlus); p2.add(bEqual); bBackspace=new Button(Backspace); bCE=new Button(CE); bC=new Button(C); bBackspace.addActionListener(this); bCE.addActionListener(this); bC.addActionListener(this); p1.add(bBackspace); p1.add(bCE); p1.add(bC); tf2=new TextField(2); tf2.setEnabled(false); tf2.setBac

23、kground(Color.LIGHT_GRAY); bMC=new Button(MC); bMR=new Button(MR); bMS=new Button(MS); bM=new Button(M+); bMC.addActionListener(this); bMR.addActionListener(this); bMS.addActionListener(this); bM.addActionListener(this); p6.add(tf2); p3.add(p6); p3.add(bMC); p3.add(bMR); p3.add(bMS); p3.add(bM); f.s

24、etVisible(true); f.addWindowListener(this); public void actionPerformed(ActionEvent e) /key 0 to 9if(this.keyAvailable&e.getActionCommand().length()=1&e.getActionCommand().compareTo(0)=0 & e.getActionCommand().compareTo(9)=0) if(this.isTempNowInput) this.dNowInput=0; this.isTempNowInput=false; this.

25、nBitsNum+; if(this.alreadyHaveDot=false) this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand(); else double temp=Double.parseDouble(e.getActionCommand(); for(int i=this.n;i=0) this.dResult=Math.sqrt(this.dResult); tf1.setText(Double.toString(this.dResult); else tf1.setText(函数输入无效)

26、; this.keyAvailable=false; else if(this.dNowInput=0) this.dNowInput=Math.sqrt(this.dNowInput); tf1.setText(Double.toString(this.dNowInput); else tf1.setText(函数输入无效); this.keyAvailable=false; / key 1/x if(this.keyAvailable & e.getActionCommand()=1/x) if(this.dNowInput=0) tf1.setText(除数不能为零); this.key

27、Available=false; else this.dNowInput=1/this.dNowInput; tf1.setText(Double.toString(this.dNowInput); / key = if(this.keyAvailable & e.getActionCommand()=) this.alreadyClickedEqueal=true; switch(this.nOperation) case 1: this.dResult+=this.dNowInput; break; case 2: this.dResult-=this.dNowInput; break;

28、case 3: this.dResult*=this.dNowInput; break; case 4: if(this.dNowInput=0) tf1.setText(除数不能为零); this.keyAvailable=false; else this.dResult=this.dResult/this.dNowInput; if(this.keyAvailable)tf1.setText(Double.toString(this.dResult); / key MS if(this.keyAvailable & e.getActionCommand()=MS) this.dMemory

29、=this.dNowInput; if(this.dMemory!=0) tf2.setText(M); / key MC if(this.keyAvailable & e.getActionCommand()=MC) this.dMemory=0; tf2.setText(); / key MR if(this.keyAvailable & e.getActionCommand()=MR) this.dNowInput=this.dMemory; tf1.setText(Double.toString(this.dNowInput); / key M+ if(this.keyAvailabl

30、e & e.getActionCommand()=M+) this.dMemory+=this.dNowInput; if(this.dMemory!=0) tf2.setText(M); else tf2.setText(); / key % if(this.keyAvailable & e.getActionCommand()=%) this.dNowInput=(this.dResult*this.dNowInput)/100; tf1.setText(Double.toString(this.dNowInput); / key Backspace if(this.keyAvailabl

31、e & e.getActionCommand()=Backspace) if(!this.alreadyClickedEqueal) if(this.dNowInput!=0) if(this.alreadyHaveDot) if(this.n=-1) this.alreadyHaveDot=false; this.n=0; else String str,str1; str=tf1.getText(); str1=str.substring(0,this.nBitsNum-1); this.nBitsNum-; this.n+; this.dNowInput=Double.parseDoub

32、le(str1); tf1.setText(Double.toString(this.dNowInput); else int temp; temp=(int)(this.dNowInput/10); this.dNowInput=(double)temp; tf1.setText(Double.toString(this.dNowInput); public static void main(String args) Calculation cal=new Calculation(); cal.display(); public void windowClosing(WindowEvent

33、e) System.exit(0); 第4章 运行结果及分析图1所表示,以下就是我们设计出计算器运行界面截图,这一计算器采取是BorderLayout布局,能够实现十进制下正负数加法、减法、乘法、除法四则运算和求平方根、百分号、求倒数、清零、退格等简单操作。Backspace表示退格,CE表示将目前文本框内数据清空,C表示文本框内数据清除。对应按钮上名称代表了对应数字或运算,最终经过“=”按钮将运算结果显示在第一行文本框内,整体上说设计还成功。图4-1 计算器界面我们发觉了程序能够正确地进行运算,并显示出正确结果,同时发觉该计算器可进行通常语法分析,比如假如除数为零,计算结果显示“除数不能为零

34、”。比如假如对超出八位数据进行操作,计算结果用科学表示法表示。比如假如对非负数进行求平方根,计算结果显示“函数输入无效”。 不过也发觉了计算器对于类似5+6*3运算不能判定运算次序。图4-2所表示,5+6*3计算器计算结果为33,而正确结果应为23。 图4-2 5+6*3运算结果第5章 心得体会5.1系统需要完善地方1.在第四章提到不能对类似5+6*3运算判定运算次序。2.程序比较长,还能够进行简化。3.对于运算方法等方面仍能够进行部分改善。4.这界面还可设有菜单操作(包含:“编辑”,“查看”,“帮助”三个菜单项)5.2 课程设计感想本计算器模拟Windows计算器界面和功效,因为时间仓促和能力有限等问题,只能实现以上功效。此次课程设计到此算是告一段落了,经过这次学习,我学到了很多东西,在此基础上愈加巩固了自己对java认识和了解。在做本项目是时候,会碰到很多小问题,比如说,在整个运算过程中要怎样确保输入计算数据哪个是第一个计算数据,哪个是第二个计算数据,同时也要区分运算符,因为该计算器程序应用全部是利用字符串来完成计算,而且不能反复输出运算符,更不能

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服