gpt4 book ai didi

java - 计算器项目问题

转载 作者:行者123 更新时间:2023-11-30 11:56:46 24 4
gpt4 key购买 nike

好的,我在使用这个计算器时遇到了问题。我被分配了项目,我只会使用加法和减法。作业的第一部分是使用 Scanner 类创建它。所以我创建了一个循环,计算器工作了……但是乘法和除法关闭了。它基本上只是不断添加数字...比如 3*6 答案将是 24...但是我做 2 * 1 它会是 26 之类的东西。哦是的我将类保存为不同的文件.. ..有人可以帮我吗

在这里

public class Calculator_part2 extends calculator_gui{

public static void main(String[]args)
{
calculator_gui n = new calculator_gui();
n.gui();
}
}

import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;





public class calculator_gui implements ActionListener
{
JFrame frame = new JFrame(" Calculator " );
JPanel panel = new JPanel(new FlowLayout());

JTextArea text = new JTextArea(1,20);
JButton but1 = new JButton("1");
JButton but2 = new JButton("2");
JButton but3 = new JButton("3");
JButton but4 = new JButton("4");
JButton but5 = new JButton("5");
JButton but6 = new JButton("6");
JButton but7 = new JButton("7");
JButton but8 = new JButton("8");
JButton but9 = new JButton("9");
JButton but0 = new JButton("0");

JButton add = new JButton( " + ");
JButton sub = new JButton( " - ");
JButton multi = new JButton (" * ");
JButton div = new JButton("/");
JButton buteq = new JButton (" = ");

JButton butclear = new JButton("C");

Double number1,number2,result = 0.0,temp = 0.0;
int addc = 0, subc=0,multic=0,divc=0,i = 0;

public void gui()
{
frame.setVisible(true);
frame.setSize(250,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(panel);

panel.add(text);
panel.add(but1);
panel.add(but2);
panel.add(but3);
panel.add(but4);
panel.add(but5);
panel.add(but6);
panel.add(but7);
panel.add(but8);
panel.add(but9);
panel.add(but0);

panel.add(add);
panel.add(sub);
panel.add(multi);
panel.add(div);
panel.add(buteq);
panel.add(butclear);

but1.addActionListener(this);
but2.addActionListener(this);
but3.addActionListener(this);
but4.addActionListener(this);
but5.addActionListener(this);
but6.addActionListener(this);
but7.addActionListener(this);
but8.addActionListener(this);
but9.addActionListener(this);
but0.addActionListener(this);
add.addActionListener(this);
sub.addActionListener(this);
multi.addActionListener(this);
div.addActionListener(this);
buteq.addActionListener(this);
butclear.addActionListener(this);


}

public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();

if(source == butclear)
{
//number1 = 0.0;
//number2 = 0.0;
text.setText("");
}

if(source == but1)
{
text.append("1");
}

if(source == but2)
{
text.append("2");
}

if(source == but3)
{
text.append("3");
}

if(source == but4)
{
text.append("4");
}

if(source == but5)
{
text.append("5");
}

if(source == but6)
{
text.append("6");
}

if(source == but7)
{
text.append("7");
}

if(source == but8)
{
text.append("8");
}

if(source == but9)
{
text.append("9");
}

if(source == but0)
{
text.append("0");
}
if(source == add)
{
number1 = number_reader();
text.setText("");
addc=1;
subc=0;
multic=0;
divc=0;
}
if(source == sub)
{
number1 = number_reader();
text.setText("");
addc=0;
subc=1;
multic=0;
divc=0;
}
if(source == multi)
{
number1 = number_reader();
text.setText("");
addc=0;
subc=0;
multic=1;
divc=0;
}
if(source == div)
{
number1 = number_reader();
text.setText("");
addc=0;
subc=0;
multic=0;
divc=1;
}

if(source == buteq)
{
number2 = number_reader();
if(addc>0)
{
result = number1 + number2;
text.setText(Double.toString(result));
}
if(subc>0)
{
result = number1 - number2;
text.setText(Double.toString(result));
}
if(multic>0)
{

for( double i = 0;i <number2;i++)
{
result += number1;
}


text.setText(Double.toString(result));
}
if(divc>0)
{
for (i = 0; temp < number1; i++)
{
temp += number2;
}

text.setText(Double.toString(i));
}
}
}

public double number_reader()
{
double num1;
String s;
s = text.getText();
num1 = Double.valueOf(s);

return num1;

}
}

最佳答案

您需要在 performAction 的底部将结果重置为 0.0。此外,您的除法实现将 i 设置为文本。那绝对是不对的。

关于java - 计算器项目问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4226954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com