代码链接: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. H2O.ai初步使用

    1.官网下载最新稳定版,https://www.h2o.ai/download/ ,如果点击下载无反应,请使用ie浏览器 2.解压h2o-3.18.0.10.zip到目录h2o-3.18.0.10 3 ...

  2. Intro to Python for Data Science Learning 5 - Packages

    Packages From:https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-3-functio ...

  3. ACM竞赛之输入输出(以C与C++为例)

    本文转自互联网,内容.排版有修正. 欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju G ...

  4. Linux中Postfix基于SSL收发邮件(九)

    其中在整个一套邮件服务器中,默认信息传输都是明文传输的,所以这个在安全性上面就不是那么好.但是如果说一封邮件从发生到对方接受想要全程做到加密处理这个也是很难的.因为一封邮件从一个域转到另外一个域服务器 ...

  5. Nginx能做什么

    本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得.所以还请见谅,同时欢迎留言交流. Ngi ...

  6. js将时间戳转化为日期格式

    function getLocalTime(nS) {        var date = new Date(nS);        var Y = date.getFullYear() + '-'; ...

  7. Tomcat8.5 升级tomcat版本导致出现异常,Base64不存在

    Tomcat8.5 升级tomcat版本导致出现异常,Base64不存在 原因分析: 由于tomcat由7升级到8.5导致Base64的引用路径错误,默认引用为8.5中的jar, 解决方案: 修改引用 ...

  8. SYSBIOS学习笔记---线程(Threads)

    在SYS/BIOS中,广义上指被处理器执行的任何独立的指令流.线程是一个能够调用一个函数或者中断服务程序的单点控制.在sysbios系统中一共有硬件中断(HWI).软件中断(SWI).任务(Task) ...

  9. Asterisk1.8 sip编码协商分析

    在开始分析之前,先对编码协商中可能涉及的asterisk数据结构和变量作些说明.ast_channel:定义一个通用的通道数据结构 struct ast_channel { const struct ...

  10. git分支 远程协作

    创建文件mkdir ### cd ### git init 初始化 git config global user.name “username” git config global user.emia ...