天天看點

作業2

一、開發環境:Eclipse

二、功能

  1. 使用者可以選擇出題的個數(最多不能超過5個題目),答題結束可以顯示使用者答錯的題目個數和答對的題目個數
  2. 使用者在第一次答題時,需要使用者輸入使用者名,使用者下次啟動後,程式需要記住使用者前一次輸入的使用者名 
  3. 程式可以出單個整數階乘的題目:如:4!=24
  4. 程式可以設定答題時間,時間設定為整數,機關為秒,最大不能超過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);    
               
           }
}      

四、結果

作業2
作業2
作業2

五、結對同伴的學号姓名以及同伴的部落格位址

201306114447 黃傑 http://www.cnblogs.com/hj1994/
201306114448 練麗雲 http://www.cnblogs.com/Lianliyun

六、這個結對程式設計過程中,你做了什麼,同伴做了什麼?

    這次程式設計,我負責1.2功能的實作,同伴負責3.4功能的實作。而界面還沒完善,稍後一起完成。

七、總結這次結對程式設計的收獲到和感悟。沒發代碼的同學也要寫總結部落格。

     這次結對發現兩個人一起工作,比較容易發現對方的錯誤,這是一個人所做不到的。而且每個人負責一伴的子產品有利于進度的推進,這也是想不到的。兩節課基本搞定功能,不過界面不行。

六、附上結對工作時的照片

作業2