一、开发环境:Eclipse
二、功能
- 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
- 用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名
- 程序可以出单个整数阶乘的题目:如:4!=24
- 程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题
三、源代码
import java.util.*;
public class CeShi {
public static void main(String[] args) {
int e,h,k;
int m=0;
Scanner in=new Scanner(System.in);
String mz[]=new String[100];
System.out.printf("请输入用户名:");
mz[m]= in.nextLine();
m++;
System.out.printf("请输入题目个数:");
h=in.nextInt();
System.out.printf("是否需要阶乘:(1/0)");
k=in.nextInt();
if(k==0)
{
System.out.printf("是否需要乘除法:(1、0)");
e=in.nextInt();
JiShi timeController = new JiShi();
YunSuan t =new YunSuan(e,h);
t.TiMu();
t.MZ(mz, m);
t.PanDuan();
}
else
{
YunSuan t=new YunSuan(h,k);
t.JC(h);
t.PD();
}
}
}
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Timer;
@SuppressWarnings("unused")
public class JiShi extends JFrame implements ActionListener {
private static final long serialVersionUID = 4603262282860990473L;
private static final int DEFAULT_WIDTH = 200;
private static final int DEFAULT_HEIGHT = 100;
private static final int width = Toolkit.getDefaultToolkit()
.getScreenSize().width;
private static final int height = Toolkit.getDefaultToolkit()
.getScreenSize().height;
private Container container;
private JButton btn;
private JTextField jtfTime;
private Timer tmr;
public JiShi() {
initComponents();
Timer tmr = new Timer(1000, this);
this.tmr = tmr;
setVisible(true);
}
private void initComponents() {
this.setTitle("SY秒表");
this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
this.setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation((width - DEFAULT_WIDTH) / 2,
(height - DEFAULT_HEIGHT) / 2);
jtfTime = new JTextField("100");
btn = new JButton("开始倒计时");
container = getContentPane();
JPanel panel = new JPanel();
panel.add(btn);
panel.add(jtfTime);
this.add(panel);
btn.addActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == btn) {
jtfTime.setText("100");
tmr.start();
} else {
int t;
t = Integer.parseInt(jtfTime.getText());
t--;
jtfTime.setText("" + t);
if (t <= 0) {
tmr.stop();
}
}
}
}
import java.util.*;
import java.math.*;
public class YunSuan {
Scanner in=new Scanner(System.in);
int a,b,c,d,e,f,i,h,j,p,q,m;
String mz[]=new String[100];
int daan[]=new int[10];
int shuzi[]=new int[10];
Random t=new Random();
YunSuan(int e,int h){
this.e=e;
this.h=h;
f=0;
}
public void MZ(String mz[],int m){
this.m=m;
this.mz[m]=mz[m];
System.out.printf("mz[m]");
}
public void TiMu()
{
for(int i=0;i<h;i++)
{
a=t.nextInt(100)+1;
b=t.nextInt(100)+1;
c=t.nextInt(100)+1;
d=t.nextInt(100)%4;
if(e==1)
{
if(d==1 ||d==0){
System.out.printf("
"+"%d"+"+"+"%d"+"*"+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a+b*d;}
else if(d==2){
System.out.printf("
"+"%d"+"+"+"%d"+"/"+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a-b*d;}
else if(d==3){
System.out.printf("
"+"%d"+"-"+"%d"+"*"+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a+b/d;}
else if(d==4){
System.out.printf("
"+"%d"+"-"+"%d"+""+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a-b/d;}
}
else{
if(d==1||d==2){
System.out.printf("
"+"%d"+"+"+"%d"+"=",a,b);
shuzi[i]=in.nextInt();
daan[i]=a+b;}
else{
System.out.printf("
"+"%d"+"-"+"%d"+"=",a,b);
shuzi[i]=in.nextInt();
daan[i]=a-b;}
}
}
}
public void PanDuan()
{
for(int i=0;i<h;i++)
{
if(shuzi[i]==daan[i]){
p++;
f++;
System.out.printf("
"+"恭喜你答对第%d题",i+1);
}
else {
q++;
System.out.printf("
"+"对不起,你答错了第%d题",i+1);}
}
System.out.printf("
"+"你答对了%d题",p);
System.out.printf("
"+"你答错了%d题",q);
System.out.println("
"+"你的得分为:"+f);
}
public void JC(int h)
{
this.h=h;
for(j=0;j<h;j++)
{
a=t.nextInt(10)+1;
System.out.printf("%d"+"!"+"=",a);
for(i=1;i<=a;i++)
shuzi[j]=1*i;
daan[j]=in.nextInt();}
}
public void PD()
{
for(int i=0;i<h;i++)
{
if(shuzi[i]==daan[i]){
p++;
f++;
System.out.printf("
"+"恭喜你答对第%d题",i+1);
}
else {
q++;
System.out.printf("
"+"对不起,你答错了第%d题",i+1);}
}
System.out.printf("
"+"你答对了%d题",p);
System.out.printf("
"+"你答错了%d题",q);
System.out.println("
"+"你的得分为:"+f);
}
}
四、结果
五、结对同伴的学号姓名以及同伴的博客地址
201306114447 | 黄杰 | http://www.cnblogs.com/hj1994/ |
201306114448 | 练丽云 | http://www.cnblogs.com/Lianliyun |
六、这个结对编程过程中,你做了什么,同伴做了什么?
这次编程,我负责1.2功能的实现,同伴负责3.4功能的实现。而界面还没完善,稍后一起完成。
七、总结这次结对编程的收获到和感悟。没发代码的同学也要写总结博客。
这次结对发现两个人一起工作,比较容易发现对方的错误,这是一个人所做不到的。而且每个人负责一伴的模块有利于进度的推进,这也是想不到的。两节课基本搞定功能,不过界面不行。
六、附上结对工作时的照片