大家好,很高兴写一片博客给分享自己的这段奇妙的experience of coding!
本来想听老师建议在github上down一些代码的,但之后看网上代码都挺复杂怕难改。而且自己更简单的自己的思路,于是一个一个实现了。
从构思,到完成基础功能,到想完成附加功能,到想放弃,再到再试试,然后各种debug前从上周三开始做,每天花时大约6+6+8+8+6+8+6+6>=54小时 3240min。
一共约750行代码。
我发布在github上的项目,敬请查看:
https://github.com/a1171404817/Ruangongzuoye.git
文件说明、实现如下:
文件名 |
说明 |
主要思路 |
Main.java |
|
用随机数控制+-×÷运算符以及1~100的生成;用循环进行生成;通过String的+号拼接。 |
Caculate.java |
|
1、加法器:通过运算符作为区分和循环,分别提取出来,放在数字字符串数组和符号字符串数组中,然后一个一个数值加。 2、乘法器: 提取×左右的两个数,计算结果,并且替代,循环,转化成加减表达式,然后交给加减法器处理。 3、Judge函数: 用来判断是调用加减还是乘除法器。 |
Zhengfushu.java |
|
|
Kuohao.java |
|
|
部分代码展示:
Main.java 主要用于生成算术表达式字符串
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;
import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
public class Main {
public static void main(String [] args) throws IOException
{
File f=new File(".\\src\\result.txt");
if(!f.exists())
f.getParentFile().mkdir();
{
f.createNewFile();
}
PrintStream outPrintStream=new PrintStream(f);
Scanner in = new Scanner(System.in);
int n1=in.nextInt();
int nc=0;
System.out.println("2017010302");
outPrintStream.println("2017010302");
// outPrintStream.println("2017010302");
while(nc<n1)
{ int modelrdn=((int) (Math.random() * 10000))%3;
if(modelrdn==0||modelrdn==2){
int nFuhao = ((int) (Math.random() * 10000))%3+3;//产生符号个数
// System.out.println(nFuhao);
S