java的计算器报告

时间:2024.4.13

课程设计(大作业)报告

1  课程设计介绍........................................................................................................... 1

1.1 课程设计内容........................................................................................................ 1

1.2 课程设计要求........................................................................................................ 1

2  总体设计................................................................................................................... 2

2.1 课设题目总体设计、算法描述............................................................................ 2

2.2功能模块图、流程图分析..................................................................................... 2

3  调试与性能分析..................................................................................................... 6

4  参考文献................................................................................................................... 8

附   录(程序清单)................................................................................................. 10

2.总体设计

    2.1题目总体设计、算法描述。

 总体设计:

Calculator中的各个主要的操纵设计的对象

描述:我们设计的算法主要分两大块,一块运用于整体模块,框架的设计,其中有一构造方法用于引用计算;而另一块运用于数据的计算,其中用到数据结构的知识;

在class PostFix中,我们用了数据结构栈的算术表达式转换,用于保存输入的数据,用于进行运算,主要分两部分,一个是保存算术符号,另一个使用与两个数的计算,这两部分相互联系,进行复杂的计算。

在class Calculator中,一开始设计了框架,以及一些菜单栏的按键,并且把各个框架的按钮进行设计,其中采用了整体布局的方法,再做了一些按钮的提示话。

最后就只是一个主类。

2.2功能模块图、程序流程图分析。

流程图:

这个流程图,只是个人对该题目的做法设计,其中有不足之处,还请老师多多谅解。

其中体现了整个程序的部凑,应该已经是一目了然了。

3.调试与性能分析

标准型

标准型主要进行简单的+、-、*、/,的运算,就不多说了。

科学型

科学型除了有基本运算还添加了进制转换,括号运算,三角函数,一元和二元运算,工程计算等功能;其中三角函数,一元二元运算属于比较有难度的调试。

我们做栈时,由于学的是C的数据结构,对于把C的代码改为JAVA的并且还要做构造,对于我们组员来说是有难度的幸好我们之中杨照海C的基础很好,于是在我们的努力下解决了该问题

4. 参考文献

《JAVA从入门到实践》——清华大学出版社——刘升华 等编著

《算法设计与分析》——清华大学出版社——王晓东 编著

《软件设计师教程》——清华大学出版社——陈平 褚华 编著( 参考其中一部分 )

《JAVA语言程序设计》——机械工业出版社——(美)Y. Daniel Liang 著

《数据结构》——云南大学出版社——主编 王震江  副主编 何英

   录(程序清单)

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.Stack;

class PostFix{

              public String converttoPostfix(String infix) {

                      if(infix == null) {

                          return null;

                      }

                      char[] ch = infix.toCharArray();

                      Stack<Character> stack1 = new Stack<Character>();

                      StringBuilder sb = new StringBuilder(ch.length);

                      boolean appendSeparator = false;

                      boolean sign = true;

                      for(int i = 0; i < ch.length; i++) {

                          char c = ch[i];

                          if(c == ' ') {

                              continue;

                          }

                          if(appendSeparator) {

                              sb.append(' ');

                              appendSeparator = false;

                          }

                          if((c == '-' || c == '+') && sign) {

                              sb.append(c);

                              continue;

                          }

                          if((c >= '0' && c <= '9') || c == '.') {

                              sign = false;

                              sb.append(c);

                              continue;

                          }           

                          if(c == '(') {

                              stack1.push(c);

                              continue;               

                          }

                          if(c == ')') {

                              sign = false;

                              while(stack1.peek() != '(') {

                                  sb.append(' ');

                                  sb.append(stack1.pop());

                              }

                              stack1.pop();

                              continue;

                          }

                          appendSeparator = true;

                          if(c == '+'||c == '-' ||c == '*' ||c == '/'||c == '^') {

                              sign = true;

                              if(stack1.isEmpty() || stack1.peek() == '(') {

                                  stack1.push(c);

                                  continue;

                              }

                              

                              while(!stack1.isEmpty() && getCiXu(stack1.peek()) >= getCiXu(c)) {

                                  sb.append(' ');

                                  sb.append(stack1.pop());

                              }

                              stack1.push(c);               

                          }

                      }

                      while(!stack1.isEmpty()) {

                          sb.append(' ');

                          sb.append(stack1.pop());

                      }

                      return sb.toString();

                    

                  }

           public int getCiXu(char operator){

              switch(operator){

              case '(':case ')':  return 0;

              case '+':case '-':  return 1;

              case '*':case '/':  return 2;

              case '^':return 3;

              }

              return -1;

             

       }

//输入数据的运算

public double jiSuan(String postfix) {

       String str=postfix;

       String[] strs = str.split("\u0020");

    Stack<String> stack = new Stack<String>();

    String element;

    double n1,n2,result;

    

        for(int i = 0; i < strs.length;i++){

            element = strs[i];  

            if(isOperator(element)){

                n1 = Double.parseDouble(stack.pop()); //第二个操作数

                n2 = Double.parseDouble(stack.pop()); //第一个操作数

                result = doOperate(n2,n1,element);

                stack.push(new Double(result).toString());

           }else{

              stack.push(element);              }

        }

        return Double.parseDouble(stack.pop());

    

 }     

 private double doOperate(double n1, double n2, String operator) {

    if(operator.equals("+"))

        return n1 + n2;

    else if(operator.equals("-"))

        return n1 - n2;

    else if(operator.equals("*"))

        return n1 * n2;

    else if(operator.equals("^"))

        return Math.pow(n1, n2);

    else

        return n1/n2;

 }

 private boolean isOperator(String str){

     return str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/")|| str.equals("^");

 }    

      

}

class Calculator{

      

       static final int WIDTH = 500;

       static final int HEIGHT = 400;

       public static int jinzhi = 10;//默认初始为十进制

       public double df = 0d;//一元运算和进制转换时用到

       public double d1 = 0d;//二元运算时第一个操作数

       public double d2 = 0d;//二元运算时第二个操作数

      

       PostFix pf = new PostFix();

      

       public double dm = 0d;//实现记忆功能

      

       JButton bA = new JButton("A");

       JButton bB = new JButton("B");

       JButton bC = new JButton("C");

       JButton bD = new JButton("D");

       JButton bE = new JButton("E");

       JButton bF = new JButton("F");

       JButton b0 = new JButton("0");

       JButton b1 = new JButton("1");

       JButton b2 = new JButton("2");

       JButton b3 = new JButton("3");

       JButton b4 = new JButton("4");

       JButton b5 = new JButton("5");

       JButton b6 = new JButton("6");

       JButton b7 = new JButton("7");

       JButton b8 = new JButton("8");

       JButton b9 = new JButton("9");

       JTextField tf = new JTextField("0",30);

       JTextField tf1 = new JTextField("",30);

       JTextField tf2 = new JTextField(2);

       JRadioButton jr1 = new JRadioButton("十六进制");

       JRadioButton jr2 = new JRadioButton("十进制",true);

       JRadioButton jr3 = new JRadioButton("八进制");

       JRadioButton jr4 = new JRadioButton("二进制");

       JMenuItem item1 = new JMenuItem("复制");

       JMenuItem item2 = new JMenuItem("粘贴");

       JMenuItem item3 = new JMenuItem("标准型");

       JMenuItem item4 = new JMenuItem("科学型");

       JMenuItem item5 = new JMenuItem("使用说明");

       JPanel p0 = new JPanel(new BorderLayout());

       JPanel p1 = new JPanel(new GridLayout(1,4));

       JPanel p2 = new JPanel(new GridLayout(5,5));

       JPanel p3 = new JPanel(new GridLayout(5,5));

      

       JFrame jf = new JFrame("科学计算器");

       boolean newdigital = true;

       JButton bco;

       public Calculator(){

             

              jf.setSize(WIDTH,HEIGHT);

              jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

              Toolkit kit = Toolkit.getDefaultToolkit();

              Dimension screenSize = kit.getScreenSize();

              int width = screenSize.width;

              int height = screenSize.height;

              int x = (width-WIDTH)/2;

              int y = (height-HEIGHT)/2;

              jf.setLocation(x, y);

             

              //菜单栏的设计

              JMenuBar menubar = new JMenuBar();

              jf.setJMenuBar(menubar);

              JMenu menu1 = new JMenu("查看");

              JMenu menu2 = new JMenu("功能");

              JMenu menu3 = new JMenu("帮助");

              menubar.add(menu1);

              menubar.add(menu2);

              menubar.add(menu3);

              menu1.add(item1);

              menu1.addSeparator();

              menu1.add(item2);

              menu2.add(item3);

              menu2.addSeparator();

              menu2.add(item4);

              menu3.add(item5);

             

              //3个文本框的设计

              tf.setBackground(Color.white);

              tf1.setBackground(Color.white);

              tf2.setBackground(Color.white);

              tf.setHorizontalAlignment(JTextField.RIGHT);

              tf1.setHorizontalAlignment(JTextField.RIGHT);

              tf2.setHorizontalAlignment(JTextField.RIGHT);

              tf.setEditable(false);

              tf1.setEditable(false);

              tf2.setEditable(false);

             

              //进制转换栏的设计(4个单选按钮)

              ButtonGroup bg = new ButtonGroup();

              bg.add(jr1);

              bg.add(jr2);

              bg.add(jr3);

              bg.add(jr4);

             

              //49个按钮的设计

              //8个控制按钮

              JButton bmc = new JButton("MC");

              JButton bmr = new JButton("MR");

              JButton bms = new JButton("MS");

              JButton bmp = new JButton("M+");

              JButton bmd = new JButton("M-");

              JButton bbac = new JButton("BackSpace");

              JButton bce = new JButton("CE");

              JButton bc0 = new JButton("C");

             

              //17个标准计算的按钮

              JButton bp = new JButton("+");

              JButton bd = new JButton("-");

              JButton bm = new JButton("*");

              JButton be0 = new JButton("/");

              JButton bpd = new JButton("+/-");

              JButton bpo = new JButton(".");

              JButton beq = new JButton(" = ");

             

              //24个科学计算的按钮

              JButton bsqrt = new JButton("sqrt");

              JButton blog = new JButton("log");

              JButton bex = new JButton("e^x");

              JButton bx2 = new JButton("x^2");

              JButton bx3 = new JButton("x^3");

              JButton bnj = new JButton("n!");

              JButton blm = new JButton("(");

              JButton brm = new JButton(")");

              JButton bpi = new JButton("PI");

              JButton byu = new JButton("%");

              JButton bdao = new JButton("1/x");

              JButton babs = new JButton("abs");

              JButton bax = new JButton("a^x");

              JButton bgy = new JButton("关于");

              JButton bfe = new JButton("联系作者");

              JButton bsin = new JButton("sin");

              JButton bcos = new JButton("cos");

              JButton btan = new JButton("tan");

             

              //四个面板的设计

              p0.add(tf,BorderLayout.CENTER);

              p0.add(tf1,BorderLayout.NORTH);

              p1.add(jr1);

              p1.add(jr2);

              p1.add(jr3);

              p1.add(jr4);

              p2.add(tf2);

              p2.add(bbac);

              p2.add(bce);

              p2.add(bc0);

              p2.add(bgy);

              p2.add(bmc);

              p2.add(b7);

              p2.add(b8);

              p2.add(b9);

              p2.add(bp);

              p2.add(bmr);

              p2.add(b4);

              p2.add(b5);

              p2.add(b6);

              p2.add(bd);

              p2.add(bms);

              p2.add(b1);

              p2.add(b2);

              p2.add(b3);

              p2.add(bm);

              p2.add(bpd);

              p2.add(b0);

              p2.add(bpo);

              p2.add(beq);

              p2.add(be0);

              p3.add(bmd);

              p3.add(bsin);

              p3.add(bcos);

              p3.add(btan);

              p3.add(bsqrt);

              p3.add(bmp);

              p3.add(bex);

              p3.add(bx2);

              p3.add(bx3);

              p3.add(bnj);

              p3.add(blm);

              p3.add(brm);

              p3.add(bpi);

              p3.add(byu);

              p3.add(bA);

              p3.add(bB);

              p3.add(bC);

              p3.add(bD);

              p3.add(bE);

              p3.add(bF);

              p3.add(bdao);

              p3.add(babs);

              p3.add(bax);

              p3.add(bfe);

              p3.add(blog);

              p0.setVisible(true);

              p1.setVisible(true);

              p2.setVisible(true);

              p3.setVisible(true);

             

              //整体布局的设计(先箱式,后边界)

              //箱式:先四水平,再一个垂直

              Box vbox = Box.createVerticalBox();

              Box hbox0 = Box.createHorizontalBox();

              Box hbox1 = Box.createHorizontalBox();

              Box hbox2 = Box.createHorizontalBox();

              Box hbox3 = Box.createHorizontalBox();

              hbox0.add(p0);

              hbox0.add(Box.createVerticalStrut(20));

              hbox1.add(p1);

              hbox0.add(Box.createVerticalStrut(20));

              hbox2.add(p2);

              hbox3.add(p3);

              vbox.add(hbox0);

              vbox.add(hbox1);

              vbox.add(hbox2);

              vbox.add(hbox3);

              jf.add(vbox,BorderLayout.CENTER);

              jf.setVisible(true);

              jf.pack();

             

              //注册事件监听者对象

              ActionListener ac = new ActionHandler();

             

              //四个进制转换

              jr1.addActionListener(ac);

              jr2.addActionListener(ac);

              jr3.addActionListener(ac);

              jr4.addActionListener(ac);

             

              //49个按钮

              bmc.addActionListener(ac);

              bmr.addActionListener(ac);

              bms.addActionListener(ac);

              bmp.addActionListener(ac);

              bmd.addActionListener(ac);

              bbac.addActionListener(ac);

              bce.addActionListener(ac);

              bc0.addActionListener(ac);

              bp.addActionListener(ac);

              bd.addActionListener(ac);

              bm.addActionListener(ac);

              be0.addActionListener(ac);

              bpd.addActionListener(ac);

              b0.addActionListener(ac);

              b1.addActionListener(ac);

              b2.addActionListener(ac);

              b3.addActionListener(ac);

              b4.addActionListener(ac);

              b5.addActionListener(ac);

              b6.addActionListener(ac);

              b7.addActionListener(ac);

              b8.addActionListener(ac);

              b9.addActionListener(ac);

              bpo.addActionListener(ac);

              beq.addActionListener(ac);

              bsqrt.addActionListener(ac);

              blog.addActionListener(ac);

              bex.addActionListener(ac);

              bx2.addActionListener(ac);

              bx3.addActionListener(ac);

              bnj.addActionListener(ac);

              blm.addActionListener(ac);

              brm.addActionListener(ac);

              bpi.addActionListener(ac);

              byu.addActionListener(ac);

              bdao.addActionListener(ac);

              bA.addActionListener(ac);

              bB.addActionListener(ac);

              bC.addActionListener(ac);

              bD.addActionListener(ac);

              bE.addActionListener(ac);

              bF.addActionListener(ac);

              babs.addActionListener(ac);

              bax.addActionListener(ac);

              bgy.addActionListener(ac);

              bfe.addActionListener(ac);

              bsin.addActionListener(ac);

              bcos.addActionListener(ac);

              btan.addActionListener(ac);

             

              //菜单栏

              item1.addActionListener(ac);

              item2.addActionListener(ac);

              item3.addActionListener(ac);

              item4.addActionListener(ac);

              item5.addActionListener(ac);

             

              }

       class ActionHandler implements ActionListener{

              public void actionPerformed(ActionEvent e){

                     String s = e.getActionCommand();

                     if(s.equals("关于")){//showConfirmDialog(Component parentComponent, Object message, String title, int optionType)

                            JOptionPane.showConfirmDialog(null, "计算机09级2班   学号:200911012XX", "本计算器作者信息", JOptionPane.OK_OPTION);

                     }

                     if(s.equals("联系作者")){

                            JOptionPane.showConfirmDialog(null, "昆明学院计算机系09级2班" +

                                          +'\t'+"计算机09级2班", "联系作者信息", JOptionPane.OK_OPTION);

                     }

                     if(s.equals("复制")){

                            JOptionPane.showConfirmDialog(null, "本功能暂不开放", "信息提示", JOptionPane.OK_OPTION);

                     }

                     if(s.equals("粘贴")){

                            JOptionPane.showConfirmDialog(null, "本功能暂不开放", "信息提示", JOptionPane.OK_OPTION);

                     }

                     if(s.equals("使用说明")){

                            JOptionPane.showConfirmDialog(null, "请查阅计算机自带的使用说明", "信息提示", JOptionPane.OK_OPTION);

                     }

                  if(s.equals("BackSpace")){

                        String s1 = tf.getText();

                        String s2 = tf1.getText();

                        tf.setText(s1.substring(0,s1.length()-1));

                        tf1.setText(s2.substring(0,s2.length()-1));

                  }

                  if(s.equals("CE")){

                        tf.setText("");

                        tf1.setText("");

                        newdigital = true;

                  }

                  if(s.equals("C")){

                        tf.setText("");

                        tf1.setText("");

                       

                        newdigital = true;

                  }

                  if(s.equals("+/-")){

                        String s2 = tf1.getText();

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(String.valueOf(-df));

                        tf1.setText(s2.substring(0,s2.length()-1));

                        tf1.setText(tf1.getText()+String.valueOf(-df));

                  }

                  if(s.equals("0")||s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||

                               s.equals("5")||s.equals("6")||s.equals("7")||s.equals("8")||s.equals("9")){

                        if(newdigital == false){tf.setText(tf.getText()+s);tf1.setText(tf1.getText()+s);

                       

                        }

                        else{tf.setText(s); newdigital = false;

                        tf1.setText(tf1.getText()+s);

                       

                        }

                  }

                 

                  //一元运算的设计与处理

                  if(s.equals("sqrt")){

                        df = Double.parseDouble(tf.getText().trim());

                        if(df>0){tf.setText(Double.toString(Math.sqrt(df)));}

                        else{JOptionPane.showConfirmDialog(null, "非负数不可开方", "计算错误提示", JOptionPane.OK_OPTION);

                        }

                  }

                  if(s.equals("sin")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(Math.sin(df)));

                  }

                  if(s.equals("cos")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(Math.cos(df)));

                  }

                

                  if(s.equals("tan")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(Math.tan(df)));

                  }

                

                  if(s.equals("abs")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(Math.abs(df)));

                  }

                

                  if(s.equals("log")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(Math.log(df)));

                  }

                

                  if(s.equals("e^x")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(Math.exp(df)));

                  }

                

                  if(s.equals("x^2")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(df*df));

                  }

                

                  if(s.equals("x^3")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(df*df*df));

                  }

                  if(s.equals("PI")){

                        tf.setText(Double.toString(Math.PI));

                  }

                

                  if(s.equals("1/x")){

                        df = Double.parseDouble(tf.getText().trim());

                        if(df == 0){

                               JOptionPane.showConfirmDialog(null, "除数不可为零", "计算错误提示", JOptionPane.OK_OPTION);

                        }else{tf.setText(Double.toString(1/df));}

                  }

                

                  if(s.equals("%")){

                        df = Double.parseDouble(tf.getText().trim());

                        tf.setText(Double.toString(0.01*df));

                  }

                  if(s.equals("n!")){

                        df = Double.parseDouble(tf.getText().trim());

                        if(df == 0){tf.setText("1");}

                        else{double sum = 1d;

                               for(int i = 1;i<= df;i++){

                                      sum = sum*i;

                                      }

                               tf.setText(Double.toString(sum));

                        }

                  }

                  //二元运算的设计与实现

                  if(s.equals("+")){

                        newdigital = true;

                        tf1.setText(tf1.getText()+"+");

                        tf.setText("");

                  }

                  if(s.equals("-")){

                        newdigital = true;

                        tf1.setText(tf1.getText()+"-");tf.setText("");

                  }

                  if(s.equals("*")){

                        newdigital = true;

                        tf1.setText(tf1.getText()+"*");tf.setText("");

                  }

                  if(s.equals("/")){

                        newdigital = true;

                        tf1.setText(tf1.getText()+"/");tf.setText("");

                  }

                    if(s.equals("(")){

                        newdigital = true;

                        tf1.setText(tf1.getText()+"(");tf.setText("0");

                  }

                     if(s.equals(")")){

                        newdigital = true;

                        tf1.setText(tf1.getText()+")");tf.setText("");

                  }

                    if(s.equals(".")){

                        if(tf.getText().contains(".") != true){

                               tf.setText(tf.getText()+s); newdigital = false;tf1.setText(tf1.getText()+".");

                     }

                  }

                  if(s.equals("a^x")){

                        newdigital = true;

                        tf1.setText(tf1.getText()+"^");

                  }

                  if(s.equals(" = ")){

                        newdigital = true;

                        String s0 = tf1.getText();

                        String s1 = pf.converttoPostfix(s0);

                        tf.setText(Double.toString(pf.jiSuan(s1)));

                        tf1.setText(tf1.getText()+'='+tf.getText());

                         

                  }

                 

                  //记忆功能的设计与实现

                  if(s.equals("MC")){

                        tf2.setText("");

                        dm = 0d;

                        newdigital = true;

                  }

                  if(s.equals("MR")){

                        if(tf2.getText().trim() != ""){

                               tf.setText(Double.toString(dm));

                        }

                  }

                  if(s.equals("MS")){

                        dm = Double.parseDouble(tf.getText().trim());

                        tf2.setText("M");

                        newdigital = true;

                  }

                  if(s.equals("M+")){

                        dm = dm+Double.parseDouble(tf.getText().trim());

                        }

                  if(s.equals("M-")){

                        dm = dm-Double.parseDouble(tf.getText().trim());

                         }

                  //进制转换功能的设计与实现

                  if(s.equals("十六进制")){

                        bA.setEnabled(true);

                        bB.setEnabled(true);

                        bC.setEnabled(true);

                        bD.setEnabled(true);

                        bE.setEnabled(true);

                        bF.setEnabled(true);

                        b8.setEnabled(true);

                        b9.setEnabled(true);

                        b8.setEnabled(true);

                        b7.setEnabled(true);

                        b6.setEnabled(true);

                        b5.setEnabled(true);

                        b4.setEnabled(true);

                        b3.setEnabled(true);

                        b2.setEnabled(true);

                        b1.setEnabled(true);

                        b0.setEnabled(true);

                        Integer i  =  new Integer((tf.getText().trim()));

                        String temp = "";

                        int j;

                        switch(jinzhi){

                        case 16:  temp = tf.getText();break;

                        case 10:  temp  =  Integer.toHexString(i); break;

                        case 8:   j = Integer.valueOf(tf.getText(),8);

                                  temp  =  Integer.toHexString(j); break;

                        case 2:   j = Integer.valueOf(tf.getText(),2);

                                  temp  =  Integer.toHexString(j); break;

                        }

                        tf.setText(temp);

                        jinzhi = 16; 

                        }

                  if(s.equals("十进制")){

                        bA.setEnabled(false);

                        bB.setEnabled(false);

                        bC.setEnabled(false);

                        bD.setEnabled(false);

                        bE.setEnabled(false);

                        bF.setEnabled(false);

                        b9.setEnabled(true);

                        b8.setEnabled(true);

                        b7.setEnabled(true);

                        b6.setEnabled(true);

                        b5.setEnabled(true);

                        b4.setEnabled(true);

                        b3.setEnabled(true);

                        b2.setEnabled(true);

                        b1.setEnabled(true);

                        b0.setEnabled(true);

                       

                        String temp = "";

                        int j;

                        switch(jinzhi){

                        case 16:  j = Integer.valueOf(tf.getText(),16);

                                     temp = String.valueOf(j);break;

                        case 10:  temp = tf.getText();

                        case 8:   j = Integer.valueOf(tf.getText(),8);

                                  temp = String.valueOf(j);break;

                        case 2:   j = Integer.valueOf(tf.getText(),2);

                                  temp = String.valueOf(j);break;

                        }

                        tf.setText(temp);

                       

                        jinzhi = 10;

                  }

                 

                  if(s.equals("八进制")){

                        bA.setEnabled(false);

                        bB.setEnabled(false);

                        bC.setEnabled(false);

                        bD.setEnabled(false);

                        bE.setEnabled(false);

                        bF.setEnabled(false);

                        b9.setEnabled(false);

                        b8.setEnabled(false);

                        b7.setEnabled(true);

                        b6.setEnabled(true);

                        b5.setEnabled(true);

                        b4.setEnabled(true);

                        b3.setEnabled(true);

                        b2.setEnabled(true);

                        b1.setEnabled(true);

                        b0.setEnabled(true);

                        Integer m  =  new Integer((tf.getText().trim()));

                        String temp = "";

                        int j;

                        switch(jinzhi){

                        case 16:  j = Integer.valueOf(tf.getText(),16);

                                  temp = Integer.toOctalString(j);  

                        case 10:  temp = Integer.toOctalString(m); break;

                        case 8:   temp  = tf.getText();

                        case 2:   j = Integer.valueOf(tf.getText(),2);

                                  temp = Integer.toOctalString(j); break;

                        }

                        tf.setText(temp);

                        jinzhi = 8;

                  }

                 

                  if(s.equals("二进制")){

                        bA.setEnabled(false);

                        bB.setEnabled(false);

                        bC.setEnabled(false);

                        bD.setEnabled(false);

                        bE.setEnabled(false);

                        bF.setEnabled(false);

                        b9.setEnabled(false);

                        b8.setEnabled(false);

                        b7.setEnabled(false);

                        b6.setEnabled(false);

                        b5.setEnabled(false);

                        b4.setEnabled(false);

                        b3.setEnabled(false);

                        b2.setEnabled(false);

                        b1.setEnabled(true);

                        b0.setEnabled(true);

                        Integer n  =  new Integer((tf.getText().trim()));

                        String temp = "";

                        int j;

                        switch(jinzhi){

                        case 16:  j = Integer.valueOf(tf.getText(),16);

                                  temp = Integer.toBinaryString(j);  

                        case 10:  temp = Integer.toBinaryString(n); break;

                        case 8:   j = Integer.valueOf(tf.getText(),8);

                                  temp = Integer.toBinaryString(j); break;

                        case 2:   temp = tf.getText(); break;

                        }

                        tf.setText(temp);

                        jinzhi = 2;

                       

                  }

                  if(s.equals("标准型")){

                        p0.setVisible(true);

                        p1.setVisible(false);

                        p2.setVisible(true);

                        p3.setVisible(false);

                        jf.pack();

                  }

                  if(s.equals("科学型")){

                        p0.setVisible(true);

                        p1.setVisible(true);

                        p2.setVisible(true);

                        p3.setVisible(true);

                        jf.pack();

                  }

      

              }    

              }

       }

      

public class G{

       public static void main(String[] args){

              new Calculator();

       }

}

更多相关推荐:
java计算器设计报告

摘要本计算器是由java语言所编程设计的标准计算器可以进行十进制下的四则运算加减乘除开平方求余求倒数还可以实现二进制与十进制之间的转换通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法以便...

计算器设计的java课程设计报告

华东交通大学课程设计华东交通大学课程设计课程设计题目计算器设计课程题目年级专业学号姓名组员指导教师Java程序设计信息一班1华东交通大学课程设计课程设计论文任务书基础学院信息与计算科学专业20xx1班一课程设计...

java计算器设计报告

设计报告课题名称计算器设计学院专业班级学号学生指导教师教务处年月日

java计算器设计报告

枣庄学院信息科学与工程学院课程设计任务书题目学号031503070311姓名王宇刘志伟王传翔专业课程java程序设计与实践教程指导教师王琳琳职称讲师完成时间20xx年12月20xx年1月枣庄学院信息科学与工程学...

Java计算器课程设计报告

Java计算器Java计算器Java课程设计报告姓名学号专业0Java计算器一程序要实现的功能基础功能类似windows计算器普通计算器所具有的数的输入加减乘除开根号求倒数退格清空以及数字储存器中的MR显示MC...

Java简单计算器(程序设计报告)

JAVA课程设计报告哈尔滨哈商业大学JAVA课程设计课程名称课题名称简单计算器姓名学号班级宋双龙20xx5094028108级软件工程教育20xx年10月20日1一实验目的使用Eclipse软件制作简单计算器实...

Java课程设计报告-计算器

Java课程设计报告计算器第一部分设计的内容要求11Windows自带计算器版面设计12计算器计算功能算法实现第二部分设计思想21根据图形用户界面设计方法设计计算器版面容器类窗口Window类面板Panel类框...

java课程设计++计算器[1]

JAVA程序设计期末结课大作业姓名张可新学号20xx3259班级信工1202题目java课程设计计算器成绩汇总第1页目录一课程设计任务及要求3二需求分析3三设计思路3四详细设计4五运行调试与分析讨论9六设计体会...

java课程设计报告_简单图形界面计算器的设计

Java课程设计简单图形界面计算器的设计课程名称Java程序设计选题名称简单图形界面计算器的设计专业班级姓名学号指导教师简单图形界面计算器的设计1一设计任务与目标本次java程序设计我的设计任务是设计一个图形界...

Java课程设计(计算器)

课程设计大作业报告课程名称java语言程序设计设计题目计算器院系班级计算机科学与技术设计者xx学号xx指导教师xx设计时间昆明学院昆明学院课程设计大作业任务书课程设计大作业报告1课程设计介绍11课程设计内容设计...

java 计算器

实习报告课程名称实习题目专业班级学号学生姓名实习成绩指导教师20xx年1月北京邮电大学世纪学院实习报告前言本计算器可以进行简单的四则运算加减乘除但仅限于十进制下还可以进行八进制十进制十六进制之间的相互转换八进制...

java计算器设计报告 -

课程设计题目java计算器设计报告学生姓名学号学院专业指导教师1摘要Java具有面向对象与平台无关安全稳定和多线程等优良特性是目前软件设计中优秀的编程语言Java不仅可以用来开发大型的应用程序而且特别适合于in...

java计算器设计报告(42篇)