问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁帮我写一段300行左右的代码?

发布网友 发布时间:2022-11-18 04:17

我来回答

2个回答

热心网友 时间:2024-11-14 20:07

这个计算器可是我自己写了好几天才写好的耶,你能在网上找到?

计算器:
// Calculator.java
public class Calculator {

private static final char NO_OP = '\0';
private static final char PLUS = '+';
private static final char SUBTRACT = '-';
private static final char MULTIPLY = '*';
private static final char DIVIDE = '/';

private float number1 = 0.0F;
//private float number2 = Float.NaN;
private char operator = NO_OP;

//等于运算
public String opEquals(String number) {
float result;

if ( operator == NO_OP ) {
result = parseNumber(number);
} else {
result = performOperation(parseNumber(number));
}
operator = NO_OP;

number1 = result;

return Float.toString(result);
}

//加法运算
public String opAdd(String number) {
float result;

if ( operator == NO_OP ) {
result = parseNumber(number);
} else {
result = performOperation(parseNumber(number));
}
operator = PLUS;

number1 = result;

return Float.toString(result);
}

//减法运算
public String opSubtract(String number) {
float result;

if ( operator == NO_OP ) {
result = parseNumber(number);
} else {
result = performOperation(parseNumber(number));
}
operator = SUBTRACT;

number1 = result;

return Float.toString(result);
}

//乘法运算
public String opMultiply(String number) {
float result;

if ( operator == NO_OP ) {
result = parseNumber(number);
} else {
result = performOperation(parseNumber(number));
}
operator = MULTIPLY;

number1 = result;

return Float.toString(result);
}

//除法运算
public String opDivide(String number) {
float result;

if ( operator == NO_OP ) {
result = parseNumber(number);
} else {
result = performOperation(parseNumber(number));
}
operator = DIVIDE;

number1 = result;

return Float.toString(result);
}

//处理运算符
private float performOperation(float number2) {
float result = 0.0F;

switch ( operator ) {
case PLUS:
result = number1 + number2;
break;
case SUBTRACT:
result = number1 - number2;
break;
case MULTIPLY:
result = number1 * number2;
break;
case DIVIDE:
result = number1 / number2;
break;
}

return result;
}

//将字符串类型转换为浮点型
private static float parseNumber(String number) {
float real_number;

try {
real_number = Float.parseFloat(number);
} catch (NumberFormatException e) {
real_number = Float.NaN;
}

return real_number;
}

}

GUI程序:
// CalculatorGUI.java
import java.awt.*;
import java.awt.event.*;

public class CalculatorGUI {

// 定义按钮
private Button key0, key1, key2, key3, key4;
private Button key5, key6, key7, key8, key9;
private Button keyequal, keyplus, keyminus;
private Button keyperiod, keymult, keydiv;

// 定义存放按钮的区域
private Panel buttonArea;

// 定义存放运算结果的区域
private Label answer;

// 用来实现运算功能的类的对象实例化
private Calculator calculator;
private boolean readyForNextNumber;

public CalculatorGUI() {
calculator = new Calculator();
readyForNextNumber = true;

answer = new Label("0.0",Label.RIGHT);

key0 = new Button("0");
key1 = new Button("1");
key2 = new Button("2");
key3 = new Button("3");
key4 = new Button("4");
key5 = new Button("5");
key6 = new Button("6");
key7 = new Button("7");
key8 = new Button("8");
key9 = new Button("9");
keyequal = new Button("=");
keyplus = new Button("+");
keyminus = new Button("-");
keymult = new Button("*");
keydiv = new Button("/");
keyperiod = new Button(".");
buttonArea = new Panel();
}

public void launchFrame() {
buttonArea.setLayout(new GridLayout(4,4));

buttonArea.add(key7);
buttonArea.add(key8);
buttonArea.add(key9);
buttonArea.add(keyplus);
buttonArea.add(key4);
buttonArea.add(key5);
buttonArea.add(key6);
buttonArea.add(keyminus);
buttonArea.add(key1);
buttonArea.add(key2);
buttonArea.add(key3);
buttonArea.add(keymult);
buttonArea.add(key0);
buttonArea.add(keyperiod);
buttonArea.add(keyequal);
buttonArea.add(keydiv);

// 设置事件接收句柄
OpButtonHanlder op_handler = new OpButtonHanlder();
NumberButtonHanlder number_handler = new NumberButtonHanlder();
key0.addActionListener(number_handler);
key1.addActionListener(number_handler);
key2.addActionListener(number_handler);
key3.addActionListener(number_handler);
key4.addActionListener(number_handler);
key5.addActionListener(number_handler);
key6.addActionListener(number_handler);
key7.addActionListener(number_handler);
key8.addActionListener(number_handler);
key9.addActionListener(number_handler);
keyperiod.addActionListener(number_handler);
keyplus.addActionListener(op_handler);
keyminus.addActionListener(op_handler);
keymult.addActionListener(op_handler);
keydiv.addActionListener(op_handler);
keyequal.addActionListener(op_handler);

// 新建一个帧,并且加上消息监听
Frame f = new Frame("计算器");
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize(200, 200);

f.add(answer, BorderLayout.NORTH);
f.add(buttonArea, BorderLayout.CENTER);
f.setVisible (true);
}

//响应按钮事件,并根据不同的按钮事件进行不同的运算
private class OpButtonHanlder implements ActionListener {
public void actionPerformed(ActionEvent event) {
char operator = event.getActionCommand().charAt(0);
String result = "";
switch ( operator ) {
case '+':
result = calculator.opAdd(answer.getText());
break;
case '-':
result = calculator.opSubtract(answer.getText());
break;
case '*':
result = calculator.opMultiply(answer.getText());
break;
case '/':
result = calculator.opDivide(answer.getText());
break;
case '=':
result = calculator.opEquals(answer.getText());
break;
}
answer.setText(result);
readyForNextNumber = true;
}
}

//处理连续运算时主界面的显示
private class NumberButtonHanlder implements ActionListener {
public void actionPerformed(ActionEvent event) {
if ( readyForNextNumber ) {
answer.setText(event.getActionCommand());
readyForNextNumber = false;
} else {
answer.setText(answer.getText() + event.getActionCommand().charAt(0));
}
}
}

//主函数,也是该应用程序的执行入口处
public static void main(String[] args) {
CalculatorGUI calcGUI = new CalculatorGUI();
calcGUI.launchFrame();
}
}

注意:运行的是GUI程序

热心网友 时间:2024-11-14 20:07

这些方法都要用到?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 程的拼音 程字介绍 帮我写一段bat代码 大话西游手游小米版怎么在电脑上玩 帮忙写一串html代码 帮我写一串c语言代码,目的把输入的10进制数按8进制和2进进制16进制输出... 联想g50-80i5用于编程代码可以吗? 惠州联通流量王的电话卡的流量套餐能不能在外省用 求窗体中的MD5加密语句怎么写? 惠州联通的500M流量卡 有谁知道广东惠州双4G新流量王25元档可以转1元包500M日租卡套餐吗? 惠州联通流量王套餐卡包含省内500M;那么请问出了广东省是怎么收费的... 连接路由器和电脑的是用网线吗?什么种类的呢? 水晶头排线问题 B类网络交叉跳线怎么做 两台电脑用普通网线传文件 天津联通lPTV怎样用手机播放 联想thinkpad X220不能显示windows登录界面 新买的thinkpad x220无法开机,开机屏幕不显示,求高手指点~~~ 你知道iPhone维修前需要做些什么吗? 兰花烂根的原因 帮我写一段简单的代码 什么葡萄苗最适合温室大棚的种植 关于温室葡萄种植技术 百度贴吧怎么把另一个号登上去 我现在的头发很碎,还能剪沙宣头吗? TCL电视开机后怎么会黑屏呢? 传奇外传里的毒药和火符要到哪里修的? 传奇续章里面的四级灵魂火符 传奇 道士的灵魂火幅怎么用 热血传奇4级火符书的问题 手机无法连接电脑怎么回事? 成都情侣约会50个去处 玛莎拉蒂GT后备箱打不开怎么办 有人碰到过吗 玛莎拉蒂levante后尾箱突然打不开 内容指的是什么 经济学跨考可以考检验专业吗 增值税发票税控开票软件v.2.1.30.161224d 的服务商是谁 税控服务商收取技术服务费开具了专用发票,还可以退服务费吗 空语句既然什么都不做,为什么还要编译空语句?谢谢。 IE缓存文件夹在哪如何清除IE缓存文件