• 20194613 自动生成四则运算第一版报告


    一、需求分析

    随机生成指定数目四则运算,减轻出题负担

    二、功能设计

    基本功能:

    自动生成可定制道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内

    扩展功能:

    1)题目数量可定制;

    2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式

    3)相关参数可控制:
    是否包含乘法和除法;
    操作数数值范围可控(如操作数 在100以内 还是1000以内);
    操作数是否含负数。    

    4)生成的运算题存储到外部文件result.txt中。

    三、设计实现

    用java语言完成设计实现

    四、测试运行

    1.可定制题目数量,包含乘除,包含正负,结果在100以内

    2.可定制题目数量,不含乘除,包含正负,结果在100以内

    3.可定制题目数量,不含乘除,不含正负,结果在100以内

    4.可定制题目数量,包含乘除,不含正负,结果在100以内

    5.剔除重复题目,因想要测试到底能不能剔除重复项,故意写小了出题范围和出题数目,且若出现重复项,将其显示到result.txt文件中,并显示剔除后的新题(本应隐藏这步,但为了观察与实现功能并未隐藏)

    五、代码片段

    1、是否包含负数

    for(i=0;i<n;i++){ //题目数量可定制 
    			if(f==0){   //f等于0时,不出带负号的四则运算
    			          a=(int) (Math.random()*z);
    			          b=(int)(Math.random()*z);
    			          r = b+"";
    			}else if(f==1) {  //随机出带负号的四则运算
    				     a=(int)(Math.random()*z*(Math.random()>0.5?1:-1));
    				      b=(int)(Math.random()*z*(Math.random()>0.5?1:-1));
    				      if(b<0){
    				          r = "(" + b + ")";//如果b为负数,加括号
    			            }else{
    			                r = b+"";
    			            }
    			}
    
    

    2、是否包含乘除法

    switch(g){           
             case 1:  try {
    		   bw.write("第"+(i+1)+"题:"+a+""+j+""+r+"="+sum+"");
    		   bw.newLine();//换行
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    					}  
    			                   break;
               case 0:
                	             i--;
                                 continue;            
                }
    
    

    3、剔除重复项

     char j = 0;
    	int[] a1 = new int[100];
            char[] a2= new char[100];
            int[]  a3 = new int[100];
    
             a1[i]=a;//算式第一个操作数赋值给数组a1
             a2[i]=j;//算式操作符赋给数组a2
             a3[i]=b;//算式第二个操作数赋给数组a3
                 int pd= 0; //判断重复
             for(int h=i;h>0&&h<5;h--){//从当前位置向前遍历数组元素        
                 if(a1[i]==a1[h-1]){//比较算式第一个数是否重复
                     if(a2[i]==a2[h-1]){//比较操作符是否重复
                         if(a3[i]==a3[h-1]){//比较算式第二个数是否重复
                             pd=1;//重复pd赋值为1  
                         }
                         if(pd==1){
                        	 try {
    							bw.write(""+(a1[i])+""+(a2[i])+""+(a3[i])+"="+sum+"出现重复需剔除");
    							bw.newLine();
    							bw.write("剔除后的新题");
    							bw.newLine();
    							i--;
    							continue;
    							
    						} catch (IOException e) {
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
                         }                 
                     }
    }
    
    

    3、生成的运算题存储到外部文件result.txt中代码块

    Writer fw = null;
    			try {
    				fw = new FileWriter("d:\result.txt"); //输出的路径和文件名
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    	   BufferedWriter bw=new BufferedWriter(fw);//写入文件
                bw.write("第"+(i+1)+"题:"+a+""+j+""+r+"="+sum+""); //输出算式
    	    bw.newLine();      //换行
    
                 try {
    			System.out.println("出题成功,请移至result.txt查看题目");
    			bw.close();      //关闭
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    

    六、总结

    自己写的代码 功能虽能保证实现 但耗时长 并且有些繁琐,不精简 希望在后续学习中能过提升自己的专业技能。

    七、psp

    ||||||||||||||
    |:--|:--|:--|:--|
    |psp2.1|任务内容|计划共完成需要的时间(min)|实际完成需要的时间(min)|
    |Planning|计划|10|20|
    |· Estimate|估计这个任务需要多少时间,并规划大致工作步骤|60|60|
    |Development|开发|120|240|
    |·· Analysis| 需求分析 (包括学习新技术)|10|30|
    |· Design Spec| · 生成设计文档|10|20|
    |· Coding Standard| · 代码规范 (为目前的开发制定合适的规范)|10|20|
    |·Coding| · 具体编码|120|200|
    |·Code Review| · 代码复审|10|30|
    |·Test| · · 测试(自我测试,修改代码,提交修改)|10|20|
    |·Reporting| · · 报告|10|30|
    |· Test Report| · · 测试报告|10|10|
    |· Size Measurement| · · 计算工作量|10|10|
    |· Postmortem & Process Improvement Plan| · · 事后总结 ,并提出过程改进计划|10|10|

  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
    记一次odoo创建新的模块时,但是在odoo web界面找不到应用的案例
    python实现格式化输出9*9乘法表
    format和urlencode的使用对比
    python字典小知识
    01
    深浅拷贝再回顾
    DRF的路由生成类的使用
  • 原文地址:https://www.cnblogs.com/lzcl/p/11509343.html
Copyright © 2020-2023  润新知