zoukankan      html  css  js  c++  java
  • 四则运算

    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:人选
    2:机选");
            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
    ", 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("答案正确!
    ");right++;}//比较大小
                      else System.out.printf("答案有误!正确答案是%d
    ",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
    ", 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("答案正确!
    ");right++;}//比较大小
                          else System.out.printf("答案有误!正确答案是%d
    ",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
    ", 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("答案正确!
    ");right++;}//比较大小
                          else System.out.printf("答案有误!正确答案是%d
    ",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
    ", 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("答案正确!
    ");right++;}
                      else System.out.printf("答案有误!正确答案是%d
    ",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:扩展方向还差了一点点;

  • 相关阅读:
    codechef FNCS
    bzoj2653 middle
    CF698F Coprime Permutation
    CF538H Summer Dichotomy
    CF930E Coins Exhibition
    CF468D Tree
    CF528E Triangles3000
    BZOJ 4066: 简单题
    BZOJ 4300: 绝世好题
    BZOJ 4520: [Cqoi2016]K远点对
  • 原文地址:https://www.cnblogs.com/chenruting/p/4409797.html
Copyright © 2011-2022 走看看