zoukankan      html  css  js  c++  java
  • 软件工程概论课堂作业1

    题目要求:

      像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”。

    要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、

    题目避免重复、可定制出题的数量。

    (有能力者改编成网页版)

    程序设计思想:首先设置四个随机数,分别为分子和分母,通过分子是否可以整除分子判断出这个数是否为整数,通过分子小于分母控制生成的真分数。

    再生成一个1-4的随机数,分别代表四则运算的四个运算符号,从而生出完整的运算题目。

    最后通过数组实现查重功能,定义一个string类型的q1赋值成运算题目,进去数组,在数组中进行比较查看是否重复。

    代码如下:

    package si;
    
    
    import java.util.Scanner;
    public class yunsuan {
    
    	 public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.out.println("请输入出题数量:");
    		Scanner num=new Scanner(System.in);
    		int n = num.nextInt();
    		
    
    		
    		//这个数组是用来存放已经出好的题
            String timu[]=new String [n];
    		for(int i=0;i<n;i++)
    		{  
    			int z1,z2;//用来判断是整数还是真分数
    			int x1=(int)(Math.random()*100);//分子
    			int y1=(int)(Math.random()*100+1);//分母
    			z1=x1/y1;
    			
    			int x2=(int)(Math.random()*100);//分子
    			int y2=(int)(Math.random()*100+1);//分母
    			z2=x2/y2;			
    		    if((x1%y1==0)&&(x2%y2==0))
    		    {
    		    	int a=(int)(Math.random() * 4);//用来判断四则运算的符号
    		    	String q1="";
    		    	if(a==3&&z2==0) i--;
    		    	else{
    		    if(a==0) q1=z1+"+"+z2+"=";
    		    if(a==1) q1=z1+"-"+z2+"=";
    		
    		    if(a==2) q1=z1+"*"+z2+"=";
    		
    		    if(a==3&&(z2!=0)) q1=z1+"/"+z2+"=";
    		    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);}
    		    }
    		    	}
    		    else if((x1<y1)&&(x2%y2==0)&&x1!=0)
    		    {
    		    	String q1="";
    		    	int a=(int)(Math.random() * 4);//用来判断四则运算的符号
    		    	if(x2==0&&a==3) i--;
    		    	else{
                if(a==0) q1=x1+"/"+y1+"+"+z2+"=";
    		
    		    if(a==1) q1=x1+"/"+y1+"-"+z2+"=";
    		
    		    if(a==2) q1="("+x1+"/"+y1+")"+"*"+z2+"=";
    		    
    		    if(a==3&&(z2!=0)) q1="("+x1+"/"+y1+")"+"/"+z2+"=";
    		    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);}
    		    }
    		    }
    		    else if((x1%y1==0)&&(x2<y2))
    		    {
    		    	String q1="";
    		    	int a=(int)(Math.random() * 4);//用来判断四则运算的符号
    		    	if(x2==0&&a==3) i--;
    		    	else{
                if(a==0) q1=z1+"+"+x2+"/"+y2+"=";
    		
    		    if(a==1) q1=z1+"-"+x2+"/"+y2+"=";
    		
    		    if(a==2) q1=z1+"*"+"("+x2+"/"+y2+")"+"=";
    		    
    		    if(a==3&&(z2!=0)) q1=z1+"/"+"("+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);}
    		    }
    		    }
    		    else if((x1<y1)&&(x2<y2)&&x1!=0)
    		    {
    		    	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)) 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);}
    		    }		    
    		    }
    		    else i--;
    		}
    	}
    
    }
    

      运行截图:

  • 相关阅读:
    封装transform函数(设置和获取transform的属性和属性值)
    layui第三方组件 inputTags 标签输入框
    layui编辑器(layedit)的实现和图片上传功能
    php编写抽奖后台实现抽奖概率计算
    laravel中使用事物
    laravel 使用jwt的基本应用(适于初始jwt)
    layui 下拉框动态添加数据(监听下拉框(select)事件)
    laravel后台账户登录验证(5.5.48版本)
    使用三目运算获取3个数值中最大的数值
    Laravel框架使用融云服务端SDK
  • 原文地址:https://www.cnblogs.com/xxdcxy/p/6492284.html
Copyright © 2011-2022 走看看