个人作业1——四则运算题目生成程序(基于java)
项目代码:
https://git.coding.net/YJh_/11.git
题目要求:
- 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:/ + / = /
- 运算符为 +, −, ×, ÷
- 并且要求能处理用户的输入,并判断对错,打分统计正确率。
- 要求能处理用户输入的真分数, 如 /, / 等
- 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
- Myapp.exe -n
程序设计:
主要功能:
- 真分数的四则运算
- 按照用户输入的题数出题
- 能得出用户的正确率
设计的主要函数以及属性:
主要算法代码:
- public static int commonDivisor(int x, int y) // 计算2个数的最大公约数。按绝对值计算。
- {
- if (x == 0 || y == 0) {
- return 1;
- }
- int x1;
- int y1;
- x1 = (Math.abs(x) > Math.abs(y)) ? Math.abs(x) : Math.abs(y); // 使x1>y1.
- y1 = (Math.abs(x) > Math.abs(y)) ? Math.abs(y) : Math.abs(x);
- int z = 1;
- while (z != 0) {
- z = x1 % y1;
- x1 = y1;
- y1 = z;
- }
- return x1;
- }
主要四则运算方法:
- Calculator add(Calculator r) { // 加法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * b + denominator * a;
- int newDenominator = denominator * b;
- int maxCommon = commonDivisor(newNumerator, newDenominator);
- Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
- return result;
- }
- Calculator sub(Calculator r) { // 减法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * b - denominator * a;
- int newDenominator = denominator * b;
- int maxCommon = commonDivisor(newNumerator, newDenominator);
- Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
- return result;
- }
- Calculator muti(Calculator r) { // 乘法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * a;
- int newDenominator = denominator * b;
- int maxCommon = commonDivisor(newNumerator, newDenominator);
- Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
- return result;
- }
- Calculator div(Calculator r) { // 除法运算
- int a = r.getNumerator();
- int b = r.getDenominator();
- int newNumerator = numerator * b;
- int newDenominator = denominator * a;
- int maxCommon = commonDivisor(newNumerator, newDenominator);
- Calculator result = new Calculator(newNumerator/ maxCommon, newDenominator/ maxCommon);
- return result;
- }
程序测试:
项目总结:
由于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——四则运算题目生成程序(java代码,基于控制台)
一.题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: ...
- 个人作业1——四则运算题目生成程序(基于C++)
题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 1 ...
- 小学生四则运算出题软件-基于java控制台的实现
.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...
- 【2015 软件工程 个人项目 PJ1】四则运算题目生成程序
1.开发时间预估 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 2day Dev ...
- 高级软件工程2017第3次作业——结对项目:四则运算题目生成程序(基于GUI)
Deadline:2017-10-11(周三)21:00pm (注:以下内容参考集大作业 ) 前言 想过和别人一起探索世界吗?多么希望,遇到困难时,有人能一起探讨:想要懈怠时,有人推你一把:当你专注于 ...
- 四则运算题目生成程序(基于控制台)(Bug修改)
针对上个程序中出现的bug进行修改 https://git.coding.net/cx873230936/calculator.git Bug: 1.控制台输入问题数问题 a.不能处理用户输入负数. ...
- 结对项目:四则运算题目生成器(Java)
目录 一.需求分析 二.开发计划 三.实现方案 3.1 项目结构 3.2 代码说明 3.2.1 出题功能代码 3.2.3 批卷功能代码 3.2.3 四则运算功能代码 四.效能分析 4.1 程序效能 4 ...
- 1st 四则运算题目生成程序
程序代码见此 程序展示 需求分析 需要程序能根据用户指定生成四则运算的题目,并且能让用户做题,并且最后打分统计正确率 功能设计 主要实现的功能就是: 接受用户输入以便知道要出多少道题目(-n x) 能 ...
- 四则运算题目生成(python版)
四则运算题目生成-基于控制台 项目托管在码云:飞机票 需求分析 根据控制台提示信息,输入题目生成相关配置参数 题目生成数量 数字范围 式子中是否有分数 .... 程序支持 10000 题目生成 题目与 ...
随机推荐
- Presto0.157版本单节点部署教程
因为Presto版本的更新速度较快,所以最好按照对应版本的教程进行部署,博主之前看错了版本号,拿0.100版本的教程来部署0.157版本,结果导致部署失败. 官网:https://prestodb.i ...
- Windows下WebStorm使用SVN(转)
安装了WebStorm之后,想配置svn,结果在file->settings->Version Contorl->subversion->with conmand line c ...
- 关于他们回答的 "怎样在桌面建一个python GUI的快捷方式" 这个问题
在之前的2个随笔里面,有写过<找到可以解决问题的正确的人>.<如何提问>,说白了就是您需要帮助的时候,您得让对方100%懂你,否则没戏. 那么最近看到这样1个古老的问题,和一些 ...
- 【性能测试工具】- Siege
优点:比http_load好用,因为相同的url.txt文件在httpload不好使,所以在易用性上httpload不如siege,仍需进一步调研. 缺点:安装过程中,不能自动创建siege.log文 ...
- 曲线点抽稀算法-Python实现
何为抽稀 在处理矢量化数据时,记录中往往会有很多重复数据,对进一步数据处理带来诸多不便.多余的数据一方面浪费了较多的存储空间,另一方面造成所要表达的图形不光滑或不符合标准.因此要通过某种规则,在保证矢 ...
- 为shell布置陷阱:trap捕捉信号方法论
本文目录: 1.1 信号说明 1.2 trap布置陷阱 1.3 布置完美陷阱必备知识 家里有老鼠,快消灭它!哎,又给跑了.老鼠这小东西跑那么快,想直接直接消灭它还真不那么容易.于是,老鼠药.老鼠夹子或 ...
- ASP.NET Core MVC – Tag Helper 组件
ASP.NET Core Tag Helpers系列目录,这是第五篇,共五篇: ASP.NET Core MVC – Tag Helpers 介绍 ASP.NET Core MVC – Caching ...
- 残差网络resnet学习
Deep Residual Learning for Image Recognition 微软亚洲研究院的何凯明等人 论文地址 https://arxiv.org/pdf/1512.03385v1.p ...
- hr用法
定义和用法 <hr> 标签在 HTML 页面中创建一条水平线. 水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分. HTML 与 XHTML 之间的差异 在 H ...
- Tornado框架简介(二)
--------------------Application-------------------- 1.settings 1.debug=True:,设置tornado是否工作在调试模式, ...