当前位置: 代码迷 >> Java相关 >> [原创z自己做的小计算器
  详细解决方案

[原创z自己做的小计算器

热度:150   发布时间:2007-01-02 10:33:49.0
嗯  加法  好像还是不能判断啊
----------------解决方案--------------------------------------------------------

这个程序的要求如下:
1.计算连续地随机给出两位数的加减法算术题,要求学生回答,答对的打“√”,答错的打“X”。将做过的题目放在下拉列表中备查,并随时给出答题的正确率。
2.其中,做减法时,大数放前面,小数放后面。
3.多次运行软件,出的题目不一样。
4. 制作软件开始时的欢迎界面,显示本软件的功能简介,制作人,制作日期等信息,有合适的背景图片。
5.有帮助信息,介绍本软件的使用。
//jsq.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class MyDialog1 extends Dialog implements ActionListener
{

Label label1,label2,label3,label4,label5;
TextField text1;
int x,y,z;
String str="";
String str1="";
String str2="";
Button buttona,buttonb,buttonc,buttond;
Panel p1;
MyDialog1(Frame f,String str)
{
super(f,str);
setSize(300,200);
setLayout(new GridLayout());
setBackground(Color.blue);
setVisible(true);
label1=new Label(" ");
add(label1);
x=(int)(Math.random()*100);
str2=str2+x;
label1.setText(str2);
label2=new Label(" ");
add(label2);
y=(int)(Math.random()*100);
str1=str1+y;
label2.setText(str1);
label3=new Label(" ");
z=(int)(Math.random()*2);
if(z==0)
{
label3.setText("+");
}
else
{
label3.setText("-");

}
label4=new Label("=");
text1=new TextField(10);
buttona=new Button("判断");
label5=new Label(" ");
buttonb=new Button("下一题");
buttonc=new Button("帮助");
buttond=new Button("退出");
p1=new Panel();
p1.add("North",label1); p1.add("Center",label3);
p1.add(label2); p1.add(label4);
p1.add(text1);
p1.add(buttona);
p1.add(buttonb);
p1.add(buttonc);
p1.add(buttond);p1.add(label5);
add("South",p1);
buttona.addActionListener(this);
buttonb.addActionListener(this);
buttonc.addActionListener(this);
buttond.addActionListener(this);
//*addWindowListener(new CloseWin());
}
public void actionPerformed(ActionEvent e)
{
String str;
Frame f=new Frame();
if(e.getSource()==buttona)
{



if(label3.getText()=="+")
{


if(text1.getText().equals(str2+str1))
label5.setText("您回答正确");
else
label5.setText("您回答错误");
}
else if( label3.getText()=="-")

if(text1.getText().equals(str2-str1))
label5.setText("您回答正确");
else
label5.setText("您回答错误");
}
else if(e.getSource()==buttonb)
{

}
else if(e.getSource()==buttonc)
{
MyDialog2 dialog2=new MyDialog2(f,"京奥算术测试");
dialog2.setVisible(true);
}
else if(e.getSource()==buttond)
{
System.exit(0);
}
class CloseWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
}
class MyDialog2 extends Dialog
{
Label labela,labelb;
Button button1;
Panel pl;
MyDialog2(Frame f,String str)
{
super(f,str);
setLayout(new BorderLayout(1,1));
setSize(150,150);
setBackground(Color.pink);
setVisible(true);
labela=new Label("欢迎使用京奥软件。在文本框写入结果点击判断查看对错");
button1=new Button("退出");
pl=new Panel();
pl.add(button1);
add(labela);
add(pl);

addWindowListener(new CloseWin());
}
class CloseWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
public class jsq extends Applet implements ActionListener
{

Label label1,label2,label3;
Button buttona,buttonb;
Image labmag;
public void init()
{
labmag=getImage(getDocumentBase(),"111.gif");
label1=new Label("欢迎使用京奥算术考试器");

label2=new Label("制作:京奥软件工作室");
label3=new Label("联系人:吕立辉 QQ:568631973 ");

buttona=new Button("进入");
buttonb=new Button("退出");
add(label1);
add(label2);
add(label3);
add(buttona);
add(buttonb);
buttona.addActionListener(this);
buttonb.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawImage(labmag,70,20,210,110,this);
}
public void actionPerformed(ActionEvent e)
{
Frame f=new Frame();
if(e.getSource()==buttona)
{
MyDialog1 dialog1=new MyDialog1(f,"京奥算术测试");
dialog1.setVisible(true);
}
else if(e.getSource()==buttonb)
{
System.exit(0);
}

}
}
我又修改了一下.不过判断的按钮还是不能用,好像按钮全不能用.....


----------------解决方案--------------------------------------------------------

我又修改了一次,这一次按钮都可以用了,不过,下一题那个具体怎样实现我就不清楚了,还请高手指教~
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class MyDialog1 extends Dialog implements ActionListener
{

Label label1,label2,label3,label4,label5;
TextField text1;
int x,y,z,i;
Button buttona,buttonb,buttonc,buttond;
Panel p1;
MyDialog1(Frame f,String str)
{
super(f,str);
setSize(300,200);
setLayout(new GridLayout());
setBackground(Color.blue);
setVisible(true);
label1=new Label();
add(label1);
x=(int)(Math.random()*100);
label1.setText(String.valueOf(x) );
label2=new Label();
add(label2);
y=(int)(Math.random()*100);
label2.setText(String.valueOf(y) );
label3=new Label();
z=(int)(Math.random()*2);
if(z>1)
{
label3.setText("+");
}
else
{
label3.setText("-");

}
label4=new Label("=");
text1=new TextField(10);
buttona=new Button("判断");
label5=new Label(" ");
buttonb=new Button("下一题");
buttonc=new Button("帮助");
buttond=new Button("退出");
p1=new Panel();
p1.add("North",label1); p1.add("Center",label3);
p1.add(label2); p1.add(label4);
p1.add(text1);
p1.add(buttona);
p1.add(buttonb);
p1.add(buttonc);
p1.add(buttond);p1.add(label5);
add("South",p1);
buttona.addActionListener(this);
buttonb.addActionListener(this);
buttonc.addActionListener(this);
buttond.addActionListener(this);
i=x+y;
//*addWindowListener(new CloseWin());
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() ==buttona)
{
if(label3.getText() =="+") //我把这个actionPerformed的方法都自己重新
{ //实现了,只是那个"下一题"按钮不知道怎样实现
if(text1.getText().equals(String.valueOf(x+y)))
{
label5.setText("right") ;
}else
{
label5.setText("wrong") ;
}
}else
{
if(text1.getText() .equals(String.valueOf(x-y) ))
{
label5.setText("right") ;
}else{
label5.setText("worng") ;
}
}
}
if(e.getSource() ==buttonb)
{
repaint(); //开始的时候以为这样是行的,结果是不行的,请高手指教一下~
}
if(e.getSource() ==buttonc)
{
MyDialog2 m=new MyDialog2(new Frame() ,"Help") ;
m.setVisible(true) ;
}if(e.getSource() ==buttond)
{
System.exit(0) ;
}
}
}
class MyDialog2 extends Dialog
{
Label labela,labelb;
Button button1;
Panel pl;
MyDialog2(Frame f,String str)
{
super(f,str);
setLayout(new BorderLayout(1,1));
setSize(150,150);
setBackground(Color.pink);
setVisible(true);
labela=new Label("欢迎使用京奥软件。在文本框写入结果点击判断查看对错");
button1=new Button("退出");
pl=new Panel();
pl.add(button1);
add(labela);
add(pl);

addWindowListener(new CloseWin());
}
class CloseWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
public class jsq extends Applet implements ActionListener
{

Label label1,label2,label3;
Button buttona,buttonb;
Image labmag;
public void init()
{
labmag=Toolkit.getDefaultToolkit().getImage("111.jpg");
label1=new Label("欢迎使用京奥算术考试器");

label2=new Label("制作:京奥软件工作室");
label3=new Label("联系人:吕立辉 QQ:568631973 ");

buttona=new Button("进入");
buttonb=new Button("退出");
add(label1);
add(label2);
add(label3);
add(buttona);
add(buttonb);
buttona.addActionListener(this);
buttonb.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawImage(labmag,70,20,210,110,this);
}
public void actionPerformed(ActionEvent e)
{
Frame f=new Frame();
if(e.getSource()==buttona)
{
MyDialog1 dialog1=new MyDialog1(f,"京奥算术测试");
dialog1.setVisible(true);
}
else if(e.getSource()==buttonb)
{
System.exit(0);
}

}
}

[此贴子已经被作者于2007-1-3 1:45:31编辑过]


----------------解决方案--------------------------------------------------------

谢谢楼上啊!!!
现在下一题的按钮也能用了,不过我用的是很苯的方法!
还有就是如果是-减号的时候,怎样使后面的数小于前面的数。各位再帮看看啊!!!
退出的按钮好像还是不能用,不知道为什么...........
//jsq.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class MyDialog1 extends Dialog implements ActionListener
{

Label label1,label2,label3,label4,label5;
TextField text1;
int x,y,z;
String str="";
String str1="";
String str2="";
Button buttona,buttonb,buttonc,buttond;
Panel p1;
MyDialog1(Frame f,String str)
{
super(f,str);
setSize(300,200);
setLayout(new GridLayout());
setBackground(Color.blue);
setVisible(true);
label1=new Label(" ");
add(label1);
x=(int)(Math.random()*100);
str2=str2+x;
label1.setText(str2);
label2=new Label(" ");
add(label2);
y=(int)(Math.random()*100);
str1=str1+y;
label2.setText(str1);
label3=new Label(" ");
z=(int)(Math.random()*2);
if(z==0)
{
label3.setText("+");
}
else
{
label3.setText("-");

}
label4=new Label("=");
text1=new TextField(10);
buttona=new Button("判断");
label5=new Label(" ");
buttonb=new Button("下一题");
buttonc=new Button("帮助");
buttond=new Button("退出");
p1=new Panel();
p1.add("North",label1); p1.add("Center",label3);
p1.add(label2); p1.add(label4);
p1.add(text1);
p1.add(buttona);
p1.add(buttonb);
p1.add(buttonc);
p1.add(buttond);p1.add(label5);
add("South",p1);
buttona.addActionListener(this);
buttonb.addActionListener(this);
buttonc.addActionListener(this);
buttond.addActionListener(this);
//*addWindowListener(new CloseWin());
}
public void actionPerformed(ActionEvent e)
{
String str;
Frame f=new Frame();
if(e.getSource()==buttona)
{



if(label3.getText()=="+")
{


if(text1.getText().equals(str2+str1))
label5.setText("您回答正确");
else
label5.setText("您回答错误");
}
else if( label3.getText()=="-")

if(text1.getText().equals(str2-str1))
label5.setText("您回答正确");
else
label5.setText("您回答错误");
}
else if(e.getSource()==buttonb)
{

}
else if(e.getSource()==buttonc)
{
MyDialog2 dialog2=new MyDialog2(f,"京奥算术测试");
dialog2.setVisible(true);
}
else if(e.getSource()==buttond)
{
System.exit(0);
}
class CloseWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
}
class MyDialog2 extends Dialog
{
Label labela,labelb;
Button button1;
Panel pl;
MyDialog2(Frame f,String str)
{
super(f,str);
setLayout(new BorderLayout(1,1));
setSize(150,150);
setBackground(Color.pink);
setVisible(true);
labela=new Label("欢迎使用京奥软件。在文本框写入结果点击判断查看对错");
button1=new Button("退出");
pl=new Panel();
pl.add(button1);
add(labela);
add(pl);

addWindowListener(new CloseWin());
}
class CloseWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
public class jsq extends Applet implements ActionListener
{

Label label1,label2,label3;
Button buttona,buttonb;
Image labmag;
public void init()
{
labmag=getImage(getDocumentBase(),"111.gif");
label1=new Label("欢迎使用京奥算术考试器");

label2=new Label("制作:京奥软件工作室");
label3=new Label("联系人:吕立辉 QQ:568631973 ");

buttona=new Button("进入");
buttonb=new Button("退出");
add(label1);
add(label2);
add(label3);
add(buttona);
add(buttonb);
buttona.addActionListener(this);
buttonb.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawImage(labmag,70,20,210,110,this);
}
public void actionPerformed(ActionEvent e)
{
Frame f=new Frame();
if(e.getSource()==buttona)
{
MyDialog1 dialog1=new MyDialog1(f,"京奥算术测试");
dialog1.setVisible(true);
}
else if(e.getSource()==buttonb)
{
System.exit(0);
}

}
}


----------------解决方案--------------------------------------------------------

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class MyDialog1 extends Dialog implements ActionListener
{

Label label1,label2,label3,label4,label5;
TextField text1;
int x,y,z,i;
Button buttona,buttonb,buttonc,buttond;
Panel p1;
MyDialog1(Frame f,String str)
{
super(f,str);
setSize(300,200);
setLayout(new GridLayout());
setBackground(Color.blue);
setVisible(true);
label1=new Label();
add(label1);
x=(int)(Math.random()*100);
label1.setText(String.valueOf(x) );
label2=new Label();
add(label2);
y=(int)(Math.random()*100);
label2.setText(String.valueOf(y) );
label3=new Label();
z=(int)(Math.random()*2);
if(z>1)
{
label3.setText("+");
}
else
{
label3.setText("-");

}
label4=new Label("=");
text1=new TextField(10);
buttona=new Button("判断");
label5=new Label(" ");
buttonb=new Button("下一题");
buttonc=new Button("帮助");
buttond=new Button("退出");
p1=new Panel();
p1.add("North",label1); p1.add("Center",label3);
p1.add(label2); p1.add(label4);
p1.add(text1);
p1.add(buttona);
p1.add(buttonb);
p1.add(buttonc);
p1.add(buttond);p1.add(label5);
add("South",p1);
buttona.addActionListener(this);
buttonb.addActionListener(this);
buttonc.addActionListener(this);
buttond.addActionListener(this);
i=x+y;
addWindowListener(new CloseWin());
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() ==buttona)
{
if(label3.getText() =="+")
{
if(text1.getText().equals(String.valueOf(x+y)))
{
label5.setText("right") ;
}else
{
label5.setText("wrong") ;
}
}else
{
if(text1.getText() .equals(String.valueOf(x-y) ))
{
label5.setText("right") ;
}else{
label5.setText("worng") ;
}
}
}
if(e.getSource() ==buttonb)
{
repaint();
}
if(e.getSource() ==buttonc)
{
MyDialog2 m=new MyDialog2(new Frame() ,"Help") ;
m.setVisible(true) ;
}if(e.getSource() ==buttond)
{
System.exit(0) ;
}
}
}
class MyDialog2 extends Dialog
{
Label labela,labelb;
Button button1;
Panel pl;
MyDialog2(Frame f,String str)
{
super(f,str);
setLayout(new BorderLayout(1,1));
setSize(150,150);
setBackground(Color.pink);
setVisible(true);
labela=new Label("欢迎使用京奥软件。在文本框写入结果点击判断查看对错");
button1=new Button("退出");
button1.addActionListener(new CloseWin());
pl=new Panel();
pl.add(button1);
add(labela);
add(pl);

addWindowListener(new CloseWin());
}

}
class CloseWin extends WindowAdapter implements ActionListener //现在就可以了,你说的那个"帮助"的退出按钮
{ //现在可以退出了,开始的时候,你用内部类来
public void windowClosing(WindowEvent e) //实现,我现在取消了内部类,用了一个专门的类
{ //来实现关闭窗口,"下一题"的按钮还不会解决~
System.exit(0);
}
public void actionPerformed(ActionEvent e)
{
System.exit(0) ;
}
}

public class jsq extends Applet implements ActionListener
{

Label label1,label2,label3;
Button buttona,buttonb;
Image labmag;
public void init()
{
labmag=Toolkit.getDefaultToolkit().getImage("111.jpg");
label1=new Label("欢迎使用京奥算术考试器");

label2=new Label("制作:京奥软件工作室");
label3=new Label("联系人:吕立辉 QQ:568631973 ");

buttona=new Button("进入");
buttonb=new Button("退出");
add(label1);
add(label2);
add(label3);
add(buttona);
add(buttonb);
buttona.addActionListener(this);
buttonb.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawImage(labmag,70,20,210,110,this);
}
public void actionPerformed(ActionEvent e)
{
Frame f=new Frame();
if(e.getSource()==buttona)
{
MyDialog1 dialog1=new MyDialog1(f,"京奥算术测试");
dialog1.setVisible(true);
}
else if(e.getSource()==buttonb)
{
System.exit(0);
}

}
}


----------------解决方案--------------------------------------------------------

//jsq.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class MyDialog1 extends Dialog implements ActionListener
{

Label label1,label2,label3,label4,label5;
TextField text1;
int x,y,z;
Button buttona,buttonb,buttonc,buttond;
Panel p1;
MyDialog1(Frame f,String str)
{
super(f,str);
setSize(300,200);
setLayout(new GridLayout());
setBackground(Color.blue);
setVisible(true);
label1=new Label(" ");
add(label1);
x=(int)(Math.random()*100);
label1.setText(String.valueOf(x) );
label2=new Label(" ");
add(label2);
y=(int)(Math.random()*100);
label2.setText(String.valueOf(y) );
if(label3.getText()=="-")
{
x-y>0;
}
label3=new Label(" ");
z=(int)(Math.random()*2);
if(z==0)
{
label3.setText("+");
}
else
{
label3.setText("-");

}
label4=new Label("=");
text1=new TextField(10);
buttona=new Button("判断");
label5=new Label(" ");
buttonb=new Button("下一题");
buttonc=new Button("帮助");
buttond=new Button("退出");
p1=new Panel();
p1.add("North",label1); p1.add("Center",label3);
p1.add(label2); p1.add(label4);
p1.add(text1);
p1.add(buttona);
p1.add(buttonb);
p1.add(buttonc);
p1.add(buttond);p1.add(label5);
add("South",p1);
buttona.addActionListener(this);
buttonb.addActionListener(this);
buttonc.addActionListener(this);
buttond.addActionListener(this);
//*addWindowListener(new CloseWin());
}
public void actionPerformed(ActionEvent e)
{
String str;
Frame f=new Frame();
if(e.getSource()==buttona)
{
if(label3.getText()=="+")
{
if(text1.getText().equals(String.valueOf(x+y)))
label5.setText("您回答正确");
else
label5.setText("您回答错误");
}
else
{
if(text1.getText().equals(String.valueOf(x+y)))
label5.setText("您回答正确");
else
label5.setText("您回答错误");
}
}
else if(e.getSource()==buttonb)
{
x=(int)(Math.random()*100);
label1.setText(String.valueOf(x) );
y=(int)(Math.random()*100);
label2.setText(String.valueOf(y) );
z=(int)(Math.random()*2);
if(z==0)
{
label3.setText("+");
}
else
{
label3.setText("-");

}
}
else if(e.getSource()==buttonc)
{
MyDialog2 dialog2=new MyDialog2(f,"京奥算术测试");
dialog2.setVisible(true);
}
else if(e.getSource()==buttond)
{
System.exit(0);
}
class CloseWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
}
class MyDialog2 extends Dialog implements ActionListener
{
Label labela,labelb;
Button button1;
Panel pl;
MyDialog2(Frame f,String str)
{
super(f,str);
setLayout(new BorderLayout(1,1));
setSize(300,150);
setBackground(Color.pink);
setVisible(true);
labela=new Label("欢迎使用京奥软件.");
labelb=new Label("在文本框中写入结果后点击判断按钮判断对错");
button1=new Button("确定");
pl=new Panel();
pl.add(button1);
add("North",labela);
add(labelb);
add("South",pl);
button1.addActionListener(this);
addWindowListener(new CloseWin());
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="确定")
{
setVisible(false);

}
}
class CloseWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
public class jsq extends Applet implements ActionListener
{

Label label1,label2,label3;
Button buttona,buttonb;
Image labmag;
public void init()
{
labmag=getImage(getDocumentBase(),"111.gif");
label1=new Label("欢迎使用京奥算术考试器");

label2=new Label("制作:京奥软件工作室");
label3=new Label("联系人:吕立辉 QQ:568631973 ");

buttona=new Button("进入");
buttonb=new Button("退出");
add(label1);
add(label2);
add(label3);
add(buttona);
add(buttonb);
buttona.addActionListener(this);
buttonb.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawImage(labmag,70,20,210,110,this);
}
public void actionPerformed(ActionEvent e)
{
Frame f=new Frame();
if(e.getSource()==buttona)
{
MyDialog1 dialog1=new MyDialog1(f,"京奥算术测试");
dialog1.setVisible(true);
}
else if(e.getSource()==buttonb)
{
System.exit(0);
}

}
}


----------------解决方案--------------------------------------------------------

这个下一题已经解决了.


----------------解决方案--------------------------------------------------------
但是不知道当label3为减号时,怎样使后面的小于前面的数............
----------------解决方案--------------------------------------------------------

刻苦学习中......


----------------解决方案--------------------------------------------------------
有错误不能用????????
----------------解决方案--------------------------------------------------------
  相关解决方案