一、開發環境: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("\n"+"%d"+"+"+"%d"+"*"+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a+b*d;}
else if(d==2){
System.out.printf("\n"+"%d"+"+"+"%d"+"/"+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a-b*d;}
else if(d==3){
System.out.printf("\n"+"%d"+"-"+"%d"+"*"+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a+b/d;}
else if(d==4){
System.out.printf("\n"+"%d"+"-"+"%d"+""+"%d"+"=",a,b,c);
shuzi[i]=in.nextInt();
daan[i]=a-b/d;}
}
else{
if(d==1||d==2){
System.out.printf("\n"+"%d"+"+"+"%d"+"=",a,b);
shuzi[i]=in.nextInt();
daan[i]=a+b;}
else{
System.out.printf("\n"+"%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("\n"+"恭喜你答對第%d題",i+1);
}
else {
q++;
System.out.printf("\n"+"對不起,你答錯了第%d題",i+1);}
}
System.out.printf("\n"+"你答對了%d題",p);
System.out.printf("\n"+"你答錯了%d題",q);
System.out.println("\n"+"你的得分為:"+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("\n"+"恭喜你答對第%d題",i+1);
}
else {
q++;
System.out.printf("\n"+"對不起,你答錯了第%d題",i+1);}
}
System.out.printf("\n"+"你答對了%d題",p);
System.out.printf("\n"+"你答錯了%d題",q);
System.out.println("\n"+"你的得分為:"+f);
}
}
四、結果
五、結對同伴的學号姓名以及同伴的部落格位址
201306114447 | 黃傑 | http://www.cnblogs.com/hj1994/ |
201306114448 | 練麗雲 | http://www.cnblogs.com/Lianliyun |
六、這個結對程式設計過程中,你做了什麼,同伴做了什麼?
這次程式設計,我負責1.2功能的實作,同伴負責3.4功能的實作。而界面還沒完善,稍後一起完成。
七、總結這次結對程式設計的收獲到和感悟。沒發代碼的同學也要寫總結部落格。
這次結對發現兩個人一起工作,比較容易發現對方的錯誤,這是一個人所做不到的。而且每個人負責一伴的子產品有利于進度的推進,這也是想不到的。兩節課基本搞定功能,不過界面不行。
六、附上結對工作時的照片