java编写四则运算

Posted on 2018-03-20 23:09  能怎样i  阅读(628)  评论(1编辑  收藏  举报

 

 

GitHub项目地址:https://github.com/TUOZF/test.git

一、需求分析

  • 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
  • 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
  • 练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt中,不要输出额外信息,文件目录与程序目录一致。
  • 当程序接收的参数为4时,以下为输出文件示例。

 

二、功能分析

  • 输入需要产生的题目个数。
  •  随机生成一个包含2~4个数字号的表达式。
  • 屏幕依次显示产生的题目以及计算结果。
  • 最后将运算表达式和计算结果写入result.txt文件。

三、设计实现

 

 

 

四、测试运行

输入5时运行结果如图所示:

 

 

 

 

 五、核心代码

if(cz.equals("/"))   //判断是否为除号,如果是除号,调用div函数,知道可以整除
      b=div(a,b);
try
{ 
      if(s==0)     //s=0时随机产生两位的运算式
{
  System.out.print(a+cz+b+"=");
  se.eval("var a="+a+";var b="+b+";print((a"+cz+"b));");    //调用js中的eval函数
  as=String.valueOf(a)+String.valueOf(cz)+String.valueOf(b);
  Expression.add(as);   //将表达式存入数组
}
  if(s==1)   //s=1时随机产生三位数的运算式
{
  System.out.print(a+cz+b+cz1+c+"="); 
  se.eval("var a="+a+";var b="+b+";var c="+c+";print((a"+cz+"b"+cz1+"c));");
  as=String.valueOf(a)+String.valueOf(cz)+String.valueOf(b)+String.valueOf(cz1)+String.valueOf(c);
  Expression.add(as);
}
if(s==2)    //s=2时随机产生四位数的运算式

{
  System.out.print(a+cz+b+cz1+c+cz2+d+"="); 
  se.eval("var a="+a+";var b="+b+";var c="+c+";var d="+d+";print((a"+cz+"b"+cz1+"c"+cz2+"d));");
  as=String.valueOf(a)+String.valueOf(cz)+String.valueOf(b)+String.valueOf(cz1)+String.valueOf(c)+String.valueOf(cz2)+String.valueOf(d);
  Expression.add(as);
}

 

 六、总结

  大二学习过java之后就再也没用java写过程序,很多东西都忘了,突然要用java写程序,感觉很吃力,再加上这程序确实有点难,起码对于我来说,很难,要产生随机式,还要保证能够整除,结果不能为负,这些问题看起来很简单,但实际写起来真的很难。经过几天网上搜索资料,参考同学的项目,只能说很侥幸的完成了这次项目,但部分功能并没有实现,例如结果不能为负。在整个写程序的过程中,最吃力的就是计算结果这一块了,不过经过几天的努力,总算写出来了,而且也从中学习到了很多知识。

  总的来说,虽然部分功能没能实现,但总体上来说还是可以的!

七、生成PSP

PSP2.1

任务内容

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

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

Planning

计划

10

15

Estimate

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

8

15

Development

开发

180

250

Analysis

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

10

12

Design Spec

 生成设计文档

5

6

Design Review

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

5

6

Coding Standard

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

12

25

Design

  具体设计

25

35

Coding

  具体编码

120

200

Code Review

 代码复审

14

20

Test

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

12

21

Reporting

报告

5

10

Test Report

 测试报告

4

5

Size Measurement

  计算工作量

5

7

Postmortem & Process Improvement Plan

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

5

5