四则运算
PSP阶段 预计花费的时间(小时) 实际花费的时间(小时)
计划 2 3
明确需求和其他相关因素,估计每个阶段的时间成本 2 3
开发 20m 10m
需求分析 10m 10m
代码规范 10m m
具体设计 1h 1h
具体编码3 2h 2h
代码复审 10m 10m
测试 5m 1m
以上为项目效果图
具体实现 java gui 轻量级组件 swing
package index;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import win.ExitWin;
import win.T;
public class index5 {
Font font = new Font("黑体",Font.BOLD,20);
T t=new T(); //获取xyz
//生成题
int x =t.getx();
int y =t.gety();
char a=t.geta();
int z = t.gets();//记录正确答案
int count=0;//记录答题次数
int right=0;//记录正确次数
public void getIndex2(boolean b) {
JFrame jf = new JFrame("小学生出题系统");
jf.setLayout(null);
JLabel jl=new JLabel("做题:");
jl.setFont(font);
jl.setBounds(100, 120, 70, 20);
JTextField jt = new JTextField(x+""+a+y);//显示数学题
jt.setHorizontalAlignment(SwingConstants.CENTER);//数学题居中
jt.setFont(font);//设置数学题的字体
jt.setBounds(170, 110, 150, 40);
jt.setEditable(false); //数学题不可编辑
JLabel jl2=new JLabel("答案");
jl2.setFont(font);
jl2.setBounds(400, 120, 70, 20);
JTextField jt2 = new JTextField("");//填写答案
jt2.setBounds(450, 120, 35, 30);
JButton jb = new JButton("提交");
jb.setFont(font);
jb.setBounds(500, 120, 90, 50);
JTextArea jta= new JTextArea(); //记录题
jta.setBounds(100, 200, 500, 500);
jta.setEditable(false);
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
count++;//单机一次提交 做题次数加1
// TODO Auto-generated method stub
int userin =Integer.parseInt(jt2.getText());
String hint=null;
if(userin==z) {
hint="√";
right++;//答对后加1
}else {
hint="×";
}
jta.append(x+""+a+y+"="+userin+"\r \r \r"+"正确答案为"+z+" "+hint+"\n");//文本域做记录
jt2.setText("");
x=t.getx();
y=t.gety();
a=t.geta();
z=t.gets();
jt.setText(x+""+a+y);//更新题型
}
});
JButton exitJB = new JButton("退出");
exitJB.setFont(font);
exitJB.setBounds(500, 800, 90, 50);
exitJB.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jf.setVisible(false);
new ExitWin().getExitWin(count, right);;
}
});
jf.add(exitJB);
jf.add(jb);
jf.add(jt2);
jf.add(jl2);
jf.add(jt);
jf.add(jta);
jf.add(jl);
jf.setBounds(500, 70, 700, 1200);
jf.setVisible(b);
}
}
省略 退出界面 测试界面