欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:14478629       资源大小:95.22KB        全文页数:20页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    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


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开