• 软件工程概论作业二


    题目:

    设计思想:随机产生相应个数的随机数当做运算数,随机产生0-1或0-3当做运算符。运用if语句控制变量的运行,是否有括号,加减是否有负数,除法是否有余数。数值范围的控制通过随机数int x1=(int)(Math.random()*fan2+fan1)控制。

    package sizeyunsuan2;
    
    import java.util.Scanner;
    public class yunsuan2 {
       
            
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner num=new Scanner(System.in);
            System.out.println("请选择题目类型:1.整数    2.真分数");
            int type=num.nextInt();
            System.out.println("请输入数值范围起始值:");
            int fan1=num.nextInt();
            System.out.println("请输入数值范围终点值:");
            int fan2=num.nextInt();
            
            if(type==1)
            {
                System.out.println("请输入出题数量:");
                int n = num.nextInt();
                System.out.println("请选择是否有乘除法:1.是   2.否");
                int chu=num.nextInt();
                System.out.println("请选择加减是否有负数:1.是   2.否");
                int fu=num.nextInt();
                System.out.println("请选择除法是否有余数:1.是   2.否");
                int yu=num.nextInt();
                
                //这个数组是用来存放已经出好的题
                String timu[]=new String [n];
                String q1="";
    
                if(chu==1&&fu==1&&yu==1)
                {
                for(int i=0;i<n;i++)
                {   
                    int z=0;
                int x=(int)(Math.random()*fan2+fan1);//第一个数
                int y=(int)(Math.random()*fan2+fan1);//第二个数
                int a=(int)(Math.random() * 4);//用来判断四则运算的符号
                    z=x%y;//判断是否有余数
                if(a==0)q1=x+"+"+y+"=";
                if(a==1)q1=x+"-"+y+"="; 
                if(a==2)q1=x+"*"+y+"="; 
                if(a==3&&(z!=0))q1=x+"/"+y+"=";            
                 int j;
                    for(j=0;j<i;j++)
                        {
                           if(q1.equals(timu[j]))
                           {
                               i--;
                               break;
                           }
                        }
                    if(j==i){
                        timu[i]=q1;
                    
                        System.out.println(q1);}
                    }
                }
                if(chu==1&&fu==1&&yu==2)
                {
                for(int i=0;i<n;i++)
                {
                    int z=0;
                int x=(int)(Math.random()*fan2+fan1);//第一个数
                int y=(int)(Math.random()*fan2+fan1);//第二个数
                int a=(int)(Math.random() * 4);//用来判断四则运算的符号
                    z=x%y;//判断是否有余数
                if(a==0)q1=x+"+"+y+"=";
                if(a==1)q1=x+"-"+y+"="; 
                if(a==2)q1=x+"*"+y+"="; 
                if(a==3&&(z==0))q1=x+"/"+y+"=";            
                 int j;
                    for(j=0;j<i;j++)
                        {
                           if(q1.equals(timu[j]))
                           {
                               i--;
                               break;
                           }
                        }
                    if(j==i){
                        timu[i]=q1;
                    
                        System.out.println(q1);}
                    }
                }
                if(chu==1&&fu==2&&yu==1)
                {
                    for(int i=0;i<n;i++)
                    {
                        int z=0;
                    int x=(int)(Math.random()*fan2+fan1);//第一个数
                    int y=(int)(Math.random()*fan2+fan1);//第二个数
                    int a=(int)(Math.random() * 4);//用来判断四则运算的符号
                    z=x%y;//判断是否有余数
                    if(a==0)q1=x+"+"+y+"=";
                    if(a==1&&(x>=y))q1=x+"-"+y+"="; 
                    if(a==2)q1=x+"*"+y+"="; 
                    if(a==3&&(z!=0))q1=x+"/"+y+"=";            
                     int j;
                        for(j=0;j<i;j++)
                            {
                               if(q1.equals(timu[j]))
                               {
                                   i--;
                                   break;
                               }
                            }
                        if(j==i){
                            timu[i]=q1;
                        
                            System.out.println(q1);}
                        }
                }
                if(chu==1&&fu==2&&yu==2)
                {
                    for(int i=0;i<n;i++)
                    {
                        int z=0;
                    int x=(int)(Math.random()*fan2+fan1);//第一个数
                    int y=(int)(Math.random()*fan2+fan1);//第二个数
                    int a=(int)(Math.random() * 4);//用来判断四则运算的符号
                    z=x%y;//判断是否有余数
                    if(a==0)q1=x+"+"+y+"=";
                    if(a==1&&(x>=y))q1=x+"-"+y+"="; 
                    if(a==2)q1=x+"*"+y+"="; 
                    if(a==3&&(z==0))q1=x+"/"+y+"=";            
                     int j;
                        for(j=0;j<i;j++)
                            {
                               if(q1.equals(timu[j]))
                               {
                                   i--;
                                   break;
                               }
                            }
                        if(j==i){
                            timu[i]=q1;
                        
                            System.out.println(q1);}
                        }
                }
                if(chu==2&&fu==1)
                {
                    for(int i=0;i<n;i++)
                    {
                    int x=(int)(Math.random()*fan2+fan1);//第一个数
                    int y=(int)(Math.random()*fan2+fan1);//第二个数
                    int a=(int)(Math.random() * 2);//用来判断四则运算的符号
                    if(a==0)q1=x+"+"+y+"=";
                    if(a==1)q1=x+"-"+y+"=";         
                     int j;
                        for(j=0;j<i;j++)
                            {
                               if(q1.equals(timu[j]))
                               {
                                   i--;
                                   break;
                               }
                            }
                        if(j==i){
                            timu[i]=q1;
                        
                            System.out.println(q1);}
                        }
                }
                if(chu==2&&fu==2)
                {
                    for(int i=0;i<n;i++)
                    {
                    int x=(int)(Math.random()*fan2+fan1);//第一个数
                    int y=(int)(Math.random()*fan2+fan1);//第二个数
                    int a=(int)(Math.random() * 2);//用来判断四则运算的符号
                    if(a==0)q1=x+"+"+y+"=";
                    if(a==1&&(x>=y))q1=x+"-"+y+"=";         
                     int j;
                        for(j=0;j<i;j++)
                            {
                               if(q1.equals(timu[j]))
                               {
                                   i--;
                                   break;
                               }
                            }
                        if(j==i){
                            timu[i]=q1;
                        
                            System.out.println(q1);}
                        }
                }
                
                
                
            }
            if(type==2)
            {   
                
                System.out.println("请输入出题数量:");
                int n = num.nextInt()+1;
                System.out.println("请选择是否有乘除法:1.是   2.否");
                int chu=num.nextInt();
                System.out.println("请选择加减是否有负数:1.是   2.否");
                int fu=num.nextInt();
    
                //这个数组是用来存放已经出好的题
                String timu[]=new String [n];            
                if(chu==1&&fu==1)
                {
                int z=0,z1,z2;
                for(int i=0;i<n;i++)
                {
                    int x1=(int)(Math.random()*fan2+fan1);//分子
                    int y1=(int)(Math.random()*fan2+fan1+1);//分母
                    z1=x1/y1;
                    
                    int x2=(int)(Math.random()*fan2+fan1+1);//分子
                    int y2=(int)(Math.random()*fan2+fan1+1);//分母
                    z2=x2/y2;
                    
                    String q1="";
                    int a=(int)(Math.random() * 4);//用来判断四则运算的符号
                    if(x2==0&&a==3) i--;
                    else{
                if(a==0) q1=x1+"/"+y1+"+"+x2+"/"+y2+"=";
            
                if(a==1) q1=x1+"/"+y1+"-"+x2+"/"+y2+"=";
            
                if(a==2) q1="("+x1+"/"+y1+")"+"*"+"("+x2+"/"+y2+")"+"=";
                
                if(a==3&&(z2!=0)&&(z!=0)) q1="("+x1+"/"+y1+")"+"/"+"("+x2+"/"+y2+")"+"=";
                int j;
                for(j=0;j<i;j++)
                    {
                       if(q1.equals(timu[j]))
                       {
                           i--;
                           break;
                       }
                    }
                if(j==i){
                    timu[i]=q1;
                
                    System.out.println(q1);}
                }            
                }
                }
                if(chu==2&&fu==1)
                {
                int z1,z2;
                for(int i=0;i<n;i++)
                {
                    int x1=(int)(Math.random()*fan2+fan1);//分子
                    int y1=(int)(Math.random()*fan2+fan1+1);//分母
                    z1=x1/y1;
                    
                    int x2=(int)(Math.random()*fan1);//分子
                    int y2=(int)(Math.random()*fan2+fan1+1);//分母
                    z2=x2/y2;
                    
                    String q1="";
                    int a=(int)(Math.random() * 2);//用来判断四则运算的符号
                    if(x2==0&&a==3) i--;
                    else{
                if(a==0) q1=x1+"/"+y1+"+"+x2+"/"+y2+"=";
            
                if(a==1) q1=x1+"/"+y1+"-"+x2+"/"+y2+"=";
    
                int j;
                for(j=0;j<i;j++)
                    {
                       if(q1.equals(timu[j]))
                       {
                           i--;
                           break;
                       }
                    }
                if(j==i){
                    timu[i]=q1;
                
                    System.out.println(q1);}
                }            
                }
                }
                if(chu==1&&fu==2)
                {
                int z1,z2;
                for(int i=0;i<n;i++)
                {
                    int x1=(int)(Math.random()*fan2+fan1);//分子
                    int y1=(int)(Math.random()*fan2+fan1+1);//分母
                    z1=x1/y1;
                    
                    int x2=(int)(Math.random()*fan1);//分子
                    int y2=(int)(Math.random()*fan2+fan1+1);//分母
                    z2=x2/y2;
                    
                    String q1="";
                    int a=(int)(Math.random() * 4);//用来判断四则运算的符号
                    if(x2==0&&a==3) i--;
                    else{
                if(a==0) q1=x1+"/"+y1+"+"+x2+"/"+y2+"=";
            
                if(a==1&&(z1>=z2)) q1=x1+"/"+y1+"-"+x2+"/"+y2+"=";
            
                if(a==2) q1="("+x1+"/"+y1+")"+"*"+"("+x2+"/"+y2+")"+"=";
                
                if(a==3&&(z2!=0)) q1="("+x1+"/"+y1+")"+"/"+"("+x2+"/"+y2+")"+"=";
                int j;
                for(j=0;j<i;j++)
                    {
                       if(q1.equals(timu[j]))
                       {
                           i--;
                           break;
                       }
                    }
                if(j==i){
                    timu[i]=q1;
                
                    System.out.println(q1);}
                }            
                }
                }
                if(chu==2&&fu==2)
                {
                int z1,z2;
                for(int i=0;i<n;i++)
                {
                    int x1=(int)(Math.random()*fan2+fan1);//分子
                    int y1=(int)(Math.random()*fan2+fan1+1);//分母
                    z1=x1/y1;
                    
                    int x2=(int)(Math.random()*fan1);//分子
                    int y2=(int)(Math.random()*fan2+fan1+1);//分母
                    z2=x2/y2;
                    
                    String q1="";
                    int a=(int)(Math.random() * 2);//用来判断四则运算的符号
                    if(x2==0&&a==3) i--;
                    else{
                if(a==0) q1=x1+"/"+y1+"+"+x2+"/"+y2+"=";
            
                if(a==1&&(z1>=z2)) q1=x1+"/"+y1+"-"+x2+"/"+y2+"=";
    
                int j;
                for(j=0;j<i;j++)
                    {
                       if(q1.equals(timu[j]))
                       {
                           i--;
                           break;
                       }
                    }
                if(j==i){
                    timu[i]=q1;
                
                    System.out.println(q1);}
                }            
                }
                }
                
            }
            
        }
    
    }

    结果截图:

    这次实验没有实现随机括号的功能,在编写过程中出现了较多错误,已经有了较为清晰的思路,但还未将程序调试成功。

  • 相关阅读:
    PHP面向对象之事务脚本模式
    PHP面向对象之页面控制器
    PHP面向对象之前端控制器模式
    oracle sql分页的写法示例
    PHP面向对象之注册表模式
    PHP面向对象之命令模式
    opencv中Mat类型数据操作与遍历
    Anisotropic gauss filter
    opencv 批量图像读写
    HSV颜色识别demo
  • 原文地址:https://www.cnblogs.com/xxdcxy/p/6532608.html
Copyright © 2020-2023  润新知