第一次作业真的是花了我相当多时间,特别是在查重跟算四则表达式时,算法改了又改,耗了将近一周时间,最后,查重很不理想计算四则表达式有自己的想法,但问题很多,虽然谈不上什么想出算法,真的是费好多时间对于一个实力渣渣我来说。
需求:
1.使用 -n 参数控制生成题目的个数
2.使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围
3.生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数。
4.每道题目中出现的运算符个数不超过3个
5.程序一次运行生成的题目不能重复(查重,支持10000道题目生成)
6.在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件,
7程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计,并会输出所有题目中重复的题目,输入参数如下:
基本功能函数:
1.public static void judgeanswet(String rightquestion,String answer):用来判断产生的算术式跟自己在me.txt.文件输入的文件的答案判断对错的方法,并输出对的题跟错的题;
2.public static String countAnswer(String exp):用来计算表达式的的方法,在这个上面花最长时间了,最后败给了假分数的乘除。
3.public static String CreateAtith(int r1):用来产生算术表达式,这个还是很简单的。
4.public static void inin(ArrayList<Object> in,String name):写入文件
public static ArrayList<Object> outout(String name):读文件夹
5.项目当前目录下的文件:Answers.txt、Exercises.txt、Grade.txt、me.txt.其中me.txt是用来填写自己做的答案。
PSP:
总结:
计算表达式结果看起来好像没什么难度,但实际做起来还是会烦死的,特别是以前很多不好的习惯,每次做好函数之后,测试10道题目没出现问题,换成1000道,就开始报错,找出问题才是最头疼的。还有判重,看了很多参考,自己动起手了还是一大堆问题,最后偷了个懒没写在上传打代码里边。
项目地址:https://git.coding.net/lxp2017/coding.git