急求!java简单计算器和画板的程序,用ppt做出解释(设计思路)
展开全部
import java.awt.*;
import java.awt.event.*;
public class Counter extends Frame implements ActionListener
{
TextField t=new TextField("");
Panel p1=new Panel();
Panel p2=new Panel();
Button[] b=new Button[14];
Button bAdd=new Button("加");
Button bSub=new Button("减");
Button bMul=new Button("乘以");
Button bPoint=new Button(".");
Button bDiv=new Button("除以");
Button bEqual=new Button("等于");
Button bSqrt=new Button("开方");
Button bPow=new Button("平方");
Button bBinary=new Button("二进制");
Button bOctal=new Button("八进制");
Button bHex=new Button("十六进制");
Button bNull=new Button("清除");
String str1="";
String str2="";
String operator=null;
boolean first=true;
int countOper=0;
double result=0.0;
double num1=0.0,num2=0.0;
boolean error=false;
public Counter()
{
super("计算器 河北工程大学科信学院 ");
t.setEditable(false);
for(int i=0;i<10;i++)
{
b[i]=new Button(String.valueOf(i));
p1.add(b[i]);
b[i].setActionCommand("number");
b[i].addActionListener(this);
}
p1.add(bPoint);
bPoint.setActionCommand("number");
p1.add(bAdd);
p1.add(bSub);
p1.add(bMul);
p1.add(bDiv);
p1.add(bEqual);
p2.add(bSqrt);
p2.add(bPow);
p2.add(bBinary);
p2.add(bOctal);
p2.add(bHex);
p2.add(bNull);
bAdd.setActionCommand("oper");
bSub.setActionCommand("oper");
bMul.setActionCommand("oper");
bDiv.setActionCommand("oper");
bAdd.addActionListener(this);
bSub.addActionListener(this);
bMul.addActionListener(this);
bDiv.addActionListener(this);
bPoint.addActionListener(this);
bEqual.addActionListener(this);
bSqrt.addActionListener(this);
bBinary.addActionListener(this);
bOctal.addActionListener(this);
bHex.addActionListener(this);
bNull.addActionListener(this);
p1.setLayout(new GridLayout(4,4,5,5));
p2.setLayout(new GridLayout(1,6,5,5));
add(t,"North");
add(p1,"Center");
add(p2,"South");
setLocation(600,300);
setSize(600,300);
setBackground(new Color(200,20,100));
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
Button temp=(Button)e.getSource();
if(e.getActionCommand().equals("number"))
{
if(first)
{
str1=str1+temp.getLabel();
t.setText(str1);
}
else
{
str2=str2+temp.getLabel();
t.setText(str2);
}
}
else if(e.getActionCommand().equals("oper"))
{
if(str1=="")
{
countOper=0;
first=true;
}
else
{
countOper++;
if(countOper>1)
{
getResult();
}
operator=temp.getLabel();
first=false;
}
}
else if(e.getActionCommand().equals("开方"))
{
double d=Math.sqrt(Double.parseDouble(str1));
str1=String.valueOf(d);
t.setText(String.valueOf(d));
first=false;
}
else if(e.getActionCommand().equals("平方"))
{
double f=Math.pow(Double.parseDouble(str1),2);
str1=String.valueOf(f);
t.setText(String.valueOf(f));
first=false;
}
else if(e.getActionCommand().equals("二进制"))
{
int i=Integer.parseInt(str1);
String binStr=Long.toBinaryString(i);
str1=binStr;
t.setText(str1);
first=false;
}
else if(e.getActionCommand().equals("八进制"))
{
int i=Integer.parseInt(str1);
String octStr=Long.toOctalString(i);
str1=octStr;
t.setText(str1);
first=false;
}
else if(e.getActionCommand().equals("十六进制"))
{
int i=Integer.parseInt(str1);
String hexStr=Long.toHexString(i);
str1=hexStr;
t.setText(str1);
first=false;
}
else if(e.getActionCommand().equals("清除"))
{
str1="";//清空
str2="";
t.setText("");
countOper=0;
first=true;
error=false;
}
else if(e.getActionCommand().equals("等于"))
{
if((str1=="")||(str2==""))
{
countOper=0;
first=true;
}
else
{
getResult();
countOper=0;
}
}
}
public void getResult()
{
num1=Double.parseDouble(str1);
num2=Double.parseDouble(str2);
if(operator.equals("加"))
{
result=num1+num2;
}
else if(operator.equals("减"))
{
result=num1-num2;
}
else if(operator.equals("乘以"))
{
result=num1*num2;
}
else if(operator.equals("除以"))
{
if(num2==0.0)
{
error=true;
}
else
{
result=num1/num2;
}
}
if(error)
{
t.setText("error");
}
else
{
t.setText(String.valueOf(result));
str1=String.valueOf(result);
str2="";
}
}
public static void main(String[] args)
{
new Counter();
}
}
import java.awt.event.*;
public class Counter extends Frame implements ActionListener
{
TextField t=new TextField("");
Panel p1=new Panel();
Panel p2=new Panel();
Button[] b=new Button[14];
Button bAdd=new Button("加");
Button bSub=new Button("减");
Button bMul=new Button("乘以");
Button bPoint=new Button(".");
Button bDiv=new Button("除以");
Button bEqual=new Button("等于");
Button bSqrt=new Button("开方");
Button bPow=new Button("平方");
Button bBinary=new Button("二进制");
Button bOctal=new Button("八进制");
Button bHex=new Button("十六进制");
Button bNull=new Button("清除");
String str1="";
String str2="";
String operator=null;
boolean first=true;
int countOper=0;
double result=0.0;
double num1=0.0,num2=0.0;
boolean error=false;
public Counter()
{
super("计算器 河北工程大学科信学院 ");
t.setEditable(false);
for(int i=0;i<10;i++)
{
b[i]=new Button(String.valueOf(i));
p1.add(b[i]);
b[i].setActionCommand("number");
b[i].addActionListener(this);
}
p1.add(bPoint);
bPoint.setActionCommand("number");
p1.add(bAdd);
p1.add(bSub);
p1.add(bMul);
p1.add(bDiv);
p1.add(bEqual);
p2.add(bSqrt);
p2.add(bPow);
p2.add(bBinary);
p2.add(bOctal);
p2.add(bHex);
p2.add(bNull);
bAdd.setActionCommand("oper");
bSub.setActionCommand("oper");
bMul.setActionCommand("oper");
bDiv.setActionCommand("oper");
bAdd.addActionListener(this);
bSub.addActionListener(this);
bMul.addActionListener(this);
bDiv.addActionListener(this);
bPoint.addActionListener(this);
bEqual.addActionListener(this);
bSqrt.addActionListener(this);
bBinary.addActionListener(this);
bOctal.addActionListener(this);
bHex.addActionListener(this);
bNull.addActionListener(this);
p1.setLayout(new GridLayout(4,4,5,5));
p2.setLayout(new GridLayout(1,6,5,5));
add(t,"North");
add(p1,"Center");
add(p2,"South");
setLocation(600,300);
setSize(600,300);
setBackground(new Color(200,20,100));
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
Button temp=(Button)e.getSource();
if(e.getActionCommand().equals("number"))
{
if(first)
{
str1=str1+temp.getLabel();
t.setText(str1);
}
else
{
str2=str2+temp.getLabel();
t.setText(str2);
}
}
else if(e.getActionCommand().equals("oper"))
{
if(str1=="")
{
countOper=0;
first=true;
}
else
{
countOper++;
if(countOper>1)
{
getResult();
}
operator=temp.getLabel();
first=false;
}
}
else if(e.getActionCommand().equals("开方"))
{
double d=Math.sqrt(Double.parseDouble(str1));
str1=String.valueOf(d);
t.setText(String.valueOf(d));
first=false;
}
else if(e.getActionCommand().equals("平方"))
{
double f=Math.pow(Double.parseDouble(str1),2);
str1=String.valueOf(f);
t.setText(String.valueOf(f));
first=false;
}
else if(e.getActionCommand().equals("二进制"))
{
int i=Integer.parseInt(str1);
String binStr=Long.toBinaryString(i);
str1=binStr;
t.setText(str1);
first=false;
}
else if(e.getActionCommand().equals("八进制"))
{
int i=Integer.parseInt(str1);
String octStr=Long.toOctalString(i);
str1=octStr;
t.setText(str1);
first=false;
}
else if(e.getActionCommand().equals("十六进制"))
{
int i=Integer.parseInt(str1);
String hexStr=Long.toHexString(i);
str1=hexStr;
t.setText(str1);
first=false;
}
else if(e.getActionCommand().equals("清除"))
{
str1="";//清空
str2="";
t.setText("");
countOper=0;
first=true;
error=false;
}
else if(e.getActionCommand().equals("等于"))
{
if((str1=="")||(str2==""))
{
countOper=0;
first=true;
}
else
{
getResult();
countOper=0;
}
}
}
public void getResult()
{
num1=Double.parseDouble(str1);
num2=Double.parseDouble(str2);
if(operator.equals("加"))
{
result=num1+num2;
}
else if(operator.equals("减"))
{
result=num1-num2;
}
else if(operator.equals("乘以"))
{
result=num1*num2;
}
else if(operator.equals("除以"))
{
if(num2==0.0)
{
error=true;
}
else
{
result=num1/num2;
}
}
if(error)
{
t.setText("error");
}
else
{
t.setText(String.valueOf(result));
str1=String.valueOf(result);
str2="";
}
}
public static void main(String[] args)
{
new Counter();
}
}
展开全部
你所说的解释是指怎么样解释呢?
只给代码要不要?
还有你这个计算器实现的功能有哪些?只是+ - * / 吗?以及你是嵌套在网页中使用还是直接在eclipse之类的程序下运行呢?
需要制作几个按钮? 想好了告诉我 半个小时给你做好 不过你得给20分吧 我本来也要考试的 都不先去复习就给你做
只给代码要不要?
还有你这个计算器实现的功能有哪些?只是+ - * / 吗?以及你是嵌套在网页中使用还是直接在eclipse之类的程序下运行呢?
需要制作几个按钮? 想好了告诉我 半个小时给你做好 不过你得给20分吧 我本来也要考试的 都不先去复习就给你做
更多追问追答
追问
额 我只有十八分 解释就是上课时把程序里的关键东西讲出来 用eclipse 代码有好多 关键是解释 比如说设计思路啊 做的过程中比较难的问题如何解决的
追答
呵呵 那就不用加了 你什么时候要?我只能明天下午给你做 早上一早上我都有课 下午还有第一节 所以只能下午上完了才给你做了。你能等吗?明天在后天早上起床你就能看到具体的答案了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈,搞笑了肯定是我们系的~~~
追问
额 囧了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
javascript做的计算器要吗
追问
不用了 谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询