代码仓库地址:https://git.dev.tencent.com/wuyudong1998/sizeyunsuan.git前端
1.需求分析java
2.功能设计与实现状况git
3.代码展现web
4.测试运行算法
5.我的感悟编程
一:需求分析dom
该软件主要针对小学生,能够在输入出题数量n之后自动生成四则运算题目,帮助学生练习,也减轻教师的出题任务,提升教育质量。函数
题目中所出现的数字不能过大,乘号与除号均以小学教材所出现的“×”、“÷”来表示,且不能出现小数与负数。学习
每道题中至少包含两个运算符。测试
二:功能设计与实现状况
目前个人项目只完成了基本功能与加括号的功能,对于真分数的功能,目前并未完成。具体以下:
①判断输入的题目数量在1~1000以内;
②编译结果即生成题目保存在指定目录中;
下图为个人设计思路:
目前个人项目只有三个运算数,我设计了answer函数用来调用参数、Calculate函数用来计算和列举方法。经过参考学姐学长们的一些博客,我经过将不一样的两个运算符列举,实现所须要功能。但这种方法的缺点在于须要考虑不少不一样状况之下可能的结果,且随着操做数的增长,考虑的状况很是多,成本加大。
3、代码展现
int x = (int) (Math.random() *100); int y = (int) (Math.random() *100); int a=(int) (Math.random()*4); String q = x + first[a] + y; int sum,p,p1,p11,p2,p22,p3,p4;{ switch(a){ case 0: q = x + first[a] + y; String[] second = {"-","×","÷"}; int b=(int) (Math.random()*3); int z =(int) (Math.random() *100); if (b==0){ p=x+y; if(p>=z){ q=q+second[b]+z; sum=p-z; q=q+"="+sum; key(q); return q; }else{ calculate(); }
else if(d==2){ p3=x*y; z2 = (int) (Math.random() * 10) + 1; y= (int) (Math.random() * 2) * z2; if(z2!=0&&y>z2&&y%z2==0){ sum=p3/z2; q=q+ four[d]+z2; q=q+"="+sum; key (q); return q; }else{ calculate(); }//当第一个运算符为乘号时,第二个运算符为除号时 }
File file = new File("src/result.txt"); System.out.println("2017013083"); /* for(int i=0;i<Data;i++){ String Hresult= calculate(); } */ FileWriter writer = new FileWriter(file, false); writer.write("20170130838"); writer.write("\r\n"); for(int i=0;i<Data;i++){ String Hresult= calculate(); writer.write(Hresult); writer.write("\r\n"); } writer.close();
只展现了部分代码,详情代码请见仓库地址。
四:测试结果
控制台界面:
文件界面:
五:我的感悟
本次做业对我来讲是一个挑战,我在以前的学业项目中通常承担前端页面制做,文件撰写等任务,但对于敲代码写程序是很是陌生的,且个人java学的很是浅,基本没有上手练过。本次做业我花了大量时间来浏览上一届学长学姐的代码,想经过这种方式来掌握他们作这次做业时的一些具体思路和相关算法,但其实真正本身彻底独立编程仍然对我来讲是个巨大的难题。这次做业让我在从新学习java语言的煎熬与编译经过时的喜悦并重之中度过,也让我意识到博客的优秀之处,上面有太多大佬们分享的经验与方法,这将成为我从此的学习资源。但愿从此个人编程能能够进步!