zoukankan      html  css  js  c++  java
  • 软件工程个人作业01

    四则运算(构建之法中提到的)

    一:程序的设计思想(重新编辑了下2016.3.12 20:21/2016 3.15 13:27)
    1)第一个版本:只有两个随机整数和符号的生成
    2)改善:添加生成30个算术的循环,支持真分数的四则运算,添加减法运算中的限制(默认:结果为正,不做负数结果的运算),添加除法的限制(分母不为零)

    二:源程序代码
    第一版(上传时间:2016.3.10 14:26):
    //四则运算 初始版本(不管任何条件,只是生成两个数和一个符号)
    //毛雯雯20143066 2016.3.10

    import java.util.Random;
    public class CalculateOfFour_1
    {

    public static void main(String[] args) 
    {
    	// TODO Auto-generated method stub
    	int a;
    	Random rand1 = new Random();  
    	a = rand1.nextInt(99)+0;
    	
    	int b;
    	Random rand2 = new Random();  
    	b = rand2.nextInt(99)+0;
    	
    	int c;
    	Random rand3 = new Random();  
    	c = rand3.nextInt(4);
    	
    	switch(c)
    	{
    		case(0):
    		{
    			System.out.print(a);
    			System.out.print('+');
    			System.out.print(b);
    			System.out.println("	");break;
    		}
    		case(1):
    		{
    			System.out.print(a);
    			System.out.print('-');
    			System.out.print(b);
    			System.out.println("	");break;
    
    		}
    		case(2):
    		{					
    			System.out.print(a);
    			System.out.print('*');
    			System.out.print(b);
    			System.out.println("	");	break;
    		}
    		case(3):
    		{
    			System.out.print(a);
    			System.out.print('/');
    			System.out.print(b);
    			System.out.println("	");break;
    		}
    	}
    }
    

    }

    第二版源程序(2016.3.15 13:29)
    

    //四则运算 初始版本(不管任何条件,只是生成两个数和一个符号) 出现的问题:忘记加break,随机数的表示
    //毛雯雯20143066 2016.3.10
    //进一步版本(添加循环,改善显示的结果的视觉效果(每五行换行),减数大于被减数,分母不为零,真分数的四则运算)
    import java.util.Random;
    public class CalculateOfFour_1
    {
    public static void main(String[] args)
    {
    // TODO Auto-generated method stub
    int i;
    for(i=1;i<=30;i++)
    {
    ////////两个整数生成///////////////
    //左边的数
    int a;
    Random rand1 = new Random();
    a = rand1.nextInt(100)+0; //指0-99的数,包括0和99

    		//右边的数
    		int b;
    		Random rand2 = new Random();  
    		b = rand2.nextInt(100)+0;
    		/////////整数生成/////////////////
    		
    		////////真分数生成/////////////////
    		
    		//分子
    		int x;
    		Random rand4 = new Random();  
    		x = rand4.nextInt(100)+0;
    		
    		//分母
    		int y;
    		Random rand5 = new Random();  
    		y = rand5.nextInt(100)+1;
    		
    		if(x>y)
    		{
    			int r;
    			r = x;
    			x = y;
    			y = r;
    		}
    		for(int j=2;j<=x;j++)
    		{
    			if(x%j==0&&y%j==0)
    			{
    				x = x/j;
    				y = y/j;
    			}	
    		}
    		
    		//分子
    		int p;
    		Random rand6 = new Random();  
    		p = rand6.nextInt(100)+0;
    		
    		//分母
    		int q;
    		Random rand7 = new Random();  
    		q = rand7.nextInt(100)+1;
    		
    		if(p>q)
    		{
    			int r;
    			r = p;
    			p = y;
    			q = r;
    		}
    		for(int j=2;j<=p;j++)
    		{
    			if(p%j==0&&q%j==0)
    			{
    				p = p/j;
    				q = q/j;
    			}	
    		}
    		////////真分数生成/////////////////
    		
    		//整数和真分数的选择
    		int t;
    		Random rand8 = new Random();  
    		t = rand8.nextInt(5);
    		
    		//符号
    		int c;
    		Random rand3 = new Random();  
    		c = rand3.nextInt(4);
    	  
    		if(t!=0)
    		{
    			switch(c)
    			{
    				case(0):
    				{
    					System.out.print(a);
    					System.out.print('+');
    					System.out.print(b);
    					System.out.println("=	");break;
    				}
    				case(1):
    				{
    					if(a<b)
    					{
    						int d;
    						d = a;
    						a = b;
    						b = d;
    					}              //防止小学生不会算负数而添加的六行代码,若无需此段代码,可注释掉
    					System.out.print(a);
    					System.out.print('-');
    					System.out.print(b);
    					System.out.println("=	");break;
    				}
    				case(2):
    				{					
    					System.out.print(a);
    					System.out.print('*');
    					System.out.print(b);
    					System.out.println("=	");	break;
    				}
    				case(3):
    				{
    					while(b==0)
    						b = rand2.nextInt(100)+0; // 保证分母不为零
    					System.out.print(a);
    					System.out.print('/');
    					System.out.print(b);
    					System.out.println("=	");break;
    				}
    			}
    			if(i%5==0)
    				System.out.println();
    		}
    		else
    		{
    			switch(c)
    			{
    				case(0):
    				{
    					System.out.print(x);
    					System.out.print('/');
    					System.out.print(y);
    					System.out.print('+');
    					System.out.print(p);
    					System.out.print('/');
    					System.out.print(q);
    					System.out.println("=	");break;
    				}
    				case(1):
    				{
    					if(a<b)
    					{
    						int d;
    						d = a;
    						a = b;
    						b = d;
    					}              //防止小学生不会算负数而添加的六行代码,若无需此段代码,可注释掉
    					System.out.print(x);
    					System.out.print('/');
    					System.out.print(y);
    					System.out.print('-');
    					System.out.print(p);
    					System.out.print('/');
    					System.out.print(q);
    					System.out.println("=	");break;
    				}
    				case(2):
    				{					
    					System.out.print(x);
    					System.out.print('/');
    					System.out.print(y);
    					System.out.print('*');
    					System.out.print(p);
    					System.out.print('/');
    					System.out.print(q);
    					System.out.println("=	");	break;
    				}
    				case(3):
    				{
    					while(b==0)
    						b = rand2.nextInt(100)+0; // 保证分母不为零
    					System.out.print(x);
    					System.out.print('/');
    					System.out.print(y);
    					System.out.print(' ');
    					System.out.print('/');
    					System.out.print(' ');
    					System.out.print(p);
    					System.out.print('/');
    					System.out.print(q);
    					System.out.println("=	");break;
    				}
    			}
    			if(i%5==0)
    				System.out.println();
    			
    		}
    	}
    	
    }
    

    }
    第二版改善(2016.3.15 21:54)
    //四则运算 初始版本(不管任何条件,只是生成两个数和一个符号) 出现的问题:忘记加break,随机数的表示
    //毛雯雯20143066 2016.3.10
    //进一步版本(添加循环,改善显示的结果的视觉效果(每五行换行),减数大于被减数,分母不为零,真分数的四则运算)
    import java.util.Random;
    public class CalculateOfFour_1
    {
    public static void main(String[] args)
    {
    // TODO Auto-generated method stub
    int i;
    for(i=1;i<=10000;i++)
    {
    ////////两个整数生成///////////////
    //左边的数
    int a;
    Random rand1 = new Random();
    a = rand1.nextInt(100)+0; //指0-99的数,包括0和99

    		//右边的数
    		int b;
    		Random rand2 = new Random();  
    		b = rand2.nextInt(100)+0;
    		/////////整数生成/////////////////
    		
    		////////真分数生成/////////////////
    		
    		//分子
    		int x;
    		Random rand4 = new Random();  
    		x = rand4.nextInt(100)+1;
    		
    		//分母
    		int y;
    		Random rand5 = new Random();  
    		y = rand5.nextInt(100)+1;
    		
    		if(x>y)
    		{
    			int r;
    			r = x;
    			x = y;
    			y = r;
    		}
    		if(x==1&&y==1)
    		{
    			y=y+1;
    		}
    		
    		for(int j=2;j<=x;j++)
    		{
    			if(x%j==0&&y%j==0)
    			{
    				x = x/j;
    				y = y/j;
    				j = 1;
    			}
    		
    		}
    		
    		
    		//分子
    		int p;
    		Random rand6 = new Random();  
    		p = rand6.nextInt(100)+1;
    		
    		//分母
    		int q;
    		Random rand7 = new Random();  
    		q = rand7.nextInt(100)+1;
    		
    		if(p>q)
    		{
    			int r1;
    			r1 = p;
    			p = q;
    			q = r1;
    		}
    		if(p==1&&q==1)
    		{
    			q=q+1;
    		}
    
    		for(int j=2;j<=p;j++)
    		{
    			if(p%j==0&&q%j==0)
    			{
    				p = p/j;
    				q = q/j;
    				j = 1;
    			}
    		}
    		
    		
    		////////真分数生成/////////////////
    		
    		//整数和真分数的选择
    		int t;
    		Random rand8 = new Random();  
    		t = rand8.nextInt(5);
    		
    		//符号
    		int c;
    		Random rand3 = new Random();  
    		c = rand3.nextInt(4);
    	  
    		if(t==0)
    		{
    			switch(c)
    			{
    				case(0):
    				{
    					System.out.println(a+"+"+b+"=	");break;
    				}
    				case(1):
    				{
    					if(a<b)
    					{
    						int d;
    						d = a;
    						a = b;
    						b = d;
    					}              //防止小学生不会算负数而添加的六行代码,若无需此段代码,可注释掉
    					System.out.println(a+"-"+b+"=	");
    					break;
    				}
    				case(2):
    				{					
    					System.out.println(a+"*"+b+"=	");	break;
    				}
    				case(3):
    				{
    					while(b==0)
    						b = rand2.nextInt(100)+0; // 保证分母不为零
    					System.out.println(a+"/"+b+"=	");break;
    				}
    			}
    			if(i%5==0)
    				System.out.println();
    		}
    		else
    		{
    			switch(c)
    			{
    				case(0):
    				{
    					System.out.println(x+"/"+y+"+"+p+"/"+q+"=	");
    					break;
    				}
    				case(1):
    				{
    					if(a<b)
    					{
    						int d;
    						d = a;
    						a = b;
    						b = d;
    					}              //防止小学生不会算负数而添加的六行代码,若无需此段代码,可注释掉
    					System.out.println(x+"/"+y+"-"+p+"/"+q+"=	");break;
    				}
    				case(2):
    				{					
    					System.out.println(x+"/"+y+" "+"*"+" "+p+"/"+q+"=	");break;
    				}
    				case(3):
    				{
    					while(b==0)
    						b = rand2.nextInt(100)+0; // 保证分母不为零
    					System.out.println(x+"/"+y+" "+"/"+" "+p+"/"+q+"=	");break;
    				}
    			}
    			if(i%5==0)
    				System.out.println();
    			
    		}
    	}
    	
    }
    

    }

    三:运行结果截图
    第一版的截图

    第二版的截图

    第二版改善的截图

    四:分析一下个人上课未按时完成的原因
    这里应该是要解释一下课下没有及时完成的原因了,由于自己对编程的不那么热爱和自己的各种借口,把最简单的第一版本拖延到了交作业的当天,不仅如此,打开JAVA之后,发现自己什么都不会了。不过,经过这次“都忘了”的体验,下次会及时完成作业的!而且是尽早。
    问题:第二版中,对什么时候产生整数运算和真分数运算的循环控制的不是很好。
    第二版改善中,将真分数彻底弄对了!!!!

  • 相关阅读:
    从0系统学Android-2.3使用 Intent 在 Activity 之间穿梭
    从0系统学Android-2.1Activity的使用
    从0系统学Android-1.4日志工具的使用
    从0系统学Android--1.3创建你的第一个 Android 项目
    从0系统学Android--1.2 手把手带你搭建开发环境
    从0系统学 Android--1.1认识 Android
    Android 蓝牙开发(3)——蓝牙的详细介绍
    Android 蓝牙开发(3)——蓝牙的详细介绍
    Android 蓝牙开发(2)——低功耗蓝牙
    Android 蓝牙开发(1)
  • 原文地址:https://www.cnblogs.com/justmaomao/p/5261762.html
Copyright © 2011-2022 走看看