四则运算

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:扩展方向还差了一点点;

你可能感兴趣的:(四则运算)