四则运算

import java.util.*;

public class calculate {
    public static void main(String[] args) {
      T t=new T();
    }
}

class T {
    Scanner sc = new Scanner(System.in);
    Random Ra = new Random();
    char[] cal = { '+', '-', '*', '/' };
    char c;
    int n = 10;
    long startTime;
    long endTime;
    long time;

    T() {
        System.out.print("1:人选\n2:机选");
        int choice = sc.nextInt();
        switch (choice) {
        case 11: {
            int right = 0;int b1=0;
            System.out.print("请输入习题数:");
            int user_cho = sc.nextInt();
            
            for (int i = 0; i < user_cho; i++) {
                int s=Ra.nextInt(3);
                switch(s){//生成随机数,控制式子中的运算符
                case 0:{    
                    int index = Ra.nextInt(cal.length);// 生成符号,随机数
                    c = cal[index];
                    int a = Ra.nextInt(100);
                    int b = Ra.nextInt(100);
                    if (c == '/' && b == 0) {
                        index = Ra.nextInt(cal.length);// 生成符号,随机数
                        c = cal[index];
                    }
                    System.out.printf("%d%c%d\n", a, c, b);
                    
                    switch(c){//计算随机数的值
                    case '+':{
                        b1=a+b;
                    }
                        break;
                    case '-':{
                        b1=a-b;
                    }break;
                    case '*':{
                        b1=a*b;
                    }
                        break;
                    case '/':{
                        b1=a/b;
                    }
                        break;
                    }
                    startTime = System.currentTimeMillis();//开始时间
                  int a1 = sc.nextInt();
                  if(a1==b1){System.out.print("答案正确!\n");right++;}//比较大小
                  else System.out.printf("答案有误!正确答案是%d\n",b1);
                }
                endTime = System.currentTimeMillis();//结束时间
                time = endTime - startTime;
                int time1 = (int) (time / 1000);
                System.out.printf("用时%ds,答对%d题", time1,right);
                break;
                
                case 1:{
                    
                    int index = Ra.nextInt(cal.length);// 生成符号,随机数
                        c = cal[index];
                        int a = Ra.nextInt(100);
                        int b = Ra.nextInt(100);
                        int d = Ra.nextInt(100);
                        
                        System.out.printf("%d%c%d%c%d\n", a, c, b,d);
                        
                        switch(c){//计算随机数的值
                        case '+':{
                            b1=a+b+d;
                        }
                            break;
                        case '-':{
                            b1=a-b-d;
                        }break;
                        case '*':{
                            b1=a*b*d;
                        }
                            break;
                        case '/':{
                            b1=a/b/d;
                        }
                            break;
                        }
                        startTime = System.currentTimeMillis();//开始时间
                      int a1 = sc.nextInt();
                      if(a1==b1){System.out.print("答案正确!\n");right++;}//比较大小
                      else System.out.printf("答案有误!正确答案是%d\n",b1);
                    }
                    endTime = System.currentTimeMillis();//结束时间
                    time = endTime - startTime;
                    int time11 = (int) (time / 1000);
                    System.out.printf("用时%ds,答对%d题", time11,right);
                break;
                
                case 2:{
                    
                    int index = Ra.nextInt(cal.length);// 生成符号,随机数
                        c = cal[index];
                        int a = Ra.nextInt(100);
                        int b = Ra.nextInt(100);
                        int d = Ra.nextInt(100);
                        int e = Ra.nextInt(100);
                        System.out.printf("%d%c%d%c%d%c%d\n", a, c, b,c,d,c,e);
                        
                        switch(c){//计算随机数的值
                        case '+':{
                            b1=a+b+d+e;
                        }
                            break;
                        case '-':{
                            b1=a-b-d-e;
                        }break;
                        case '*':{
                            b1=a*b*d*e;
                        }
                            break;
                        case '/':{
                            b1=a/b/d/e;
                        }
                            break;
                        }
                        startTime = System.currentTimeMillis();//开始时间
                      int a1 = sc.nextInt();
                      if(a1==b1){System.out.print("答案正确!\n");right++;}//比较大小
                      else System.out.printf("答案有误!正确答案是%d\n",b1);
                    }
                    endTime = System.currentTimeMillis();//结束时间
                    time = endTime - startTime;
                    int time12 = (int) (time / 1000);
                    System.out.printf("用时%ds,答对%d题", time12,right);
                break;
                
                }
                
            }
        }
            break;
        case 12: {
            int b2=0;int right=0;
            
            for (int i = 0; i < n; i++) {
                int index = Ra.nextInt(cal.length);// 生成符号,随机数
                c = cal[index];
                int a = Ra.nextInt(100);
                int b = Ra.nextInt(100);

                System.out.printf("%d%c%d\n", a, c, b);
                
                switch(c){
                case '+':{
                    b2=a+b;
                }
                    break;
                case '-':{
                    b2=a-b;
                }break;
                case '*':{
                    b2=a*b;
                }
                    break;
                case '/':{
                    b2=a/b;
                }
                    break;
                }
                startTime = System.currentTimeMillis();
                int a2 = sc.nextInt();
                if(a2==b2){System.out.print("答案正确!\n");right++;}
                  else System.out.printf("答案有误!正确答案是%d\n",a+c+b);
            }
            endTime = System.currentTimeMillis();
            time = endTime - startTime;
            int time1 = (int) (time / 1000);
            System.out.printf("用时%ds,答对%d题", time1,right);
        }
            break;
        }
    }
}

  

关于程序:

开发环境:eclipse;

方向:

1:计算用户答题时间;     

2:用户控制题数;     

3:控制时间;

结对同伴:     

黄伟俊   201306114423     http://www.cnblogs.com/hwj23/     

陈汝婷   201306114454     http://i.cnblogs.com/EditPosts.aspx?opt=1

小结:    

通过这一次的对结编程作业,最大的感想就是那句老话--“一人一个苹果,加起来就会有2个苹果,思想也是如此”。编写适用的软件需要团队的力量,光靠一个人是没有办法完成的,再一次体会到团队的重要性。    这一次的作业让我们开始有了一点点的经验;    

1:看清要求,分析要点;刚刚拿到题目的时候应该看清楚题目的要求,详细的记住这个软件的功能要求是什么,不应该盲目写代码,因为那样我们会做太多的无用功;    

2:把握细节,理清逻辑关系;编写软件的过程中应该按步骤进行,要有功能模块图等,很多人都这样说“软件的重要性是要理清楚逻辑,只要逻辑对了,注重一些细节,软件就会变得完善了”,我们也是这样觉得。所以在写该次代码的时候,我们先写好步骤,第一步应该做什么而第二步又应该如何进行;    

3:写代码是一件相对枯燥乏味的事情,很容易让人烦闷。这也就是说编写代码时间不易过长。

作业缺陷:  

1:没有达到最低要求。这是最大的缺陷,我们的程序还是以控制台为主;但这并不意味着我们不能将程序以界面的形式输出。只是时间紧急,但是我们会在接下来的时间继续完善本次作业。望老师能再给我们一点点时间。

2:扩展方向还差了一点点;

posted @ 2015-04-09 15:28  54--陈汝婷  阅读(265)  评论(3编辑  收藏  举报