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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

JAVA课程设计任务书科学计算器.docx

1、JAVA课程设计任务书 科学计算器高级语言程序设计(2)课程设计报告 专业: 班级: 学号: 姓名: 完成日期 : 指导教师: 1、 程序设计说明书【设计题目】科学计算器【问题描述】本程序为设计一个科学计算器,用于进行数值计算。可以进行数据的加减乘除,对数等计算。【软件功能】1 图形界面:应用AWT和Swing设计工作界面,按下数字时显示数字,按下“=”时 显示结果。2 计算器基本功能:加减乘除四则运算,倒数,开平方等。3 附加运算功能:三角函数,对数,阶乘,度转化为弧度等。 4 计算器的存储功能:清除中间结果,使用中间结果,存储中间结果及累加中间结果 5 用不同颜色进行分区【算法思想】本程序

2、设计一个主类和四个内部类。通过在主类中调用四个类来实现程序的各个功能。【类的设计】 1 主类SmartCalculator类,继承了JFrame类成员变量 tf是JTextField对象,单行文本框,用来显示数据。 panel1,panel2,panel3,panel4是JPanel对象,用来盛放按钮。Panel1盛放“”,“CE”,“C”按 钮,Panel2盛放功能区按钮,Panel3盛放记忆区按钮,Panel4盛放面板Panel1和Panel2 isResult,flag是布尔型变量 result是double型变量,存储结果 SpecialNumActionListener是Specia

3、lNum类的对象,监听特殊数字按钮 df是DecimalFormat类的对象,控制输出格式方法 SmartCauculator是构造方法,完成面板的布局并调用init方法 init方法调用addButton方法向面板中增加按钮 addButtion方法统一设置按钮的使用方式,参数包括panel,name,action,color,每次完成向面板 添加按钮,设置名字,添加键盘监听器和设置按钮颜色 getResult方法实现四则运算,并输出 main方法,程序入口2 内部类FunctionSigns,继承接口ActionListener,实现接口的actionProform抽象方法,完成开平方,求

4、对数等操作3 内部类ClearArea,继承接口ActionListener,实现接口的actionProform抽象方法,对清除区三个按钮“”,“CE”,“C”进行监听,实现删除功能。4内部类 SpecialNum,继承接口ActionListener,实现接口的actionProform抽象方法,对,e,及数字键监听5 Dot对小数点进行监听【用户界面】【模块划分及调用关系】 DotSpecialNumClearAreaFunctions程序分为五个模块,在主类中对剩余四个模块进行调用【模块流程图】SmartCalculator类流程图ClearArea流程图 N N Y Y N Y Y【

5、运行说明】程序运行后会弹出计算器界面,用户使用鼠标点击按钮就可以进行数据计算。2、 程序上机调试报告【语法错误及其排除】在使用if()else if()嵌套语句时经常出现语法错误,在查阅书籍后排除【算法错误及其排除】在对抽象方法actionPerformed进行现实时总出现错误,最后排除。3、 程序测试结果【测试数据】计算36+47,993, ,输出,e的值,将180度转换成弧度,【输出结果】【收获及体会】从本次课程设计的完成中,首先我发现了我有很多不足的地方,最突出的是所学的东西太少了,根本满足不了平时编写程序的需要。此外,了解了课程设计的要求与方法,学会了程序设计基本步骤。同时,使我感觉到

6、,一个优秀的程序,不仅仅是可以运行的,更应该具较高的效率,合理的结构,良好的可读性和一定的容错性。除此之外,一个程序的成功完成需要严谨的务实态度。认真的态度是课程设计取得成功的一项非常重要的保证。在以后的学习中,我将虚心向学力争编写出更有意义的程序。4、 源程序代码(Java语言,要求有尽可能多的注释语句)package 课程设计之计算器;import java.awt.*;import java.awt.event.*;import java.text.DecimalFormat;import javax.swing.*;public class SmartCalculator extend

7、s JFrame /* * */ private static final long serialVersionUID = 1L; private JTextField tf; private JPanel panel1,panel2,panel3,panel4; private String back; private boolean isResult=true,flag=false; private String operator=; private double result=0; private SpecialNum SpecialNumActionListener; private

8、DecimalFormat df; public SmartCalculator() super(科学计算器);/设置标题栏 df=new DecimalFormat(#.#);/保留四位小数 this.setLayout(new BorderLayout(10,5);/边界布局 panel1=new JPanel(new GridLayout(1,3,10,10);/1行3列 panel2=new JPanel(new GridLayout(5,6,5,5);/5行6列 ,水平间隔和竖直间隔都设为5 panel3=new JPanel(new GridLayout(5,1,5,5);/5行1

9、列 ,水平间隔和竖直间隔都设为5 panel4=new JPanel(new BorderLayout();/边界布局 SpecialNumActionListener=new SpecialNum();/实现对特殊数字的监听 tf= new JTextField(); /文本区域,即计算器的显示区域 tf.setEditable(true); /文本区域可编辑,C复制结果 tf.setBackground(Color.WHITE); /文本区域背景色为白 tf.setHorizontalAlignment(JTextField.RIGHT);/文字右对齐 tf.setText(0); tf.

10、setBorder(BorderFactory.createLineBorder(Color.RED) ); tf.setEditable(false); /设为不可编辑 init(); /调用init方法初始化计算器/* *初始化界面 */ private void init() addButton(panel1,new ClearArea(),Color.BLACK); /黑色 addButton(panel1,CE,new ClearArea(),Color.BLACK); addButton(panel1,C,new ClearArea(),Color.BLACK); addButto

11、n(panel2,1/x,new FunctionSigns(),Color.magenta);/洋红色 addButton(panel2,log,new FunctionSigns(),Color.magenta); addButton(panel2,7,SpecialNumActionListener,Color.blue);/蓝色 addButton(panel2,8,SpecialNumActionListener,Color.blue); addButton(panel2,9,SpecialNumActionListener,Color.blue); addButton(panel2

12、,new FunctionSigns(),Color.BLACK); addButton(panel2,n!,new FunctionSigns(),Color.magenta); addButton(panel2,sqrt,new FunctionSigns(),Color.magenta); addButton(panel2,4,SpecialNumActionListener,Color.blue); addButton(panel2,5,SpecialNumActionListener,Color.blue); addButton(panel2,6,SpecialNumActionLi

13、stener,Color.blue); addButton(panel2,new FunctionSigns(),Color.BLACK); addButton(panel2,sin,new FunctionSigns(),Color.magenta); addButton(panel2,x2,new FunctionSigns(),Color.magenta); addButton(panel2,1,SpecialNumActionListener,Color.blue); addButton(panel2,2,SpecialNumActionListener,Color.blue); ad

14、dButton(panel2,3,SpecialNumActionListener,Color.blue); addButton(panel2,-,new FunctionSigns(),Color.BLACK); addButton(panel2,cos,new FunctionSigns(),Color.magenta); addButton(panel2,x3,new FunctionSigns(),Color.magenta); addButton(panel2,0,SpecialNumActionListener,Color.blue); addButton(panel2,-/+,n

15、ew ClearArea(),Color.blue); addButton(panel2,.,new Dot(),Color.blue); addButton(panel2,+,new FunctionSigns(),Color.BLACK); addButton(panel2,tan,new FunctionSigns(),Color.magenta); addButton(panel2,%,new FunctionSigns(),Color.magenta); addButton(panel2,SpecialNumActionListener,Color.gray);/灰色 addButt

16、on(panel2,e,SpecialNumActionListener,Color.gray); addButton(panel2,度变弧度,new FunctionSigns(),Color.gray); addButton(panel2,=,new FunctionSigns(),Color.BLACK); JButton btns=new JButton(记忆区); btns.setBorder(BorderFactory.createLoweredBevelBorder();/凹入斜面效果 btns.setEnabled(false); /按钮不可操作 btns.setPreferr

17、edSize(new Dimension(20,20); panel3.add(btns); /加入按钮 addButton(panel3,MC,null,Color.BLACK); addButton(panel3,MR,null,Color.BLACK); addButton(panel3,MS,null,Color.BLACK); addButton(panel3,M+,null,Color.BLACK); panel4.add(panel1,BorderLayout.NORTH); panel4.add(panel2,BorderLayout.CENTER); this.add(tf,

18、BorderLayout.NORTH); this.add(panel3,BorderLayout.WEST); this.add(panel4); pack(); this.setResizable(false); /窗口不可改变大小 this.setLocation(300,200); /窗口定位 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/关闭按钮 /* * 统一设置按钮的使用方式,参数包括panel,name,action,color */ private void addButton(JPanel panel,String

19、 name,ActionListener action,Color color) JButton bt=new JButton(name); panel.add(bt); /向面板添加按钮 bt.addActionListener(action); /增加监听事件 bt.setForeground(color); /设置文字颜色 /* * 四则运算,参数X表示用户输入数字 */ private void getResult(double x) if(operator=+)result+=x; else if(operator=-)result-=x; else if(operator=)res

20、ult*=x; else if(operator=)result/=x; else if(operator=)result=x; tf.setText(df.format(result); /* * 函数区运算符号事件监听 */ class FunctionSigns implements ActionListener public void actionPerformed(ActionEvent e) /*用ActionEvent对象的getActionCommand()方法 * 取得与引发事件对象相关的字符串 */ String str=e.getActionCommand(); /求平方

21、根 if(str.equals(sqrt) double i=Double.parseDouble(tf.getText(); if(i=0) /* * String.valueof() 转换为字符串 * df.format()按要求保留四位小数 * Math.sqrt()求算数术平方根 */ tf.setText(String.valueOf(df.format(Math.sqrt(i); else tf.setText(负数不能开平方根); else if(str.equals(log) / 求常用对数 double i=Double.parseDouble(tf.getText(); i

22、f(i0) tf.setText(String.valueOf(df.format(Math.log(i); else tf.setText(负数不能求对数); else if(str.equals(%) /求百分比 tf.setText(df.format(Double.parseDouble(tf.getText()/100); else if(str.equals(1/x) /求倒数 if(Double.parseDouble(tf.getText()=0) tf.setText(除数不能为零); else tf.setText(df.format(1/Double.parseDoubl

23、e(tf.getText(); else if(str.equals(sin) /求正弦函数 double i=Double.parseDouble(tf.getText(); tf.setText(String.valueOf(df.format(Math.sin(i); else if(str.equals(cos) /求余弦函数 double i=Double.parseDouble(tf.getText(); tf.setText(String.valueOf(df.format(Math.cos(i); else if(str.equals(tan) /求正切函数 double i=

24、Double.parseDouble(tf.getText(); tf.setText(String.valueOf(df.format(Math.tan(i); else if(str.equals(n!) /求阶乘 double i=Double.parseDouble(tf.getText(); if(i%2=0)|(i%2=1) /判断为整数放进行阶乘操作 int j=(int)i; /强制类型转换 int result=1; for(int k=1;k0) if(tf.getText().length()1) tf.setText(tf.getText().substring(0,tf.getText().length()-1); else tf.setText(0); isResult=true; else if(str=CE) tf.setText(0); isResult=true; /* * 特殊数字去两个按钮的事件监听 */ class SpecialNum implements ActionListener public void actionPerformed(ActionEvent e) String str=e.getActionCommand(); if(i

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2