项目代码:

https://git.coding.net/YJh_/11.git

题目要求:

  1. 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:/ + / = /
  2. 运算符为 +, −, ×, ÷
  3. 并且要求能处理用户的输入,并判断对错,打分统计正确率。
  4. 要求能处理用户输入的真分数, /, /
  5. 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
  6. Myapp.exe -n

程序设计:

  主要功能:

  1. 真分数的四则运算
  2. 按照用户输入的题数出题
  3. 能得出用户的正确率

  设计的主要函数以及属性:

  主要算法代码:

  1. public static int commonDivisor(int x, int y) // 计算2个数的最大公约数。按绝对值计算。
  2. {
  3. if (x == 0 || y == 0) {
  4. return 1;
  5. }
  6. int x1;
  7. int y1;
  8.  
  9. x1 = (Math.abs(x) > Math.abs(y)) ? Math.abs(x) : Math.abs(y); // 使x1>y1.
  10. y1 = (Math.abs(x) > Math.abs(y)) ? Math.abs(y) : Math.abs(x);
  11. int z = 1;
  12. while (z != 0) {
  13. z = x1 % y1;
  14. x1 = y1;
  15. y1 = z;
  16. }
  17. return x1;
  18. }

  主要四则运算方法:

  1. Calculator add(Calculator r) { // 加法运算
  2. int a = r.getNumerator();
  3. int b = r.getDenominator();
  4. int newNumerator = numerator * b + denominator * a;
  5. int newDenominator = denominator * b;
  6.  
  7. int maxCommon = commonDivisor(newNumerator, newDenominator);
  8. Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
  9. return result;
  10. }
  11.  
  12. Calculator sub(Calculator r) { // 减法运算
  13. int a = r.getNumerator();
  14. int b = r.getDenominator();
  15. int newNumerator = numerator * b - denominator * a;
  16. int newDenominator = denominator * b;
  17.  
  18. int maxCommon = commonDivisor(newNumerator, newDenominator);
  19. Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
  20. return result;
  21. }
  22.  
  23. Calculator muti(Calculator r) { // 乘法运算
  24. int a = r.getNumerator();
  25. int b = r.getDenominator();
  26. int newNumerator = numerator * a;
  27. int newDenominator = denominator * b;
  28.  
  29. int maxCommon = commonDivisor(newNumerator, newDenominator);
  30. Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
  31. return result;
  32. }
  33.  
  34. Calculator div(Calculator r) { // 除法运算
  35. int a = r.getNumerator();
  36. int b = r.getDenominator();
  37. int newNumerator = numerator * b;
  38. int newDenominator = denominator * a;
  39.  
  40. int maxCommon = commonDivisor(newNumerator, newDenominator);
  41. Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
  42. return result;
  43. }

程序测试:

项目总结:

   由于java学得并不好,重新回去看了java笔记学习,也上网查了一些资料,包括如何提交代码到码市,装egit的时候,因为下载的eclipse是中文版的,都不大懂,安装了一直出差错,所以前前后后花费了挺多的时间了,请教了班级里的一些比较厉害的同学,做出了这个程序。从中深刻了解到,平时要多多实践,熟能生巧。纸上得来终觉浅,绝知此事要躬行。

PSP表格

PSP2.1 Personal Software Process Stages Time (%) Senior Student Time (%)
Planning 计划 8 15
· Estimate 估计这个任务需要多少时间 8 15
Development 开发 20 15
· Analysis 需求分析 (包括学习新技术) 1 1
· Design Spec 生成设计文档 1 1
· Design Review 设计复审 0 0
· Coding Standard 代码规范 10 7
· Design 具体设计 8 9
· Coding 具体编码 6 6
· Code Review 代码复审 1 1
· Test 测试(自我测试,修改代码,提交修改) 3 3
Reporting 报告 10 10
·Test Report 测试报告 8 7
· Size Measurement 计算工作量 2 2
·Postmortem & Process Improvement Plan 并提出过程改进计划 0 0

个人作业1——四则运算题目生成程序(基于java)的更多相关文章

  1. 个人作业1——四则运算题目生成程序(java代码,基于控制台)

    一.题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: ...

  2. 个人作业1——四则运算题目生成程序(基于C++)

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 1 ...

  3. 小学生四则运算出题软件-基于java控制台的实现

    .题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...

  4. 【2015 软件工程 个人项目 PJ1】四则运算题目生成程序

    1.开发时间预估 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 2day Dev ...

  5. 高级软件工程2017第3次作业——结对项目:四则运算题目生成程序(基于GUI)

    Deadline:2017-10-11(周三)21:00pm (注:以下内容参考集大作业 ) 前言 想过和别人一起探索世界吗?多么希望,遇到困难时,有人能一起探讨:想要懈怠时,有人推你一把:当你专注于 ...

  6. 四则运算题目生成程序(基于控制台)(Bug修改)

    针对上个程序中出现的bug进行修改 https://git.coding.net/cx873230936/calculator.git Bug: 1.控制台输入问题数问题 a.不能处理用户输入负数. ...

  7. 结对项目:四则运算题目生成器(Java)

    目录 一.需求分析 二.开发计划 三.实现方案 3.1 项目结构 3.2 代码说明 3.2.1 出题功能代码 3.2.3 批卷功能代码 3.2.3 四则运算功能代码 四.效能分析 4.1 程序效能 4 ...

  8. 1st 四则运算题目生成程序

    程序代码见此 程序展示 需求分析 需要程序能根据用户指定生成四则运算的题目,并且能让用户做题,并且最后打分统计正确率 功能设计 主要实现的功能就是: 接受用户输入以便知道要出多少道题目(-n x) 能 ...

  9. 四则运算题目生成(python版)

    四则运算题目生成-基于控制台 项目托管在码云:飞机票 需求分析 根据控制台提示信息,输入题目生成相关配置参数 题目生成数量 数字范围 式子中是否有分数 .... 程序支持 10000 题目生成 题目与 ...

随机推荐

  1. Presto0.157版本单节点部署教程

    因为Presto版本的更新速度较快,所以最好按照对应版本的教程进行部署,博主之前看错了版本号,拿0.100版本的教程来部署0.157版本,结果导致部署失败. 官网:https://prestodb.i ...

  2. Windows下WebStorm使用SVN(转)

    安装了WebStorm之后,想配置svn,结果在file->settings->Version Contorl->subversion->with conmand line c ...

  3. 关于他们回答的 "怎样在桌面建一个python GUI的快捷方式" 这个问题

    在之前的2个随笔里面,有写过<找到可以解决问题的正确的人>.<如何提问>,说白了就是您需要帮助的时候,您得让对方100%懂你,否则没戏. 那么最近看到这样1个古老的问题,和一些 ...

  4. 【性能测试工具】- Siege

    优点:比http_load好用,因为相同的url.txt文件在httpload不好使,所以在易用性上httpload不如siege,仍需进一步调研. 缺点:安装过程中,不能自动创建siege.log文 ...

  5. 曲线点抽稀算法-Python实现

    何为抽稀 在处理矢量化数据时,记录中往往会有很多重复数据,对进一步数据处理带来诸多不便.多余的数据一方面浪费了较多的存储空间,另一方面造成所要表达的图形不光滑或不符合标准.因此要通过某种规则,在保证矢 ...

  6. 为shell布置陷阱:trap捕捉信号方法论

    本文目录: 1.1 信号说明 1.2 trap布置陷阱 1.3 布置完美陷阱必备知识 家里有老鼠,快消灭它!哎,又给跑了.老鼠这小东西跑那么快,想直接直接消灭它还真不那么容易.于是,老鼠药.老鼠夹子或 ...

  7. ASP.NET Core MVC – Tag Helper 组件

    ASP.NET Core Tag Helpers系列目录,这是第五篇,共五篇: ASP.NET Core MVC – Tag Helpers 介绍 ASP.NET Core MVC – Caching ...

  8. 残差网络resnet学习

    Deep Residual Learning for Image Recognition 微软亚洲研究院的何凯明等人 论文地址 https://arxiv.org/pdf/1512.03385v1.p ...

  9. hr用法

    定义和用法 <hr> 标签在 HTML 页面中创建一条水平线. 水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分. HTML 与 XHTML 之间的差异 在 H ...

  10. Tornado框架简介(二)

    --------------------Application-------------------- 1.settings     1.debug=True:,设置tornado是否工作在调试模式, ...