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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Java课程设计计算器.docx

1、Java课程设计计算器软 件 学 院课程设计报告书课程名称 面向对象程序设计 设计题目 模拟科学计算器 专业班级 学 号 姓 名 指导教师 2014 年 06月目录1 设计时间.12 设计目的.13 设计题目.14 设计内容.14.1设计任务.14.2总体设计.14.2.1包的描述.14.2.2类的描述.14.3详细设计.14.3.1页面设计.24.4程序代码.25功能模块实现.96运行与测试.97总结与展望.11参考文献.12成绩评定.121 设计时间2014年6月16日2014年6月20日2 设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较

2、全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。3设计题目模拟科学计算器4设计内容 4.1设计任务 界面模拟Windows中的计算器程序。实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。实现要点:添加相关组件并进行按钮事件处理。4.2总体设计4.2.1 包的描述import java.awt.* ;import java.awt.event.* ;import java.text.DecimalFormat

3、;import javax.swing.*;4.2.2 类的描述public Calculator()private void init()private void addButton()private void getResult ()4.3详细设计4.3.1页面设计图1 计算器界面4.4 程序代码import java.awt.*;import java.awt.event.*;import java.text.DecimalFormat;import javax.swing.*;public class Calculator extends JFrame private JTextFie

4、ld tf; private JPanel panel1, panel2, panel3; private String back; private boolean IfResult = true, flag = false; private String oper = =; private double result = 0; private Num numActionListener; private DecimalFormat df; public Calculator() super(科学计算器);/设置标题栏 df = new DecimalFormat(#.#);/保留四位小数 t

5、his.setLayout(new BorderLayout(10, 5); panel1 = new JPanel(new GridLayout(1, 4, 10, 10); panel2 = new JPanel(new GridLayout(4, 6, 5, 5);/4行6列 panel3 = new JPanel(new BorderLayout(5, 5); numActionListener = new Num();/实现数字监听 tf = new JTextField(); tf.setEditable(false);/文本区域不可编辑 tf.setBackground(Colo

6、r.white);/文本区域的背景色 tf.setHorizontalAlignment(JTextField.RIGHT);/文字右对齐 tf.setText(0); tf.setBorder(BorderFactory.createLoweredBevelBorder(); init();/对计算器进行初始化 private void init() JButton btns = new JButton(计算器); btns.setBorder(BorderFactory.createLoweredBevelBorder(); btns.setEnabled(false);/按钮不可操作 b

7、tns.setPreferredSize(new Dimension(20, 20); panel1.add(btns);/加入按钮 addButton(panel1, Backspace, new Clear(), Color.black); addButton(panel1, CE, new Clear(), Color.black); addButton(panel1, C, new Clear(), Color.black); addButton(panel2, sin, new Signs(), Color.magenta); addButton(panel2, 7, numActi

8、onListener, Color.blue); addButton(panel2, 8, numActionListener, Color.blue); addButton(panel2, 9, numActionListener, Color.blue); addButton(panel2, , new Signs(), Color.red); addButton(panel2, sqrt, new Signs(), Color.magenta); addButton(panel2, cos, new Signs(), Color.magenta); addButton(panel2, 4

9、, numActionListener, Color.blue); addButton(panel2, 5, numActionListener, Color.blue); addButton(panel2, 6, numActionListener, Color.blue); addButton(panel2, , new Signs(), Color.red); addButton(panel2, 1/x, new Signs(), Color.magenta); addButton(panel2, x2, new Signs(), Color.magenta); addButton(pa

10、nel2, 1, numActionListener, Color.blue); addButton(panel2, 2, numActionListener, Color.blue); addButton(panel2, 3, numActionListener, Color.blue); addButton(panel2, -, new Signs(), Color.red); addButton(panel2, %, new Signs(), Color.magenta); addButton(panel2, n!, new Signs(), Color.magenta); addBut

11、ton(panel2, +/-, new Clear(), Color.blue); addButton(panel2, 0, numActionListener, Color.blue); addButton(panel2, ., new Dot(), Color.blue); addButton(panel2, +, new Signs(), Color.red); addButton(panel2, =, new Signs(), Color.magenta); panel3.add(panel1, BorderLayout.NORTH); panel3.add(panel2, Bord

12、erLayout.CENTER); this.add(tf, BorderLayout.NORTH); this.add(panel3); pack(); this.setResizable(false);/窗口不可改变大小 this.setLocation(300, 200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); private void addButton(JPanel panel, String name, ActionListener action, Color color) JButton bt = new JBu

13、tton(name); panel.add(bt);/在面板上增加按钮 bt.setForeground(color);/设置前景(字体)颜色 bt.addActionListener(action);/增加监听事件 private void getResult (double x) if(oper = +)result += x; else if(oper = -)result -= x; else if(oper = )result *= x; else if(oper = )result /= x; else if(oper = =)result = x; tf.setText(df.f

14、ormat(result); class Signs implements ActionListener public void actionPerformed(ActionEvent e) String str = e.getActionCommand(); /* sqrt求平方根 */ if(str.equals(sqrt) double i = Double.parseDouble(tf.getText(); if(i=0) tf.setText(String.valueOf(df.format(Math.sqrt(i); else tf.setText(负数不能开平方根); /* %求

15、百分比 */ else if(str.equals(%) tf.setText(df.format(Double.parseDouble(tf.getText() / 100); /* 1/x求倒数 */ else if(str.equals(1/x) if(Double.parseDouble(tf.getText() = 0) tf.setText(除数不能为零); else tf.setText(df.format(1 / Double.parseDouble(tf.getText(); /* sin求正弦函数 */ else if(str.equals(sin) double i =

16、Double.parseDouble(tf.getText(); tf.setText(String.valueOf(df.format(Math.sin(i); /* cos求余弦函数 */ else if(str.equals(cos) double i = Double.parseDouble(tf.getText(); tf.setText(String.valueOf(df.format(Math.cos(i); /* n!求阶乘 */ else if(str.equals(n!) double i = Double.parseDouble(tf.getText(); if(i%2=

17、0)|(i%2=1)/判断为整数放进行阶乘操作 int j = (int)i;/强制类型转换 int result=1; for(int k=1;k 0) if(tf.getText().length() 1) tf.setText(tf.getText().substring(0, tf.getText().length() - 1); /使用退格删除最后一位字符 else tf.setText(0); IfResult = true; else if(tf.getText().length() 2) tf.setText(tf.getText().substring(0, tf.getTe

18、xt().length() - 1); else tf.setText(0); IfResult = true; else if(str = CE) tf.setText(0); IfResult = true; class Num implements ActionListener public void actionPerformed(ActionEvent e) String str = e.getActionCommand(); if(IfResult) tf.setText(); IfResult = false; if(str=) tf.setText(String.valueOf

19、(Math.PI); else if(str=e) tf.setText(String.valueOf(Math.E); else tf.setText(tf.getText().trim() + str); if(tf.getText().equals(0) tf.setText(0); IfResult = true; flag = true; class Dot implements ActionListener public void actionPerformed(ActionEvent e) IfResult = false; if(tf.getText().trim().inde

20、xOf(.) = -1) tf.setText(tf.getText() + .); public static void main(String args) new Calculator().setVisible(true); 5类图 (3)Clear类图(2)Signs类图 (1)Calculator类图 Calculator类tfpanel1Panel2Panel3IfResultoperresultdfcalculator()init()addButton()getResult()main()Signs类actionPerformed()Clear类actionPerformed()

21、(5)Dot类(4)Num类 Num类actionPerformed()Dot类actionPerformed()图4 Clear类图3 Signs类图6 Dot类图5 Num类图2 Calculator类6运行与测试1、 输入“3”图7 测试图输入 2、输出结果:求x2 图8 测试图结果 3、输出结果:求cos x图9 测试图结果4.输出结果:Backspace图10 测试图结果7总结与展望 一周的课程设计紧张而忙碌的度过了,通过本次课程设计我学到了好多,也发现了自己的好多不足!也真正体会了java的特点,非常的形象,真正的懂得了面向对象的含义。在此次课设中通过查阅很多资料和同学的互相帮助,

22、 程序设计时在阶乘函数的处理中遇到不少麻烦,以后有时间也要继续思考,不过还是完成了此次任务。另外按钮功能的实现也是本次课设的一大难点,怎样实现那些功能是关键。通过这次课设我又学会了好多函数。课程设计的部分程序是通过外部资料得到的,这使得我认识到查阅资料和开外多看书籍的重要性。但不主张照搬,因为那不是我们自己成果,要自己通过得到的知识点去消化理解,真正的弄懂这个内容,当我真正的投入到课程设计的制作当中后,发觉课程设计并不枯燥乏味,相反充满了乐趣。参考文献1屈辉立,陈可明,石武信.JSP网站编程教程M.第1版, 北京:北京希望电子出版社,2005 2白勇.用B/S模式构建在线考试系统J,重庆电力高等专科学校学报,2003,10(4): 100130. 3 VB数据库管理范例: 4刘万军,郑少京,王松波,梁清华Java6程序设计,清华大学出版社成绩评定成绩 教师签字

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

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