您的位置:首页 > 其它

个人作业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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
dingshao3733 发布了0 篇原创文章 · 获赞 0 · 访问量 70 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐