代码链接:https://github.com/devilwjy/Code.Demo

需求分析:

1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。

2.每个练习题至少要包含2种运算符。

3.练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。

4.练习题生成好后,将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。

当程序接收的参数为4时,以下为输出文件示例:

功能设计:

1.从键盘输入一个数值,并生成相应数量的四则运算练习题。

2.数值的范围为1到100,运算符的范围是+,-,*,/。

3.数值的个数为3个,运算符的个数为2个。

4.运算过程中不得出现负数与非整数。

5.将学号、生成的四则运算练习题并及计算答案输出到名为“Result.txt”的文档中。

设计实现:

     

测试运行:

   

核心代码:

以第一个运算符为“/”为例

 //第一个运算符为“/”
else{
if(data1%data2==0 && data2!=0)//判断data1能否被data2整除,且除数data2不能为0
{
if(operator[num2]=="+")//乘除的优先级高于加减,所以可以顺着往下计算
{
result=data1/data2+data3;
System.out.println(str+"="+result); }
else if(operator[num2]=="-")
{
if(data1/data2>=data3)//判断data1/data2的商是否大于data3
{
result=data1/data2-data3;
System.out.println(str+"="+result); }
else{
number++;//不符合条件就将表达式的个数加1,进行下一个表达式的计算
}
}
else if(operator[num2]=="*")
{
result=data1/data2*data3;
System.out.println(str+"="+result); }
else{
int result1=data1/data2;
if(result1%data3==0 && data3!=0)//判断data1/data2的商能否整除data3,且data3不能为0
{
result=data1/data2/data3;
System.out.println(str+"="+result); }
else{
number++;
}
}
}
else{
number++;
}
}

总结:

本次实验我的实现过程很简单,而且有很大的局限性,只能生成含有三个数、两个运算符的四则运算练习题。一开始我的想法是将随机生成的四则运算放在一个字符串里,根据逆波兰式运算,将中缀表达式转换成后缀表达式,然后存储在栈中,但是最后没能成功,只好用一种极为简单的方式实现这个实验。说来有些惭愧,有点投机取巧之嫌,不过我的编程能力很差,纵然仔细研究了网上博客中的代码,还是写不出想要实现的方法。虽然很遗憾,但我也只能做到这儿了,不能说问心无愧,只能表明以前用的功太少了,以后回尽力改正,养成良好的习惯。

PSP

任务内容

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

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

Planning

计划

10

12

Estimite

估计任务所需时间,并规划大致工作步骤

10

15

Development

开发

100

120

Analysis

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

8

6

Design Spec

生成设计文档

6

5

Design Review

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

6

5

Coding Standard

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

5

5

Design

具体设计

12

14

Coding

具体编码

40

46

Code Review

代码复审

12

15

Test

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

15

12

Reporting

报告

12

10

Test Report

测试报告

5

5

Size Measurement

计算工作量

3

3

Postmortem & Process Improvement Plan

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

5

8

用Java随机生成四则运算的更多相关文章

  1. Java随机生成定长纯数字或数字字母混合数

    (转)Java随机生成定长纯数字或数字字母混合数 运行效果图: 具体实现代码

  2. 基于c编写的关于随机生成四则运算的小程序

    基于http://www.cnblogs.com/HAOZHE/p/5276763.html改编写的关于随机生成四则运算的小程序 github源码和工程文件地址:https://github.com/ ...

  3. 结对作业——随机生成四则运算(Core 第7组)

    结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...

  4. java 随机生成4位随机数

    java 随机生成4位的随机数测试类 @org.junit.Testpublic void testRandom(){ String msg="您的注册码为%s,谢谢注册!"; S ...

  5. Java随机生成18位身份证号

    package com.ihome.data; import java.text.SimpleDateFormat; import java.util.Calendar; import java.ut ...

  6. java随机生成字符串并排序

    package com.Imooc; import java.util.ArrayList; import java.util.Collections; import java.util.List; ...

  7. Java 随机生成中文姓名,手机号,邮编,住址

    package lovo; import java.util.HashMap; import java.util.Map; /** * 随机生成中文姓名,性别,Email,手机号,住址 * @auth ...

  8. java随机生成字符串(字符随机生成类 生成随机字符组合)

    原文:http://www.jb51.net/article/45006.htm package p2p_web; import java.util.ArrayList; import java.ut ...

  9. java随机生成字符串工具类

    package aA; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; /** * 字符随机 ...

随机推荐

  1. oracle怎么恢复被覆盖的存储过程

    在oracle数据库中,如果覆盖了之前的存储过程,那得赶紧闪回,时长越长闪回的可能性越小. 原理很简单,存储过程的定义就是数据字典,修改数据字典跟修改普通表的数据没有区别,此时会把修改前的内容放到un ...

  2. testng入门教程7 TestNG组测试

    在TestNG中组测试是一个新的创新功能,它不存在于JUnit框架,它允许调度到适当的部分方法和瓶坯复杂的测试方法分组.您不仅可以声明属于群体的那些方法,但你也可以指定一组包含其他组.然后,TestN ...

  3. .NET MVC model数据验证

    MVC提供了很方便的数据验证,只需要在model里加入相关的正则等,那么就会在前台里生成相关的验证脚本.需要引用两个js文件: jquery.validate.min.js jquery.valida ...

  4. python 安装 Scrapy 模块

    环境的安装总是让人多愁善感,爱恨交叉... 本人安装环境:win7 64 + python2.7 先来几个网站 https://doc.scrapy.org/en/latest/intro/insta ...

  5. 做报表需要知道的基本的SQL语句

    为客户做报表需要操作数据库,基本的SQL是必须要掌握的,下面介绍做报表最常用的SQL语句.   方法/步骤   1 查询数据:编号表示查询顺序. (8) select (9) distinct (11 ...

  6. 下载mysql的源码包

  7. Java(1-15)

    1.方法参数是引用类型,传递的是内存地址!2.方法的重载特性:在同一个类中,允许方法同名,只要方法的参数列表不同即可!3.Stirng特殊在如果静态数据区中存在,那么不创建新的对象,而是指向这个对象. ...

  8. python 采坑总结 调用键盘事件后导致键盘失灵的可能原因

    在练习python封装键盘事件的时候,实现一个keyDown和keyUp的功能: @staticmethod    def keyDown(keyName):        #按下按键        ...

  9. 20145332卢鑫 WEB基础

    20145332卢鑫 WEB基础 实验过程 1.环境配置 2.简单的网页编写 3.javascript相关 1.相关概念:JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML ...

  10. 基于Android应用《玩转英语》(总报告)

                                                                         基于Android应用<玩转英语>   摘  要 ...