• 软件工程概论课堂作业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--;
    		}
    	}
    
    }
    

      运行截图:

  • 相关阅读:
    文本中溢出的文字在结尾显示为三个点
    git bash 如何建分支
    git本地仓库和远程仓库连接
    button不能直接添加href属性实现页面跳转
    【JAVA】【集合9】ArrayList和Vector区别
    【JAVA】【集合8】Java中的Vector
    【JAVA】【集合7】Java中的ArrayList
    【JAVA】【集合6】Java中的Collections工具类
    【JAVA】【集合5】Java中的List接口
    【JAVA】【集合4】Java中的Collection接口
  • 原文地址:https://www.cnblogs.com/xxdcxy/p/6492284.html
Copyright © 2020-2023  润新知