个人作业1——四则运算题目生成程序(基于控制台)
2020-02-03 04:25
211 查看
一.题目描述:
1.除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
2.运算符为 +, −, ×, ÷
3.并且要求能处理用户的输入,并判断对错,打分统计正确率。
4.要求能处理用户输入的真分数, 如 1/2, 5/12 等
5.使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
6.Myapp.exe -n 10
二.需求分析:
1.能随机生成整数和分数的四则运算
2.能够判断用户的回答是否正确,并计算其准确率
3.能用参数控制生成题目个数
三.功能设计:
1.随机产生四则运算符
2.随机产生整数或真分数
3.根据用户需求确定出题数目
4.处理用户输入并判断正误,计算正确率
四.代码说明:
1.随机分数生成方法
public static int[] createFraction(){ int[] n = new int[2]; int n1 = (int)(Math.random()*10+1); int n2 = (int)(Math.random()*10+1); if(n1 != n2){ n[0] = n2; n[1] = n1; }else createFraction(); return n; }
2.辗转相除法求最大公约数函数
int maxGYS(int a,int b){ return a%b==0?b:maxGYS(b,a%b); } int minGBS(int a,int b) { int min, max; int r; max=a>b?a:b; min=a<b?a:b; if(max%min==0) return max; while(max%min!=0) { r=max%min; max=min; min=r; } return a*b/min; }
3.四则运算
int a = (int)(Math.random()*4+1); if(a==1){//加 Question.add("("+fn1[0]+"/"+fn1[1]+")+("+fn2[0]+"/"+fn2[1]+")="); int sum = gbs/fn1[1]*fn1[0] + (gbs / fn2[1]*fn2[0]); int gys1 = GCD(sum,gbs); Answer.add(sum/gys1+"/"+gbs/gys1+"");//化简结果并存储 } if(a==2){//减 Question.add("("+fn1[0]+"/"+fn1[1]+")-("+fn2[0]+"/"+fn2[1]+")="); int cha = gbs/fn1[1]*fn1[0] - (gbs / fn2[1]*fn2[0]); int gys2 = GCD(cha,gbs); Answer.add(cha/gys2+"/"+gbs/gys2+""); } if(a==3){//乘 Question.add("("+fn1[0]+"/"+fn1[1]+")×("+fn2[0]+"/"+fn2[1]+")="); int mult1 = fn1[0]*fn2[0]; int mult2 = fn1[1]*fn2[1]; int gys3 = GCD(mult1,mult2); Answer.add(mult1/gys3+"/"+mult2/gys3+"");// } if(a==4){//除 Question.add("("+fn1[0]+"/"+fn1[1]+")÷("+fn2[0]+"/"+fn2[1]+")="); int div1 = fn1[0]*fn2[1]; //转化为乘法 int div2 = fn1[1]*fn2[0]; int gys4 = GCD(div1,div2); Answer.add(div1/gys4+"/"+div2/gys4+""); } }
五.测试运行
PSP展示:
PSP2.1 | Personal Software Process Stages | Time (%) Senior Student | Time (%) |
Planning | 计划 | 10 | 8 |
· Estimate | 估计这个任务需要多少时间 | 30 | 32 |
Development | 开发 | 25 | 23.5 |
· Analysis | 需求分析 (包括学习新技术) | 6 | 10 |
· Design Spec | 生成设计文档 | 5 | 6 |
· Design Review | 设计复审 | 4 | 6 |
· Coding Standard | 代码规范 | 3 | 2.5 |
· Design | 具体设计 | 5 | 4.5 |
· Coding | 具体编码 | 36 | 21 |
· Code Review | 代码复审 | 3 | 2 |
· Test | 测试(自我测试,修改代码,提交修改) | 8 | 7 |
Reporting | 报告 | 2 | 2.5 |
· | 测试报告 | 4 | 6 |
· | 计算工作量 | 2 | 1 |
· | 并提出过程改进计划 | 4 | 3.5 |
总结:
看到代码实在是头痛,自己的编程能力太弱,一开始拿到题目不知道怎么入手,网上查找了很多资料,才慢慢理清思路,先构思需要的程序公共,再逐步去完成。但是代码实现得并不好,在编程的过程中,碰到许多问题,应该多找找资料,逐步去解决。学习新东西,应该要有耐心。
转载于:https://www.cnblogs.com/ly-35/p/6517946.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 集美大学1414班软件工程个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 【评分】集美大学软件工程1413班工程项目管理个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)
- 个人作业1——四则运算题目生成程序(基于控制台)