java代码转类图_求教:把代码转换成类图

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class Calculator

{

public static void main(String[] args)

{

CalculatorFrame frame=new CalculatorFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

class CalculatorFrame extends JFrame

{

public CalculatorFrame()

{

setTitle("Calculator");

CalculatorPanel panel=new CalculatorPanel();

add(panel);

pack();

}

}

class CalculatorPanel extends Panel

{

public CalculatorPanel()

{

setLayout(new BorderLayout());

result=0;

lastCommand="=";

start=true;

flag=true;

display=new JButton("0");

display.setEnabled(false);

add(display,BorderLayout.NORTH);

ActionListener insert=new InsertAction();

ActionListener command=new CommandAction();

panel=new JPanel();

panel.setLayout(new GridLayout(4,5));

addButton("7",insert);

addButton("8",insert);

addButton("9",insert);

addButton("÷",command);

addButton("CE",command);

addButton("4",insert);

addButton("5",insert);

addButton("6",insert);

addButton("×",command);

addButton("←",command);

addButton("1",insert);

addButton("2",insert);

addButton("3",insert);

addButton("-",command);

addButton("sqrt",command);

addButton("0",insert);

addButton(".",insert);

addButton("=",command);

addButton("+",command);

addButton("1/x",command);

add(panel,BorderLayout.CENTER);

}

private void addButton(String label,ActionListener listener)

{

JButton button=new JButton(label);

button.addActionListener(listener);

panel.add(button);

}

private class InsertAction implements ActionListener

{

public void actionPerformed(ActionEvent event)

{

String input=event.getActionCommand();

if(start&&flag)

{

display.setText("");

start=false;

}

if(flag)

display.setText(display.getText()+input);

}

}

private class CommandAction implements ActionListener

{

public void actionPerformed(ActionEvent event)

{

String command=event.getActionCommand();

if(command.equals("CE"))

{

display.setText("0");

start=true;

flag=true;

command="=";

}

else

if(start&&flag)

{

if(command.equals("-"))

{

display.setText(command);

start=false;

}

else

if((command.equals("1/x")||command.equals("sqrt"))&&flag)

calculate(Double.parseDouble(display.getText()),command);

else

if(flag)

lastCommand=command;

}

else

{

if(command.equals("←")&&flag)

{

String s=display.getText();

char[] s1=s.toCharArray();

if(s.length()>=2)

{

String s2=new String(s1,0,s.length()-1);

display.setText(s2);

}

else

{

display.setText("0");

start=true;

}

}

else if(flag)

{

calculate(Double.parseDouble(display.getText()),command);

lastCommand=command;

start=true;

}

}

}

}

public void calculate(double x,String command)

{

if(lastCommand.equals("+")) result+=x;

else if(lastCommand.equals("-")) result-=x;

else if(lastCommand.equals("÷"))

{

if(x!=0)

result/=x;

else

{

display.setText("除数不能为0");

start=false;

flag=false;

return;

}

}

else if(lastCommand.equals("×")) result*=x;

else if(command.equals("1/x"))

{

if(x!=0)

result=1/x;

else

{

display.setText("除数不能为0");

start=false;

flag=false;

return;

}

}

else if(command.equals("sqrt"))

{

if(x>=0)

result=Math.sqrt(x);

else

{

display.setText("函数输入无效");

start=false;

flag=false;

return;

}

}

else if(lastCommand.equals("=")) result=x;

display.setText(""+result);

}

private JButton display;

private JPanel panel;

private double result;

private String lastCommand;

private boolean start;

private boolean flag;

}

大家帮帮忙把这代码转换成类图。急死我了。在线等了谢谢大家啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值