四则运算level2

package j;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
            Scanner in=new Scanner (System.in);
            System.out.println("题目的数量");
                
            int number=in.nextInt();
            System.out.println("数值范围   10 空格 200 ");//先考虑整数的
            int up,down;
            down=in.nextInt();
            up=in.nextInt();
            
            System.out.println("打印时每行的间隔");
            int between;
            between=in.nextInt();            
            System.out.println("是否有乘除法Y/N");
        
            String jud1,jud2,jud3;
            jud1=in.next();
            System.out.println("是否支持小数Y/N");
            jud2=in.next();            
            System.out.println("加减有无负数Y/N");    
            jud3=in.next();
    
            do{
                int flag=2;    //算式长度
                int shuzi;        
                float shuzi2;//数字
                int signal=0;//数字符号            
                int b;        //运算符号        
                String Temp=new String("Y");
                flag =(int)(Math.random()*4)+2;//算式长度                                
                if(jud2.equalsIgnoreCase(Temp))//是否有小数点
                {
                    if(jud3.equalsIgnoreCase(Temp))//是否有负数
                        signal=(int) (Math.random()*2);
                                        
                    shuzi2=(float)(Math.random()*(up-down))+down;
                    shuzi2=(int)(shuzi2*1000);
                    shuzi2=shuzi2/1000;
                    if(signal<1)
                        System.out.print(shuzi2);
                    else
                        System.out.print("(-"+shuzi2+")");
                }                
                else{
                    if(jud3.equalsIgnoreCase(Temp))
                        signal=(int) (Math.random()*2);
                    
                 shuzi=(int)(Math.random()*(up-down)+down);
                 if(signal<1)
                        System.out.print(shuzi);
                    else
                        System.out.print("(-"+shuzi+")");    
                    
                }
                    //以上是第一个数                    
                do{
                    if(jud1.equalsIgnoreCase(Temp))//是否有乘除
                    b=(int)(Math.random()*4+1);
                    else
                        b=(int)(Math.random()*2+1);                    
                switch(b){    
                case 1://
                    if(jud2.equalsIgnoreCase(Temp))//是否小数点
                    {
                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                            signal=(int) (Math.random()*2);
                        
                        shuzi2=(float)(Math.random()*(up-down))+down;
                        shuzi2=(int)(shuzi2*1000);
                        shuzi2=shuzi2/1000;
                         if(signal<1)
                             System.out.print("+"+shuzi2);    
                            else                    
                                System.out.print("+"+"(-"+shuzi2+")");    
                    }
                    else{

                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                            signal=(int) (Math.random()*2);
                        
                     shuzi=(int)(Math.random()*(up-down)+down);
                     if(signal<1)
                         System.out.print("+"+shuzi);    
                        else                    
                            System.out.print("+"+"(-"+shuzi+")");                    
                    }                        
                    break;
                case 2://
                    if(jud2.equalsIgnoreCase(Temp))
                    {
                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                            signal=(int) (Math.random()*2);
                        
                        shuzi2=(float)(Math.random()*(up-down))+down;
                        shuzi2=(int)(shuzi2*1000);
                        shuzi2=shuzi2/1000;
                         if(signal<1)
                             System.out.print("-"+shuzi2);    
                            else                    
                                System.out.print("-"+"(-"+shuzi2+")");                            
                    }
                    else{
                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                        signal=(int) (Math.random()*2);
                        
                     shuzi=(int)(Math.random()*(up-down)+down);
                     if(signal<1)
                         System.out.print("-"+shuzi);
                        else                    
                            System.out.print("-"+"(-"+shuzi+")");                                 
                    }
                    break;
                case 3://
                    if(jud2.equalsIgnoreCase(Temp))
                    {
                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                            signal=(int) (Math.random()*2);
                        
                        shuzi2=(float)(Math.random()*(up-down))+down;
                        shuzi2=(int)(shuzi2*1000);
                        shuzi2=shuzi2/1000;
                         if(signal<1)
                             System.out.print("*"+shuzi2);    
                            else                    
                                System.out.print("*"+"(-"+shuzi2+")");                    
                    }
                    else{
                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                            signal=(int) (Math.random()*2);
                     shuzi=(int)(Math.random()*(up-down)+down);
                     if(signal<1)
                         System.out.print("*"+shuzi);    
                        else                    
                            System.out.print("*"+"(-"+shuzi+")");                    
                    }
                    break;
                case 4://
                    if(jud2.equalsIgnoreCase(Temp))
                    {
                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                            signal=(int) (Math.random()*2);
                        
                        shuzi2=(float)(Math.random()*(up-down))+down;
                        shuzi2=(int)(shuzi2*1000);
                        shuzi2=shuzi2/1000;
                         if(signal<1)
                             System.out.print("/"+shuzi2);
                            else                    
                                System.out.print("/"+"(-"+shuzi2+")");                            
                    }
                    else{
                        if(jud3.equalsIgnoreCase(Temp))//是否有负数
                            signal=(int) (Math.random()*2);
                        
                     shuzi=(int)(Math.random()*(up-down)+down);
                     if(signal<1)
                         System.out.print("/"+shuzi);    
                        else                    
                            System.out.print("/"+"(-"+shuzi+")");                         
                    }
                    break;    
                }
                flag--;
                }while(flag>0);
                    System.out.print("=");
                number--;
                for(int k=1;k<=between;k++)
                System.out.println();
                }while(number>0);            
            }
            }


        
        
    
View Code

做了n个简单的功能,但是括号君没头绪,所以卡代码了。小小的升级了一下----

求指点……

posted @ 2015-03-26 19:18  blackplume  阅读(206)  评论(3编辑  收藏  举报