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

    一.需求分析

    (1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /)

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

    (3)题目数量可定制

    (4)相关参数可控制

             是否包含乘法和除法

             操作数数值范围可控(如操作数 在100以内   还是1000以内)

             操作数是否含负数    

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

    二.程序设计

    主要流程图:

    四则运算Calculator类:

    三.功能设计

        基本功能

    (1)自动生成小学生的四则运算,需要用随机数生成数字

           1.先实现随机数相加    

            r1[i]=(int)(number3+Math.random()*(number4-number3));
            r2[i]=(int)(number3+Math.random()*(number4-number3));   

            S1[i]=(r1[i]+r2[i]);

          2.然后生成随机运算符

             建立了一个数组r3,将运算符存储在数组r3中

             static String[] r3={"+","-","*","/"};

          3.能够确保生成符号加减乘除计算

         扩展功能

    (1)自动生成100以内四则运算

    (2)相关参数可以控制

    (3)操作数数值范围可控制

        是否包括负数

        是否包括乘法或者除法

    (4)生成的运算题存储到外部

       

     四.代码片段

    1.选择所需要的功能

    while(true)
            {
                Scanner scan1=new Scanner(System.in);
                System.out.println("请输入四则运算的选项:1:整数计算  2:退出");
                //System.out.println("");
                //使用choose来存储从键盘输入的数据
                int choose=scan1.nextInt();
                if(choose==1)
                {
                    System.out.println("功能1:请输入定制数量:");
                    Scanner scan2=new Scanner(System.in);
                    int number=scan2.nextInt();
                    
                    //是否有乘除法
                    System.out.println("功能2:是否有乘除:0.否  1.是");
                    int number2=scan2.nextInt();
                    
                    //输入数值范围
                    System.out.println("功能3:输入数值范围:");
                    System.out.println("请输入上界:");
                    int number3=scan2.nextInt();
                    
                    System.out.println("请输入下界:");
                    int number4=scan2.nextInt();
                    
                    //加减有无负数 
                    System.out.println("功能4:加减有无负数:0.否  1.是");
                    int number5=scan2.nextInt();
                    
                    //除法有无余数
                    System.out.println("功能5:除法有无余数:0.否  1.是");
                    int number6=scan2.nextInt();
    }
    }

    2.显示结果

     System.out.println("是否输出定制结果?(1.输出    其他: 不输出)");
                    Scanner scan3=new Scanner(System.in);
                    int judge1=scan3.nextInt();
                    if(judge1==1)
                    {
                        for(int i=0;i<number;i++)
                        {
                            System.out.println("第"+(i+1)+"个算式的结果为:"+S1[i]);
                        }
                    }
                

    3.退出答题系统

    if(choose==2)
                {
                 System.out.println("您已退出自动出题系统");
                 System.exit(0);
                 }    

    4.将结果保存在result.txt文件中

     PrintStream as=new PrintStream("d:/result.txt");
    //设置并初始化流对象,设置将要输入的文件目录和文件格式
      System.setOut(as);
    //将流对象中数据输出文件中

    五.总结

    设计四则运算算法,在运行无误后,根据客户需求逐一增加代码功能,每增加一步进行测试,测试无误后,写下一个功能。

    六.PSP

    PSP2.1

    任务内容

    计划共完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    10

    20

    ·       Estimate

    ·  估计这个任务需要多少时间,并规划大致工作步骤

    10

    20

    Development

    开发

    820

    1020

    ··       Analysis

      需求分析 (包括学习新技术)

    60

    120

    ·       Design Spec

    ·  生成设计文档

    0

    0

    ·       Design Review

    ·  设计复审 (和同事审核设计文档)

    0

    0

    ·       Coding Standard

      代码规范 (为目前的开发制定合适的规范)

    5

    10

    ·       Design

      具体设计

    10

    10

    ·       Coding

      具体编码

    625

    720

    ·       Code Review

    ·  代码复审

    60

    80

    ·       Test

    ·  测试(自我测试,修改代码,提交修改)

    60

    80

    Reporting

    报告

    20

    120

    ··       Test Report

    ·  测试报告

    0

    0

    ·       Size Measurement

      计算工作量

    0

    0

    ·       Postmortem & Process Improvement Plan

    ·  事后总结 ,并提出过程改进计划

    20

    120

    七.分析

    在本次实验中,主要在代码完成、调试中花了很多时间。我感觉一方面由于跨专业没有接触过编程语言,对于Java语法结构等知识方面都严重匮乏。另一方面还是对于软件工程这门课理解有偏差。不过在同学的帮助下以及自己查找资料下完成了作业。

  • 相关阅读:
    hdu1238 Substrings
    CCF试题:高速公路(Targin)
    hdu 1269 迷宫城堡(Targin算法)
    hdu 1253 胜利大逃亡
    NYOJ 55 懒省事的小明
    HDU 1024 Max Sum Plus Plus
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1257 最少拦截系统
    HDU 1069 Monkey and Banana
    HDU 1104 Remainder
  • 原文地址:https://www.cnblogs.com/912760869-qq/p/11515134.html
Copyright © 2011-2022 走看看