• 软件工程个人作业02


    表示推翻以前所有的思路重新想重新写代码还真是难- -不过不重新写没有思路,是混乱的。

    定义一些变量分别代表题目个数运算范围等,定义数组存储运算符和随机数组成的算式,然后生成随机数,靠之前输入的数值控制数量和范围

    生成题目很简单,之前也做到了,现在要做到计算,由于优先级比较import java.uti

    public class Calculate{
        public static void main(String[] args)
         {
             Scanner sc=new Scanner(System.in);
             
                System.out.print("请输入题目个数:");
                int n=sc.nextInt();
                System.out.print("请输入运算范围(最大值)");
                int a=sc.nextInt();
                System.out.print("请输入运算数字的个数:(不大于10)");
                int b=sc.nextInt();
                String []yunsuan={"+","-","*","/","="};
                
                int []c;//随机数的存储
                int j=0;//次数的控制
                int g=0;//结果的累加
                int h=0;//正确个数的存储
                int []l;//符号的存储
                
               System.out.print("是否有乘除法(是输入y,否输入n)");
               String p=sc.next();
    
               if(p.equals("y")){
                   
                   do{
                        c=new int [b];    //生成数组用来存储算式中的数字
                        
                        for(int i=0;i<b;i++){
                            c[i]=new Random().nextInt(a);    //a为此前输入的随机数范围
                        }
                        
                        l=new int[b];
                        l[b-1]=4;
                        for(int i=0;i<b-1;i++){
                            l[i]=new Random().nextInt(3);  //在适当位置插入随机运算符
                        }
                        
                        for(int z=0;z<b;z++){
                            
                            if(l[z]==3&&c[z+1]==0){
                                c[z+1]=1;
                            }
                        }
                        
                        for(int y=0;y<b;y++){
                            System.out.print(c[y]+yunsuan[l[y]]);
                        }
                        
                        int f=sc.nextInt();
                        
                        for(int z=0;z<b;z++){
                            
                            if(l[z]==2){
                                
                                c[z+1]=c[z]*c[z+1];
                                c[z]=0;
                                l[z]=0;
                            }
                        }
                        for(int z=0;z<b;z++){
                            if(l[z]==3){  
                                c[z+1]=c[z]/c[z-1];
                                c[z]=0;
                                l[z]=0;
                            }
                        }
                        
                        g=c[0];
                        for(int z=0;z<b;z++){
                            
                            if(l[z]==0){
                                g=g+c[z+1];
                            }
                            else if(l[z]==1){
                                g=g-c[z+1];
                            }
                        }      //计算结果
                        
                        if(f==g){
                            System.out.println("正确");
                        }
                        else{
                            System.out.println("错误,正确答案为:"+g);
                        }
                        
                        j++;
                        }while(j<n);
               }
               else if(p.equals("n")){
                   do{
                        c=new int [b];
                        for(int i=0;i<b;i++)
                        {
                        c[i]=new Random().nextInt(a);    
                        }    
                        
                        l=new int[b];
                        l[b-1]=4;//等号
                        for(int i=0;i<b-1;i++)
                        {
                            l[i]=new Random().nextInt(2);//运算符号的随机
                        }
                        
                        for(int y=0;y<b;y++){  
                            System.out.print(c[y]+yunsuan[l[y]]);
                        }
                        
                            int f=sc.nextInt();
                            
                            g=c[0];
                            for(int z=0;z<b;z++)
                            {
                                if(l[z]==0)
                                {
                                g=g+c[z+1];
                                }
                                else if(l[z]==1)
                                {
                                    g=g-c[z+1];
                                }
                            }
                            
                            if(f==g)
                            {
                                System.out.println("正确");
                                
                            }
                            else
                            {
                                System.out.println("错误,正确答案为:"+g);
                            }
                            
                            j++;
                        }while(j<n);
               }
               else{
                   System.out.print("输入错误");
               }
          }
    
    }

  • 相关阅读:
    2016.7.17
    2016.7.16
    2016.7.15
    2016.7.12
    2016.7.11
    2016.7.10
    coco2d-x中的坐标系问题
    cocos2d-x中的Tiled地图
    cocos2d-x中的Box2D物理引擎
    python文件处理及装饰器
  • 原文地址:https://www.cnblogs.com/lzxw/p/6532813.html
Copyright © 2020-2023  润新知