《JAVA计算器课程设计》由会员分享,可在线阅读,更多相关《JAVA计算器课程设计(24页珍藏版)》请在金锄头文库上搜索。
1、课 程 设 计课程名称 JAVA 课程设计_题 目 计算器的设计与实现专 业 软件 班 级 2081 学 号 姓 名 成 绩 _指导教师 2010 年 6 月 21 日至 2010 年 6 月 23 日课程设计任务书设计题目: 计算器的设计与实现设计目的:1.巩固和加深课堂所学知识;2.学习掌握一般的软件的设计方法和查阅、运用资料的能力;3.掌握 JAVA 程序设计语言,面向对象的软件设计思想、方法 。设计任务:(在规定的时间内完成下列任务)1、任务:设计一个简单的计算器程序功能要求:能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计2、 设计任
2、务要完成设计、编码、测试等过程,给出设计思路、设计说明书、主要的代码的说明、使用说明书。源代码以及可运行的计算器程序。时间安排:6 月 21 日 布置题目,确定任务、查找相关资料6 月 21 日6 月 23 日 功能分析,系统设计,编写程序,调试程序、运行系统;6 月 23 日 答辩后撰写设计报告。具体要求:设计报告撰写格式要求(按提供的设计报告统一格式撰写)具体内容如下: 设计任务与要求 总体方案与说明 面向对象的设计(主要类的设计) 源程序清单与注释 软件主要模块流程图 问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想) ;小结与体会附录: 源程
3、序(必须有简单注释) 使用说明 参考资料指 导 教 师 签 名: 2010 年 6 月 20 日教研室主任(或责任教师)签名: 年 月 日一设计目的1.1:设计一个简单的计算器程序1.2:能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计二 需求分析日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其它的辅助功能;界面简洁适用;要提供主要的设计思路、类的设计,本次设计添加转进制等功能
4、三 设计思路本应用程序继承自框架(frame),此程序使用frame布局管理器bordelayout,将单行文本加入相应区域,包含各种按纽的面板buttonpanel加入相应区域还可以将进制转换的面板与单行文本框放一块包含各种按纽的面板buttonpanel采用N行N列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中,同时注册按钮事件监听器四 详细设计4.1数据分析计算器的程序设计,必然有数据输入,其中数据包括运算符和数字,均要通过计算器上的button按钮选项按钮输入进去,里面录入的必然是字符型的数据,如果进行运算要将输入的数据转化成Double型,以防出错4.2算法思路大致思
5、路已经在上面阐述,主要是通过将数字键和其他符号区别开来进行监听4.3类设计以下见代码部分五 详细代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends Frame implements ActionListener, WindowListenerprivate Container container;private GridBagLayout layout;private GridBagConstraints constraints;private JTex
6、tField displayField; /计算结果显示区private String lastCommand; /保存+,-,*,/,=命令0private double result; /保存计算结果private boolean start; /判断是否为数字的开始private JMenuBar menubar;private JMenuItem m_exit,m2_ejz,m2_bjz;private Dialog dialog;private Label label_dialog;private JButton button_sqrt,button_plusminus,button
7、_CE,button_cancel,button_1,button_2,button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0,button_plus,button_minus,button_multiply,button_divide,button_point,button_equal,button_log,button_tan,button_cos,button_sin,button_exp;public Calculator() /构造方法设置布局、为按钮注册事件监听器super(Calculator
8、);this.setLocation(240,200);this.setSize(350,300);this.setResizable(true);this.setLayout(new GridLayout(7,1);this.addmyMenu(); /调用成员方法添加菜单displayField=new JTextField(30);this.add(displayField);displayField.setEditable(true);start=true;result=0;lastCommand = =;JPanel panel0=new JPanel();panel0.setLay
9、out(new GridLayout(1,4,4,4);JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(1,5,4,4);this.add(panel1);button_sqrt=new JButton(sqrt);button_plusminus=new JButton(+/-);button_exp=new JButton(exp);button_CE=new JButton(退格);button_cancel=new JButton(C);JPanel panel2=new JPanel();panel2.setLay
10、out(new GridLayout(1,5,4,4);this.add(panel2);button_7=new JButton(7);button_8=new JButton(8);button_9=new JButton(9);button_log=new JButton(log);button_divide=new JButton(/);JPanel panel3=new JPanel();panel3.setLayout(new GridLayout(1,5,4,4);this.add(panel3);button_4=new JButton(4);button_5=new JBut
11、ton(5);button_6=new JButton(6);button_tan=new JButton(tan);button_multiply=new JButton(*);JPanel panel4=new JPanel();panel4.setLayout(new GridLayout(1,5,4,4);this.add(panel4);button_1=new JButton(1);button_2=new JButton(2);button_3=new JButton(3);button_cos=new JButton(cos);button_minus=new JButton(
12、-);JPanel panel5=new JPanel();panel5.setLayout(new GridLayout(1,5,4,4);this.add(panel5);button_0=new JButton(0);button_point=new JButton(.);button_equal=new JButton(=);button_sin=new JButton(sin);button_plus=new JButton(+);panel1.add(button_sqrt);panel1.add(button_plusminus);panel1.add(button_exp);p
13、anel1.add(button_CE);panel1.add(button_cancel);panel2.add(button_7);panel2.add(button_8);panel2.add(button_9);panel2.add(button_log);panel2.add(button_divide);panel3.add(button_4);panel3.add(button_5);panel3.add(button_6);panel3.add(button_tan);panel3.add(button_multiply);panel4.add(button_1);panel4
14、.add(button_2);panel4.add(button_3);panel4.add(button_cos);panel4.add(button_minus);panel5.add(button_0);panel5.add(button_point);panel5.add(button_equal);panel5.add(button_sin);panel5.add(button_plus);button_sqrt.addActionListener(this);button_plusminus.addActionListener(this);button_exp.addActionL
15、istener(this);button_CE.addActionListener(this);button_cancel.addActionListener(this);button_7.addActionListener(this);button_8.addActionListener(this);button_9.addActionListener(this);button_log.addActionListener(this);button_divide.addActionListener(this);button_4.addActionListener(this);button_5.addActionListener(this);button_6.addActionListener(this);button_tan.addActionListener(this);button_multiply.addAc