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语法结构等知识方面都严重匮乏。另一方面还是对于软件工程这门课理解有偏差。不过在同学的帮助下以及自己查找资料下完成了作业。

  • 相关阅读:
    SDK Hello world(直接使用SDK封装)
    一个类有多个基类的内存布局
    写个测试程序看看磁盘映像文件中哪个扇区可以使用?
    在服务中以当前用户身份启动一个程序
    在类有成员变量的场景下, 按照虚表原理, 模拟虚函数实现
    pipe----管道
    Qt序列化格式分析(qint,QString)(非常简单好用)
    模拟QQ系统设置面板实现功能
    Qt持久性对象进行序列化(同时比较了MFC与Java的方法)
    使用srvany.exe将任何程序作为Windows服务运行
  • 原文地址:https://www.cnblogs.com/912760869-qq/p/11515134.html
Copyright © 2011-2022 走看看