软件工程个人作业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("输入错误");
           }
      }

}

原文地址:https://www.cnblogs.com/lzxw/p/6532813.html