首页 > 其他 > 详细

20194601+自动生成四则运算题第一版报告

时间:2019-09-16 20:49:31      阅读:77      评论:0      收藏:0      [点我收藏+]

一.需求分析

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

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

  (3)题目数量可定制

  (4)相关参数可控制

            是否包含乘法和除法

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

            操作数是否含负数    

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

二、功能设计

基本功能:自动生成四则运算试题

  扩展功能:(1)算出答案

       (2)多操作数运算

       (3)用户可以自己选择用加减,乘除,正负

                       (4)用户还可选择试题数量和操作数范围

三、设计实现

我设计了一个math类,这个类里面包含了变量的定义以及赋值,判断语句和循环语句等,从而实现了此功能。

四、测试运行

(1)有乘除法,且操作数中含有负数,操作数范围在100以内,试题数量为10个,

 

技术分享图片

(2)没有乘除法,且操作数中不含负数,操作数范围在100以内,试题数量为10个,且结果在100 以内

 

技术分享图片

 

 




五、代码片段

1、部分操作控制代码

int n1, n2; // 两个操作数
  int operator; // 用于随机生成运算符
  int c; // 用于控制是否含有乘除法
  int count; // 用于控制题目数量
  int e; // 用于控制操作数中是否含有负数
  System.out.println("请输入题目的数量");
  count = reader.nextInt();
  int f; // 用于控制操作数范围
  System.out.println("请输入操作数的范围");
  f = reader.nextInt();
  System.out.println("是否含有乘除法,有乘除法请输入1");
  c = reader.nextInt();
  System.out.println("操作数中是否可以有负数,可以的话请输入1,不可以请输入0");
  e = reader.nextInt();
  if (e == 0) {     //不可以有负数
   if (c == 1) { // 有乘除法运行下面的程序
    for (int i = 1; i < count + 1; i++) {
     operator = (int) (Math.random() * 4);
     n1 = (int) (Math.random() * f);
     n2 = (int) (Math.random() * f);
     char fh;
     int result;
     if (operator == 0) {
      fh=‘+‘;
      if ((n1 + n2) > 101) {
       i--;
       continue; // 控制加法运算结果在100以内
      } else {
       result=n1 + n2;
       System.out.println(n1 + "+" + n2 + "=" + (n1 + n2));
      }
     } else if (operator == 1) {
      fh=‘-‘;
      if ((n1 - n2) < 1) {
       i--;
       continue;
      } else {
       result=n1 - n2;
       System.out.println(n1 + "-" + n2 + "=" + (n1 - n2));
      }
     } else if (operator == 2) {
      fh=‘*‘;
      if ((n1 * n2) > 500) {
       i--;
       continue;
      } else {
       result=n1 * n2;
       System.out.println(n1 + "*" + n2 + "=" + (n1 * n2));
      }
     } else if (operator == 3) {
      fh=‘/‘;
      if (n1 / n2 == 0) {
       i--;
       continue;
      } else {
       result=n1 / n2;
       System.out.println(n1 + "/" + n2 + "=" + (n1 / n2));
      }
     }
    }
   }
   else { // 没有乘除法运行下面的程序
    for (int i = 1; i < count + 1; i++) {
     operator = (int) (Math.random() * 2);
     n1 = (int) (Math.random() * f);
     n2 = (int) (Math.random() * f);
     if (operator == 0) {
      if ((n1 + n2) > 101) {
       count++;
       continue;
      } else {
       System.out.println(n1 + "+" + n2 + "=" + (n1 + n2));
      }
     } else if (operator == 1) {
      if ((n1 - n2) < 1) {
       count++;
       continue;
      } else {
       System.out.println(n1 + "-" + n2 + "=" + (n1 - n2));
      }
     }
    }
   }
  }

 

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

PrintWriter out;//定义变量
            try{
            out=new PrintWriter("e:/result.txt");//输出的路径和文件名
            }catch(FileNotFoundException e){throw new RuntimeException(e);} 
out.println("第"+(i+1)+"题:"+n1+fh+n2+"="+result);//输出算式
                out.close();    //关闭

六、psp

PSP2.1

任务内容

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

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

Planning

计划

60

90

·       Estimate

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

60

90

Development

开发

350

410

··       Analysis

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

15

20

·       Design Spec

·  生成设计文档

0

0

·       Design Review

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

0

0

·       Coding Standard

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

10

10

·       Design

  具体设计

20

35

·       Coding

  具体编码

300

340

·       Code Review

·  代码复审

10

10

·       Test

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

10

15

Reporting

报告

30

40

··       Test Report

·  测试报告

15

25

·       Size Measurement

  计算工作量

0

0

·       Postmortem & Process Improvement Plan

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

10

15

 

 

 

 

 代码编写这个环节实际所消耗的时间与估计时间相差巨大,是因为我有一些方法不会还有一些功能实现不了,比如存储到其他盘的txt中的方法我不会那我就在网上百度了大量的资料来解决这个问题。所以才造成了这么大的差距。

 

20194601+自动生成四则运算题第一版报告

原文:https://www.cnblogs.com/xiaonan988/p/11529398.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!