第三次作业:个人项目-小学四则运算 “软件”之初版


作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166

一、题目要求:

像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。

具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:

23 - 3 * 4 = 11

扩展要求:

1) 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。

2) 并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数, 如 1/2, 5/12 等。

 

二、耗时统计表(/min):

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 计划 15 8
 Estimate 估计这个任务需要多少时间 180 240
Development 开发 60 50
Analysis 需求分析 (包括学习新技术) 10 12
Design Spec 生成设计文档 20 21
Design Review 设计复审 18 35
Coding Standard 代码规范 48 50
Design 具体设计 38 42
 Coding 具体编码 52 120
Code Review 代码复审 45 56
Test 测试(自我测试,修改代码,提交修改) 18 36
Reporting 报告 33 26
  测试报告 14 23
  计算工作量 180 240
  并提出过程改进计划 30 32

三、部分代码:

//让用户输入想要出的题的数字的位数

System.out.println("当M=10时表示一位数的加减运算,M=100时表示两位数的加减运算...请选择");
int M=in.nextInt();
an.setM(M);
System.out.println("请输入需要打印多少道题:");
int N=in.nextInt();
an.setN(N);
an.Showme();

 //输出加减的运算题,并且输出答案

class Jiajian extends Yunsuan

{
public char o[]={'+','-'};
public void Showme()
{
for(int i=0;i<N;i++)
{
// for(int j=0;j<10;j++)
// {
int a=(int)(Math.random()*M)+1;//随机数种子 *M+1,加一表示非0
int b=(int)(Math.random()*M)+1;
int c=(int)(Math.random()*2);
System.out.print(a);
System.out.print(o[c]);
System.out.print(b+"="+(a+b));
// }
System.out.println();
}
}
}

class Chengchu extends Yunsuan
{
public char p[]={'*','/'};
// public char p_1='*';
public void Showme()
{
for(int i=0;i<N;i++)
{
// for(int j=0;j<10;j++)
// {
int a=(int)(Math.random()*M)+1;
int b=(int)(Math.random()*M)+1;
int c=(int)(Math.random()*2);
System.out.print(a);
System.out.print(p[c]);
if(p[c]=='*') {
System.out.print(b + "=" + (a * b));
System.out.println();
}
else {
double d=a;
double e=b;
double g=d/e;
double f=(double)Math.round(g*100)/100;
System.out.print(b + "="+f );
System.out.println();
}
// }
}

}
}
 

四、运行结果:

实现四则运算的出题和输出答案,给用户

 

 

posted @ 2018-10-10 11:00  林俊翰  阅读(268)  评论(1编辑  收藏  举报