您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页java8计算器

java8计算器

来源:意榕旅游网


目录

一、 设计目的及任务 ..................................................................... 1 二、设计分析 .................................................................................. 1 1、需求分析 ............................................................................... 1 2、 程序结构 ............................................................................. 1 3、详细设计 ............................................................................... 4 (1)数据分析 ...................................................................... 4 (2) 类的设计 ..................................................................... 4 (3)模块的功能及程序说明 ................................................. 4 三、 源程序 .................................................................................... 5 四、 系统运行及其结果 ................................................................ 20 五、 设计体会、各成员的分工与合作情况介绍。 ........................ 22 1、 设计体会 ........................................................................... 22 2、 各成员分工与合作情况 ........................ 错误!未定义书签。 六、参考文献 ................................................... 错误!未定义书签。

湖南人文科技学院课程设计

湖南人文科技学院课程设计

一、设计目的及任务 目的:

1.巩固和加深课堂所学知识;

2.学习掌握一般的软件的设计方法和查阅、运用资料的能力; 3.掌握JAVA 程序设计语言,面向对象的软件设计思想、方法。 任务:

1.设计一个简单的计算器程序 功能要求:能够实现基本的加、减、乘、除、求余、开平方等运算,以及其它的辅助功能,界面简洁适用;

2.设计任务要完成设计、编码、测试等过程,给出设计思路、主要的代码说明,源代码以及课程设计报告。

二、设计分析

1、需求分析

日常生活中经常需要用到计算器,比如科学计算,数值计算, 会计业务等等,在myeclipse 中实现一个精巧的计算器,可以让用户的 操作也更方便和快捷。本项目需要实现一个具有四则运算的计算器, 能够实现基本的加、减、乘、除等运算,以及其它的辅助功能。 2、程序结构 流程图

1

湖南人文科技学院课程设计

开始设置窗口布局定义按钮设置窗口名称、大小、位置添加菜单添加按钮添加事件监听器实现各个按钮的功能输入Y判断输入的是否是数字NY判断输入的是否是0N判断输入的是否是运算符Y输入输入异常

2

判断输入的是否是1/xY警告,格式错误湖南人文科技学院课程设计

判断输入N的是否是N小数点N异常判断输入N的是否是sprtY判断输入的是否是小数点Y输入NYY判断输入判断输入的的是否是是否是数字运算符NYN输入警告,格式错误判断输入的是否是N数字警告,格式错误Y输出结果 3

湖南人文科技学院课程设计

3、详细设计 (1)数据分析

计算器的程序设计,必然有数据的输入,当中就包含运算符和数字,都要通过计算器上的Button按钮选项按键输入进去,里面录入的为字符型的数据,若要进行运算,要将输入的字符转换成

double型,以防运算出错 (2)类的设计

Class MathWindow extends JFrame implements ActionListener

(3)模块的功能及程序说明 a、数字键按钮,输入所需计算的数字。

JButton jb7=new JButton(\"7\"); JButton jb8=new JButton(\"8\"); JButton jb9=new JButton(\"9\"); JButton jb4=new JButton(\"4\"); JButton jb5=new JButton(\"5\"); JButton jb6=new JButton(\"6\"); JButton jb1=new JButton(\"1\"); JButton jb2=new JButton(\"2\"); JButton jb3=new JButton(\"3\"); JButton jb0=new JButton(\"0\");

JButton point=new JButton(\".\"); b、运算符按钮,输入所需的运算符号。

4

JButton div=new JButton(\"/\");

JButton mul=new JButton(\"*\");

JButton sub=new JButton(\"-\");

JButton add=new JButton(\"+\"); JButton mode=new JButton(\"%\"); JButton sqrt=new JButton(\"sqrt\"); JButton pecent=new JButton(\"1/x\");

JButton qf=new JButton(\"+/-\");

c、等号按钮,输出运算的结果。 JButton equal=new JButton(\"=\"); d、清零按钮,将已计算的数字或结果清零。

JButton 清零=new JButton(\"CE\");

e、清空按钮,清空文本框。 JButton 清空=new JButton(\"C\"); f、回退按钮,删除最后输入的数字或运算符。 JButton 退格=new JButton(\"BackSpace\");

三、源程序 import java.awt.*;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyEvent;

湖南人文科技学院课程设计

5

湖南人文科技学院课程设计

import javax.swing.*;

public class Calculator{ }

class MathWindow extends JFrame implements ActionListener{

//文本框的窗口布局,一行一列 GridLayout grid00=new GridLayout(); //BackSpace、CE、C的窗口布局,一行三列

GridLayout grid01=new GridLayout(1,3,5,5); //二行一列,用于嵌套以上两个窗口布局

GridLayout grid1=new GridLayout(2,1,5,5); //数字和运算符的窗口布局

GridLayout grid2=new GridLayout(4,5,5,5);

//总窗口布局

BorderLayout border=new BorderLayout(5,5); //JPanel面板,后缀数字对应上述布局

JPanel jp00=new JPanel(); JPanel jp01=new JPanel();

JPanel jp1=new JPanel(); public static void main(String[] args){ }

new MathWindow();//启动程序

JPanel jp2=new JPanel();

6

湖南人文科技学院课程设计

JTextField jtf=new JTextField(\"0\"); //显示框 JMenuBar jmb; //菜单条 JMenu edit,help; //菜单

JMenuItem c,v,帮助主题,关于计算器; //菜单项 //定义窗口中所有的按钮

JButton 退格=new JButton(\"BackSpace\"); JButton 清零=new JButton(\"CE\"); JButton 清空=new JButton(\"C\"); JButton jb7=new JButton(\"7\"); JButton jb8=new JButton(\"8\"); JButton jb9=new JButton(\"9\"); JButton div=new JButton(\"/\");

JButton sqrt=new JButton(\"sqrt\"); JButton jb4=new JButton(\"4\"); JButton jb5=new JButton(\"5\"); JButton jb6=new JButton(\"6\"); JButton mul=new JButton(\"*\"); JButton mode=new JButton(\"%\"); JButton jb1=new JButton(\"1\"); JButton jb2=new JButton(\"2\"); JButton jb3=new JButton(\"3\"); JButton sub=new JButton(\"-\"); JButton pecent=new JButton(\"1/x\");

7

湖南人文科技学院课程设计

JButton jb0=new JButton(\"0\"); JButton qf=new JButton(\"+/-\"); JButton point=new JButton(\".\"); JButton add=new JButton(\"+\"); JButton equal=new JButton(\"=\"); float num1=0; //运算数 char ch='#'; //运算符 String copy=\"0\"; //存储 boolean can=false; MathWindow(){ setTitle(\"计算器\"); //设置窗口名称 setVisible(true); //设置可见性 setSize(400,300); //设置窗口初始大小 setLocation(400, 200); //设置窗口显示位置 jmb=new JMenuBar(); edit=new JMenu(\"编辑(E)\"); edit.setMnemonic('E'); help=new JMenu(\"帮助(H)\"); help.setMnemonic('H'); c=new JMenuItem(\"复制(C)\");

c.setMnemonic('C');

c.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,

InputEvent.CTRL_MASK)); //设置快捷键

8

湖南人文科技学院课程设计

c.addActionListener(this); //获得监视器 v=new JMenuItem(\"粘贴(v)\");

v.setMnemonic('v');

v.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,

InputEvent.CTRL_MASK));

v.addActionListener(this);

帮助主题=new JMenuItem(\"帮助主题(H)\");

帮助主题.setMnemonic('H');

帮助主题.setAccelerator(KeyStroke.getKeyStroke(

KeyEvent.VK_H,InputEvent.CTRL_MASK));

帮助主题.addActionListener(this);

关于计算器=new JMenuItem(\"关于计算器(A)\"); 关于计算器.setMnemonic('A');

关于计算器.setAccelerator(KeyStroke.getKeyStroke(

KeyEvent.VK_A,InputEvent.CTRL_MASK));

关于计算器.addActionListener(this); edit.add(c); edit.add(v);

help.add(帮助主题); help.add(关于计算器); jmb.add(edit); jmb.add(help);

setJMenuBar(jmb);

9

湖南人文科技学院课程设计

setLayout(border); jp00.setLayout(grid00); jp00.add(jtf); jtf.setEditable(false);

//设置文本的水平对齐方式为右对齐

jtf.setHorizontalAlignment(JTextField.RIGHT); jp01.setLayout(grid01); jp01.add(退格); jp01.add(清零); jp01.add(清空);

//为退格、清零、清空加事件监听 退格.addActionListener(this); 清零.addActionListener(this); 清空.addActionListener(this); jp1.setLayout(grid1); jp1.add(jp00); jp1.add(jp01); add(jp1,\"North\"); jp2.setLayout(grid2);

//在面板上加入按钮 jp2.add(jb7); jp2.add(jb8); jp2.add(jb9);

10

jp2.add(div); jp2.add(sqrt); jp2.add(jb4); jp2.add(jb5); jp2.add(jb6); jp2.add(mul); jp2.add(mode); jp2.add(jb1); jp2.add(jb2); jp2.add(jb3); jp2.add(sub); jp2.add(pecent); jp2.add(jb0); jp2.add(qf); jp2.add(point); jp2.add(add); jp2.add(equal);

//在按钮上加入事件监听 jb7.addActionListener(this); jb8.addActionListener(this); jb9.addActionListener(this); div.addActionListener(this); sqrt.addActionListener(this);

湖南人文科技学院课程设计

11

湖南人文科技学院课程设计

jb4.addActionListener(this); jb5.addActionListener(this); jb6.addActionListener(this); mul.addActionListener(this); mode.addActionListener(this); jb1.addActionListener(this); jb2.addActionListener(this); jb3.addActionListener(this); sub.addActionListener(this); pecent.addActionListener(this); jb0.addActionListener(this); qf.addActionListener(this); point.addActionListener(this); add.addActionListener(this); equal.addActionListener(this); add(jp2,\"Center\");

setVisible(true);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }

public void actionPerformed(ActionEvent e){ String act=e.getActionCommand();

if(e.getSource()==copy){

12

湖南人文科技学院课程设计

}

copy=jtf.getText();

if(e.getSource()==v){ }

if(e.getSource()==帮助主题){

JOptionPane.showMessageDialog(null,\"

\

请主参

阅题

jtf.setText(copy);

Windows

\ }

if(e.getSource()==关于计算器){

JOptionPane.showMessageDialog(null,\"名称:简单计算

器\\n制作者:\\n张旭 11408210\\n夏旋 11408228\\n张雪艳 11408223\\n毛佳薇 11408231\\n版权所有,仿冒必究\关于计算器\ }

if(e.getSource()==退格){

if(jtf.getText().length()>1){

jtf.setText(jtf.getText().substring(0,jtf.getText().length()-1)); } else { }

13

jtf.setText(\"0\");

湖南人文科技学院课程设计

return;

}

if(e.getSource()==清零){ jtf.setText(\"0\"); return;

}

if(e.getSource()==清空){ jtf.setText(\"0\"); ch='#'; return; }

if(act.equals(\"+/-\")){ if(jtf.getText().charAt(0)!='-'){ jtf.setText(\"-\"+jtf.getText()); } else{ jtf.setText(jtf.getText().substring(1));return; }

}

if(act.equals(\".\")){ jtf.setText(jtf.getText()+act);return;

}

if(act!=\"1/x\"&&act.charAt(0)>='0'&&act.charAt(0)<='9'){

14

湖南人文科技学院课程设计

if(can){ } else{ try{

if(Float.parseFloat(jtf.getText())==0){ } else{ }

jtf.setText(jtf.getText()+act); return;

if(jtf.getText().equals(\"0.\")){ } else{ } return;

jtf.setText(act);

jtf.setText(jtf.getText()+act);

jtf.setText(act); can=false;

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,\"输入格式

错误!\警告!\

return;

15

湖南人文科技学院课程设计

}

}

}

if(act.equals(\"+\")||act.equals(\"-\")||act.equals(\"*\")||

act.equals(\"/\")||act.equals(\"%\")){

if(ch!='#'){ try{

num1=计算

(num1,ch,Float.parseFloat(jtf.getText()));

jtf.setText(String.valueOf(num1)); ch=act.charAt(0); can=true; return;

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,\"输入格式

错误!\警告!\ } else{ try{

num1=Float.parseFloat(jtf.getText()); ch=act.charAt(0);

16

}

return;

湖南人文科技学院课程设计

can=true; return;

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,\"输入格式

错误!\警告!\ }

if(act.equals(\"sqrt\")){ try{ float } } return;

num=(float)Math.sqrt(Float.parseFloat(jtf.getText()));

jtf.setText(String.valueOf(num)); can=true; return;

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,\"输入格式错

误!\警告!\ }

if(act.equals(\"1/x\")){

17

}

return;

湖南人文科技学院课程设计

try{

float num=1/Float.parseFloat(jtf.getText()); jtf.setText(String.valueOf(num)); can=true; return;

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,\"输入格式错

误!\警告!\

return;

}catch(ArithmeticException e1){

JOptionPane.showMessageDialog(null,\"除0错误!\

警告!\ }

if(act.equals(\"=\")){

can=true; try{

if(ch=='#'){ }

float num=Float.parseFloat(jtf.getText()); num1=计算(num1,ch,num);

18

}

return;

return;

湖南人文科技学院课程设计

jtf.setText(String.valueOf(num1)); ch='#'; return;

}catch(NumberFormatException e1){

JOptionPane.showMessageDialog(null,\"输入格式错

误!\警告!\ }

public float 计算(float a,char c,float b){

float sum; switch(c){

case '+':sum=a+b;break; case '-':sum=a-b;break; case '*':sum=a*b;break; case '/':

if(b==0){

JOptionPane.showMessageDialog(null,\"除0错误!\ } } return;

警告!\ } sum=a/b;

19

return 0;

湖南人文科技学院课程设计

break;

case '%':

if(b==0){

JOptionPane.showMessageDialog(null,\"除0错误!\

警告!\ return 0;

}

sum=a%b; break; default:return 0; }

return sum;

} }

四、系统运行及其结果 程序运行如下: 20

运行状况如下: 例如 运行7+9 先输入7,再按+,输入9

湖南人文科技学院课程设计

21

湖南人文科技学院课程设计

让后按=,输出结果:

五、设计体会、各成员的分工与合作情况介绍。

1、设计体会

本次设计我们组的题目是计算器系统,因为有老师的指导,我们完成了这次课程设计。由于对知识掌握的不够熟练,我们在系统分析和设计的部分花费了较多的时间。经过反反复复的改写、调试,我们最终完成了任务。但由于时间紧迫,有些功能还不够完整。

经过对唱片管理系统的分析与编写,我们得到了很多收获。我

22

湖南人文科技学院课程设计

们四人一组,在此次程序设计的过程中,我们互相讨论、互相学习,在讨论和学习的过程中我们发现自己的优势与不足,然后取长补短,这让我们更加了解到了团队精神的重要。更重要的是这次设计让我们对这门课程有了更深刻的认识,提高了我们分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。

23

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务