ImageVerifierCode 换一换
格式:DOCX , 页数:72 ,大小:335.17KB ,
资源ID:3836463      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(科学计算器软件设计与实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

科学计算器软件设计与实现.docx

1、科学计算器软件设计与实现 面向对象程序设计课程设计报告题 目: 科学计算器软件设计与实现 院 (系): 信息科学与工程学院 专业班级: 计算机科学与技术1201班 学生姓名: 程 伟 学 号: 20121183011 指导教师: 吴 奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日华中科技大学武昌分校制 面向对象程序设计 课程设计任务书一、设计(调查报告/论文)题目科学计算器软件设计与实现二、设计(调查报告/论文)主要内容内容:完成一个图形界面的计算器,可以在标准计算器和科学计算器之间切换,标准计算器的基本功能有:加、减、乘、除基本算术运算;科学计算器的基本功能有:三角函

2、数、进制转换、对数、阶乘;一元二次方程界面可以求一元二次方程的解;勾股定理界面可以求直角三角形边长。 基本功能与要求:1标准计算器:加、减、乘、除、求平方根;2科学计算器:进制转换、求解三角函数、对数运算、阶乘;3一元二次方程:求一元二次方程的解;4勾股定理:求直角三角边长。 三、原始资料1.面向对象程序设计课程设计指导书2. 耿祥义JAVA大学实用教程北京:清华大学出版社,2009四、要求的设计(调查/论文)成果1.课程设计报告2.课程设计软件五、进程安排布置任务,查找资料、需求分析1天总体设计1天详细设计1.5天编制源程序实现3.5天测试与修改1天撰写课设报告2天六、主要参考资料1 张广彬

3、. Java课程设计案例精编(第二版).北京:清华大学出版社, 2011. 2 耿祥义. Java课程设计(第二版).北京:清华大学出版社, 2008.3 耿祥义JAVA大学实用教程北京:清华大学出版社,20094 邹林达陈国君 Java2程序设计基础北京:清华大学出版社,20105 邹林达Java2程序设计基础实验指导北京:清华大学,2010指导教师(签名): 20 年 月 日1需求与总体设计1.1需求分析1刚启动计算器时的状态:开始计算按键开始键ON清零:计算刚启动时,或者任何时候键入了清零键,计算器所处的状态。2一个操作数:输入了一个操作数时计算器所处的状态,如键入“2”后的状态,此时操

4、作数为“2”,或者依次键入“3”、“8”后的状态,此时操作数为“38”。 3运算结果:键入了“=”键后计算器所处的状态,如依次键入“35=”之后计算器的状态。在此状态如果输入数字,输入的数字将作为第一个操作数,开始一次新的计算。4一个操作数和一个两元符号:输入了一个操作数和加减乘除中的一个键后计算器的状态,如依次输入“2”或“315=”之后计算器的状态。5操作数两元符操作数:输入了一个操作数、一个加减乘除符号和另一个操作数后计算器所处的状态,如依次键入“304”或“35=5”后计算器的状态。6操作数两元符运算结果:输入了一个操作数、一个加减乘除符号和另一个操作数后紧接着键入开方键计算器所处的状

5、态。7错误:执行非法计算后所处的状态,如执行0计算或者对负数的开方计算后的状态。比如6/0后计算的结果是“0不能做除数”。1.2总体设计思路 对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。 文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文

6、本框中的内容加上你所点击按钮的数值设置到文本框中。这是计算器中的一种:简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算 。1.3功能图1.4类图 2详细设计2.1详细设计思路1) 流程图,如图6。图6 流程图2) 设置窗体窗体名称biaozhun继承JFrame类和ActionListener接口,并实现public void actionPerformed(ActionEvent e)方法。3) 定义菜单、菜单条、菜单项、按钮、文本框、容器,设置为priv

7、ate类型。4) 定义变量double memoryd;/使用内存中存储的数字;DecimalFormat df;/保留小数位数。5) 使用private JButton getJButton()方法添加按钮并给按钮命名,使用setFont(new Font(楷体, Font.BOLD, 30); setForeground(new Color(250,0,0);方法设置按钮的字体和字体颜色。6) 设置数字按钮1到9并添加监控,使其在发生鼠标事件时改变按钮颜色addMouseListener(new MouseListener() public void actionPerformed(Mou

8、seEvent e) jButton.setForeground(new Color(0,100,0); public void mouseClicked(MouseEvent e) jButton.setForeground(new Color(0,150,100); public void mouseEntered(MouseEvent e) jButton.setForeground(new Color(0,0,250); public void mouseExited(MouseEvent e) jButton.setForeground(new Color(250,0,0); pub

9、lic void mousePressed(MouseEvent e) jButton.setForeground(new Color(0,250,0); public void mouseReleased(MouseEvent e) jButton.setForeground(new Color(250,250,0););7) 开根号运算,定义jButton2 = new JButton(sqrt);对其设置监控,调用Math.sqrt()方法来实现开根号运算,并在文本框中输出结果,jButton2.addActionListener(new ActionListener() public

10、void actionPerformed(ActionEvent e) double a=Double.parseDouble(jTextField.getText(); double b; if(a=0&e.getKeyChar()=9) str+=e.getKeyChar(); jTextField.setText(str); else if(e.getKeyChar()=KeyEvent.VK_BACK_SPACE) str=str.substring(0, str.length()-1); jTextField.setText(str); else if(e.getKeyChar()=

11、KeyEvent.VK_ESCAPE) str=; jTextField.setText(str););14) 定义jButton20、jButton21、jButton22、jButton23分别为MC、MR、MS、M+,并且对按钮添加监听,计算器内部有一个存贮器,假设将其称为“寄数器”。MS是将当前窗口数据写入“寄数器”,M+是将当前窗口数据与“寄数器”内的数据相加后再存入“寄数器”,MR是读出“寄数器”内的数据到窗口,MC是清除“寄数器”内的数据,使其为0。按钮实现方法在public void actionPerformed(ActionEvent e)中实现,public void a

12、ctionPerformed(ActionEvent e) Object temp = e.getSource(); if (temp = jButton20) memoryd = memoryi = 0; textMemory.setText(ZY ); textMemory.setFont(new Font(华文行楷, Font.BOLD, 30); /MS的操作,将当前文本框内容保存入内存,显示M if (temp = jButton22) /textMemory显示m的文本框 boolean isDot = false; textMemory.setText( M ); textMem

13、ory.setFont(new Font(楷体, Font.BOLD, 30); for (int i = 0; i jTextField.getText().length(); i+) if (. = jTextField.getText().charAt(i) isDot = true; break; /如果是double,则存入memoryd(double存储器) if (isDot = true) memoryd = Double.parseDouble(jTextField.getText(); memoryi = 0; /保证存储器中存放最新的值 /如果是int,则存入memory

14、i(int存储器) else memoryi = Integer.parseInt(jTextField.getText(); memoryd = 0; /保证存储器中存放最新的值 /MR的操作,将存储器中的信息输出 if (temp = jButton21) if (memoryd != 0) jTextField.setText(Double.toString(memoryd); if (memoryi != 0) jTextField.setText(Integer.toString(memoryi); /M+的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器 if (tem

15、p = jButton23) textMemory.setText( M ); textMemory.setFont(new Font(楷体, Font.BOLD, 30); boolean isDot = false; for (int i = 0; i jTextField.getText().length(); i+) if (. = jTextField.getText().charAt(i) isDot = true; break; if (memoryi != 0) /存储中是一个int型数 if (isDot = false) /被加数是一个int型数 memoryi += In

16、teger.parseInt(jTextField.getText(); else /被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零memoryd = memoryi + Double.parseDouble(jTextField.getText(); memoryi = 0; else memoryd += Double.parseDouble(jTextField.getText(); 15) 设置退格按钮backspace,为jButton24添加监控ActionListener,通过引用全局变量str,str为string类型的变

17、量jButton24.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(str.length()!=0) str=str.substring(0, str.length()-1); jTextField.setText(str););16) 设置清空按钮C,添加监控,在单击C时通过改变全局变量str的值来实现功能,单击时就将str的值赋为空,文本框jTextField通过调用setText将str的值输出。jButton26.addActionListener(new Act

18、ionListener() public void actionPerformed(ActionEvent e) str=; jTextField.setText(str););17) 添加菜单条jJMenuBar,在jJMenuBar中通过add来添加获取菜单的方法getJMenu,以此将菜单添加到菜单条中。菜单分别为编辑、查看、帮助。这三个菜单分别在其对应的getJMenu()方法中定义,编辑菜单下定义了菜单项复制和黏贴,查看菜单下定义了标准型、科学型、勾股定理、解一元二次方程四个菜单项,标准型通过jMenuItem4.addActionListener(new ActionListene

19、r() public void actionPerformed(ActionEvent e) df=new DecimalFormat(#.#);/保留15位小数biaozhun.this.setBounds(400, 200, 600, 590);biaozhun.this.setJMenuBar(getJJMenuBar();biaozhun.this.setContentPane(getJContentPane1();/将jContentPane1面板添加到jFrame框架上 biaozhun.this.setTitle(计 算 器);Image image=biaozhun.this.

20、getToolkit().getImage(计算器图标.jpg);biaozhun.this.setIconImage(image);biaozhun.this.setVisible(true);jTextField.addActionListener(this););方法来实现窗体之间切换。setBounds()方法实现窗体的显示位置和窗体大小,setVisible()将其设置为true使其变为可见。使用相同的方法实现窗体之间相互切换,其中标准型和科学型在同一个窗体中,通过改变窗体大小和窗体添加控件来实现标准型和科学型两种计算器所需要的按钮。勾股定理、解一元二次方程通过改变setVisibl

21、e()的值为true和false来实现窗体切换。帮助菜单下添加帮助主题和关于计算器选项,当单击帮助主题时就打开系统中关于计算器的帮助文件,单击关于计算器时就会打开一个窗体显示关于计算器的内容,当单击确定按钮时就会关闭关于计算器窗体。18) 定义JPanel类型的变量jPanel、jContentPane,在容器jPanel中添加标准计算器的右下角的按钮,jContentPane中添加退格、清除、MS、MR、MC、M+按钮,jPanel在方法getJPanel()中,jContentPane在方法getJContentPane()中,窗体通过this.setJMenuBar(getJJMenuB

22、ar();this.setContentPane(getJContentPane();将控件添加到窗体中。19) 定义进制转换按钮,jButton31、jButton34、jButton37、jButton40分别为十六进制、十进制、八进制、二进制,通过调用Integer.toHexString(n)十六进制、Integer.toOctalString(n)八进制、Integer.toBinaryString(n)二进制来实现进制之间的相互转换。20) 定义三角函数sin、cos、tan但是在使用需要先调用弧度按钮,将相应的角度转换成弧度以后在使用三角函数对应的按钮才可以实现求三角函数的值。求

23、弧度方法在定义弧度按钮时实现,string.valueOf(i/180*Math.PI)求对应的弧度sin、cos、tan使用math中的方法。21) 定义阶乘按钮jButton42,实现求阶乘方法,jButton42.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) double i=Double.parseDouble(jTextField.getText(); if(i%2=0)|(i%2=1)/判断为整数进行阶乘操作 int j=(int)i;/强制类型转换 int res

24、ult=1; for(int k=1;k=j;k+) result *=k; jTextField.setText(String.valueOf(result););22) 定义pi按钮,直接调用Math.PI,通过jTextField.setText(String.valueOf(Math.PI);在窗体中显示pi值。23) 定义log10按钮,用来求log以10为底的对数值,当对数值i大于0时就调用Math.log10(i)来输出结果,当i小于0时就在文本框中显示负数不能求对数!。jButton45.addActionListener(new ActionListener() public void actionPerformed(Act

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1