作业帮 > 综合 > 作业

小学算术运算测试程序要求:制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确,最后计算分

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/28 13:35:24
小学算术运算测试程序
要求:制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确,最后计算分数.用gui用户界面.
在百度看到你的问答,特犀利,
java编程的哦
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*10以内计算题,根据输入生成题目个数
*
*/
public class T2013_6_21IN10 extends JFrame implements ActionListener{
JisuanPanel[] panels;
int n;
public T2013_6_21IN10(){
super("10以内计算题");
String inputValue = JOptionPane.showInputDialog("输入题目个数:");
try{
n=Integer.parseInt(inputValue);
}catch(Exception e){n=20;}
panels=new JisuanPanel[n];
for(int i=0;i<panels.length;i++)
panels[i]=new JisuanPanel();
Container c=getContentPane();
c.setLayout(new BorderLayout());
JPanel panel=new JPanel(new GridLayout(n/2+1,2));
for(int i=0;i<panels.length;i++)
panel.add(panels[i]);
c.add(new JScrollPane(panel),BorderLayout.CENTER);

panel=new JPanel(new FlowLayout());
JButton button=new JButton("评卷");
button.setActionCommand("JUDGE");
button.addActionListener(this);
panel.add(button);
button=new JButton("重新出题");
button.setActionCommand("RESET");
button.addActionListener(this);
panel.add(button);
c.add(panel,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("RESET")){
for(int i=0;i<panels.length;i++)
panels[i].init();
}
if(e.getActionCommand().equals("JUDGE")){
int n=0;
for(int i=0;i<panels.length;i++){
if(panels[i].right())
n++;
}
JOptionPane.showMessageDialog(null,"一共"+this.n+"题,共做对"+n+"道!\n得分:"+(int)((((double)n)/this.n)*100));
}
return;
}
public static void main (String[] args) {
JFrame frame=new T2013_6_21IN10();
frame.setBounds(50,50,400,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class JisuanPanel extends JPanel{
JLabel label;
JTextField field;
int result;
public JisuanPanel(){
super();
label=new JLabel();
field=new JTextField(4);
add(label);
add(field);
init();
}
public void init(){
int a,b;
String fu;
a=(int)(Math.random()*10)+1;
b=(int)(Math.random()*10)+1;
switch((int)(Math.random()*2)){
case 0:fu="+";label.setText(""+a+fu+b+"=");result=a+b;break;
case 1:fu="-";label.setText(""+a+fu+b+"=");result=a-b;break;
//case 2:fu="*";label.setText(""+a+fu+b+"=");result=a*b;break;
//case 3:fu="/";label.setText(""+a+fu+b+"=");result=a/b;break;
default:JOptionPane.showMessageDialog(null,"出错!");System.exit(0);
}
if(result<0||result>10)
init();
field.setText("");
return;
}
public boolean right(){
if(field.getText().equals(""))return false;
int num=result+1;
try{
num=Integer.parseInt(field.getText());
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(null,"输入错误!");
field.setText("");
}
if(num==result){
if(!(label.getText()).startsWith("√"))
label.setText("√"+label.getText());
return true;
}
else return false;
}
}