zoukankan      html  css  js  c++  java
  • 20194742自动生成四则运算题第一版报告

    一、需求分析
    为了对广大中小学生的算数进行锻炼,家长每天给孩子出题成为一个难题,需要做出一个程序,每天生成一定数量且不重复的题目,分解家长们的压力。从而有效节省学生学习效率,和节省家长的时间。

    二、功能设计
    2.1 基本功能:

        自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内------>实现
        剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式------>实现
        题目数量可定制------>实现
        相关参数可控------>实现
        1.是否包含乘法和除法
        2.操作数数值范围可控(如操作数 在100以内 还是1000以内)
        3.操作数是否含负数
        生成的运算题存储到外部文件result.txt中------->实现
    2.2 拓展功能:
        1. 自动生成答案
    

    三、设计实现

       •使用构造函数PrintStream Scanner ,PrintStream ps = new PrintStream(“d:/result.txt”); 在d盘创建result.txt文档。
    
    
       •System.setOut(ps);调用此函数,可以将所有System.out.println();输出语句,打印到创建的result.txt文档中
    
    
       •Scanner t=new Scanner(System.in); 控制从键盘输入的值
    
    
       •Math.random();产生随机不重复函数,我做了以下测试
            1.验证random会不会产生相同随机数,通过一万次运行发现没有生成一个重复的随机数。证明java不会很大概率生成相同的随机数。
              ![](https://img2018.cnblogs.com/blog/1791015/201909/1791015-20190915131915060-1594398099.png)
    

    四、测试运行

    生成基本加减法运算

    生成四则运算

    输出结果的四则运算

    五、实现代码
    1.第一个操作数的选择
    for(int i=0;i<ts;i++){ //用循环控制题目个数
    int a=(int)(Math.random()tf+1); //生成随机数赋值给a
    if(zf==0){ //zf=0有负数
    int c=(int)(Math.random()
    2);
    switch (c) { //输出带负数的随机数a
    case 0:a=a*-1;
    System.out.print(a); break;
    case 1:
    System.out.print(a); break;
    }
    }

    		if(zf==1){  // 输出不带负数的随机数a
    		    System.out.print(a);
    		}   
     2.运算符号的选择
                 System.out.println("请选择是否有乘除,“1.是”,“2否”:");	
    	int fh=sc.nextInt();
    	//控制是否生成乘除
                int f=(int)(Math.random()*2);
    		if(fh==2){  //输出“+”,“-”
    		    switch (f) {   // 随机生成运算符
    		    case 0:	System.out.print("+");break;
    		    case 1:	System.out.print("-");	break;
    			}
    3.控制是否输出结果
                        System.out.print("是否输出运算结果.1否,2是:");  
    	int jg=sc.nextInt();
    	// 选择是否输出运算结果
                	if(jg==2){	//控制是否输出结果
    				if(f==0){
    					int n=a+b;
    					System.out.println("="+n);
    					}
    				if(f==1){
    					int n=a-b;
    					System.out.println("="+n);
    					}
    					// 输出等号
    				}else{
    			System.out.println("=");	// 输出等号
    			}
    
    4.生成的运算题存储到外部文件result.txt中
                PrintStream ps = new PrintStream ("d:/result.txt");
    	System.setOut(ps);
    

    六、总结
    程序使用了for循环来控制题目个数,控制题目范围用scanner来传参和控制随机数相乘,用switch和随机数来控制产生正负数同意用随机数和switch来产生随机运算符号。
    程序设计之初计划采用面向对象编程方法。把软件分为提示菜单类,加减法类,乘除法类。生成随机数类。相互调用来实现功能。编程过程中由于调用语法的遗忘,被迫采用了一个类的方法写完了代码,这种编程方法导致代码存在大量重复,效率低。
    七、PSP

  • 相关阅读:
    Chap5:操作文件和目录[The Linux Command Line]
    ABC3
    ABC2
    ABC
    Spring MVC / Boot
    Usefull Resources
    [ Learning ] Design Pattens
    [ Learning ] Spring Resources
    URL Resources
    [ Windows BAT Script ] BAT 脚本获取windows权限
  • 原文地址:https://www.cnblogs.com/zyyzy/p/11520261.html
Copyright © 2011-2022 走看看