GitHub地址:https://github.com/t-Poison/Sweet-ly
实验要求:
我们从小学就开始学习四则运算,现在要完成一个包含3到5个数字的四则运算练习的命令行软件开发,软件的基本功能要求如下:
程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。当程序接收的参数为4时,以下为输出文件示例。
一、需求分析
程序需要输入参数n,确定输出算式的个数;生成有3~5个运算符的两位数运算表达式;表达式的结果不能是小于0的数,也不能是小数;将运算结果以及学号输出到文本文档中。二、功能设计
输入n后,在0~100随机生成n个表达式;将运算表达式的计算结果以及学号输出保存到result.txt。三、设计实现
程序流程图如下所示:
四、测试运行
如下图所示,运行Main.java文件后,当输入n为10时,随机产生运算式,并同时在result.txt文件中输出结果。
五、核心代码
1 //创建流文件,并将学号写入 2 File writename = new File("result.txt"); // 相对路径,如果没有则要建立一个新的result。 3 writename.createNewFile(); // 创建新文件 4 BufferedWriter out = new BufferedWriter(new FileWriter(writename)); 5 out.write("201571030143\r\n"); // \r\n即为换行 1 for(int i=1;i<=n;i++) 2 { 3 int a=(int)(Math.random()*100); 4 int b=(int)(Math.random()*100); 5 int a1=(int)(Math.random()*100); 6 int b1=(int)(Math.random()*100); 7 int c=(int)(Math.random()*4); 8 switch(c) 9 { 10 case 0: 11 while(true){ 12 a1= (int) (Math.random()*100 + 0); 13 b1= (int) (Math.random()*100 + 1); 14 if(a1