仓库地址:https://git.coding.net/lalala175/sizeyunsuan2.git


一、需求分析

1、输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,

2、要求每个数字在 0 和 100 之间,运算符在3个到5个之间,且每个练习题至少要包含2种运算符。

3、所出的练习题在运算过程中不得出现负数与非整数。

4、将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中。


二、功能设计

基本功能:实现用户输入参数n,产生n道四则运算,并产生结果

扩展功能:所出题目中支持带括号的运算,和真分数的运算

三、设计实现

首先先生成规定范围内的随机数,不考虑括号给出运算式,再判断运算符的优先级,加入括号,考虑括号内的运算的计算。

类:Main类:主类,接收命令行参数并启动程序。

优先级类:此类是一个带参的有返回值的类,返回值是一个int型。通过返回来的int的大小,来判断符号的优先级。

公因数类:此类是一个带参的有返回值的类,返回值是一个int型,此整数是两个数的最大公因数。通过辗转相除法计算两个数的最大公因数,为了化简分数。

四、算法详解

1、生成规定范围内的随机数字和运算符

 Random random=new Random();char op;int x=0;while(true) {int f3=0;int f4=0;if(x==n)break;//生成所要求的式子后退出循环int y2 = random.nextInt(4);if(y2!=0) {char[] fuhao=new char[]{'+','-','*','÷'};    String sh="";//定义算式int sum=0;int m=random.nextInt(3)+3;//3-5个运算符int y=random.nextInt(4);op=fuhao[y];int nu1=random.nextInt(100);//规定数字范围int nu2=random.nextInt(100);

2、整式计算方法

                 if(op=='÷') {if(nu2==0)//保证除数不为0nu2++;while(nu1 % nu2 != 0) { //保证整除nu1=random.nextInt(100);nu2=random.nextInt(99)+1;}sum=nu1/nu2;}if(op=='-') {while(nu1<nu2) {//没有负数nu1=random.nextInt(100);nu2=random.nextInt(100);}sum=nu1-nu2;}if(op=='*') {sum=nu1*nu2;}if(op=='+'){sum=nu1+nu2;                    }sh=nu1+""+op+""+nu2;

3、判断优先级

 public static int kuohao(char c){// 判断优先级if (c == '(')return 0;if (c == '+' || c == '-')return 1;if (c == '*' || c == '÷')return 2;return -1;}

五、结果展示

六、psp展示  

PSP2.1

任务内容

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

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

Planning

计划

20

30

·        Estimate

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

20

30

Development

开发

650

1230

·        Analysis

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

100

150

·        Design Spec

·         生成设计文档

10

10

·        Design Review

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

5

5

·        Coding Standard

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

5

5

·        Design

·         具体设计

10

20

·        Coding

·         具体编码

500

1000

·        Code Review

·         代码复审

10

20

·        Test

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

15

30

Reporting

报告

20

25

·         Test Report

·         测试报告

10

10

·         Size Measurement

·         计算工作量

5

10

·         Postmortem & Process Improvement Plan

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

5

5

七、不足与改进

1、首先由于自己基础不好,刚开始的时候,遇到了很多困难,很多都不懂,然后自己慢慢在网上学习,看看其他同学的代码,然后慢慢尝试模仿其他同学的代码自己在一点一点的敲,真的感觉还蛮困难的,在这其中,我借鉴了夏江华同学的代码,自己一点点的去理解,理解他的思想,看明白他的代码,明白每一步具体要干什么,然后在自己动手一点点的敲出来,感觉真的是蛮不容易的,出各种各样的错误。直到现在我还有一个问题还没解决,就是再有带括号的运算时会出现负数。

2、其次我想说的是经过了这次项目,也意识到自己存在很多的问题,感觉到自己掌握的东西实在太少了,编程能力太差了,实在太菜了,感觉把以前学习的东西都还给老师了,经过这次项目,我一定会努力学习,争取下次再做项目时,可以自己独立的写出来,自己有独立的思维,感觉把以前学习的东西都还给老师了,以后我会努力提升自己的代码能力,希望下一次我可以做得更好。

转载于:https://www.cnblogs.com/wxz0000/p/8646085.html

2016012052+小学四则运算练习软件项目报告相关推荐

  1. 2016012101小学四则运算练习软件项目报告

    2016012101小学四则运算练习软件项目报告 Coding.net源码仓库地址:https://git.coding.net/naiteu/sgwq.git 一.需求分析 1,程序可以接收一个参数 ...

  2. 小学四则运算练习软件项目报告

    小学四则运算练习软件项目报告 作业源代码地址:https://git.coding.net/weijn/SiZe.git 一.需求分析 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题. 每个 ...

  3. 2016012090+小学四则运算练习软件项目报告

    2016012090+小学四则运算练习软件项目报告 Coding.net原码仓库地址:https://git.coding.net/Ai_Code/Work.git 目录: 一.需求分析 二.功能设计 ...

  4. 201571030107 小学四则运算练习软件项目报告

    本文转载自:http://www.javaxxz.com/thread-359437-1-1.html 201571030107 小学四则运算练习软件项目报告 项目Github地址 Arithmeti ...

  5. 201571030334 小学四则运算练习软件项目报告

    小学四则运算练习软件项目报告 Github的仓库主页链接地址:https://github.com/huicunzhang/sizeyunsuan 一.需求分析: 1. 程序可接收一个输入参数n,然后 ...

  6. 2016012028+小学四则运算练习软件项目报告

    任务1源码可直接克隆的仓库地址: (HTTPS)https://git.coding.net/zhaoliguaner/Calculate.git (SSH)git@git.coding.net:zh ...

  7. 2016012007+小学四则运算练习软件项目报告

    此次作业的源码地址:https://git.coding.net/ClausKE/Calculator1.git 写在前面:这次的作业完成得不易,在跟一些同学的交流中对这次作业有了更多的理解,在咨询了 ...

  8. 2016012033 小学四则运算练习软件项目报告

    week2的作业弄到现在week3才开始着手做,所幸截止日期还有几天. Coding.net源码仓库地址:https://git.coding.net/Agustin_Leonard_DPS/Calc ...

  9. 201571030138 小学四则运算练习软件项目报告

    项目gihub地址 fateiceb 项目过程 1.需求分析 基本功能 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间. 为了让小学 ...

  10. 2016012023+小学四则运算练习软件项目报告

    零.coding链接 https://git.coding.net/hiawei/homework1.1.git 一.需求分析程序为四则运算生成器 用户为小学生 1.功能需求: 输入参数N,随机产生N ...

最新文章

  1. 【贪心】【codevs】1214 线段覆盖
  2. TX2+python+pytorch install
  3. PLSQL_案例优化系列_学会应用工具进行SQL整体优化(案例11)
  4. 基于matlab的车流量检测,求解释代码,一段交通车流量检测的代码
  5. php ues incolde,17秋东财《大学英语2》在线作业三答案
  6. 统计学习方法-李航(3)
  7. asio::io_service被废弃的问题
  8. UI_DEV_Environment 之 StoryBook
  9. 三菱gxworks3安装失败_三菱gx works3下载 Gx Works3(三菱PLC编程软件) v1.031h 中文安装版(附安装教程+序列号) 下载-脚本之家...
  10. 人生成绩单97php,2020年国际国内正赛男乒成绩单,樊振东冠军最多。
  11. 锐龙R3 3300X和R5 3500X 哪个好
  12. 写个厦门市健身徒步爬山线路的web静态页面
  13. Qt之QTableView的使用
  14. 实体类字段定义错误:java.sql.SQLSyntaxErrorException: Column ‘xxx‘ specified twice
  15. 学习笔记之Markdown(一)
  16. RISC-V:实现ADDI指令
  17. iPad自带邮箱添加网易企业邮箱
  18. 英特尔Coffee Lake曝光:主流6核 依旧14nm
  19. 最新软件工程师薪资大揭秘!你的薪资达到平均水平了吗?
  20. Tensorflow2实现人脸关键点检测算法PFLD——一个精度高,速度快,模型小的人脸关键点检测模型

热门文章

  1. 从技术角度谈一谈,我参与设计开发的手Q春节红包项目
  2. 代码很烂,所以离职?
  3. Andromeda OS 来了,Android 再见?
  4. 数据结构实践课程设计【通讯录管理系统】
  5. shell应用之习题一
  6. gson将JSON字符串转成Java对象
  7. TFS环境搭建--MSSQL2008安装
  8. MSSQL数据库管理---索引
  9. 用java实现编译器-算术表达式及其语法解析器的实现
  10. matlab学习笔记(4)