java四则运算随机产生式

java

  • ,运算符在3个到5个之间。
  • 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
  • 文件目录与程序目录一致。

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

一、需求分析

  1. 程序接受一个输入参数n
  2. 随机产生n道四则运算题
  3. 运算数要求为:0和100之间
  4. 运算符要求为:3到5个之间
  5. 每个四则运算式中不能出现负数与小数
  6. 将最终产生的结果存储到txt文件中    

二、功能设计

  1. 程序接受一个随机数number(3=<number<=5),随机产生number运算数与运算符。
  2. 程序由接受的n确定产生的运算式数量
  3. 程序将接受的运算数与运算符随机组合产生运算式
  4. 输出结果并将其存储到result.txt文件中

三、设计实现

  1. 编写程序,接受一个数N,确定产生运算式的数量
  2. 产生随机数number(3到5之间),产生运算数与运算符
  3. 随机组合运算式与运算符,产生运算式
  4. 判断运算式是否合法,若不合法,将其进行修改
  5. 打印输出结果至result.txt文件

四、测试运行

窗口运行结果:

测试结果存储至result.txt文件中:

五、核心代码

 1        //存储运算符

2 for(int j=0;j<arr_str.length;j++) {

3 if(arr_str[j]=='+'||arr_str[j]=='-'||arr_str[j]=='*'||arr_str[j]=='/') {

4 arrString=String.valueOf(arr_str[j]);

5 arr_str[j]=',';

6 arrslist1.add(arrString);

7 }

8 }

9 //存储运算数

10 String s = new String(arr_str);

11 String[] ss = s.split(",");

12 for(int k=0;k<ss.length;k++) {

13 arrslist2.add(ss[k]);

14 }

15 //生成运算式

16 String[] arrs1 = arrslist1.toArray(new String[arrslist1.size()]);//运算符

17 String[] arrs2 = arrslist2.toArray(new String[arrslist2.size()]);//运算数

18

19 for(int m=0;m<arrs1.length;m++){

20 arrslist.add(arrs2[m]);//运算数

21 arrslist.add(arrs1[m]);//运算符

22 }

23 arrslist.add(arrs2[arrs2.length-1]);

24 String[] arrs = arrslist.toArray(new String[arrslist2.size()]);//运算式

//存储运算式

//封装目的地

public static void filewriter(ArrayList<String> arithList) throws IOException {

//封装存储位置

BufferedWriter BufferedWriterbw = new BufferedWriter(new FileWriter("result.txt"));

BufferedWriterbw.write("201571030139");

BufferedWriterbw.newLine();

for(String s : arithList){

//写数据

try {

BufferedWriterbw.write(s+"="+js.eval(s));

} catch (ScriptException e) {

e.printStackTrace();

}

BufferedWriterbw.newLine();

BufferedWriterbw.flush();

}

}

    //判断是否产生负数与小数

public static void check_arith(String arr[]){

for(int i=0;i<arr.length;i++){

//判断是否产生负数

if(arr[i].contains("-")){

if(Integer.valueOf(arr[i-1])<Integer.valueOf(arr[i+1])){

arr[i]="+";

}

}

//判断是否产生小数

if(arr[i].contains("/")){

int a = Integer.valueOf(arr[i-1]);

int b = Integer.valueOf(arr[i+1]);

int x = a%b;

if(x!=0){

arr[i]="+";

}

}

}

}

六、总结

在本次的四则运算程序的设计与编写当中,我严格按照项目设计的一般步骤,有次序的进行程序的设计与编写,比起以前的拿到题目就编写程序的方式,节省了许多时间。再就是说一下本次的程序的难点:在产生运算式后,如何去判断再运算中是否产生了负数与小数,在出现之后如何将其转变的合理。

七、展示PSP

PSP2.1

任务内容

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

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

Planning

计划

20

30

·       Estimate

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

20

30

Development

开发

131

255

··       Analysis

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

10

10

·       Design Spec

·  生成设计文档

5

10

·       Design Review

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

3

6

·       Coding Standard

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

3

4

·       Design

  具体设计

10

15

·       Coding

  具体编码

80

200

·       Code Review

·  代码复审

10

10

·       Test

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

10

10

Reporting

报告

32

52

··       Test Report

·  测试报告

20

40

·       Size Measurement

  计算工作量

2

2

·       Postmortem & Process Improvement Plan

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

10

10

  • Github地址:https://github.com/gzyt/Arithmetic

以上是 java四则运算随机产生式 的全部内容, 来源链接: utcz.com/z/394874.html

回到顶部