From 329e950bf356baaa9d24f34c681099482ef0414a Mon Sep 17 00:00:00 2001 From: LZQ369 <42695990+LZQ369@users.noreply.github.com> Date: Wed, 12 Sep 2018 11:41:31 +0800 Subject: [PATCH 001/135] Create Pair_211606319_211606321 --- Pair_211606319_211606321 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Pair_211606319_211606321 diff --git a/Pair_211606319_211606321 b/Pair_211606319_211606321 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Pair_211606319_211606321 @@ -0,0 +1 @@ + From dcd10d1104d7d3c410fc050079780b18369b2c66 Mon Sep 17 00:00:00 2001 From: LZQ369 <42695990+LZQ369@users.noreply.github.com> Date: Wed, 12 Sep 2018 11:42:00 +0800 Subject: [PATCH 002/135] Delete Pair_211606319_211606321 --- Pair_211606319_211606321 | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Pair_211606319_211606321 diff --git a/Pair_211606319_211606321 b/Pair_211606319_211606321 deleted file mode 100644 index 8b13789..0000000 --- a/Pair_211606319_211606321 +++ /dev/null @@ -1 +0,0 @@ - From bb60adaa5513725edfbe18b0ad18d4c93ea3df91 Mon Sep 17 00:00:00 2001 From: zxs958042507 <2274631324@qq.com> Date: Thu, 13 Sep 2018 22:53:36 +0800 Subject: [PATCH 003/135] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211617246_211606326/MathExam.java | 86 ++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Pair_211617246_211606326/MathExam.java diff --git a/Pair_211617246_211606326/MathExam.java b/Pair_211617246_211606326/MathExam.java new file mode 100644 index 0000000..f1e8b64 --- /dev/null +++ b/Pair_211617246_211606326/MathExam.java @@ -0,0 +1,86 @@ + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class MathExam { + + final static int GRADE1_MAX = 20; + final static int GRADE2_MAX = 90; + final static String FILENAME = "out.txt"; + static int num; + static int grade; + static int fuhao;// 一二年级符号 + static String[] operator = {"+", "-", "*", "/"};// 三年级符号 + static int number1, number2, number3, number4, number5;// 五个运算数 + static List list1, list2;// 用于检查一二年级题目的重复生成 + static Set strArrayQ, strArrayA;// 存放题目和答案用于输出到文件 + + + public static void main(String[] args) { + + } + + /* 检查命令行输入 */ + private static boolean checkInput(String[] args) { + /* + * 1.检查参数个数,要求为4个 + * 2.检查第1,3个参数是否为"-n"或者"-grade" + * 3.对应其参数检查其输入合理性,-n要求为正整数且不能太大,-grade要求为1、2、3 + */ + return false; + } + + /* 将中缀表达式转换成后缀表达式 */ + private static String libolan(String shizi) { + return shizi; + + } + + // 计算后缀表达式的值 */ + private static int calc(String shizi) { + return 0; + + } + + /* 生成一年级题目 */ + private static void grade1(int num) { + /* + * 1.随机生成运算符,加法或者减法 + * 2.随机生成第一个运算数,加法:第二个无要求;减法:第二个要求小于等于第一个 + * 3.判断题目是否重复 + * 4.存入题目数组并计算结果存入答案数组 + */ + } + + /* 生成二年级题目 */ + private static void grade2(int num) { + /* + * 1.随机生成运算符,乘法或者除法 + * 2.随机生成第一个运算数,乘法:第二个无要求;除法:余数为0-9 + * 3.判断题目是否重复 + * 4.存入题目数组并计算结果存入答案数组 + */ + } + + /* 生成三年级题目 */ + private static void grade3(int num) { + /* + * 1.随机生成符号数量:2-4 + * 2.根据符号数量随机生成符号 + * 3.根据加减符号数量生成括号数量:0-2 + * 4.插入括号到合适的位置 + * 5....待续 + * + */ + } + + /* 输出到out.txt文件 */ + private static void craeteTxt() { + /* + * 1.创建指定文件名的文件 + * 2.依次向文件写入内容 + */ + } + +} From 439568e0b29414be0effef61d5b1be23d73cc706 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Thu, 13 Sep 2018 23:01:28 +0800 Subject: [PATCH 004/135] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606367_211606445/MathExam.java | 181 +++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 Pair_211606367_211606445/MathExam.java diff --git a/Pair_211606367_211606445/MathExam.java b/Pair_211606367_211606445/MathExam.java new file mode 100644 index 0000000..40dc754 --- /dev/null +++ b/Pair_211606367_211606445/MathExam.java @@ -0,0 +1,181 @@ + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.Scanner; +import java.util.regex.Pattern; + +public class MathExam6367 { + static Scanner input = new Scanner(System.in); + static String filename ="out.txt"; + static String[] str = {"+","-","x",""}; + static List Calculation_problem = new ArrayList(); + static int number1 = 0,Symbol = 0,number2 = 0,Sum = 0, + Remainder = 0,number = -1,grade = -1,Calculation_Num = 0; + static Random ranNum = new Random(101); + static Random ranStr = new Random(4); + static String word = null,check_message = null; + static File file = new File(filename),parent = null; + static OutputStream out = null; + static String[] args= {" "," "}; + static Pattern pattern = Pattern.compile("[0-9]*"); + public static void main(String[] arg) { + + args[0] = arg[0];args[1] = arg[1]; + file_Initialization(file);//ĵʼ + Input_Message();//Ϣ + //ɺϸĿ + for (int i = 1; i <= number; i++) + { + number1 = ranNum.nextInt(100); + number2 = ranNum.nextInt(100); + iteration_part(grade);//ɺʵļӼ˳ + if(str[Symbol].equals("+") && number1 + number2 > 100 + || str[Symbol].equals("-") && number1 - number2 < 0 + || str[Symbol].equals("x") && number1 * number2 > 100 + || str[Symbol].equals("") && number2 == 0 + ) + { + i--; + continue; + } + else + { + if(str[Symbol].equals("+")) + Sum = number1 + number2; + else if(str[Symbol].equals("-")) + Sum = number1 - number2; + else if(str[Symbol].equals("x")) + Sum = number1 * number2; + else + { + Sum = number1 / number2; + Remainder = number1 % number2; + } + file_write_problem(str, number1, number2, Sum, Symbol, out, i);//Ŀдĵ + } + } + if(number!=0) + file_write_answer();//дĵ + } + + private static void iteration_part(int grade) { + Symbol = ranStr.nextInt(4); + if(grade==1 && Symbol<=1) + return; + else if(grade==2 && Symbol<=3) + return; + else + iteration_part(grade); + } + + private static void Input_Message() { + int j=1; + while(number<0) + { + if(j==1) + { + check_message =args[0]; + if(!pattern.matcher(check_message).matches()) + { + System.out.print("Ϸ"); + } + } + check_message = input.nextLine(); + if(!pattern.matcher(check_message).matches()) + { + System.out.print("Ϸ"); + continue; + } + number = Integer.parseInt(check_message); + if(number < 0) + System.out.print("Ϸ"); + + } + j=1; + while(grade!=1 && grade!=2) + { + if(j==1) + { + check_message =args[1]; + if(!pattern.matcher(check_message).matches()) + { + System.out.print("꼶Ϸ꼶"); + } + } + check_message = input.nextLine(); + if(!pattern.matcher(check_message).matches()) + { + System.out.print("꼶Ϸ!꼶(12)"); + continue; + } + grade = Integer.parseInt(check_message); + if(grade!=1 && grade!=2) + System.out.print("꼶Ϸ!꼶(12)"); + } + } + + private static void file_write_answer() { + try { + out.write("\r\n".getBytes()); + for (int i = 0; i < Calculation_Num; i++) + { + out.write(Calculation_problem.get(i).getBytes()); + } + } + catch (IOException e) { + System.out.println("дʱ쳣"+e.getMessage()); + } + } + + private static void file_write_problem(String[] str, int number1, int number2, int Sum, int Symbol, OutputStream out, int i) { + try { + word ="("+Integer.toString(i)+") " + +Integer.toString(number1)+" "+str[Symbol]+" "+Integer.toString(number2); + out.write((word+"\r\n").getBytes()); + if(Remainder!=0) + { + Calculation_problem.add(word+" = "+Integer.toString(Sum)+"..."+Integer.toString(Remainder)+"\n"); + Calculation_Num++; + Remainder = 0; + } + else + { + Calculation_problem.add(word+" "+Integer.toString(Sum)+"\r\n"); + Calculation_Num++; + } + } + catch (IOException e) + { + System.out.println("out.write()ʱ׳쳣"+e.getMessage()); + } + } + + private static void file_Initialization(File file) { + if(!file.exists()) + { parent = file.getParentFile(); + if(parent !=null && !parent.exists()) + { parent.mkdir();//Ŀ¼ + System.out.println("Ŀ¼"+parent); + } + try { + file.createNewFile(); + } catch (IOException e) { + System.out.println("file.createNewFile()ʱ׳쳣"+e.getMessage()); + } + System.out.println("ļ"+file.getAbsolutePath()); + }//ȡ· + try { + out = new FileOutputStream(file); + } + catch (FileNotFoundException e) { + System.out.println("new FileOutputStream(file)ʱ׳쳣"+e.getMessage()); + } + } + +} From 71eeb9b61fdbd73f3c3ccbad1bd54b8dd2be6728 Mon Sep 17 00:00:00 2001 From: hard969 <1584737985@qq.com> Date: Fri, 14 Sep 2018 13:20:46 +0800 Subject: [PATCH 005/135] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=B0=8F=E5=AD=A6?= =?UTF-8?q?=E4=B8=80=E4=BA=8C=E5=B9=B4=E7=BA=A7=E7=9A=84=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211617246_211606326/MathExam.java | 56 +++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/Pair_211617246_211606326/MathExam.java b/Pair_211617246_211606326/MathExam.java index f1e8b64..ae3c208 100644 --- a/Pair_211617246_211606326/MathExam.java +++ b/Pair_211617246_211606326/MathExam.java @@ -1,4 +1,5 @@ +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -14,7 +15,7 @@ public class MathExam { static String[] operator = {"+", "-", "*", "/"};// 三年级符号 static int number1, number2, number3, number4, number5;// 五个运算数 static List list1, list2;// 用于检查一二年级题目的重复生成 - static Set strArrayQ, strArrayA;// 存放题目和答案用于输出到文件 + static List strArrayQ, strArrayA;// 存放题目和答案用于输出到文件 public static void main(String[] args) { @@ -37,7 +38,7 @@ private static String libolan(String shizi) { } - // 计算后缀表达式的值 */ + /* 计算后缀表达式的值 */ private static int calc(String shizi) { return 0; @@ -51,6 +52,28 @@ private static void grade1(int num) { * 3.判断题目是否重复 * 4.存入题目数组并计算结果存入答案数组 */ + int result = 0; + strArrayQ = new ArrayList(); + strArrayA = new ArrayList(); + for (int i = 1; i <= num; i++) { + number1 = (int)(Math.random()*(GRADE1_MAX)+1); + fuhao = (int)(Math.random()*2); + if (fuhao == 0) { + number2 = (int)(Math.random()*(GRADE1_MAX)+1); + result = number1 + number2; + // 记录题目和答案 + strArrayQ.add("(" + i + ") " + number1 + " + " + number2 + " ="); + strArrayA.add("(" + i + ") " + number1 + " + " + number2 + " = " + result); + } else if (fuhao ==1) { + do { + number2 = (int)(Math.random()*(GRADE1_MAX)+1); + } while (number2 >= number1); + result = number1 - number2; + // 记录题目和答案 + strArrayQ.add("(" + i + ") " + number1 + " - " + number2 + " ="); + strArrayA.add("(" + i + ") " + number1 + " - " + number2 + " = " + result); + } + } } /* 生成二年级题目 */ @@ -61,6 +84,35 @@ private static void grade2(int num) { * 3.判断题目是否重复 * 4.存入题目数组并计算结果存入答案数组 */ + int result = 0; + int yu = 0; + strArrayQ = new ArrayList(); + strArrayA = new ArrayList(); + for (int i = 1; i <= num; i++) { + fuhao = (int)(Math.random()*2); + if (fuhao == 0) { + number1 = (int)(Math.random()*10); + number2 = (int)(Math.random()*10); + result = number1 * number2; + // 记录题目和答案 + strArrayQ.add("(" + i + ") " + number1 + " × " + number2 + " ="); + strArrayA.add("(" + i + ") " + number1 + " × " + number2 + " = " + result); + } else if (fuhao == 1) { + number1 = (int)(Math.random()*GRADE2_MAX); + do { + number2 = (int)(Math.random()*10); + } while (number2 <= (number1 / 10) || number2 == 0); + result = number1 / number2; + yu = number1 % number2; + // 记录题目和答案 + strArrayQ.add("(" + i + ") " + number1 + " ÷ " + number2 + " ="); + if (yu == 0) { + strArrayA.add("(" + i + ") " + number1 + " ÷ " + number2 + " = " + result); + } else { + strArrayA.add("(" + i + ") " + number1 + " ÷ " + number2 + " = " + result + "..." + yu); + } + } + } } /* 生成三年级题目 */ From cf4d8672a88f055671a91ac21ebb8af9bdf703e7 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Fri, 14 Sep 2018 17:19:37 +0800 Subject: [PATCH 006/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 命令行输入,答案换行不正常 --- Pair_211606367_211606445/MathExam6367.java | 184 +++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 Pair_211606367_211606445/MathExam6367.java diff --git a/Pair_211606367_211606445/MathExam6367.java b/Pair_211606367_211606445/MathExam6367.java new file mode 100644 index 0000000..79ae842 --- /dev/null +++ b/Pair_211606367_211606445/MathExam6367.java @@ -0,0 +1,184 @@ + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.Scanner; +import java.util.regex.Pattern; + +public class MathExam6367 { + static Scanner input = new Scanner(System.in); + static String filename ="out.txt"; + static String[] str = {"+","-","x",""}; + static List Calculation_problem = new ArrayList(); + static int number1 = 0,Symbol = 0,number2 = 0,Sum = 0, + Remainder = 0,number = -1,grade = -1,Calculation_Num = 0; + static Random ranNum = new Random(101); + static Random ranStr = new Random(4); + static String word = null,check_message = null; + static File file = new File(filename),parent = null; + static OutputStream out = null; + static String[] arg= {" "," "}; + static Pattern pattern = Pattern.compile("[0-9]*"); + public static void main(String[] args) { + arg[0] = args[0];arg[1] = args[1]; + file_Initialization(file);//ĵʼ + Input_Message();//Ϣ + //ɺϸĿ + for (int i = 1; i <= number; i++) + { + number1 = ranNum.nextInt(100); + number2 = ranNum.nextInt(100); + iteration_part(grade);//ɺʵļӼ˳ + if(str[Symbol].equals("+") && number1 + number2 > 100 + || str[Symbol].equals("-") && number1 - number2 < 0 + || str[Symbol].equals("x") && number1 * number2 > 100 + || str[Symbol].equals("") && number2 == 0 + ) + { + i--; + continue; + } + else + { + if(str[Symbol].equals("+")) + Sum = number1 + number2; + else if(str[Symbol].equals("-")) + Sum = number1 - number2; + else if(str[Symbol].equals("x")) + Sum = number1 * number2; + else + { + Sum = number1 / number2; + Remainder = number1 % number2; + } + file_write_problem(str, number1, number2, Sum, Symbol, out, i);//Ŀдĵ + } + } + if(number!=0) + file_write_answer();//дĵ + } + + private static void iteration_part(int grade) { + Symbol = ranStr.nextInt(4); + if(grade==1 && Symbol<=1) + return; + else if(grade==2 && Symbol<=3) + return; + else + iteration_part(grade); + } + + private static void Input_Message() { + int j=1; + while(number<0) + { + if(j==1) + { + check_message = arg[0]; + if(!pattern.matcher(check_message).matches()) + { + System.out.print("Ϸ"); + check_message = input.nextLine(); + } + } + if(j!=1) + check_message = input.nextLine(); + if(!pattern.matcher(check_message).matches()) + { + System.out.print("Ϸ"); + continue; + } + number = Integer.parseInt(check_message); + if(number < 0) + System.out.print("Ϸ"); + + } + j=1; + while(grade!=1 && grade!=2) + { + if(j==1) + { + check_message =arg[1]; + if(!pattern.matcher(check_message).matches()) + { + System.out.print("꼶Ϸ꼶"); + check_message = input.nextLine(); + } + } + if(j!=1) + check_message = input.nextLine(); + if(!pattern.matcher(check_message).matches()) + { + System.out.print("꼶Ϸ!꼶(12)"); + continue; + } + grade = Integer.parseInt(check_message); + if(grade!=1 && grade!=2) + System.out.print("꼶Ϸ!꼶(12)"); + } + } + + private static void file_write_answer() { + try { + out.write("\r\n".getBytes()); + for (int i = 0; i < Calculation_Num; i++) + { + out.write(Calculation_problem.get(i).getBytes()); + } + } + catch (IOException e) { + System.out.println("дʱ쳣"+e.getMessage()); + } + } + + private static void file_write_problem(String[] str, int number1, int number2, int Sum, int Symbol, OutputStream out, int i) { + try { + word ="("+Integer.toString(i)+") " + +Integer.toString(number1)+" "+str[Symbol]+" "+Integer.toString(number2); + out.write((word+"\r\n").getBytes()); + if(Remainder!=0) + { + Calculation_problem.add(word+" = "+Integer.toString(Sum)+"..."+Integer.toString(Remainder)+"\r\n"); + Calculation_Num++; + Remainder = 0; + } + else + { + Calculation_problem.add(word+" "+Integer.toString(Sum)+"\r\n"); + Calculation_Num++; + } + } + catch (IOException e) + { + System.out.println("out.write()ʱ׳쳣"+e.getMessage()); + } + } + + private static void file_Initialization(File file) { + if(!file.exists()) + { parent = file.getParentFile(); + if(parent !=null && !parent.exists()) + { parent.mkdir();//Ŀ¼ + System.out.println("Ŀ¼"+parent); + } + try { + file.createNewFile(); + } catch (IOException e) { + System.out.println("file.createNewFile()ʱ׳쳣"+e.getMessage()); + } + System.out.println("ļ"+file.getAbsolutePath()); + }//ȡ· + try { + out = new FileOutputStream(file); + } + catch (FileNotFoundException e) { + System.out.println("new FileOutputStream(file)ʱ׳쳣"+e.getMessage()); + } + } + +} From 19584899b299609f6a5e337dcee65f6171efb67f Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Fri, 14 Sep 2018 17:29:39 +0800 Subject: [PATCH 007/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=B1=BB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606367_211606445/MathExam.java | 29 +++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Pair_211606367_211606445/MathExam.java b/Pair_211606367_211606445/MathExam.java index 40dc754..e415d9b 100644 --- a/Pair_211606367_211606445/MathExam.java +++ b/Pair_211606367_211606445/MathExam.java @@ -10,7 +10,7 @@ import java.util.Scanner; import java.util.regex.Pattern; -public class MathExam6367 { +public class MathExam { static Scanner input = new Scanner(System.in); static String filename ="out.txt"; static String[] str = {"+","-","x",""}; @@ -22,14 +22,19 @@ public class MathExam6367 { static String word = null,check_message = null; static File file = new File(filename),parent = null; static OutputStream out = null; - static String[] args= {" "," "}; + static String[] arg= {" "," "}; static Pattern pattern = Pattern.compile("[0-9]*"); - public static void main(String[] arg) { - - args[0] = arg[0];args[1] = arg[1]; + public static void main(String[] args) { + arg[0] = args[0];arg[1] = args[1]; file_Initialization(file);//ĵʼ Input_Message();//Ϣ //ɺϸĿ + //24 + //Լ + //Ľи + //Ϊ0 + //0-1000ڣ˵ + //ȻΪһ꼶꼶ĹܻҪ for (int i = 1; i <= number; i++) { number1 = ranNum.nextInt(100); @@ -80,13 +85,15 @@ private static void Input_Message() { { if(j==1) { - check_message =args[0]; + check_message = arg[0]; if(!pattern.matcher(check_message).matches()) { System.out.print("Ϸ"); + check_message = input.nextLine(); } } - check_message = input.nextLine(); + if(j!=1) + check_message = input.nextLine(); if(!pattern.matcher(check_message).matches()) { System.out.print("Ϸ"); @@ -102,13 +109,15 @@ private static void Input_Message() { { if(j==1) { - check_message =args[1]; + check_message =arg[1]; if(!pattern.matcher(check_message).matches()) { System.out.print("꼶Ϸ꼶"); + check_message = input.nextLine(); } } - check_message = input.nextLine(); + if(j!=1) + check_message = input.nextLine(); if(!pattern.matcher(check_message).matches()) { System.out.print("꼶Ϸ!꼶(12)"); @@ -140,7 +149,7 @@ private static void file_write_problem(String[] str, int number1, int number2, i out.write((word+"\r\n").getBytes()); if(Remainder!=0) { - Calculation_problem.add(word+" = "+Integer.toString(Sum)+"..."+Integer.toString(Remainder)+"\n"); + Calculation_problem.add(word+" = "+Integer.toString(Sum)+"..."+Integer.toString(Remainder)+"\r\n"); Calculation_Num++; Remainder = 0; } From ff14857c2fa69e7deb633b6fcf881c3e242f14ff Mon Sep 17 00:00:00 2001 From: zxs958042507 <2274631324@qq.com> Date: Fri, 14 Sep 2018 19:22:58 +0800 Subject: [PATCH 008/135] =?UTF-8?q?=E9=83=A8=E5=88=86=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.一二年级题目查重处理 2.某些静态变量改成局部变量 --- Pair_211617246_211606326/MathExam.java | 53 ++++++++++++++++++++------ 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/Pair_211617246_211606326/MathExam.java b/Pair_211617246_211606326/MathExam.java index ae3c208..6576b70 100644 --- a/Pair_211617246_211606326/MathExam.java +++ b/Pair_211617246_211606326/MathExam.java @@ -1,6 +1,5 @@ import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.Set; @@ -11,10 +10,7 @@ public class MathExam { final static String FILENAME = "out.txt"; static int num; static int grade; - static int fuhao;// 一二年级符号 static String[] operator = {"+", "-", "*", "/"};// 三年级符号 - static int number1, number2, number3, number4, number5;// 五个运算数 - static List list1, list2;// 用于检查一二年级题目的重复生成 static List strArrayQ, strArrayA;// 存放题目和答案用于输出到文件 @@ -52,22 +48,40 @@ private static void grade1(int num) { * 3.判断题目是否重复 * 4.存入题目数组并计算结果存入答案数组 */ + int number1, number2 = 0; + int fuhao = 0; int result = 0; + // 检查重复 + List check1 = new ArrayList(); + List check2 = new ArrayList(); + String checkRepeat = null; + strArrayQ = new ArrayList(); strArrayA = new ArrayList(); + for (int i = 1; i <= num; i++) { - number1 = (int)(Math.random()*(GRADE1_MAX)+1); fuhao = (int)(Math.random()*2); if (fuhao == 0) { - number2 = (int)(Math.random()*(GRADE1_MAX)+1); + do { + // 保证没有重复的式子生成 + number1 = (int)(Math.random()*(GRADE1_MAX)+1); + number2 = (int)(Math.random()*(GRADE1_MAX)+1); + checkRepeat = number1 + "+" + number2; + } while (check1.contains(checkRepeat) || check2.contains(checkRepeat)); + check1.add(number1 + "+" + number2); + check2.add(number2 + "+" + number1); result = number1 + number2; // 记录题目和答案 strArrayQ.add("(" + i + ") " + number1 + " + " + number2 + " ="); strArrayA.add("(" + i + ") " + number1 + " + " + number2 + " = " + result); } else if (fuhao ==1) { do { + // 保证结果不为负数以及没有重复的式子生成 + number1 = (int)(Math.random()*(GRADE1_MAX)+1); number2 = (int)(Math.random()*(GRADE1_MAX)+1); - } while (number2 >= number1); + checkRepeat = number1 + "-" + number2; + } while (number2 > number1 || check1.contains(checkRepeat)); + check1.add(number1 + "-" + number2); result = number1 - number2; // 记录题目和答案 strArrayQ.add("(" + i + ") " + number1 + " - " + number2 + " ="); @@ -84,24 +98,41 @@ private static void grade2(int num) { * 3.判断题目是否重复 * 4.存入题目数组并计算结果存入答案数组 */ + int number1, number2 = 0; + int fuhao = 0; int result = 0; int yu = 0; + // 检查重复 + List check1 = new ArrayList(); + List check2 = new ArrayList(); + String checkRepeat = null; + strArrayQ = new ArrayList(); strArrayA = new ArrayList(); for (int i = 1; i <= num; i++) { fuhao = (int)(Math.random()*2); if (fuhao == 0) { - number1 = (int)(Math.random()*10); - number2 = (int)(Math.random()*10); + do { + // 保证没有重复的式子生成 + number1 = (int)(Math.random()*10); + number2 = (int)(Math.random()*10); + checkRepeat = number1 + "×" + number2; + } while (check1.contains(checkRepeat) || check2.contains(checkRepeat)); + check1.add(number1 + "×" + number2); + check2.add(number2 + "×" + number1); + result = number1 * number2; // 记录题目和答案 strArrayQ.add("(" + i + ") " + number1 + " × " + number2 + " ="); strArrayA.add("(" + i + ") " + number1 + " × " + number2 + " = " + result); } else if (fuhao == 1) { - number1 = (int)(Math.random()*GRADE2_MAX); do { + // 保证除数不为0以及没有重复的式子生成 + number1 = (int)(Math.random()*GRADE2_MAX); number2 = (int)(Math.random()*10); - } while (number2 <= (number1 / 10) || number2 == 0); + checkRepeat = number1 + "÷" + number2; + } while (number2 <= (number1 / 10) || number2 == 0 || check1.contains(checkRepeat)); + check1.add(number1 + "÷" + number2); result = number1 / number2; yu = number1 % number2; // 记录题目和答案 From 11ee8308ace58297d7c773ac8d6829c3826616dd Mon Sep 17 00:00:00 2001 From: hard969 <1584737985@qq.com> Date: Fri, 14 Sep 2018 19:57:00 +0800 Subject: [PATCH 009/135] =?UTF-8?q?=E9=83=A8=E5=88=86=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.createTxt()函数的完成 2.checkInput()函数的完成 3.创建新的静态变量errMessage用于存储参数错误信息 --- Pair_211617246_211606326/MathExam.java | 119 ++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 3 deletions(-) diff --git a/Pair_211617246_211606326/MathExam.java b/Pair_211617246_211606326/MathExam.java index 6576b70..3106f51 100644 --- a/Pair_211617246_211606326/MathExam.java +++ b/Pair_211617246_211606326/MathExam.java @@ -1,4 +1,7 @@ +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -10,12 +13,30 @@ public class MathExam { final static String FILENAME = "out.txt"; static int num; static int grade; + static String errMessage; static String[] operator = {"+", "-", "*", "/"};// 三年级符号 static List strArrayQ, strArrayA;// 存放题目和答案用于输出到文件 - public static void main(String[] args) { - + public static void main(String[] args) throws IOException { + if (checkInput(args)) { + switch (grade) { + case 1: + grade1(num); + break; + case 2: + grade2(num); + break; + case 3: + grade3(num); + break; + default: + break; + } + createTxt(); + } else { + System.out.println(errMessage); + } } /* 检查命令行输入 */ @@ -25,6 +46,71 @@ private static boolean checkInput(String[] args) { * 2.检查第1,3个参数是否为"-n"或者"-grade" * 3.对应其参数检查其输入合理性,-n要求为正整数且不能太大,-grade要求为1、2、3 */ + if (args.length == 4) { + if (args[0].equals("-n")) { + if (args[2].equals("-grade")) { + // 参数顺序-n -grade + try { + num = Integer.parseInt(args[1]); + if (num < 0) { + errMessage = "题目数量为负!请重新运行!"; + return false; + } else if (num == 0 || num > 50) { + errMessage = "请输入合适的题目数量!比如1-50"; + return false; + } else { + try { + grade = Integer.parseInt(args[3]); + if (grade == 1 || grade == 2 || grade == 3) { + return true; + } else { + errMessage = "年级选择超出范围,请选择一二三年级。"; + return false; + } + } catch (NumberFormatException e) { + errMessage = "年级选择选项非整数!请重新运行!"; + return false; + } + } + } catch (NumberFormatException e) { + errMessage = "题目数量选项非整数!请重新运行!"; + return false; + } + } + } else if (args[0].equals("-grade")) { + if (args[2].equals("-n")) { + // 参数顺序-grade -n + try { + grade = Integer.parseInt(args[1]); + if (grade == 1 || grade == 2 || grade == 3) { + try { + num = Integer.parseInt(args[3]); + if (num < 0) { + errMessage = "题目数量为负!请重新运行!"; + return false; + } else if (num == 0 || num > 50) { + errMessage = "请输入合适的题目数量!比如1-50"; + return false; + } else { + return true; + } + } catch (NumberFormatException e) { + errMessage = "题目数量选项非整数!请重新运行!"; + return false; + } + } else { + errMessage = "年级选择超出范围,请选择一二三年级。"; + return false; + } + } catch (NumberFormatException e) { + errMessage = "年级选择选项非整数!请重新运行!"; + return false; + } + } + } + } else { + errMessage = "参数个数有误!请重新运行!"; + } return false; } @@ -159,11 +245,38 @@ private static void grade3(int num) { } /* 输出到out.txt文件 */ - private static void craeteTxt() { + private static void createTxt() throws IOException { /* * 1.创建指定文件名的文件 * 2.依次向文件写入内容 */ + File file = new File(FILENAME); + file.createNewFile(); + FileWriter fw = null; + try { + fw = new FileWriter(file); + // 具体写入内容 + for (String s : strArrayQ) { + fw.write(s); + fw.write("\r\n"); + } + fw.write("\r\n"); + for (String s : strArrayA) { + fw.write(s); + fw.write("\r\n"); + } + fw.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (fw != null) { + try { + fw.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } } From a6bd300b93d3791dd28e75797b3d57f17fe0c867 Mon Sep 17 00:00:00 2001 From: HYOUKACC Date: Sat, 15 Sep 2018 10:10:31 +0800 Subject: [PATCH 010/135] =?UTF-8?q?=E5=9B=9B=E5=88=99=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 找呀找呀找括号!!! --- Pair_211614331_211614354/FindBracket.java | 81 +++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Pair_211614331_211614354/FindBracket.java diff --git a/Pair_211614331_211614354/FindBracket.java b/Pair_211614331_211614354/FindBracket.java new file mode 100644 index 0000000..cf6dbcd --- /dev/null +++ b/Pair_211614331_211614354/FindBracket.java @@ -0,0 +1,81 @@ +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class FindBracket { + + public static void main(String[] args) { + // TODO Auto-generated method stub + ts(); + } + + public static void ts() { + // + String s1="(A+B)-(C+D)*(B+A)"; + // ((A+B)/(C+D-B))*A + //((A+B)*(C+D)-A)/B + //(A+B)-(C+D)*(B+A) + + ArrayList a1=new ArrayList<>();// ʼĿԺ󷽱ɾݣ + + LinkedList l1=new LinkedList<>(); + for(int i=0;i left=new LinkedList<>(); + ArrayDeque right=new ArrayDeque<>(); + */ + + + Matcher m=Pattern.compile("\\(").matcher(s1); + Matcher m2=Pattern.compile("\\)").matcher(s1); + + int right=0; //ŵλ + int left=0; //ŵλ + + for(int i=0;i=0;j--) { + if(l1.get(j).equals("(")) { + l1.set(j, "!"); + left=j; + break; + } + } + + for(int z=left;z<=right;z++) { + System.out.print(l1.get(z)); + //l1.remove(z); + } + System.out.println(); + + } + } + + + + /* + while(m2.find()) { //ţλ󣬴ӵǰλɨ裬ҵһ + + //right.addLast(m2.start()); + right=m2.start(); //ŵλ + for(int i=right-1;i>=0;i--) { + if( (String.valueOf(s1.charAt(i))).equals("(") ) { + left=i; // һСλõ ŵλ + break; + } + } + + System.out.println(s1.substring(left, right+1)); + + } // + */ + + + } +} From 8e80e05e655d528d588606d24bf3cab312bea09f Mon Sep 17 00:00:00 2001 From: a139520017 Date: Sat, 15 Sep 2018 13:38:32 +0800 Subject: [PATCH 011/135] =?UTF-8?q?=E6=9E=84=E5=BB=BA=E6=A0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair2018_211406285_211606314/MathExamLv2.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 Pair2018_211406285_211606314/MathExamLv2.java diff --git a/Pair2018_211406285_211606314/MathExamLv2.java b/Pair2018_211406285_211606314/MathExamLv2.java new file mode 100644 index 0000000..dd8b116 --- /dev/null +++ b/Pair2018_211406285_211606314/MathExamLv2.java @@ -0,0 +1,7 @@ +package com.java285.second; + +public class MathExamLv2 { + public static void main(String[] args) { + + } +} From d6fdf5125fc3af53b586f8c38b6ac9d725abfa97 Mon Sep 17 00:00:00 2001 From: a139520017 Date: Sat, 15 Sep 2018 13:51:24 +0800 Subject: [PATCH 012/135] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E6=8F=90=E4=BA=A4=20?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E6=A0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair2018_211406285_211606314/MathExamLv2.java | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/Pair2018_211406285_211606314/MathExamLv2.java b/Pair2018_211406285_211606314/MathExamLv2.java index dd8b116..93c2fc4 100644 --- a/Pair2018_211406285_211606314/MathExamLv2.java +++ b/Pair2018_211406285_211606314/MathExamLv2.java @@ -1,7 +1,44 @@ package com.java285.second; public class MathExamLv2 { + private Object[] stack; + private int size;// Ԫظ; + + public MathExamLv2() {// ĬϳΪ10; + this(10); + } + + public MathExamLv2(int len) {// ҲԼó,; + stack = new Object[len]; + } + + public int size() {// Ԫظ; + return size; + } + + public int capacity() {// 鳤,; + return stack.length; + } + + public void push(Object o) {// ջ; + size++; + stack[size - 1] = o; + } + + public boolean isEmpty() {// п; + return size == 0; + } + + public Object pop() {// ջ; + if (isEmpty()) {// Ҫп; + throw new ArrayIndexOutOfBoundsException("Ϊ"); + } + Object o = stack[--size]; + stack[size] = null; + return o; + } + public static void main(String[] args) { - + StackTest Test = new StackTest(); } } From c7fa97903c83eaec7ff5f800627bc067c87d4bc1 Mon Sep 17 00:00:00 2001 From: HYOUKACC Date: Sat, 15 Sep 2018 14:48:54 +0800 Subject: [PATCH 013/135] =?UTF-8?q?=E5=90=88=E4=BD=9C=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 测试添加合作者 Co-Authored-By: hktttygithub --- ...\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" | 1 + 1 file changed, 1 insertion(+) create mode 100644 "Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" diff --git "a/Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" "b/Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" new file mode 100644 index 0000000..0a5ac47 --- /dev/null +++ "b/Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" @@ -0,0 +1 @@ + \ No newline at end of file From 995f90c002f197cf7629e116f1c0eaf338d41894 Mon Sep 17 00:00:00 2001 From: HYOUKACC Date: Sat, 15 Sep 2018 14:53:51 +0800 Subject: [PATCH 014/135] =?UTF-8?q?=E5=9B=9B=E5=88=99=E6=B7=B7=E5=90=88?= =?UTF-8?q?=E8=BF=90=E7=AE=97=E7=BB=93=E6=9E=9C=E6=A8=A1=E5=9D=97=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 能够完成给定题目的结果运算; 未加入任何年级限制; Co-Authored-By: hktttygithub --- Pair_211614331_211614354/Arithmetic.java | 86 ++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Pair_211614331_211614354/Arithmetic.java diff --git a/Pair_211614331_211614354/Arithmetic.java b/Pair_211614331_211614354/Arithmetic.java new file mode 100644 index 0000000..e0ae57e --- /dev/null +++ b/Pair_211614331_211614354/Arithmetic.java @@ -0,0 +1,86 @@ +import java.util.LinkedList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Arithmetic { // + + + public static void test() { + //תַѶַ + String str="1*9-9+695/865"; + //56/8-6*8+6 + //35-69+10*5/8 + //8+9*8*8/6 + //1-2+3+4 + Matcher m=Pattern.compile("(\\d+)").matcher(str); // + Matcher m2=Pattern.compile("[\\+\\-\\*\\/]").matcher(str); // ҷ + + int firstNumber=0; + int secondNumber=0; + int answerNumber=0; + + LinkedList li=new LinkedList(); // + LinkedList li2=new LinkedList();// + + + int s; + + while(m.find()) { + li.add(m.group()); //ֻߴڼ + } + System.out.println(li); + + while(m2.find()) { // + li2.add(m2.group()); + } + System.out.println(li2); + + for(int i=0;i Date: Sat, 15 Sep 2018 14:56:48 +0800 Subject: [PATCH 015/135] =?UTF-8?q?=E5=B0=86=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9A=84=E5=86=85=E5=AE=B9=E6=95=B4=E5=90=88?= =?UTF-8?q?=E5=88=B0=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C=E4=B8=9A=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair2018_211406285_211606314/MathExamLv2.java | 237 +++++++++++++++++- 1 file changed, 235 insertions(+), 2 deletions(-) diff --git a/Pair2018_211406285_211606314/MathExamLv2.java b/Pair2018_211406285_211606314/MathExamLv2.java index 93c2fc4..86c7d11 100644 --- a/Pair2018_211406285_211606314/MathExamLv2.java +++ b/Pair2018_211406285_211606314/MathExamLv2.java @@ -1,5 +1,17 @@ package com.java285.second; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Random; + public class MathExamLv2 { private Object[] stack; private int size;// Ԫظ; @@ -38,7 +50,228 @@ public class MathExamLv2 { return o; } - public static void main(String[] args) { - StackTest Test = new StackTest(); + private static void gradeOne(int n) throws IOException, FileNotFoundException { + int[] sum = new int[n + 1];// sum + char[] signSet = { '+', '-' };// sianSetַ + Random random = new Random(); + + for (int i = 1; i <= n; i++) { + String str = "(" + i + ")"; + int a = random.nextInt(100) + 1; + int b = random.nextInt(100) + 1; + int t = random.nextInt(signSet.length); + char sign = signSet[t]; + + switch (sign) { + case '+': + sum[i] = a + b; + break; + case '-': + sum[i] = a - b; + if (sum[i] < 0) { + i = i - 1; + continue; + } + break; + default: + ; + } + str = str + " " + a + " " + sign + " " + b + " " + "="; + out(str); + if (i == n) { + out("----------------׼----------------"); + } + } // forѭȷҪд뵽out.txtеstrֵҲҪĿ + + BufferedReader br = in(); + + for (int i = 1; i <= n; i++) { + String str = br.readLine() + " " + sum[i]; + out(str); + if (i == n) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");// ڸʽ + out("211406285 ־" + " " + df.format(new Date())); + } + } // forѭȷҪд뵽out.txtеstrֵҲҪĿĴ + } + + private static void gradeTwo(int n) throws IOException, FileNotFoundException { + String[] sum = new String[n + 1];// sum + char[] signSet = { '*', '/' };// sianSetַ + Random random = new Random(); + + for (int i = 1; i <= n; i++) { + String str = "(" + i + ")"; + int a = random.nextInt(100) + 1; + int b = random.nextInt(100) + 1; + int t = random.nextInt(signSet.length); + char sign = signSet[t]; + + switch (sign) { + case '*': + sum[i] = String.valueOf(a * b); + sign = ''; + break; + case '/': + if (b == 0 && a > b) { + i = i - 1; + continue; + } + sum[i] = String.valueOf(a / b); + if (a % b != 0) { + sum[i] = sum[i] + "..." + String.valueOf(a % b); + } + sign = ''; + break; + default: + ; + } + str = str + " " + a + " " + sign + " " + b + " " + "="; + out(str); + if (i == n) { + out("----------------׼----------------"); + } + } // forѭȷҪд뵽out.txtеstrֵҲҪĿ + + BufferedReader br = in(); + + for (int i = 1; i <= n; i++) { + String str = br.readLine() + " " + sum[i]; + out(str); + if (i == n) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");// ڸʽ + out("211406285 ־" + " " + df.format(new Date())); + } + } // forѭȷҪд뵽out.txtеstrֵҲҪĿĴ + } + + private static void gradeThree(int n) throws IOException, FileNotFoundException { + String[] sum = new String[n + 1];// sum + char[] signSet = { '*', '/' };// sianSetַ + Random random = new Random(); + + for (int i = 1; i <= n; i++) { + String str = "(" + i + ")"; + int a = random.nextInt(100) + 1; + int b = random.nextInt(100) + 1; + int t = random.nextInt(signSet.length); + char sign = signSet[t]; + + switch (sign) { + case '*': + sum[i] = String.valueOf(a * b); + sign = ''; + break; + case '/': + if (b == 0 && a > b) { + i = i - 1; + continue; + } + sum[i] = String.valueOf(a / b); + if (a % b != 0) { + sum[i] = sum[i] + "..." + String.valueOf(a % b); + } + sign = ''; + break; + default: + ; + } + str = str + " " + a + " " + sign + " " + b + " " + "="; + out(str); + if (i == n) { + out("----------------׼----------------"); + } + } // forѭȷҪд뵽out.txtеstrֵҲҪĿ + + BufferedReader br = in(); + + for (int i = 1; i <= n; i++) { + String str = br.readLine() + " " + sum[i]; + out(str); + if (i == n) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");// ڸʽ + out("211406285 ־" + " " + df.format(new Date())); + } + } // forѭȷҪд뵽out.txtеstrֵҲҪĿĴ + } + + private static BufferedReader in() throws FileNotFoundException { + File file = new File("out.txt"); + InputStreamReader in = new InputStreamReader(new FileInputStream(file));// һĶ + BufferedReader br = new BufferedReader(in);// һ󣬰ļתɼʶĶ + return br; + } + + private static void out(String str) throws IOException { + File file = new File("out.txt");// һļָһļλ + file.createNewFile();// ָλôһļ + BufferedWriter br = new BufferedWriter(new FileWriter(file, true));// һ󣬰ļתɼʶĶ + br.write(str + "\r\n"); + br.flush(); + br.close(); + } + + private static void wrongJudgement(String[] args, int n, int grade) throws IOException, FileNotFoundException { + if (args.length < 4) { + System.out.println("밴 -n n -grade grade -grade grade -n nķʽ4"); + return; + } + + switch (args[0]) { + case "-n": { + if (args[1].length() > 8) { + System.out.println("Ŀ̫ˣ"); + } + n = Integer.parseInt(args[1]); + break; + } + case "-grade": { + grade = Integer.parseInt(args[1]); + if (grade < 1 || grade > 3) { + System.out.println("gradeֻȡ1~3"); + } + break; + } + default: + System.out.println("밴 -n n -grade grade -grade grade -n nķʽ4"); + break; + } + + switch (args[2]) { + case "-n": { + if (args[1].length() > 8) { + System.out.println("Ŀ̫ˣ"); + } + n = Integer.parseInt(args[3]); + break; + } + case "-grade": { + grade = Integer.parseInt(args[3]); + if (grade < 1 || grade > 3) { + System.out.println("gradeֻȡ1~3"); + } + break; + } + default: + System.out.println("밴 -n n -grade grade -grade grade -n nķʽ4"); + break; + } + if (n != -1 && grade != -1) { + if (grade == 1) { + gradeOne(n); + } + if (grade == 2) { + gradeTwo(n); + } + if (grade == 3) { + gradeThree(n); + } + } + } + + public static void main(String[] args) throws FileNotFoundException, IOException { + int n = -1, grade = -1; + // ͨжargs鳤жϲĸǷ + wrongJudgement(args, n, grade); } } From 99c43935532fa3f6a756596c47b152497d4001f1 Mon Sep 17 00:00:00 2001 From: caizhenyi <345027407@qq.com> Date: Sat, 15 Sep 2018 17:15:40 +0800 Subject: [PATCH 016/135] =?UTF-8?q?=E5=8F=AA=E6=98=AF=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=BF=90=E7=AE=97=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 什么都还没考虑 --- Pair_211606301_211605240/MathExam.java | 81 ++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Pair_211606301_211605240/MathExam.java diff --git a/Pair_211606301_211605240/MathExam.java b/Pair_211606301_211605240/MathExam.java new file mode 100644 index 0000000..8600dc8 --- /dev/null +++ b/Pair_211606301_211605240/MathExam.java @@ -0,0 +1,81 @@ + +public class MathExam { + private static void operation(int n) { + // TODO Զɵķ + int a=0,b=0,c=1,d=1; + int g=0; + int[] str= {a,b,c,d}; //abcdȼ 0Ϊ+-1Ϊ*/ + int[] answer = new int[n]; //𰸵 + String[] word = new String[n]; //Ŀ + for(int i=0;i=2;j--) { + g = (int)(Math.random()*(str.length)); //ѡȡstr鳤 + int num2 =1+(int) (Math.random()*1001); + if(g<=2) { + if(g==1) { + if(j==f) { + word[i]=num+"+"+num1; + answer[i] =num+num1; + } + word[i] = word[i]+"+"+num2; + answer[i] = answer[i]+num2; + } + else { + if(j==f) { + word[i]=num+"-"+num1; + answer[i] =Math.abs(num-num1); + } + word[i] = word[i]+"-"+num2; + answer[i] = answer[i]-num2; + } + } + else { + if(g==3) { + if(j==f) { + word[i]=num+"x"+num1; + answer[i] =num*num1; + } + word[i] = "("+word[i]+")"+"x"+num2; + answer[i] = answer[i]*num2; + j--; + } + else { + if(j==f) { + word[i]=num+""+num1; + answer[i] =num/num1; + } + word[i] = "("+word[i]+")"+""+num2; + answer[i] = answer[i]/num2; + j--; + } + } + + } + + } + + + for(int i=0;i Date: Sat, 15 Sep 2018 19:56:38 +0800 Subject: [PATCH 017/135] =?UTF-8?q?=E7=94=9F=E6=88=90=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=8B=AC=E5=8F=B7=E7=9A=84=E9=A2=98=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606348_211606338/MathExam.java | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Pair_211606348_211606338/MathExam.java diff --git a/Pair_211606348_211606338/MathExam.java b/Pair_211606348_211606338/MathExam.java new file mode 100644 index 0000000..60490f3 --- /dev/null +++ b/Pair_211606348_211606338/MathExam.java @@ -0,0 +1,37 @@ +package com.it666.course1; + +import java.util.Arrays; + +public class MathExam { + public static void main(String[] args) { + //2ַƴĿʹ + StringBuffer strbuf = new StringBuffer(); + StringBuffer strbuf1 = new StringBuffer(); + //randomĿеIJ + int random = 0; + // + String[] str = { "+", "-", "X", "" }; + //ɵ2-4ostr + String[] ostr = new String[4]; + + for(int i=0;i<10;i++) { + //ɵ2-4 + int operator = (int)(Math.random()*3)+2; + int k = 0; + for (int j = 0; j < operator; j++) { + k = (int)(Math.random()*4); + ostr[j]=str[k]; + } + for (int j = 0; j < operator+1; j++) { + random = (int)(Math.random()*1001); + strbuf.append(random+" "); + if(j Date: Sat, 15 Sep 2018 22:18:21 +0800 Subject: [PATCH 018/135] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E8=A6=81=E6=B1=82=EF=BC=9A=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=B0=8F=E5=AD=A6=E4=B8=89=E5=B9=B4=E7=BA=A7=E9=A2=98=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 完成nibolan(),calc(),grade3(),isNumber(),cmpOper()函数的编写 --- Pair_211617246_211606326/MathExam.java | 219 ++++++++++++++++++++++--- 1 file changed, 198 insertions(+), 21 deletions(-) diff --git a/Pair_211617246_211606326/MathExam.java b/Pair_211617246_211606326/MathExam.java index 3106f51..3ee6c8a 100644 --- a/Pair_211617246_211606326/MathExam.java +++ b/Pair_211617246_211606326/MathExam.java @@ -3,8 +3,9 @@ import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; -import java.util.Set; +import java.util.Stack; public class MathExam { @@ -68,7 +69,7 @@ private static boolean checkInput(String[] args) { return false; } } catch (NumberFormatException e) { - errMessage = "年级选择选项非整数!请重新运行!"; + errMessage = "年级选择选项非正整数!请重新运行!"; return false; } } @@ -103,7 +104,7 @@ private static boolean checkInput(String[] args) { return false; } } catch (NumberFormatException e) { - errMessage = "年级选择选项非整数!请重新运行!"; + errMessage = "年级选择选项非正整数!请重新运行!"; return false; } } @@ -115,17 +116,114 @@ private static boolean checkInput(String[] args) { } /* 将中缀表达式转换成后缀表达式 */ - private static String libolan(String shizi) { - return shizi; - + private static List nibolan(List shizi) { + /* + * 1.遍历中缀表达式 + * 2.若为操作数,则存入操作数栈 + * 3.若为左括号"("则直接存入运算符栈 + * 若为右括号则输出运算符栈中的运算符到操作数栈,直到遇到左括号为止 + * 若非括号运算符: + * 1.若运算符栈顶的运算符为括号,则直接存入运算符栈 + * 2.若比运算符栈顶的运算符优先级高,则直接存入运算符栈 + * 3.若比运算符栈顶的运算符优先级低或者相等,则不断输出栈顶运算符到操作数栈,直到栈顶没有运算符的优先级大于或者等于当前运算符,最后将当前运算符压入运算符栈 + * 4.当表达式读取完成后运算符栈中尚有运算符时,则依序取出运算符到操作数栈,直到运算符栈为空 + */ + List list = new ArrayList(); + Stack stackOper = new Stack();// 符号栈 + Stack stackNum = new Stack();// 数字栈 + for (String s : shizi) { + if (isNumber(s)) { + stackNum.push(s); + + } else if (s.equals("(")) { + stackOper.push(s); + } else if (s.equals(")")){ + while (!stackOper.peek().equals("(")) { + stackNum.push(stackOper.pop()); + } + stackOper.pop(); + } else { + // 当前为+-*/ + if (stackOper.empty()) { + // 运算符栈为空 + stackOper.push(s); + } else { + if (stackOper.peek().equals("(")) { + // 运算符栈顶的运算符为括号 + stackOper.push(s); + } else { + + if (cmpOper(String.valueOf(stackOper.peek()), s) < 0) { + // 运算符栈顶优先级小于当前符号,压栈 + stackOper.push(s); + } else { + stackNum.push(stackOper.pop()); + if (stackOper.empty()) { + stackOper.push(s); + } else { + if (cmpOper(String.valueOf(stackOper.peek()), s) >= 0) { + stackNum.push(stackOper.pop()); + stackOper.push(s); + } else { + stackOper.push(s); + } + } + } + } + } + } + } + while (!stackOper.empty()) { + stackNum.push(stackOper.pop()); + } + while (!stackNum.empty()) { + list.add(String.valueOf(stackNum.pop())); + } + Collections.reverse(list); + return list; } /* 计算后缀表达式的值 */ - private static int calc(String shizi) { - return 0; - + private static double calc(List shizi) { + /* + * 1.遍历后缀表达式,若为操作数,则入栈,若为操作符,则从栈堆弹出两个操作数num1和num2。注意:后弹出的num2是第一操作数,num1是第二操作数 + * 2.完成计算并将结果压入栈堆 + * 3.依次操作直到遍历结束,栈堆剩下的最后一个元素即为结果 + */ + Stack stack = new Stack(); + double result = 0;// 运算结果 + double number1, number2;// 两个运算数 + String oper;// 运算符号 + for (String s : shizi) { + if (isNumber(s)) { + stack.push(s); + } else { + oper = String.valueOf(s); + number1 = Double.parseDouble(stack.pop()); + number2 = Double.parseDouble(stack.pop()); + switch (oper) { + case "+": + result = number2 + number1; + break; + case "-": + result = number2 - number1; + break; + case "*": + result = number2 * number1; + break; + case "/": + result = number2 / number1; + break; + default: + break; + } + stack.push(String.valueOf(result)); + } + } + return Double.parseDouble(stack.pop()); } + /* 生成一年级题目 */ private static void grade1(int num) { /* @@ -150,8 +248,8 @@ private static void grade1(int num) { if (fuhao == 0) { do { // 保证没有重复的式子生成 - number1 = (int)(Math.random()*(GRADE1_MAX)+1); - number2 = (int)(Math.random()*(GRADE1_MAX)+1); + number1 = (int)(Math.random() * (GRADE1_MAX)+1); + number2 = (int)(Math.random() * (GRADE1_MAX)+1); checkRepeat = number1 + "+" + number2; } while (check1.contains(checkRepeat) || check2.contains(checkRepeat)); check1.add(number1 + "+" + number2); @@ -163,8 +261,8 @@ private static void grade1(int num) { } else if (fuhao ==1) { do { // 保证结果不为负数以及没有重复的式子生成 - number1 = (int)(Math.random()*(GRADE1_MAX)+1); - number2 = (int)(Math.random()*(GRADE1_MAX)+1); + number1 = (int)(Math.random() * (GRADE1_MAX)+1); + number2 = (int)(Math.random() * (GRADE1_MAX)+1); checkRepeat = number1 + "-" + number2; } while (number2 > number1 || check1.contains(checkRepeat)); check1.add(number1 + "-" + number2); @@ -176,6 +274,7 @@ private static void grade1(int num) { } } + /* 生成二年级题目 */ private static void grade2(int num) { /* @@ -200,8 +299,8 @@ private static void grade2(int num) { if (fuhao == 0) { do { // 保证没有重复的式子生成 - number1 = (int)(Math.random()*10); - number2 = (int)(Math.random()*10); + number1 = (int)(Math.random() * 10); + number2 = (int)(Math.random() * 10); checkRepeat = number1 + "×" + number2; } while (check1.contains(checkRepeat) || check2.contains(checkRepeat)); check1.add(number1 + "×" + number2); @@ -214,8 +313,8 @@ private static void grade2(int num) { } else if (fuhao == 1) { do { // 保证除数不为0以及没有重复的式子生成 - number1 = (int)(Math.random()*GRADE2_MAX); - number2 = (int)(Math.random()*10); + number1 = (int)(Math.random() * GRADE2_MAX); + number2 = (int)(Math.random() * 10); checkRepeat = number1 + "÷" + number2; } while (number2 <= (number1 / 10) || number2 == 0 || check1.contains(checkRepeat)); check1.add(number1 + "÷" + number2); @@ -237,13 +336,61 @@ private static void grade3(int num) { /* * 1.随机生成符号数量:2-4 * 2.根据符号数量随机生成符号 - * 3.根据加减符号数量生成括号数量:0-2 - * 4.插入括号到合适的位置 - * 5....待续 - * + * 3.若生成括号则插入括号到合适的位置 + * 4.将中缀表达式转换成后缀表达式并计算结果 + * 5.保存到out.txt + * 未完成: + * 1.乘号、除号符号未改成书面符号 + * 2.括号的数量可以为0到2对,只实现了生成一对括号并且括号中只包含一个运算符 + * 3.题目的最后存在一个空格 + * 3.运算过程中的减法运算不能保证没有负数 + * 4.运算过程中的除法运算不能有余数 + * 5.查重 */ + int number; + String shizi; + + strArrayQ = new ArrayList(); + strArrayA = new ArrayList(); + for (int j = 1; j <= num; j++) { + shizi = ""; + List exp;// 生成出来的中缀表达式 + do { + // 符号数量2-4 + int operNum = (int)(Math.random()*3) + 2; + exp = new ArrayList(); + number = (int)(Math.random() * 1001); + exp.add(String.valueOf(number)); + for (int i = 0; i < operNum; i++) { + exp.add(operator[(int)(Math.random() * 4)]); + number = (int)(Math.random() * 1001); + exp.add(String.valueOf(number)); + + } + int size = exp.size(); + boolean kuohao = Math.random() > 0.5; + if (kuohao) { + // 生成括号 + int index1 = (int)(Math.random() * (size - 1)); + if (index1 % 2 == 0) { + } else { + index1 -= 1; + } + int index2 = index1 + 3; + exp.add(index1, "("); + exp.add(index2 + 1, ")"); + } + } while (calc(nibolan(exp)) < 0 || calc(nibolan(exp)) % 1 !=0 || calc(nibolan(exp)) > 1000);// 最终结果不能小于0大于1000和小数 + for (String s : exp) { + shizi += s; + shizi += " "; + } + strArrayQ.add("(" + j + ") " + shizi); + strArrayA.add("(" + j + ") " + shizi + " = " + (int) calc(nibolan(exp))); + } } + /* 输出到out.txt文件 */ private static void createTxt() throws IOException { /* @@ -279,4 +426,34 @@ private static void createTxt() throws IOException { } } + /* 判断字符串是否为数字 */ + private static boolean isNumber(String s) { + try { + Integer.parseInt(s); + } catch (NumberFormatException e) { + return false; + } + return true; + } + + /* 比较两个运算符的优先级 */ + private static int cmpOper(String op1, String op2) { + if (op1.equals("+") || op1.equals("-")) { + if (op2.equals("+") || op2.equals("-")) { + return 0; + } else { + // if (op2.equals("*") || op2.equals("/")) {} + return -1; + } + } else { + // if (op1.equals("*") || op1.equals("/")) + if (op2.equals("+") || op2.equals("-")) { + return 1; + } else { + // if (op2.equals("*") || op2.equals("/")) { + return 0; + } + } + } + } From 8defab47dab8bffecb18dc35ca6d245210482b70 Mon Sep 17 00:00:00 2001 From: HYOUKACC Date: Sun, 16 Sep 2018 01:01:48 +0800 Subject: [PATCH 019/135] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=95=B4=E5=90=88?= =?UTF-8?q?=EF=BC=9A=E5=AE=9E=E7=8E=B0=E5=B8=A6=E6=8B=AC=E5=8F=B7=E7=9A=84?= =?UTF-8?q?=E5=9B=9B=E5=88=99=E6=B7=B7=E5=90=88=E8=BF=90=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 整合 找括号类 以及 四则运算类; 可以计算带括号的四则运算题目; 尚未加入年级限制; 尚未考虑除法数据类型; 规范代码格式; 完善注释; --- Pair_211614331_211614354/Arithmetic.java | 130 +++++++++++----------- Pair_211614331_211614354/FindBracket.java | 122 ++++++++++---------- 2 files changed, 124 insertions(+), 128 deletions(-) diff --git a/Pair_211614331_211614354/Arithmetic.java b/Pair_211614331_211614354/Arithmetic.java index e0ae57e..bc11c00 100644 --- a/Pair_211614331_211614354/Arithmetic.java +++ b/Pair_211614331_211614354/Arithmetic.java @@ -2,85 +2,91 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -public class Arithmetic { // +public class Arithmetic extends Operation{ // + - public static void test() { - //תַѶַ - String str="1*9-9+695/865"; - //56/8-6*8+6 - //35-69+10*5/8 - //8+9*8*8/6 - //1-2+3+4 - Matcher m=Pattern.compile("(\\d+)").matcher(str); // - Matcher m2=Pattern.compile("[\\+\\-\\*\\/]").matcher(str); // ҷ - - int firstNumber=0; - int secondNumber=0; - int answerNumber=0; + public Arithmetic(String sPart) { + setAnswerNumber(Integer.valueOf(arithmeticOne(sPart))); + } - LinkedList li=new LinkedList(); // - LinkedList li2=new LinkedList();// - - - int s; + public static String arithmeticOne(String sPart) { // һĿ - while(m.find()) { - li.add(m.group()); //ֻߴڼ - } - System.out.println(li); + // (Ŀ)תַѶַ + // صǰĿĴ𰸸 (FindBracket) + + final Matcher findNumber = Pattern.compile("(\\d+)").matcher(sPart); // ַе + final Matcher findSymbol = Pattern.compile("[\\+\\-\\*\\/]").matcher(sPart); // ַеķ + + LinkedList numberSet = new LinkedList(); // ֵļ + LinkedList symbolSet = new LinkedList(); // ŵļ - while(m2.find()) { // - li2.add(m2.group()); + while(findNumber.find()) { // ʼַе + numberSet.add(findNumber.group()); // ҵִּ } - System.out.println(li2); - - for(int i=0;i numberSet, LinkedList symbolSet) { + + for (int i = 0 ; i < symbolSet.size(); i++) { + //(Ŀ) żϣֻ*/ţΪȳ˳Ӽ + // ƥһţѽּϣȻӷżɾ˷ + + if (symbolSet.get(i).equals("*") || symbolSet.get(i).equals("/")) { // */ʱ + + firstNumber = Integer.valueOf(numberSet.get(i)); // ּеǰλõ + secondNumber = Integer.valueOf(numberSet.get(i + 1)); // ҵڶ + + if (symbolSet.get(i).equals("*")) { // жϵǰżϵķţ˷ + answerNumber = firstNumber * secondNumber; // answerNumber + + } else if (symbolSet.get(i).equals("/")) { // + answerNumber = firstNumber / secondNumber; } - li.set(i, String.valueOf(answerNumber)); - li.remove(i+1);//ɾһ - li2.remove(i); - i--; + + numberSet.set(i, String.valueOf(answerNumber)); // ּϵĵiλãӴ𰸣ḲǵfirstNumber + numberSet.remove(i + 1); // ɾּеsecondNUmber + symbolSet.remove(i); // ǰѾɣӷżɾȥ˷ţٺڱϴ + i--; // ΪǰλõķѾɾˣϻԶǰ룬ҪһţҪλ-1 } } + } + + public static void addAndSubtract(LinkedList numberSet, LinkedList symbolSet) { - for(int i=0;i sInitialProblemSet; // ʼĿϣţԺ󷽱ɾݣ + static String sProblem; // Ŀַ - public static void ts() { - // - String s1="(A+B)-(C+D)*(B+A)"; - // ((A+B)/(C+D-B))*A - //((A+B)*(C+D)-A)/B - //(A+B)-(C+D)*(B+A) - - ArrayList a1=new ArrayList<>();// ʼĿԺ󷽱ɾݣ - - LinkedList l1=new LinkedList<>(); - for(int i=0;i left=new LinkedList<>(); - ArrayDeque right=new ArrayDeque<>(); - */ - - - Matcher m=Pattern.compile("\\(").matcher(s1); - Matcher m2=Pattern.compile("\\)").matcher(s1); - int right=0; //ŵλ - int left=0; //ŵλ + + public void findOne(String sProblem) { // ҵһСţ + + LinkedList sInitialProblemSet = new LinkedList(); // ʼĿԺ󷽱ɾݣ + + for(int i = 0; i < sProblem.length(); i++) { // ѽܵĿת浽ʼĿļ + sInitialProblemSet.add(String.valueOf(sProblem.charAt(i))); + } - for(int i=0;i=0;j--) { - if(l1.get(j).equals("(")) { - l1.set(j, "!"); - left=j; + for(int i = 0; i < sInitialProblemSet.size(); i++) { // ϣҵһ + + + if( sInitialProblemSet.get(i).equals(")")) { // ǰλʱ + sRight = i; // ¼ŵλ + + for(int j = sRight-1; j >= 0; j--) { // ӵǰǰҵһ + + if(sInitialProblemSet.get(j).equals("(")) { + sInitialProblemSet.set(j, "!"); // ı־ + sLeft = j; // ¼λ break; } } - for(int z=left;z<=right;z++) { - System.out.print(l1.get(z)); - //l1.remove(z); + for( int z = sLeft + 1; z < sRight; z++) // ѭҳ֮ + { + sPart = sPart + sInitialProblemSet.get(z); // ҳƴΪĿһ + } - System.out.println(); + + @SuppressWarnings("unused") + Arithmetic ar = new Arithmetic(sPart); // sPartΪ + + sInitialProblemSet.set( sLeft, String.valueOf(getAnswerNumber()) ); + + for(int m = 1; m <= sRight-sLeft ; m++){ + + sInitialProblemSet.remove(sLeft + 1); - } - } - - - - /* - while(m2.find()) { //ţλ󣬴ӵǰλɨ裬ҵһ - - //right.addLast(m2.start()); - right=m2.start(); //ŵλ - for(int i=right-1;i>=0;i--) { - if( (String.valueOf(s1.charAt(i))).equals("(") ) { - left=i; // һСλõ ŵλ - break; } - } - - System.out.println(s1.substring(left, right+1)); + + i = i - ( sRight - sLeft ); // ɾsRight-sLeftԪأiλҲƶ - } // - */ - - - } + // ɾiλ + + }//ǰλʱ + + sPart=""; // Ϊƴַÿҵһ󣬾Ҫַ + }// ҵ + + for(int i = 0; i < sInitialProblemSet.size(); i++) { // ŵʽӴ + sPart = sPart + sInitialProblemSet.get(i); + } + @SuppressWarnings("unused") + Arithmetic arS = new Arithmetic(sPart); + + }//findOne + + } From f0d28f73af111155cb75479dfc3f0f819ada9abf Mon Sep 17 00:00:00 2001 From: caizhenyi <345027407@qq.com> Date: Sun, 16 Sep 2018 10:07:59 +0800 Subject: [PATCH 020/135] =?UTF-8?q?=E8=BE=93=E5=85=A5=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 未完善 --- Pair_211606301_211605240/MathExamV2.java | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Pair_211606301_211605240/MathExamV2.java diff --git a/Pair_211606301_211605240/MathExamV2.java b/Pair_211606301_211605240/MathExamV2.java new file mode 100644 index 0000000..33f01b6 --- /dev/null +++ b/Pair_211606301_211605240/MathExamV2.java @@ -0,0 +1,65 @@ + +public class MathExamV2 { + public static void math(int n,int grade) { + System.out.println("n:"+n); + System.out.println("grade:"+grade); + } + public static int[] input(String[] args,int[] str) { + + String regex="\\d*"; + if(args.length!=4) {//Ϊ + System.out.println("IJӦΪ4"); + str[0]=0; + return str; + } + if((!args[1].matches(regex))||(!args[3].matches(regex))) {//벻Ϊ + System.out.println("꼶ӦΪ"); + str[0]=0; + return str; + } + if(!((args[0].equals("-n") && args[2].equals("-grade"))||(args[0].equals("-grade") && args[2].equals("-n")))) { + System.out.println("Ҳ-n-grade"); + str[0]=0; + return str; + } + String s0=String.valueOf(args[1]); + String s1=String.valueOf(args[3]); + int grade=Integer.parseInt(s0); + int n=Integer.parseInt(s1); + + if(args[0].equals("-n") && args[2].equals("-grade")) { + n=Integer.parseInt(s0); + grade=Integer.parseInt(s1); + } + + + if( grade>3 || grade<=0 ) { + System.out.println("꼶Ӧһ꼶"); + str[0]=0; + return str; + } + if(n<=0||n>1000) + { + System.out.println("ĿӦ1~1000"); + str[0]=0; + return str; + } + str[0]=1; + str[1]=n; + str[2]=grade; + return str; + } + + public static void main(String[] args) { + // TODO Զɵķ + int[] str= new int[3]; + input(args,str); + if(str[0]==0){ + return ; + } + int n=str[1]; + int grade=str[2]; + math(n,grade); + } + +} From de6a2a7932a11c25e5f9302282c950fe0ccbd21e Mon Sep 17 00:00:00 2001 From: a139520017 Date: Sun, 16 Sep 2018 14:22:39 +0800 Subject: [PATCH 021/135] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=9B=9B=E5=88=99=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E9=94=99=E8=AF=AF=E6=8E=92=E6=9F=A5=E8=BF=98?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E8=BF=9B=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair2018_211406285_211606314/MathExamLv2.java | 243 +++++++++++++----- 1 file changed, 174 insertions(+), 69 deletions(-) diff --git a/Pair2018_211406285_211606314/MathExamLv2.java b/Pair2018_211406285_211606314/MathExamLv2.java index 86c7d11..035fe9d 100644 --- a/Pair2018_211406285_211606314/MathExamLv2.java +++ b/Pair2018_211406285_211606314/MathExamLv2.java @@ -10,45 +10,134 @@ import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Iterator; +import java.util.LinkedList; import java.util.Random; public class MathExamLv2 { - private Object[] stack; - private int size;// Ԫظ; + public static String answer=""; + //ڼ¼ + private static LinkedList operators=new LinkedList<>(); + //ڼ¼ + private static LinkedList output=new LinkedList<>(); + //չʾ׺ʽ + private static StringBuilder sb=new StringBuilder(); + //׺ʽתΪ׺ʽ + private static void transferToPostfix(LinkedList list){ + Iterator it=list.iterator(); + while (it.hasNext()) { + String s = it.next(); + if (isOperator(s)) { + if (operators.isEmpty()) { + operators.push(s); + } + else { + //IJΪ")"ȼջԪصȼ߻һ򽫲ѹջ + if (priority(operators.peek())<=priority(s)&&!s.equals(")")) { + operators.push(s); + } + else if(!s.equals(")")&&priority(operators.peek())>priority(s)){ + while (operators.size()!=0&&priority(operators.peek())>=priority(s) + &&!operators.peek().equals("(")) { + if (!operators.peek().equals("(")) { + String operator=operators.pop(); + sb.append(operator).append(" "); + output.push(operator); + } + } + operators.push(s); + } + //IJ")"򵯳ջʼһ"("֮ǰв + else if (s.equals(")")) { + while (!operators.peek().equals("(")) { + String operator=operators.pop(); + sb.append(operator).append(" "); + output.push(operator); + } + //"(" + operators.pop(); + } + } + } + //ΪDz + else { + sb.append(s).append(" "); + output.push(s); + } + } + if (!operators.isEmpty()) { + Iterator iterator=operators.iterator(); + while (iterator.hasNext()) { + String operator=iterator.next(); + sb.append(operator).append(" "); + output.push(operator); + iterator.remove(); + } + } + + System.out.println("׺ "+sb); + calculate(); + //Collections.reverse(output); + } - public MathExamLv2() {// ĬϳΪ10; - this(10); - } - - public MathExamLv2(int len) {// ҲԼó,; - stack = new Object[len]; - } + //ݺ׺ʽ + private static void calculate(){ + LinkedList mList=new LinkedList<>(); + String[] postStr=sb.toString().split(" "); + for (String s:postStr) { + if (isOperator(s)){ + if (!mList.isEmpty()){ + int num1=Integer.valueOf(mList.pop()); + int num2=Integer.valueOf(mList.pop()); + /* if (s.equals("/")&&num1==0){ + System.out.println("Ϊ0"); + return; + }*/ + int newNum=cal(num2,num1,s); + mList.push(String.valueOf(newNum)); + } + } + else { + //ѹջ + mList.push(s); + } + } + if (!mList.isEmpty()){ + answer=mList.pop(); + } + sb.setLength(0); + } - public int size() {// Ԫظ; - return size; - } + //жǷ + private static boolean isOperator(String oper){ + if (oper.equals("+")||oper.equals("-")||oper.equals("/")||oper.equals("*") + ||oper.equals("(")||oper.equals(")")) { + return true; + } + return false; + } + //ȼ + private static int priority(String s){ + switch (s) { + case "+":return 1; + case "-":return 1; + case "*":return 2; + case "/":return 2; + case "(":return 3; + case ")":return 3; + default :return 0; + } + } - public int capacity() {// 鳤,; - return stack.length; - } - - public void push(Object o) {// ջ; - size++; - stack[size - 1] = o; - } - - public boolean isEmpty() {// п; - return size == 0; - } - - public Object pop() {// ջ; - if (isEmpty()) {// Ҫп; - throw new ArrayIndexOutOfBoundsException("Ϊ"); - } - Object o = stack[--size]; - stack[size] = null; - return o; - } + private static int cal(int num1,int num2,String operator){ + switch (operator){ + case "+":return num1+num2; + case "-":return num1-num2; + case "*":return num1*num2; + case "/":return num1/num2; + default :return 0; + } + } private static void gradeOne(int n) throws IOException, FileNotFoundException { int[] sum = new int[n + 1];// sum @@ -79,7 +168,7 @@ private static void gradeOne(int n) throws IOException, FileNotFoundException { str = str + " " + a + " " + sign + " " + b + " " + "="; out(str); if (i == n) { - out("----------------׼----------------"); + out("\r\n"); } } // forѭȷҪд뵽out.txtеstrֵҲҪĿ @@ -129,7 +218,7 @@ private static void gradeTwo(int n) throws IOException, FileNotFoundException { str = str + " " + a + " " + sign + " " + b + " " + "="; out(str); if (i == n) { - out("----------------׼----------------"); + out("\r\n"); } } // forѭȷҪд뵽out.txtеstrֵҲҪĿ @@ -146,47 +235,63 @@ private static void gradeTwo(int n) throws IOException, FileNotFoundException { } private static void gradeThree(int n) throws IOException, FileNotFoundException { - String[] sum = new String[n + 1];// sum - char[] signSet = { '*', '/' };// sianSetַ + String[] sum = new String[n]; Random random = new Random(); - - for (int i = 1; i <= n; i++) { - String str = "(" + i + ")"; - int a = random.nextInt(100) + 1; - int b = random.nextInt(100) + 1; - int t = random.nextInt(signSet.length); - char sign = signSet[t]; - - switch (sign) { - case '*': - sum[i] = String.valueOf(a * b); - sign = ''; - break; - case '/': - if (b == 0 && a > b) { - i = i - 1; - continue; + MathExamLv2 stack = new MathExamLv2(); + char[] signSet = { '*', '/' ,'+','-'}; + for(int i=0;i1) { + flag=random.nextInt(2);//һʱж֮һĸʳ + } + int number[] = new int[4]; + for(int j=0;j<4;j++) { + number[j] = random.nextInt(100) + 1; + } + String str= "(" + i + ")" + " " + number[0]; + for(int k=0;k Date: Sun, 16 Sep 2018 14:41:26 +0800 Subject: [PATCH 022/135] =?UTF-8?q?=E5=AE=8C=E5=96=84grade3()=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.增加查重功能 2.保证了最少有两个不同的运算符 3.去掉了题目文档中的最后一个空格 4.将输出的乘号和除号改为书面语言 --- Pair_211617246_211606326/MathExam.java | 44 +++++++++++++++----------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/Pair_211617246_211606326/MathExam.java b/Pair_211617246_211606326/MathExam.java index 3ee6c8a..1a564d7 100644 --- a/Pair_211617246_211606326/MathExam.java +++ b/Pair_211617246_211606326/MathExam.java @@ -4,13 +4,16 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.Stack; public class MathExam { final static int GRADE1_MAX = 20; final static int GRADE2_MAX = 90; + final static int GRADE3_MAX = 10000; final static String FILENAME = "out.txt"; static int num; static int grade; @@ -152,7 +155,6 @@ private static List nibolan(List shizi) { // 运算符栈顶的运算符为括号 stackOper.push(s); } else { - if (cmpOper(String.valueOf(stackOper.peek()), s) < 0) { // 运算符栈顶优先级小于当前符号,压栈 stackOper.push(s); @@ -305,7 +307,6 @@ private static void grade2(int num) { } while (check1.contains(checkRepeat) || check2.contains(checkRepeat)); check1.add(number1 + "×" + number2); check2.add(number2 + "×" + number1); - result = number1 * number2; // 记录题目和答案 strArrayQ.add("(" + i + ") " + number1 + " × " + number2 + " ="); @@ -340,33 +341,41 @@ private static void grade3(int num) { * 4.将中缀表达式转换成后缀表达式并计算结果 * 5.保存到out.txt * 未完成: - * 1.乘号、除号符号未改成书面符号 - * 2.括号的数量可以为0到2对,只实现了生成一对括号并且括号中只包含一个运算符 - * 3.题目的最后存在一个空格 - * 3.运算过程中的减法运算不能保证没有负数 - * 4.运算过程中的除法运算不能有余数 - * 5.查重 + * 1.括号的数量可以为0到2对,只实现了生成一对括号并且括号中只包含一个运算符 + * 2.运算过程中的减法运算不能保证没有负数 + * 3.运算过程中的除法运算不能有余数 */ int number; String shizi; + // 检查重复 + List check1 = new ArrayList(); + StringBuffer checkRepeat; + Set checkOper; strArrayQ = new ArrayList(); strArrayA = new ArrayList(); for (int j = 1; j <= num; j++) { shizi = ""; List exp;// 生成出来的中缀表达式 + checkRepeat = new StringBuffer(); do { - // 符号数量2-4 + // 符号数量2-4 int operNum = (int)(Math.random()*3) + 2; + checkOper = new HashSet(); exp = new ArrayList(); - number = (int)(Math.random() * 1001); + number = (int)(Math.random() * 501); exp.add(String.valueOf(number)); + checkRepeat.append(String.valueOf(number)); for (int i = 0; i < operNum; i++) { - exp.add(operator[(int)(Math.random() * 4)]); - number = (int)(Math.random() * 1001); + String temp = operator[(int)(Math.random() * 4)]; + checkOper.add(temp); + exp.add(temp); + checkRepeat.append(temp); + number = (int)(Math.random() * 501); exp.add(String.valueOf(number)); - + checkRepeat.append(String.valueOf(number)); } + check1.add(checkRepeat.toString()); int size = exp.size(); boolean kuohao = Math.random() > 0.5; if (kuohao) { @@ -380,13 +389,13 @@ private static void grade3(int num) { exp.add(index1, "("); exp.add(index2 + 1, ")"); } - } while (calc(nibolan(exp)) < 0 || calc(nibolan(exp)) % 1 !=0 || calc(nibolan(exp)) > 1000);// 最终结果不能小于0大于1000和小数 + } while (calc(nibolan(exp)) < 0 || calc(nibolan(exp)) % 1 !=0 || calc(nibolan(exp)) > GRADE3_MAX || checkOper.size() < 2 || check1.contains(checkRepeat));// 最终结果不能小于0和小数 for (String s : exp) { shizi += s; shizi += " "; } - strArrayQ.add("(" + j + ") " + shizi); - strArrayA.add("(" + j + ") " + shizi + " = " + (int) calc(nibolan(exp))); + strArrayQ.add("(" + j + ") " + shizi.replace("*", "×").replace("/", "÷").trim()); + strArrayA.add("(" + j + ") " + shizi.replace("*", "×").replace("/", "÷") + "= " + (int) calc(nibolan(exp))); } } @@ -442,15 +451,12 @@ private static int cmpOper(String op1, String op2) { if (op2.equals("+") || op2.equals("-")) { return 0; } else { - // if (op2.equals("*") || op2.equals("/")) {} return -1; } } else { - // if (op1.equals("*") || op1.equals("/")) if (op2.equals("+") || op2.equals("-")) { return 1; } else { - // if (op2.equals("*") || op2.equals("/")) { return 0; } } From 579d90d3eb87da8218688d5c4be490769363e319 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Sun, 16 Sep 2018 15:35:32 +0800 Subject: [PATCH 023/135] Add files via upload --- Pair_211606367_211606445/Calculation.java | 171 ++++++++++++++ Pair_211606367_211606445/MathExam.java | 263 ++++++++++++++-------- 2 files changed, 344 insertions(+), 90 deletions(-) create mode 100644 Pair_211606367_211606445/Calculation.java diff --git a/Pair_211606367_211606445/Calculation.java b/Pair_211606367_211606445/Calculation.java new file mode 100644 index 0000000..4b0bf1a --- /dev/null +++ b/Pair_211606367_211606445/Calculation.java @@ -0,0 +1,171 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +public class Calculation { + int sum = 0; + String word = "";; + String[] cal_str = {"+","-","x",""}; + List inffix_expression = new ArrayList(); + List suffix_expression = new ArrayList(); + Stack cal_symbol = new Stack(); + Stack cal_sum = new Stack(); + + public Calculation(String cal_problem) { + super(); + String str = ""; + for (int i = 0; i < cal_problem.length(); i++) { + if(cal_problem.charAt(i) >= 48 && cal_problem.charAt(i) <= 57) + { + while(i < cal_problem.length() && cal_problem.charAt(i) >= 48 && cal_problem.charAt(i) <= 57) + { + str += cal_problem.charAt(i); + i++; + } + inffix_expression.add(str);str = "";i--; + } + else + { + inffix_expression.add(cal_problem.substring(i, i+1)); + } + } + } + + /** + * ׺ʽת׺ʽ + * + */ + public void cal() + { + String str; + int j = 0; + for(int i = 0;i < inffix_expression.size();i++) { + str = inffix_expression.get(i); + if(str.matches("[0-9]+")) + suffix_expression.add(str); + else if(str.equals("(")) + cal_symbol.push(str); + else if(str.equals(")")) + { + while(!(cal_symbol.peek().equals("("))) + { + suffix_expression.add(cal_symbol.pop()); + } + cal_symbol.pop(); + } + else + { + while(cal_symbol.size()!=0 && Oper(cal_symbol.peek(),str)) + { + suffix_expression.add(cal_symbol.pop()); + } + cal_symbol.push(str); + } + } + while(cal_symbol.size()!=0) + { + suffix_expression.add(cal_symbol.pop()); + } + } + + private boolean Oper(String peek, String str) { + int i = 0,j = 0; + if(peek.equals("(") || peek == null) + return false; + while(i < cal_str.length && cal_str[i] != peek) + { + i++; + } + while(j < cal_str.length && cal_str[j] != str) + { + j++; + } + if(i/2 >= j/2) + return true; + else + return false; + } + + /** + * ׺ʽ沨ʽ + * + */ + public boolean suffix_expression_summation() + { + int remainder = 0; + for(int i = 0;i < suffix_expression.size();i++) { + if(suffix_expression.get(i).matches("\\d+")) + { + cal_sum.push(suffix_expression.get(i)); + } + else + { + int num1 = Integer.parseInt(cal_sum.pop()); + int num2 = Integer.parseInt(cal_sum.pop()); + if(suffix_expression.get(i).equals("+")) + { + sum = num1+num2; + } + else if(suffix_expression.get(i).equals("-")) + { + sum = num1-num2; + } + else if(suffix_expression.get(i).equals("x")) + { + sum = num1*num2; + } + else if(suffix_expression.get(i).equals("") && num2==0) + { + return false; + } + else if(suffix_expression.get(i).equals("")) + { + sum = num1/num2; + remainder = num1%num2; + if(remainder!=0) + return false; + } + cal_sum.push(sum+""); + } + } + sum = Integer.parseInt(cal_sum.pop()); + if(sum < 0) + return false; + else + return true; + } + + /** + * ׺ʽɺϸ׺ʽword + * + */ + public void infix_expression() + { + for (int i = 0; i < inffix_expression.size(); i++) { + if(i == inffix_expression.size()-1) + { + word += inffix_expression.get(i); + return; + } + else + { + word += inffix_expression.get(i)+" "; + } + } + } + + /** + * @return word + */ + public String getword() { + return word; + } + /** + * ȡ׺ʽֵ + * @return sum + */ + public int getSum() { + return sum; + } + +} diff --git a/Pair_211606367_211606445/MathExam.java b/Pair_211606367_211606445/MathExam.java index e415d9b..77c4c1c 100644 --- a/Pair_211606367_211606445/MathExam.java +++ b/Pair_211606367_211606445/MathExam.java @@ -12,86 +12,160 @@ public class MathExam { static Scanner input = new Scanner(System.in); - static String filename ="out.txt"; - static String[] str = {"+","-","x",""}; - static List Calculation_problem = new ArrayList(); - static int number1 = 0,Symbol = 0,number2 = 0,Sum = 0, - Remainder = 0,number = -1,grade = -1,Calculation_Num = 0; - static Random ranNum = new Random(101); - static Random ranStr = new Random(4); - static String word = null,check_message = null; + static String filename ="out.txt"; static File file = new File(filename),parent = null; static OutputStream out = null; - static String[] arg= {" "," "}; + static String[] str = {"+","-","x",""},arg= {" "," "}; + static List Calculation_Problem = new ArrayList(); + static int cal_number1 = 0, cal_number2 = 0,symbol = 0, sum = 0, remainder = 0, + number = -1, grade = -1, + calculation_num = 0 ,ran_symbol_num = 0,ran_left_parenthesis = 0; + static Random ranNum = new Random(),ranStr = new Random(),ran_symbolnum= new Random(),ran_yes_no = new Random(); + static String word = null,check_message = null,cal_pro = null; static Pattern pattern = Pattern.compile("[0-9]*"); public static void main(String[] args) { - arg[0] = args[0];arg[1] = args[1]; - file_Initialization(file);//ĵʼ + File_Initialization(file);//ĵʼ + if(args[0].equals("-n") && args[2].equals("-grade")) + { arg[0] = args[1];arg[1] = args[3];} + else if(args[0].equals("-grade") && args[2].equals("-n")) + { arg[0] = args[3];arg[1] = args[1];} + else + System.out.print("󣡣"); Input_Message();//Ϣ //ɺϸĿ - //24 - //Լ - //Ľи - //Ϊ0 - //0-1000ڣ˵ - //ȻΪһ꼶꼶ĹܻҪ for (int i = 1; i <= number; i++) { - number1 = ranNum.nextInt(100); - number2 = ranNum.nextInt(100); - iteration_part(grade);//ɺʵļӼ˳ - if(str[Symbol].equals("+") && number1 + number2 > 100 - || str[Symbol].equals("-") && number1 - number2 < 0 - || str[Symbol].equals("x") && number1 * number2 > 100 - || str[Symbol].equals("") && number2 == 0 - ) + Iteration(i);//ɺʵļӼ˳ + File_Write_Problem(i);//Ŀдĵ + } + if(number!=0) + File_Write_Answer();//дĵ + } + + /** + Сѧ꼶Ҫ£ + 24 + Լ + Ľи--Ҫ沨ʱж + Ϊ0 + 0-1000ڣ˵ + ȻΪһ꼶꼶ĹܻҪ + + ѯ꼶С + * + * **/ + private static void Iteration(int i) { + cal_number1 = ranNum.nextInt(1001); + cal_number2 = ranNum.nextInt(1001); + symbol = ranStr.nextInt(4); + if(grade==1 && symbol<=1) + { + if(str[symbol].equals("+") && cal_number1 + cal_number2 <= 100) + sum = cal_number1 + cal_number2; + else if(str[symbol].equals("-") && cal_number1 - cal_number2 >= 0) + sum = cal_number1 - cal_number2; + else + Iteration(i); + word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str[symbol]+" "+Integer.toString(cal_number2); + return; + } + else if(grade==2) + { + if(str[symbol].equals("+") && cal_number1 + cal_number2 <= 100) + sum = cal_number1 + cal_number2; + else if(str[symbol].equals("-")&& cal_number1 - cal_number2 >= 0) + sum = cal_number1 - cal_number2; + else if(str[symbol].equals("x") && cal_number1 * cal_number2 <= 100) + sum = cal_number1 * cal_number2; + else if(str[symbol].equals("") && cal_number2 != 0) + { + sum = cal_number1 / cal_number2; + remainder = cal_number1 % cal_number2; + } + else + Iteration(i); + word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str[symbol]+" "+Integer.toString(cal_number2); + return; + } + else if(grade==3) + { + ran_symbol_num = ran_symbolnum.nextInt(3)+2; + word = Integer.toString(cal_number1); + int k = -1; + for(int j=1;j<=ran_symbol_num;j++) + { + cal_number2 = cal_number1; + cal_number1 = ranNum.nextInt(1001); + symbol = ranStr.nextInt(4); + ran_left_parenthesis = ran_yes_no.nextInt(2); + if(str[symbol].equals("+") && cal_number2 + cal_number1 > 1000 + || str[symbol].equals("-") && cal_number2 - cal_number1 < 0 + || str[symbol].equals("x") && cal_number2 * cal_number1 > 1000 + || str[symbol].equals("") && j!=1 && cal_number1==0) { - i--; + j--; continue; } - else - { - if(str[Symbol].equals("+")) - Sum = number1 + number2; - else if(str[Symbol].equals("-")) - Sum = number1 - number2; - else if(str[Symbol].equals("x")) - Sum = number1 * number2; - else - { - Sum = number1 / number2; - Remainder = number1 % number2; + else if(ran_left_parenthesis % 2 == 1 && j <= ran_symbol_num-2) + { + if(j == 1) + { + word = "(" + word; + symbol = ranStr.nextInt(2); + cal_number1 = ranNum.nextInt(1001); + word = word + str[symbol] + Integer.toString(cal_number1)+")"; + symbol = ranStr.nextInt(2) + 2; + cal_number1 = ranNum.nextInt(1001); + word = word+str[symbol]+Integer.toString(cal_number1); + j++; + } + else if(j <= ran_symbol_num-2) + { + word = word + str[symbol] + "("+Integer.toString(cal_number1); + if(symbol == 0 || symbol == 1) + symbol = ranStr.nextInt(2); + else + symbol = ranStr.nextInt(4); + cal_number1 = ranNum.nextInt(1001); + word = word + str[symbol] + Integer.toString(cal_number1)+")"; } - file_write_problem(str, number1, number2, Sum, Symbol, out, i);//Ŀдĵ + continue; } + word = word+str[symbol]+Integer.toString(cal_number1); } - if(number!=0) - file_write_answer();//дĵ - } - - private static void iteration_part(int grade) { - Symbol = ranStr.nextInt(4); - if(grade==1 && Symbol<=1) - return; - else if(grade==2 && Symbol<=3) - return; + Calculation calculation = new Calculation(word); + calculation.infix_expression(); + calculation.cal(); + if(calculation.suffix_expression_summation()) + { + word = "("+i+") "+calculation.getword(); + sum = calculation.getSum(); + return; + } + else + Iteration(i); + } else - iteration_part(grade); + Iteration(i); } private static void Input_Message() { int j=1; + check_message = arg[0];// + if(!pattern.matcher(check_message).matches()) + { + System.out.print("Ϸ"); + check_message = input.nextLine(); + } + else + { + number = Integer.parseInt(check_message); + if(number < 0) + System.out.print("Ϸ"); + } + j++; while(number<0) { - if(j==1) - { - check_message = arg[0]; - if(!pattern.matcher(check_message).matches()) - { - System.out.print("Ϸ"); - check_message = input.nextLine(); - } - } if(j!=1) check_message = input.nextLine(); if(!pattern.matcher(check_message).matches()) @@ -99,42 +173,52 @@ private static void Input_Message() { System.out.print("Ϸ"); continue; } - number = Integer.parseInt(check_message); - if(number < 0) - System.out.print("Ϸ"); - + else + { + number = Integer.parseInt(check_message); + if(number < 0) + System.out.print("Ϸ"); + } } j=1; - while(grade!=1 && grade!=2) + check_message =arg[1];//꼶 + if(!pattern.matcher(check_message).matches()) + { + System.out.print("꼶Ϸ꼶"); + check_message = input.nextLine(); + } + else + { + grade = Integer.parseInt(check_message); + if(grade<1 || grade>3) + System.out.print("꼶Ϸ!꼶(123)"); + } + j++; + while(grade<1 || grade>3) { - if(j==1) - { - check_message =arg[1]; - if(!pattern.matcher(check_message).matches()) - { - System.out.print("꼶Ϸ꼶"); - check_message = input.nextLine(); - } - } if(j!=1) check_message = input.nextLine(); if(!pattern.matcher(check_message).matches()) { - System.out.print("꼶Ϸ!꼶(12)"); + System.out.print("꼶Ϸ!꼶(123)"); continue; } - grade = Integer.parseInt(check_message); - if(grade!=1 && grade!=2) - System.out.print("꼶Ϸ!꼶(12)"); + else + { + grade = Integer.parseInt(check_message); + if(grade<1 || grade>3) + System.out.print("꼶Ϸ!꼶(123)"); + } + } } - private static void file_write_answer() { + private static void File_Write_Answer() { try { out.write("\r\n".getBytes()); - for (int i = 0; i < Calculation_Num; i++) + for (int i = 0; i < calculation_num; i++) { - out.write(Calculation_problem.get(i).getBytes()); + out.write(Calculation_Problem.get(i).getBytes()); } } catch (IOException e) { @@ -142,21 +226,20 @@ private static void file_write_answer() { } } - private static void file_write_problem(String[] str, int number1, int number2, int Sum, int Symbol, OutputStream out, int i) { + private static void File_Write_Problem(int i) { try { - word ="("+Integer.toString(i)+") " - +Integer.toString(number1)+" "+str[Symbol]+" "+Integer.toString(number2); + out.write((word+"\r\n").getBytes()); - if(Remainder!=0) + if(remainder!=0) { - Calculation_problem.add(word+" = "+Integer.toString(Sum)+"..."+Integer.toString(Remainder)+"\r\n"); - Calculation_Num++; - Remainder = 0; + Calculation_Problem.add(word+" = "+Integer.toString(sum)+"..."+Integer.toString(remainder)+"\r\n"); + calculation_num++; + remainder = 0; } else { - Calculation_problem.add(word+" "+Integer.toString(Sum)+"\r\n"); - Calculation_Num++; + Calculation_Problem.add(word+" = "+Integer.toString(sum)+"\r\n"); + calculation_num++; } } catch (IOException e) @@ -165,7 +248,7 @@ private static void file_write_problem(String[] str, int number1, int number2, i } } - private static void file_Initialization(File file) { + private static void File_Initialization(File file) { if(!file.exists()) { parent = file.getParentFile(); if(parent !=null && !parent.exists()) From fd46f4dcb2ddf64b10e64fc2b1cef1126e9e0c64 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Sun, 16 Sep 2018 15:36:28 +0800 Subject: [PATCH 024/135] Delete MathExam6367.java --- Pair_211606367_211606445/MathExam6367.java | 184 --------------------- 1 file changed, 184 deletions(-) delete mode 100644 Pair_211606367_211606445/MathExam6367.java diff --git a/Pair_211606367_211606445/MathExam6367.java b/Pair_211606367_211606445/MathExam6367.java deleted file mode 100644 index 79ae842..0000000 --- a/Pair_211606367_211606445/MathExam6367.java +++ /dev/null @@ -1,184 +0,0 @@ - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; -import java.util.Scanner; -import java.util.regex.Pattern; - -public class MathExam6367 { - static Scanner input = new Scanner(System.in); - static String filename ="out.txt"; - static String[] str = {"+","-","x",""}; - static List Calculation_problem = new ArrayList(); - static int number1 = 0,Symbol = 0,number2 = 0,Sum = 0, - Remainder = 0,number = -1,grade = -1,Calculation_Num = 0; - static Random ranNum = new Random(101); - static Random ranStr = new Random(4); - static String word = null,check_message = null; - static File file = new File(filename),parent = null; - static OutputStream out = null; - static String[] arg= {" "," "}; - static Pattern pattern = Pattern.compile("[0-9]*"); - public static void main(String[] args) { - arg[0] = args[0];arg[1] = args[1]; - file_Initialization(file);//ĵʼ - Input_Message();//Ϣ - //ɺϸĿ - for (int i = 1; i <= number; i++) - { - number1 = ranNum.nextInt(100); - number2 = ranNum.nextInt(100); - iteration_part(grade);//ɺʵļӼ˳ - if(str[Symbol].equals("+") && number1 + number2 > 100 - || str[Symbol].equals("-") && number1 - number2 < 0 - || str[Symbol].equals("x") && number1 * number2 > 100 - || str[Symbol].equals("") && number2 == 0 - ) - { - i--; - continue; - } - else - { - if(str[Symbol].equals("+")) - Sum = number1 + number2; - else if(str[Symbol].equals("-")) - Sum = number1 - number2; - else if(str[Symbol].equals("x")) - Sum = number1 * number2; - else - { - Sum = number1 / number2; - Remainder = number1 % number2; - } - file_write_problem(str, number1, number2, Sum, Symbol, out, i);//Ŀдĵ - } - } - if(number!=0) - file_write_answer();//дĵ - } - - private static void iteration_part(int grade) { - Symbol = ranStr.nextInt(4); - if(grade==1 && Symbol<=1) - return; - else if(grade==2 && Symbol<=3) - return; - else - iteration_part(grade); - } - - private static void Input_Message() { - int j=1; - while(number<0) - { - if(j==1) - { - check_message = arg[0]; - if(!pattern.matcher(check_message).matches()) - { - System.out.print("Ϸ"); - check_message = input.nextLine(); - } - } - if(j!=1) - check_message = input.nextLine(); - if(!pattern.matcher(check_message).matches()) - { - System.out.print("Ϸ"); - continue; - } - number = Integer.parseInt(check_message); - if(number < 0) - System.out.print("Ϸ"); - - } - j=1; - while(grade!=1 && grade!=2) - { - if(j==1) - { - check_message =arg[1]; - if(!pattern.matcher(check_message).matches()) - { - System.out.print("꼶Ϸ꼶"); - check_message = input.nextLine(); - } - } - if(j!=1) - check_message = input.nextLine(); - if(!pattern.matcher(check_message).matches()) - { - System.out.print("꼶Ϸ!꼶(12)"); - continue; - } - grade = Integer.parseInt(check_message); - if(grade!=1 && grade!=2) - System.out.print("꼶Ϸ!꼶(12)"); - } - } - - private static void file_write_answer() { - try { - out.write("\r\n".getBytes()); - for (int i = 0; i < Calculation_Num; i++) - { - out.write(Calculation_problem.get(i).getBytes()); - } - } - catch (IOException e) { - System.out.println("дʱ쳣"+e.getMessage()); - } - } - - private static void file_write_problem(String[] str, int number1, int number2, int Sum, int Symbol, OutputStream out, int i) { - try { - word ="("+Integer.toString(i)+") " - +Integer.toString(number1)+" "+str[Symbol]+" "+Integer.toString(number2); - out.write((word+"\r\n").getBytes()); - if(Remainder!=0) - { - Calculation_problem.add(word+" = "+Integer.toString(Sum)+"..."+Integer.toString(Remainder)+"\r\n"); - Calculation_Num++; - Remainder = 0; - } - else - { - Calculation_problem.add(word+" "+Integer.toString(Sum)+"\r\n"); - Calculation_Num++; - } - } - catch (IOException e) - { - System.out.println("out.write()ʱ׳쳣"+e.getMessage()); - } - } - - private static void file_Initialization(File file) { - if(!file.exists()) - { parent = file.getParentFile(); - if(parent !=null && !parent.exists()) - { parent.mkdir();//Ŀ¼ - System.out.println("Ŀ¼"+parent); - } - try { - file.createNewFile(); - } catch (IOException e) { - System.out.println("file.createNewFile()ʱ׳쳣"+e.getMessage()); - } - System.out.println("ļ"+file.getAbsolutePath()); - }//ȡ· - try { - out = new FileOutputStream(file); - } - catch (FileNotFoundException e) { - System.out.println("new FileOutputStream(file)ʱ׳쳣"+e.getMessage()); - } - } - -} From fd77f410f96f531488686fa50926413237257e1f Mon Sep 17 00:00:00 2001 From: a139520017 Date: Sun, 16 Sep 2018 15:46:12 +0800 Subject: [PATCH 025/135] =?UTF-8?q?=E5=B0=86=E9=A2=98=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E6=94=B9=E4=B8=BA0~1000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair2018_211406285_211606314/MathExamLv2.java | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/Pair2018_211406285_211606314/MathExamLv2.java b/Pair2018_211406285_211606314/MathExamLv2.java index 035fe9d..4df7245 100644 --- a/Pair2018_211406285_211606314/MathExamLv2.java +++ b/Pair2018_211406285_211606314/MathExamLv2.java @@ -33,10 +33,10 @@ private static void transferToPostfix(LinkedList list){ } else { //IJΪ")"ȼջԪصȼ߻һ򽫲ѹջ - if (priority(operators.peek())<=priority(s)&&!s.equals(")")) { + if (priority(operators.peek())priority(s)){ + else if(!s.equals(")")&&priority(operators.peek())>=priority(s)){ while (operators.size()!=0&&priority(operators.peek())>=priority(s) &&!operators.peek().equals("(")) { if (!operators.peek().equals("(")) { @@ -74,8 +74,6 @@ else if (s.equals(")")) { iterator.remove(); } } - - System.out.println("׺ "+sb); calculate(); //Collections.reverse(output); } @@ -89,10 +87,21 @@ private static void calculate(){ if (!mList.isEmpty()){ int num1=Integer.valueOf(mList.pop()); int num2=Integer.valueOf(mList.pop()); - /* if (s.equals("/")&&num1==0){ - System.out.println("Ϊ0"); + if (s.equals("/") && num1==0){ + answer="wrong"; + sb.setLength(0); return; - }*/ + } + if (s.equals("/")&& (num2%num1!=0)){ + answer="wrong"; + sb.setLength(0); + return; + } + if (s.equals("-")&& num2<=num1){ + answer="wrong"; + sb.setLength(0); + return; + } int newNum=cal(num2,num1,s); mList.push(String.valueOf(newNum)); } @@ -237,7 +246,6 @@ private static void gradeTwo(int n) throws IOException, FileNotFoundException { private static void gradeThree(int n) throws IOException, FileNotFoundException { String[] sum = new String[n]; Random random = new Random(); - MathExamLv2 stack = new MathExamLv2(); char[] signSet = { '*', '/' ,'+','-'}; for(int i=0;i Date: Sun, 16 Sep 2018 20:18:30 +0800 Subject: [PATCH 026/135] Add files via upload --- Pair_211606367_211606445/Calculation.java | 45 ++++--- Pair_211606367_211606445/MathExam.java | 147 +++++++++++----------- 2 files changed, 96 insertions(+), 96 deletions(-) diff --git a/Pair_211606367_211606445/Calculation.java b/Pair_211606367_211606445/Calculation.java index 4b0bf1a..a496d8e 100644 --- a/Pair_211606367_211606445/Calculation.java +++ b/Pair_211606367_211606445/Calculation.java @@ -13,16 +13,18 @@ public class Calculation { public Calculation(String cal_problem) { super(); - String str = ""; + String str_char_merge = ""; for (int i = 0; i < cal_problem.length(); i++) { if(cal_problem.charAt(i) >= 48 && cal_problem.charAt(i) <= 57) { while(i < cal_problem.length() && cal_problem.charAt(i) >= 48 && cal_problem.charAt(i) <= 57) { - str += cal_problem.charAt(i); + str_char_merge += cal_problem.charAt(i); i++; } - inffix_expression.add(str);str = "";i--; + inffix_expression.add(str_char_merge); + str_char_merge = ""; + i--; } else { @@ -35,17 +37,16 @@ public Calculation(String cal_problem) { * ׺ʽת׺ʽ * */ - public void cal() + public void To_Suffix_Expression() { - String str; - int j = 0; + String str_char=""; for(int i = 0;i < inffix_expression.size();i++) { - str = inffix_expression.get(i); - if(str.matches("[0-9]+")) - suffix_expression.add(str); - else if(str.equals("(")) - cal_symbol.push(str); - else if(str.equals(")")) + str_char = inffix_expression.get(i); + if(str_char.matches("[0-9]+")) + suffix_expression.add(str_char); + else if(str_char.equals("(")) + cal_symbol.push(str_char); + else if(str_char.equals(")")) { while(!(cal_symbol.peek().equals("("))) { @@ -55,11 +56,11 @@ else if(str.equals(")")) } else { - while(cal_symbol.size()!=0 && Oper(cal_symbol.peek(),str)) + while(cal_symbol.size()!=0 && Oper(cal_symbol.peek(),str_char)) { suffix_expression.add(cal_symbol.pop()); } - cal_symbol.push(str); + cal_symbol.push(str_char); } } while(cal_symbol.size()!=0) @@ -90,9 +91,8 @@ private boolean Oper(String peek, String str) { * ׺ʽ沨ʽ * */ - public boolean suffix_expression_summation() + public boolean Suffix_Expression_Summation() { - int remainder = 0; for(int i = 0;i < suffix_expression.size();i++) { if(suffix_expression.get(i).matches("\\d+")) { @@ -108,28 +108,27 @@ public boolean suffix_expression_summation() } else if(suffix_expression.get(i).equals("-")) { - sum = num1-num2; + sum = num2-num1; } else if(suffix_expression.get(i).equals("x")) { sum = num1*num2; } - else if(suffix_expression.get(i).equals("") && num2==0) + else if(suffix_expression.get(i).equals("") && num1 == 0) { return false; } else if(suffix_expression.get(i).equals("")) { - sum = num1/num2; - remainder = num1%num2; - if(remainder!=0) + sum = num2/num1; + if(num2%num1 != 0) return false; } cal_sum.push(sum+""); } } sum = Integer.parseInt(cal_sum.pop()); - if(sum < 0) + if(sum < 0 || sum > 10000) return false; else return true; @@ -139,7 +138,7 @@ else if(suffix_expression.get(i).equals("x")) * ׺ʽɺϸ׺ʽword * */ - public void infix_expression() + public void Infix_Expression_To_Word() { for (int i = 0; i < inffix_expression.size(); i++) { if(i == inffix_expression.size()-1) diff --git a/Pair_211606367_211606445/MathExam.java b/Pair_211606367_211606445/MathExam.java index 77c4c1c..fef544d 100644 --- a/Pair_211606367_211606445/MathExam.java +++ b/Pair_211606367_211606445/MathExam.java @@ -15,31 +15,24 @@ public class MathExam { static String filename ="out.txt"; static File file = new File(filename),parent = null; static OutputStream out = null; - static String[] str = {"+","-","x",""},arg= {" "," "}; + static String[] str_symbol = {"+","-","x",""},input_args= {" "," "}; static List Calculation_Problem = new ArrayList(); static int cal_number1 = 0, cal_number2 = 0,symbol = 0, sum = 0, remainder = 0, - number = -1, grade = -1, - calculation_num = 0 ,ran_symbol_num = 0,ran_left_parenthesis = 0; - static Random ranNum = new Random(),ranStr = new Random(),ran_symbolnum= new Random(),ran_yes_no = new Random(); - static String word = null,check_message = null,cal_pro = null; + number = -1, grade = -1, + calculation_num = 0 ,ran_symbol_num = 0,ran_left_parenthesis_num = 0; + static Random ranNum = new Random(),ranSymbol = new Random(),ranSymbolNum = new Random(),ran_left_parenthesis = new Random(); + static String word = null,check_input_message = null; static Pattern pattern = Pattern.compile("[0-9]*"); public static void main(String[] args) { File_Initialization(file);//ĵʼ - if(args[0].equals("-n") && args[2].equals("-grade")) - { arg[0] = args[1];arg[1] = args[3];} - else if(args[0].equals("-grade") && args[2].equals("-n")) - { arg[0] = args[3];arg[1] = args[1];} - else - System.out.print("󣡣"); - Input_Message();//Ϣ - //ɺϸĿ + Input_Message(args);//Ϣ for (int i = 1; i <= number; i++) { - Iteration(i);//ɺʵļӼ˳ - File_Write_Problem(i);//Ŀдĵ + Iteration(i);//һϸĿ + File_Write_Problem(i);//Ŀдĵ } - if(number!=0) - File_Write_Answer();//дĵ + if(number != 0) + File_Write_Answer();//ĿĴдĵ } /** @@ -50,93 +43,95 @@ else if(args[0].equals("-grade") && args[2].equals("-n")) Ϊ0 0-1000ڣ˵ ȻΪһ꼶꼶ĹܻҪ - - ѯ꼶С + ѯ꼶С,ڵֻ * * **/ private static void Iteration(int i) { - cal_number1 = ranNum.nextInt(1001); - cal_number2 = ranNum.nextInt(1001); - symbol = ranStr.nextInt(4); if(grade==1 && symbol<=1) { - if(str[symbol].equals("+") && cal_number1 + cal_number2 <= 100) + symbol = ranSymbol.nextInt(2); + cal_number1 = ranNum.nextInt(101); + cal_number2 = ranNum.nextInt(101); + if(str_symbol[symbol].equals("+") && cal_number1 + cal_number2 <= 100) sum = cal_number1 + cal_number2; - else if(str[symbol].equals("-") && cal_number1 - cal_number2 >= 0) + else if(str_symbol[symbol].equals("-") && cal_number1 - cal_number2 >= 0) sum = cal_number1 - cal_number2; else Iteration(i); - word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str[symbol]+" "+Integer.toString(cal_number2); + word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); return; } else if(grade==2) { - if(str[symbol].equals("+") && cal_number1 + cal_number2 <= 100) + symbol = ranSymbol.nextInt(4); + cal_number1 = ranNum.nextInt(101); + cal_number2 = ranNum.nextInt(101); + if(str_symbol[symbol].equals("+") && cal_number1 + cal_number2 <= 100) sum = cal_number1 + cal_number2; - else if(str[symbol].equals("-")&& cal_number1 - cal_number2 >= 0) + else if(str_symbol[symbol].equals("-")&& cal_number1 - cal_number2 >= 0) sum = cal_number1 - cal_number2; - else if(str[symbol].equals("x") && cal_number1 * cal_number2 <= 100) + else if(str_symbol[symbol].equals("x") && cal_number1 * cal_number2 <= 100) sum = cal_number1 * cal_number2; - else if(str[symbol].equals("") && cal_number2 != 0) + else if(str_symbol[symbol].equals("") && cal_number2 != 0) { sum = cal_number1 / cal_number2; remainder = cal_number1 % cal_number2; } else Iteration(i); - word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str[symbol]+" "+Integer.toString(cal_number2); + word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); return; } else if(grade==3) - { - ran_symbol_num = ran_symbolnum.nextInt(3)+2; - word = Integer.toString(cal_number1); - int k = -1; + { + cal_number2 = ranNum.nextInt(1001); + ran_symbol_num = ranSymbolNum.nextInt(3)+2; + word = Integer.toString(cal_number2); for(int j=1;j<=ran_symbol_num;j++) { - cal_number2 = cal_number1; - cal_number1 = ranNum.nextInt(1001); - symbol = ranStr.nextInt(4); - ran_left_parenthesis = ran_yes_no.nextInt(2); - if(str[symbol].equals("+") && cal_number2 + cal_number1 > 1000 - || str[symbol].equals("-") && cal_number2 - cal_number1 < 0 - || str[symbol].equals("x") && cal_number2 * cal_number1 > 1000 - || str[symbol].equals("") && j!=1 && cal_number1==0) + cal_number1 = cal_number2; + cal_number2 = ranNum.nextInt(1001); + symbol = ranSymbol.nextInt(4); + ran_left_parenthesis_num = ran_left_parenthesis.nextInt(2); + if(str_symbol[symbol].equals("+") && cal_number1 + cal_number2 > 1000 + || str_symbol[symbol].equals("-") && cal_number1 - cal_number2 < 0 + || str_symbol[symbol].equals("x") && cal_number1 * cal_number2 > 1000 + || str_symbol[symbol].equals("") && j!=1 && cal_number2 == 0) { j--; continue; } - else if(ran_left_parenthesis % 2 == 1 && j <= ran_symbol_num-2) + else if(ran_left_parenthesis_num % 2 == 1 && j <= ran_symbol_num-2) { if(j == 1) { word = "(" + word; - symbol = ranStr.nextInt(2); - cal_number1 = ranNum.nextInt(1001); - word = word + str[symbol] + Integer.toString(cal_number1)+")"; - symbol = ranStr.nextInt(2) + 2; - cal_number1 = ranNum.nextInt(1001); - word = word+str[symbol]+Integer.toString(cal_number1); + symbol = ranSymbol.nextInt(2); + cal_number2 = ranNum.nextInt(1001); + word = word + str_symbol[symbol] + Integer.toString(cal_number2)+")"; + symbol = ranSymbol.nextInt(2) + 2; + cal_number2 = ranNum.nextInt(1001); + word = word+str_symbol[symbol]+Integer.toString(cal_number2); j++; } else if(j <= ran_symbol_num-2) { - word = word + str[symbol] + "("+Integer.toString(cal_number1); + word = word + str_symbol[symbol] + "("+Integer.toString(cal_number2); if(symbol == 0 || symbol == 1) - symbol = ranStr.nextInt(2); + symbol = ranSymbol.nextInt(2); else - symbol = ranStr.nextInt(4); - cal_number1 = ranNum.nextInt(1001); - word = word + str[symbol] + Integer.toString(cal_number1)+")"; + symbol = ranSymbol.nextInt(4); + cal_number2 = ranNum.nextInt(1001); + word = word + str_symbol[symbol] + Integer.toString(cal_number2)+")"; } continue; } - word = word+str[symbol]+Integer.toString(cal_number1); + word = word+str_symbol[symbol]+Integer.toString(cal_number2); } Calculation calculation = new Calculation(word); - calculation.infix_expression(); - calculation.cal(); - if(calculation.suffix_expression_summation()) + calculation.Infix_Expression_To_Word(); + calculation.To_Suffix_Expression(); + if(calculation.Suffix_Expression_Summation()) { word = "("+i+") "+calculation.getword(); sum = calculation.getSum(); @@ -149,17 +144,23 @@ else if(j <= ran_symbol_num-2) Iteration(i); } - private static void Input_Message() { + private static void Input_Message(String[] args) { int j=1; - check_message = arg[0];// - if(!pattern.matcher(check_message).matches()) + if(args[0].equals("-n") && args[2].equals("-grade")) + { input_args[0] = args[1];input_args[1] = args[3];} + else if(args[0].equals("-grade") && args[2].equals("-n")) + { input_args[0] = args[3];input_args[1] = args[1];} + else + System.out.print("󣡣"); + check_input_message = input_args[0];// + if(!pattern.matcher(check_input_message).matches()) { System.out.print("Ϸ"); - check_message = input.nextLine(); + check_input_message = input.nextLine(); } else { - number = Integer.parseInt(check_message); + number = Integer.parseInt(check_input_message); if(number < 0) System.out.print("Ϸ"); } @@ -167,29 +168,29 @@ private static void Input_Message() { while(number<0) { if(j!=1) - check_message = input.nextLine(); - if(!pattern.matcher(check_message).matches()) + check_input_message = input.nextLine(); + if(!pattern.matcher(check_input_message).matches()) { System.out.print("Ϸ"); continue; } else { - number = Integer.parseInt(check_message); + number = Integer.parseInt(check_input_message); if(number < 0) System.out.print("Ϸ"); } } j=1; - check_message =arg[1];//꼶 - if(!pattern.matcher(check_message).matches()) + check_input_message = input_args[1];//꼶 + if(!pattern.matcher(check_input_message).matches()) { System.out.print("꼶Ϸ꼶"); - check_message = input.nextLine(); + check_input_message = input.nextLine(); } else { - grade = Integer.parseInt(check_message); + grade = Integer.parseInt(check_input_message); if(grade<1 || grade>3) System.out.print("꼶Ϸ!꼶(123)"); } @@ -197,15 +198,15 @@ private static void Input_Message() { while(grade<1 || grade>3) { if(j!=1) - check_message = input.nextLine(); - if(!pattern.matcher(check_message).matches()) + check_input_message = input.nextLine(); + if(!pattern.matcher(check_input_message).matches()) { System.out.print("꼶Ϸ!꼶(123)"); continue; } else { - grade = Integer.parseInt(check_message); + grade = Integer.parseInt(check_input_message); if(grade<1 || grade>3) System.out.print("꼶Ϸ!꼶(123)"); } From 723fe50bd0f831256142e87cef22596b01071121 Mon Sep 17 00:00:00 2001 From: caizhenyi <345027407@qq.com> Date: Mon, 17 Sep 2018 00:01:42 +0800 Subject: [PATCH 027/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 还是运算方法 --- Pair_211606301_211605240/MathExam.java | 153 +++++++++++++++---------- 1 file changed, 92 insertions(+), 61 deletions(-) diff --git a/Pair_211606301_211605240/MathExam.java b/Pair_211606301_211605240/MathExam.java index 8600dc8..79daf4d 100644 --- a/Pair_211606301_211605240/MathExam.java +++ b/Pair_211606301_211605240/MathExam.java @@ -1,79 +1,110 @@ public class MathExam { + //ӷ + private static void add(int i,StringBuffer word,int[] answer) { + // TODO Զɵķ + int num1 = (int) (Math.random()*999); + System.out.println("Ǽӷ1"+num1); + word.insert(word.length()," + "+num1); + answer[i] = answer[i]+num1; + } + // + private static void sub(int i,StringBuffer word, int[] answer) { + // TODO Զɵķ + int num1 = (int) (Math.random()*(answer[i]-1)); + System.out.println("Ǽ1"+num1); + word.insert(word.length(),"-"+num1); + answer[i] = answer[i]-num1; + } + //˷ + private static void mul(int i,StringBuffer word, int[] answer) { + // TODO Զɵķ + int num1 = (int) (Math.random()*98); + System.out.println("dz˷1"+num1); + word.insert(word.length(), "x"+num1); + answer[i]= answer[i]*num1; + } + // + private static void div(int i,int j,int f, StringBuffer word, int[] answer) { + // TODO Զɵķ + int test = (int)(Math.random()); + if((test==1)||(answer[i]==0)) { + int num1 = 1+(int)(Math.random()*98); // + System.out.println("dz1"+num1); + int rem=answer[i]%num1; + if(rem>0) { + word.insert(word.length(), "+"+rem); + word.insert(word.length(),""+num1); + answer[i]=(answer[i]+rem)/num1; + }else { + word.insert(word.length(),""+num1); + answer[i]=answer[i]/num1;} + } + else if(test==0) { + int num1 = (int)(Math.random()*(1000/answer[i])); // + System.out.println("dz2"+num1*answer[i]); + word.insert(0,(num1*answer[i])+""); + answer[i] = num1; + } + + } private static void operation(int n) { // TODO Զɵķ - int a=0,b=0,c=1,d=1; - int g=0; - int[] str= {a,b,c,d}; //abcdȼ 0Ϊ+-1Ϊ*/ + //str鴢ĵȼͷţanswerʽӴ𰸣word鴢Ŀfĸ;numĵһ;gѡg;iǵi⣻jǵǰ + int level=1;//õȼ + int[] str= {0,0,1,1}; // 0Ϊ+-1Ϊ*/ int[] answer = new int[n]; //𰸵 - String[] word = new String[n]; //Ŀ - for(int i=0;i=2;j--) { - g = (int)(Math.random()*(str.length)); //ѡȡstr鳤 - int num2 =1+(int) (Math.random()*1001); - if(g<=2) { - if(g==1) { - if(j==f) { - word[i]=num+"+"+num1; - answer[i] =num+num1; - } - word[i] = word[i]+"+"+num2; - answer[i] = answer[i]+num2; - } - else { - if(j==f) { - word[i]=num+"-"+num1; - answer[i] =Math.abs(num-num1); - } - word[i] = word[i]+"-"+num2; - answer[i] = answer[i]-num2; + //Ŀ + for(int i=0;if-2)break;//Ҫŵ + if(level=100) { + g = (int)(Math.random()*(str.length-1)); } + + } - - } - - - for(int i=0;i Date: Mon, 17 Sep 2018 00:04:44 +0800 Subject: [PATCH 028/135] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BD=93=E9=AA=8C=EF=BC=8C=E8=BE=93=E5=87=BAout.txt=E6=97=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606367_211606445/Calculation.java | 4 ++-- Pair_211606367_211606445/MathExam.java | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Pair_211606367_211606445/Calculation.java b/Pair_211606367_211606445/Calculation.java index a496d8e..23fef14 100644 --- a/Pair_211606367_211606445/Calculation.java +++ b/Pair_211606367_211606445/Calculation.java @@ -15,9 +15,9 @@ public Calculation(String cal_problem) { super(); String str_char_merge = ""; for (int i = 0; i < cal_problem.length(); i++) { - if(cal_problem.charAt(i) >= 48 && cal_problem.charAt(i) <= 57) + if(cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') { - while(i < cal_problem.length() && cal_problem.charAt(i) >= 48 && cal_problem.charAt(i) <= 57) + while(i < cal_problem.length() && cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') { str_char_merge += cal_problem.charAt(i); i++; diff --git a/Pair_211606367_211606445/MathExam.java b/Pair_211606367_211606445/MathExam.java index fef544d..56c575f 100644 --- a/Pair_211606367_211606445/MathExam.java +++ b/Pair_211606367_211606445/MathExam.java @@ -32,7 +32,10 @@ public static void main(String[] args) { File_Write_Problem(i);//Ŀдĵ } if(number != 0) + { File_Write_Answer();//ĿĴдĵ + System.out.println("ĿѾɣ뿴out.txtĵ"); + } } /** @@ -151,7 +154,7 @@ private static void Input_Message(String[] args) { else if(args[0].equals("-grade") && args[2].equals("-n")) { input_args[0] = args[3];input_args[1] = args[1];} else - System.out.print("󣡣"); + System.out.print("󣡣"); check_input_message = input_args[0];// if(!pattern.matcher(check_input_message).matches()) { From bf479584ffdbe0c1fae7ac21711c3acb5554df1a Mon Sep 17 00:00:00 2001 From: zsyISO8859 <42647685+zsyISO8859@users.noreply.github.com> Date: Mon, 17 Sep 2018 10:56:03 +0800 Subject: [PATCH 029/135] =?UTF-8?q?=E8=B0=83=E5=BA=A6=E5=9C=BA=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E5=92=8C=E9=80=86=E6=B3=A2=E5=85=B0=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E7=9A=84java=E6=96=B9=E6=B3=95=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原本是想生成完带括号的四则运算再实现调度场算法和逆波兰表达式,但是在出带括号的四则运算题上面卡住了,就先将c语言的调度场算法和逆波兰表达式改写成java。分析一下这个算法也许能找到出题的灵感。 --- Pair_211606348_211606338/ShuntYardAlgo.java | 168 ++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 Pair_211606348_211606338/ShuntYardAlgo.java diff --git a/Pair_211606348_211606338/ShuntYardAlgo.java b/Pair_211606348_211606338/ShuntYardAlgo.java new file mode 100644 index 0000000..7f27df4 --- /dev/null +++ b/Pair_211606348_211606338/ShuntYardAlgo.java @@ -0,0 +1,168 @@ +package com.it666.zuoye; + +import java.util.HashMap; +import java.util.Stack; +class Node { + + double val; + char opt; + + Node(Double val, Character opt) { + this.val = val; + this.opt = opt; + } +} + +public class body { + + public static void main(String[] args) throws Exception { + body body = new body(); + body.Init(); + + String str = "5*10/2+7"; + char[] charArray = str.toCharArray(); + System.out.println(body.ShuntYardAlgo(charArray)); + + } + Node[] node = new Node[10005]; + Character[] str = new Character[10005]; + HashMap mp = new HashMap<>(); + + void Init() { + mp.put('(', 0); + mp.put('-', 1); + mp.put('+', 1); + mp.put('*', 2); + mp.put('/', 2); + mp.put('^', 3); + } + + // 沨ʽļ + double CalPoland(Node node[], int n) throws Exception { + Stack s = new Stack<>(); + for (int i = 0; i < n; i++) { + if (node[i].opt == ' ') + s.push(node[i].val); + else { + double a = s.peek(); + s.pop(); + double b = s.peek(); + s.pop(); + switch (node[i].opt) { + case '+': + s.push(b + a); + break; + case '-': + s.push(b - a); + break; + case '*': + s.push(b * a); + break; + case '/': + if (Math.abs(a) < 1e-9) + throw new Exception(); + s.push(b / a); + break; + case '^': + s.push(Math.pow(b, a)); + break; + } + } + } + return s.peek(); + } + + // ȳ㷨 + double ShuntYardAlgo(char str[]) throws Exception { + Stack oper = new Stack<>(); + + // inNumǵǰǷ + boolean inNum = true; + // hasDotǷѾС + boolean hasDot = true; + + int p = 0; // ɨָλ + int cnt = 0; // Żּ + int sign = 1; // ʾ + + while (p < str.length) { + if (Character.isDigit(str[p]) || str[p] == '.') { + if (inNum) { + double val = 0; + double w = 1; + if (str[p] == '.') { + hasDot = true; + val = 0; + } else { + hasDot = false; + val = str[p] - '0'; + } + p++; + while (p < str.length && (Character.isDigit(str[p]) || str[p] == '.')) { + if (str[p] == '.') { + if (hasDot) + throw new Exception(); + hasDot = true; + } else { + if (hasDot) { + w *= 0.1; + val += (str[p] - '0') * w; + } else + val = val * 10 + str[p] - '0'; + } + p++; + } + p--; + node[cnt++] = new Node(val * sign, ' '); + sign = 1; + inNum = false; + } else + throw new Exception(); + } else { + switch (str[p]) { + case '(': + oper.push(str[p]); + break; + case ')': + while (!oper.empty() && oper.peek() != '(') { + node[cnt++] = new Node(0.0, oper.peek()); + oper.pop(); + } + if (oper.empty()) + throw new Exception(); + oper.pop(); + break; + case '+': + case '-': + case '*': + case '/': + case '^': + if (inNum) { + if (str[p] != '+' && str[p] != '-') + while (str[p] == '+' || str[p] == '-') { + if (str[p] == '-') + sign *= -1; + p++; + } + p--; + } else { + while (!oper.empty() && mp.get(str[p]) <= mp.get(oper.peek())) { + node[cnt++] = new Node(0.0, oper.peek()); + oper.pop(); + } + oper.push(str[p]); + inNum = true; + } + break; + } + } + p++; + } + while (!oper.empty()) { + node[cnt++] = new Node(0.0, oper.peek()); + oper.pop(); + } + return CalPoland(node, cnt); + } + +} From da3bd18be53631b2d9e48572c48934e36ca91438 Mon Sep 17 00:00:00 2001 From: HYOUKACC Date: Mon, 17 Sep 2018 11:11:46 +0800 Subject: [PATCH 030/135] =?UTF-8?q?=E5=B8=A6=E6=8B=AC=E5=8F=B7=E7=9A=84?= =?UTF-8?q?=E5=9B=9B=E5=88=99=E8=BF=90=E7=AE=97=E5=9F=BA=E6=9C=AC=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加出题目模块; 可以出带括号的四则运算题目; 可以解出大部分题目; 发现bug:当为负数时,程序报错; 发现bug:当除数为0时,程序报错; --- Pair_211614331_211614354/Arithmetic.java | 33 ++-- Pair_211614331_211614354/FindBracket.java | 20 +- Pair_211614331_211614354/RandomQuestions.java | 184 ++++++++++++++++++ 3 files changed, 214 insertions(+), 23 deletions(-) create mode 100644 Pair_211614331_211614354/RandomQuestions.java diff --git a/Pair_211614331_211614354/Arithmetic.java b/Pair_211614331_211614354/Arithmetic.java index bc11c00..6d7aa55 100644 --- a/Pair_211614331_211614354/Arithmetic.java +++ b/Pair_211614331_211614354/Arithmetic.java @@ -4,19 +4,15 @@ public class Arithmetic extends Operation{ // - + String sPart = ""; - public Arithmetic(String sPart) { - setAnswerNumber(Integer.valueOf(arithmeticOne(sPart))); - } - - public static String arithmeticOne(String sPart) { // һĿ + public void arithmeticOne(String sPart) { // һĿ // (Ŀ)תַѶַ // صǰĿĴ𰸸 (FindBracket) - final Matcher findNumber = Pattern.compile("(\\d+)").matcher(sPart); // ַе - final Matcher findSymbol = Pattern.compile("[\\+\\-\\*\\/]").matcher(sPart); // ַеķ + Matcher findNumber = Pattern.compile("(\\d+)").matcher(sPart); // ַе + Matcher findSymbol = Pattern.compile("[\\+\\-\\*\\/]").matcher(sPart); // ַеķ LinkedList numberSet = new LinkedList(); // ֵļ LinkedList symbolSet = new LinkedList(); // ŵļ @@ -33,7 +29,8 @@ public Arithmetic(String sPart) { addAndSubtract(numberSet,symbolSet); // üӼ System.out.println(" 㣺" + answerNumber); - return numberSet.get(0); // õ˵ǰĿմ + + setAnswerNumber(Integer.valueOf(answerNumber)); // õ˵ǰĿմ } @@ -51,9 +48,10 @@ public static void multiplicationAndDivision(LinkedList numberSet, Linke if (symbolSet.get(i).equals("*")) { // жϵǰżϵķţ˷ answerNumber = firstNumber * secondNumber; // answerNumber - } else if (symbolSet.get(i).equals("/")) { // + } else if (symbolSet.get(i).equals("/")) { // answerNumber = firstNumber / secondNumber; + } numberSet.set(i, String.valueOf(answerNumber)); // ּϵĵiλãӴ𰸣ḲǵfirstNumber @@ -77,14 +75,19 @@ public static void addAndSubtract(LinkedList numberSet, LinkedList sInitialProblemSet = new LinkedList(); // ʼĿԺ󷽱ɾݣ - + Arithmetic sendToArithmetic = new Arithmetic(); // ڰҳݴ + + for(int i = 0; i < sProblem.length(); i++) { // ѽܵĿת浽ʼĿļ sInitialProblemSet.add(String.valueOf(sProblem.charAt(i))); } @@ -26,23 +28,25 @@ for(int j = sRight-1; j >= 0; j--) { // ӵǰǰҵһ + if(sInitialProblemSet.get(j).equals("(")) { sInitialProblemSet.set(j, "!"); // ı־ sLeft = j; // ¼λ break; } + } + for( int z = sLeft + 1; z < sRight; z++) // ѭҳ֮ { sPart = sPart + sInitialProblemSet.get(z); // ҳƴΪĿһ } - - @SuppressWarnings("unused") - Arithmetic ar = new Arithmetic(sPart); // sPartΪ - - sInitialProblemSet.set( sLeft, String.valueOf(getAnswerNumber()) ); + + + sendToArithmetic.arithmeticOne(sPart); // sPartΪ + sInitialProblemSet.set( sLeft, String.valueOf(getAnswerNumber()) ); // ѴõУΪһɾԪ׼ for(int m = 1; m <= sRight-sLeft ; m++){ @@ -62,8 +66,8 @@ for(int i = 0; i < sInitialProblemSet.size(); i++) { // ŵʽӴ sPart = sPart + sInitialProblemSet.get(i); } - @SuppressWarnings("unused") - Arithmetic arS = new Arithmetic(sPart); + + sendToArithmetic.arithmeticOne(sPart); // ŵʽӴ }//findOne diff --git a/Pair_211614331_211614354/RandomQuestions.java b/Pair_211614331_211614354/RandomQuestions.java new file mode 100644 index 0000000..5663cc5 --- /dev/null +++ b/Pair_211614331_211614354/RandomQuestions.java @@ -0,0 +1,184 @@ +import java.util.ArrayList; +import java.util.Random; + +public class RandomQuestions extends Operation{ + + String sProblem = ""; // 洢Ŀ + boolean needBracket = false;// ǷҪ + int howMany = 0;// Ҫ + int bracketNumber = 0; // ҪţҪ + int whichSymbol = 0; // жһ + int number = 0;// + ArrayList problemSet; // Ŀļ + int isAdd = 0;// Dzͬ + int isDivison = 0; // + int isMult = 0; // + int isSub = 0;// + String positionCode = "";// λ + String problem= ""; // ĿַԴ봫 + String problemSave="";// ΪĿӡĵ + + public String questionsShop() { // Ŀķ(꼶ר) + problemSave=""; + problemSave=""; + Random rand = new Random(); + ArrayList problemSet = new ArrayList(); + howMany = rand.nextInt(3)+2; // Ҫ + + do { + problemSet.clear(); + for (int i = 0; i < 2 * howMany + 1; i++) { // + + if (i % 2 == 0) { + number = rand.nextInt(100) + 1; + problemSet.add(String.valueOf(number)); + } else { + whichSymbol = rand.nextInt(4); + switch (whichSymbol) { + case 0: { + problemSet.add("+"); + isAdd++; + break; + } + case 1: { + problemSet.add("-"); + isSub++; + break; + } + case 2: { + problemSet.add("*"); + isMult++; + break; + } + case 3: { + problemSet.add("/"); + isDivison++; + break; + } + + } + + ////// + } + } + } while (isAdd == howMany || isSub == howMany || isMult == howMany || isDivison == howMany); + + + needBracket = rand.nextBoolean(); // ǷҪ + + if(needBracket) { // Ҫ + positionCode(howMany); // ű׼λ + for(int i = 0;i < positionCode.length(); i++) { + if(String.valueOf(positionCode.charAt(i)).equals("(")) // ɨ赽 + problemSet.add(i, String.valueOf(positionCode.charAt(i))); // ӽ + else if(String.valueOf(positionCode.charAt(i)).equals(")")) // ɨ赽 + { + + problemSet.add(i, String.valueOf(positionCode.charAt(i))); // ӽ + + } + } + } + for(int i = 0;i < problemSet.size(); i++) { + problem=problem+problemSet.get(i); // ݸõ + problemSave=problemSave+" "+problemSet.get(i); + } + FindBracket findBracket=new FindBracket(); + findBracket.findOne(problem); // ĿŶ + System.out.println(problemSave+ " = " + answerNumber); + return problemSave; + } + + + + + //System.out.println(problemSet); + + + //} + + public void positionCode(int howMany) { // ȡű׼λ + + + positionCode=""; + Random rand = new Random(); + int order = 0; + + switch (howMany) { + case 2:{ + order=rand.nextInt(2)+1; + if(order==1) positionCode="(---)"; + else positionCode="--(---)"; + break; + } + case 3:{ + order=rand.nextInt(5)+1; + switch (order) { + case 1:{ + positionCode="(---)-(---)"; + break; + } + case 2:{ + positionCode="(-----)"; + break; + } + case 3:{ + positionCode="(---)"; + break; + } + case 4:{ + positionCode="--(---)"; + break; + } + case 5:{ + positionCode="--(--(---))"; + break; + } + + } + break; + } + case 4:{ + order=rand.nextInt(7)+1; + switch (order) { + case 1:{ + positionCode="(---)-(---)"; + break; + } + case 2:{ + positionCode="--(---)-(---)"; + break; + } + case 3:{ + positionCode="--((---)--)"; + break; + } + case 4:{ + positionCode="--((---)-(---))"; + break; + } + case 5:{ + positionCode="(-----)"; + break; + } + case 6:{ + positionCode="--(-----)"; + break; + } + case 7:{ + positionCode="((---)--)-(---)"; + break; + } + + + } + break; + } + + + } + + + } + +} From f981363b0dc328c7ead707c998ec83bae850aa0b Mon Sep 17 00:00:00 2001 From: LIUZIMING6 <632095613@qq.com> Date: Mon, 17 Sep 2018 11:55:59 +0800 Subject: [PATCH 031/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实现四则运算 --- Pair_211601253_211601246/MathExam1253.java | 281 ++++++++++++++++++ .../README.md | 0 2 files changed, 281 insertions(+) create mode 100644 Pair_211601253_211601246/MathExam1253.java rename README.md => Pair_211601253_211601246/README.md (100%) diff --git a/Pair_211601253_211601246/MathExam1253.java b/Pair_211601253_211601246/MathExam1253.java new file mode 100644 index 0000000..c56fb68 --- /dev/null +++ b/Pair_211601253_211601246/MathExam1253.java @@ -0,0 +1,281 @@ + +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.PrintStream; +import java.nio.file.attribute.FileTime; +import java.text.Collator; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.Random; +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; + +public class MathExam1253 { + public static void main(String[] args) { + int grade = 1; + if(args.length==2){ + if (args[1].equals("1") || args[1].equals("2") || args[1].equals("3")) { + grade = Integer.valueOf(args[1]); + } else { + System.out.println("󣬳"); + System.exit(0); + } + } + if(args.length!=1 && args.length!=2 ){ + System.out.println("󣬳"); + System.exit(0); + } + + // TODO Auto-generated method stub + boolean r = args[0].matches("[0-9]+"); + String h = args[0].substring(0, 1); + int n = 0; + if (r == true && args[0].length() < 5 && h != "0") { + n = Integer.valueOf(args[0]); + } else { + System.out.println("󣬳"); + System.exit(0); + } + + + Random rand = new Random(); + if (grade==1) { + int d = 0; + String x = ""; + String y = ""; + for (int i = 1; i <= n; i++) { + int c = (rand.nextInt(2));// 0ʾӷ1ʾ + if (c == 0) { + int a = (rand.nextInt(100));// 0-99Ӽ,֮Ͳ100 + int b = (rand.nextInt(100 - a)); + d = a + b; + if (i != 1) { + x = x + "\n"; + y = y + "\n"; + } + x = x + "(" + i + ")" + " " + a + " " + "+" + " " + b + " " + "=";// Ŀx + y = y + "(" + i + ")" + " " + a + " " + "+" + " " + b + " " + "=" + " " + d;// Ŀ𰸴y + + } else{ + + int a = (rand.nextInt(100));// 0-99Ӽ,ba + int b = (rand.nextInt(10)); + d = a - b; + if (i != 1) { + x = x + "\n"; + y = y + "\n"; + } + x = x + "(" + i + ")" + " " + a + " " + "-" + " " + b + " " + "=";// Ŀx + y = y + "(" + i + ")" + " " + a + " " + "-" + " " + b + " " + "=" + " " + d;// Ŀ𰸴y + + } + } + String z = x; + String k = y; + try { + File f = new File("out.txt"); + PrintStream f1 = new PrintStream(new FileOutputStream(f)); + System.setOut(f1); + System.out.println(z); + System.out.println(k); + } catch (Exception e) { + } + } + else if(grade==2){ + int d = 0; + int d1 = 0; + String x = ""; + String y = ""; + for (int i = 1; i <= n; i++) { + int c = (rand.nextInt(2));// 0ʾ˷1ʾ + if (c == 0) { + int a = (rand.nextInt(9)+1);// 1-9˳ + int b = (rand.nextInt(9)+1); + d = a * b; + if (i != 1) { + x = x + "\n"; + y = y + "\n"; + } + x = x + "(" + i + ")" + " " + a + " " + "*" + " " + b + " " + "=";// Ŀx + y = y + "(" + i + ")" + " " + a + " " + "*" + " " + b + " " + "=" + " " + d;// Ŀ𰸴y + } else { + int a = (rand.nextInt(100));// 1-9˳,ba,bΪ0 + int b = (rand.nextInt(9)+1); + d = a / b; + d1 = a % b; + if(a%b!=0) { + if (i != 1) { + x = x + "\n"; + y = y + "\n"; + } + x = x + "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=";// Ŀx + y = y + "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + d+"..."+d1;// Ŀ𰸴y + + }else { + if (i != 1) { + x = x + "\n"; + y = y + "\n"; + } + x = x + "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=";// Ŀx + y = y + "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + d;// Ŀ𰸴y + } + } + } + String z = x; + String k = y; + try { + File f = new File("out.txt"); + PrintStream f1 = new PrintStream(new FileOutputStream(f)); + System.setOut(f1); + System.out.println(z); + System.out.println(k); + } catch (Exception e) { + } + } + + else { + + int num = (rand.nextInt(3)+3); + ArrayList s1 = new ArrayList<>(); + ArrayList s2 = new ArrayList<>(); + int i; + int j; + int d=0; + String c; + String x1=""; + String x2=""; + String x3=""; + String y1=""; + String y2=""; + for(i=1;i<=n;i++) { + do { + x1=""; + x2=""; + x3=""; + for(j=1;j<=num;j++) { + int a = (rand.nextInt(100)+1); + c = String.valueOf(getOperator()); + if(j==num) { + c =""; + } + x1 +=" "+a + " "+ c; + x2 +=" "+a + " "+ c; + x3 +=a+c; + + } + anwser(x3); + d = Integer.valueOf(anwser(x3)); + }while(d<0); + y1="("+i+")"+x1; + y2="("+i+")"+x2+" "+"="+" "+d; + + s1.add(y1+""); + s2.add(y2+""); + } + + try { + File f = new File("out.txt"); + PrintStream f1 = new PrintStream(new FileOutputStream(f)); + System.setOut(f1); + for(int k=0;k num = new LinkedList(); + LinkedList sym = new LinkedList(); + + while(sz.find()) { + num.add(sz.group()); + } + while(fh.find()) { + sym.add(fh.group()); + } + int s=0; + int num1=0; + int num2=0; + for(int i=0;i Date: Mon, 17 Sep 2018 12:04:36 +0800 Subject: [PATCH 032/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改 --- Pair_211601253_211601246/MathExam1253.java | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/Pair_211601253_211601246/MathExam1253.java b/Pair_211601253_211601246/MathExam1253.java index c56fb68..51dd540 100644 --- a/Pair_211601253_211601246/MathExam1253.java +++ b/Pair_211601253_211601246/MathExam1253.java @@ -31,7 +31,6 @@ public static void main(String[] args) { System.out.println("󣬳"); System.exit(0); } - // TODO Auto-generated method stub boolean r = args[0].matches("[0-9]+"); String h = args[0].substring(0, 1); @@ -138,9 +137,7 @@ else if(grade==2){ } catch (Exception e) { } } - else { - int num = (rand.nextInt(3)+3); ArrayList s1 = new ArrayList<>(); ArrayList s2 = new ArrayList<>(); @@ -166,8 +163,7 @@ else if(grade==2){ } x1 +=" "+a + " "+ c; x2 +=" "+a + " "+ c; - x3 +=a+c; - + x3 +=a+c; } anwser(x3); d = Integer.valueOf(anwser(x3)); @@ -177,8 +173,7 @@ else if(grade==2){ s1.add(y1+""); s2.add(y2+""); - } - + } try { File f = new File("out.txt"); PrintStream f1 = new PrintStream(new FileOutputStream(f)); @@ -189,17 +184,12 @@ else if(grade==2){ System.out.println("\n"); for(int k=0;k Date: Mon, 17 Sep 2018 17:18:12 +0800 Subject: [PATCH 033/135] MathExam_V2.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /* * 在原有的V2.0.0版本上加入三年级四则混合运算题 * 1.删除原有的构造函数以及构造函数的重载; * 2.input方法增加了对新传入的"-n"和"-grade"参数的匹配判断; * 3.修改二年级题目生成,只针对乘除做训练,不包含加减运算。 * coding : GBK * MathExam_V2.0.1 */ --- Pair_211606335_211606318/MathExam.java | 256 +++++++++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 Pair_211606335_211606318/MathExam.java diff --git a/Pair_211606335_211606318/MathExam.java b/Pair_211606335_211606318/MathExam.java new file mode 100644 index 0000000..272413c --- /dev/null +++ b/Pair_211606335_211606318/MathExam.java @@ -0,0 +1,256 @@ + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.ObjectOutputStream.PutField; +import java.io.OutputStream; +import java.util.Date; +import java.text.SimpleDateFormat; +import java.util.Random; +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class MathExam { + /* + * ԭеV2.0.0汾ϼ꼶 + * 1.ɾԭеĹ캯Լ캯أ + * 2.input˶´"-n""-grade"ƥжϣ + * 3.޸Ķ꼶ĿɣֻԳ˳ѵӼ㡣 + * coding GBK + * MathExam_V2.0.1 + */ + int firstNumber, secondNumber; + int symbol; //ж + static int grade; + static int count; + int result; + + String[] str_ArithmeticProblem = new String[10000]; // + String[] str_MathAnswer = new String[10000]; //Ŀͱ׼ + + public MathExam(String args0,String args1, String args2, String args3){ + inPut(args0, args1,args2,args3); + mathProblem(count); + outPut(); + } + + private void inPut(String str0,String str1, String str2, String str3) { + // TODO Auto-generated method stub + boolean flag1 = true; //жĿ꼶 + boolean flag2 = true; + + Scanner in = new Scanner(System.in); + String regex1 = "0*[1-9]{1}\\d{0,3}"; //ʽжΪ + String regex2 = "0*[1-2]{1}{0}"; + Pattern pattern1 = Pattern.compile(regex1); //ʽı + Pattern pattern2 = Pattern.compile(regex2); + Matcher matcher1,matcher2; //жϲʽIJ + + while (true) { + try { + if(str0.equals("-n") && str2.equals("-grade")){ //ƥIJͣargs[0] args[2] + matcher1 = pattern1.matcher(str1); + matcher2 = pattern2.matcher(str3); + flag1 = matcher1.matches(); + flag2 = matcher2.matches(); + if(!flag1 || !flag2){ + throw new NumberFormatException(); + } else { + count = Integer.valueOf(str1); + grade = Integer.valueOf(str3); + } + }else if(str0.equals("-grade") && str2.equals("-n")){ //regex13ıʽƥɹ + matcher1 = pattern1.matcher(str3); + matcher2 = pattern2.matcher(str1); + flag1 = matcher1.matches(); //ƥ淶 + flag2 = matcher2.matches(); //꼶ƥ淶 + if(!flag1 || !flag2){ //ʽ淶ͽ쳣 + throw new NumberFormatException(); + } else { + count = Integer.valueOf(str3); + grade = Integer.valueOf(str1); + } + } else { + System.out.println("󣬼˳"); + System.exit(0); + } + } catch (NumberFormatException e) { + // TODO: handle exception + System.out.println("Ϲ淶˳"); + System.exit(0); + } + in.close(); + break; + } + } + + private void outPut() { + // TODO Auto-generated method stub + File file = new File("out.txt"); + + if(!file.exists()){ //жļǷ + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("ļʱִ!"); + } + } + + try { + String str = "\r\n"; + byte[] bytes = str.getBytes(); //stringתΪܱʶĶ + + FileOutputStream fos = new FileOutputStream(file); //ļд + for (int i = 0; i < count; i++) { + byte[] b_ArithmeticProblem = str_ArithmeticProblem[i].getBytes(); + fos.write(b_ArithmeticProblem); + fos.write(bytes); + } + fos.write(bytes); + fos.flush(); //ˢڴ + for (int i = 0; i < count; i++) { + byte[] b_MathAnswer = str_MathAnswer[i].getBytes(); + fos.write(b_MathAnswer); + fos.write(bytes); + } + fos.flush(); + fos.close(); //رļ + + System.out.print("------- ι" + count + "Сѧ"+ grade + "꼶⣬out.txtļ鿴 -------"); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + System.out.println("δҵָļ!"); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("ļд!"); + } + + } + + // + private void mathProblem(int count) { + Random rnd = new Random(); + + for (int i = 0; i < count; i++) { + symbol = rnd.nextInt(2); + firstNumber = (int)(Math.random()*20+1); + secondNumber = (int)(Math.random()*20+1); + + if(grade == 1){ + switch (symbol) { + case 0: + add(firstNumber,secondNumber,i); + break; + + case 1: + sub(firstNumber,secondNumber,i); + break; + + default: + break; + } + } else if(grade == 2){ + switch (symbol) { + case 0: + mul(firstNumber,secondNumber,i); + break; + + case 1: + div(i); + break; + + default: + break; + } + } + + } + } +/* + * ӷ + * 1.һ꼶ļӷ20ڡ + * +*/ + private void add(int n1, int n2,int i) { + // TODO Auto-generated method stub + result = n1 + n2; + str_ArithmeticProblem[i] = "( " + (i+1) +" ) " + n1 + " + " + n2; + str_MathAnswer[i] = "( " + (i+1) +" ) " + n1 + " + " + n2 + " = " + result; + } + + /* + * + * + * 1.һ꼶֮Ӧڴ0 + * 2.ͼ20ڡ +*/ + private void sub(int n1, int n2,int i) { + // TODO Auto-generated method stub + if (n1 < n2) { //Ϊֵ + int num; + num = n1; + n1 = n2; + n2 = num; + } + result = n1 - n2; + str_ArithmeticProblem[i] = "( " + (i+1) +" ) " + n1 + " - " + n2; + str_MathAnswer[i] = "( " + (i+1) +" ) " + n1 + " - " + n2 + " = " + result; + } + + /* + * ˷ + * + * 1.һ꼶ij˷Ӧ0-9ڡžų˷ + * +*/ + private void mul(int n1, int n2,int i) { + // TODO Auto-generated method stub + if (n1 > 9) { + n1 = (int)(Math.random()*10); + } + if (n2 > 9) { + n2 = (int)(Math.random()*10); + } + result = n1 * n2; + str_ArithmeticProblem[i] = "( " + (i+1) +" ) " + n1 + " x " + n2; + str_MathAnswer[i] = "( " + (i+1) +" ) " + n1 + " x " + n2 + " = " + result; + } + + /* + * + * + * 1.һ꼶ijӦڡžų˷Χڣ + * 2.ĸΪ0 + * +*/ + private void div(int i) { + // TODO Auto-generated method stub + while(true){ + int n1 = (int)(Math.random()*82); + int n2 = (int)(Math.random()*81+1); + if(n1 % n2 == 0){ + result = n1 / n2; + str_ArithmeticProblem[i] = "( " + (i+1) +" ) " + n1 + " " + n2; + str_MathAnswer[i] = "( " + (i+1) +" ) " + n1 + " " + n2 + " = " + result; + }else if(n1 % n2 != 0){ + result = n1 / n2; + str_ArithmeticProblem[i] = "( " + (i+1) +" ) " + n1 + " " + n2; + str_MathAnswer[i] = "( " + (i+1) +" ) " + n1 + " " + n2 + " = " + result + "..." + (n1 % n2); + } + break; + } + } + + + public static void main(String[] args) { + // TODO Auto-generated method stub + new MathExam(args[0], args[1],args[2],args[3]); + } + +} From 71c08d5304bee0d6040cd883b0d6992fa48207ef Mon Sep 17 00:00:00 2001 From: imegotistic <42676270+imegotistic@users.noreply.github.com> Date: Mon, 17 Sep 2018 18:12:03 +0800 Subject: [PATCH 034/135] =?UTF-8?q?=E9=87=8D=E6=9E=84=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=A2=9E=E5=8A=A0init()=E6=96=B9?= =?UTF-8?q?=E6=B3=95,=E4=B8=89=E5=B9=B4=E7=BA=A7=E5=88=B6=E4=BD=9C?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606333_211606356/MathExam6356.java | 156 +++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 Pair_211606333_211606356/MathExam6356.java diff --git a/Pair_211606333_211606356/MathExam6356.java b/Pair_211606333_211606356/MathExam6356.java new file mode 100644 index 0000000..8433e0c --- /dev/null +++ b/Pair_211606333_211606356/MathExam6356.java @@ -0,0 +1,156 @@ +import java.io.File; +import java.util.*; +import java.text.*; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.Random; + +import com.sun.org.apache.xml.internal.security.Init; + +public class MathExam6356 { + static int n; + static int grade; + static int[] a; + static int[] b; + static int[] c; + static Random fuhao = new Random(); + static Random num1 = new Random(); + static Random num2 = new Random();// 种子相同的Random对象,生成的随机数序列是一样的。 + + public static void main(String[] args) throws FileNotFoundException { + init(args); + + } + + private static void init(String[] input) throws FileNotFoundException { + if (input.length == 0) { + // 默认参数 + n = 10; + grade = 1; + } else if (input.length == 4) { + if (input[0].equals("-n") && input[2].equals("-grade")) { + try { + n = Integer.parseInt(input[1]); + grade = Integer.parseInt(input[3]); + } catch (NumberFormatException e) { + System.out.println("请输入正整数!"); + } + + } else if (input[2].equals("-n") && input[0].equals("-grade")) { + try { + n = Integer.parseInt(input[3]); + grade = Integer.parseInt(input[1]); + } catch (NumberFormatException e) { + System.out.println("请输入正整数!"); + } + + } + } else { + System.out.println("您输入的参数有误,请重新运行!"); + System.exit(0); + } + if (grade == 1) { + gradeOne(); + } else if(grade==2) { + gradeTwo(); + }else if (grade==3) { + System.out.println("制作中"); + System.exit(0); + }else { + System.out.println("目前只支持1-3年级,请重新输入"); + } + File file = new File("out.txt"); + PrintStream ps = new PrintStream(file); + System.setOut(ps);// 把创建的打印输出流赋给系统。 + outPut(); + } + + private static void gradeTwo() { + a = new int[n]; + b = new int[n]; + c = new int[n]; + for (int i = 0; i < n; i++) { + a[i] = num1.nextInt(9); // 0-100的随机数 + b[i] = num2.nextInt(9); + c[i] = fuhao.nextInt(2);// 0是乘法1是除法 + if (c[i] == 1 || b[i] == 0) {// 除数是0重新随机 + b[i] = num2.nextInt(8) + 1; + } + if (c[i] == 0 || (a[i] == 0 && b[i] == 0)) { + a[i] = num2.nextInt(8) + 1; + b[i] = num2.nextInt(8) + 1; + } + } + + } + + public static void outPut() { + for (int i = 0; i < n; i++) { + if (grade == 1) { + if (c[i] == 0) { + System.out.println("(" + (i + 1) + ") " + a[i] + "+" + b[i] + " ="); + } else { + System.out.println("(" + (i + 1) + ") " + a[i] + "-" + b[i] + " ="); + } + } else { + if (c[i] == 0) { + System.out.println("(" + (i + 1) + ") " + a[i] + "*" + b[i] + " ="); + } else { + System.out.println("(" + (i + 1) + ") " + a[i] + "/" + b[i] + " ="); + } + } + } + System.out.println("--------------标准答案----------------"); + for (int i = 0; i < n; i++) { + if (grade == 1) { + if (c[i] == 0) { + System.out.println("(" + (i + 1) + ") " + a[i] + "+" + b[i] + " =" + " " + (a[i] + b[i])); + } else { + System.out.println("(" + (i + 1) + ") " + a[i] + "-" + b[i] + " =" + " " + (a[i] - b[i])); + } + } else { + if (c[i] == 0) { + System.out.println("(" + (i + 1) + ") " + a[i] + "*" + b[i] + " =" + " " + (a[i] * b[i])); + } else if (a[i] % b[i] == 0) { + System.out.println("(" + (i + 1) + ") " + a[i] + "/" + b[i] + " =" + " " + (a[i] / b[i])); + } else { + System.out.println("(" + (i + 1) + ") " + a[i] + "/" + b[i] + " =" + " " + (a[i] / b[i]) + "..." + + (a[i] % b[i])); + + } + } + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm"); + String time = sdf.format(new Date()); + System.out.println("211606356 陈宇 " + time);// 输出学号姓名时间 + } + + public static void gradeOne() { + a = new int[n]; + b = new int[n]; + c = new int[n]; + + for (int i = 0; i < n; i++) { + a[i] = num1.nextInt(100);// 0-100的随机数 + b[i] = num2.nextInt(100); + c[i] = fuhao.nextInt(2); + } + for (int i = 0; i < n; i++) { + if (c[i] == 0) {// 随机加法 + while (a[i] + b[i] > 100) { + // 随机减法 + a[i] = num1.nextInt(100); + b[i] = num2.nextInt(100); + } + + } else {// 随机减法 + while (a[i] - b[i] < 0) { + // 如果差小于0重新随机 + a[i] = num1.nextInt(100); + b[i] = num2.nextInt(100); + } + } + + } + } +} From b70ade75bd73528309209b8c09eddfd8ad3b8bb4 Mon Sep 17 00:00:00 2001 From: LIUZIMING6 <632095613@qq.com> Date: Mon, 17 Sep 2018 18:50:10 +0800 Subject: [PATCH 035/135] =?UTF-8?q?=E4=BF=AE=E6=94=B92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 两个参数顺序不限 --- Pair_211601253_211601246/MathExam1253.java | 49 +++++++++++++++------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/Pair_211601253_211601246/MathExam1253.java b/Pair_211601253_211601246/MathExam1253.java index 51dd540..e9a1625 100644 --- a/Pair_211601253_211601246/MathExam1253.java +++ b/Pair_211601253_211601246/MathExam1253.java @@ -18,31 +18,48 @@ public class MathExam1253 { public static void main(String[] args) { + if (args.length!=4) { + System.out.println("󣬳"); + System.exit(0); + } + boolean r = args[1].matches("[0-9]+"); + boolean l = args[3].matches("[0-9]+"); int grade = 1; - if(args.length==2){ - if (args[1].equals("1") || args[1].equals("2") || args[1].equals("3")) { - grade = Integer.valueOf(args[1]); - } else { + int n = 0; + if(args[0].equals("-n") && args[2].equals("-grade")) + { + if (r == true && l== true) { + n = Integer.valueOf(args[1]); + grade = Integer.valueOf(args[3]); + } + else { System.out.println("󣬳"); System.exit(0); + } + } + else if(args[0].equals("-grade") && args[2].equals("-n")) + { + if (r == true && l== true) { + grade = Integer.valueOf(args[1]); + n = Integer.valueOf(args[3]); } - } - if(args.length!=1 && args.length!=2 ){ + else { + System.out.println("󣬳"); + System.exit(0); + } + } + else { + System.out.println("󣬳"); + System.exit(0); + } + if (grade!=1 && grade!=2 && grade!=3) { System.out.println("󣬳"); - System.exit(0); + System.exit(0); } - // TODO Auto-generated method stub - boolean r = args[0].matches("[0-9]+"); - String h = args[0].substring(0, 1); - int n = 0; - if (r == true && args[0].length() < 5 && h != "0") { - n = Integer.valueOf(args[0]); - } else { + if ( n >= 10000 || n == 0) { System.out.println("󣬳"); System.exit(0); } - - Random rand = new Random(); if (grade==1) { int d = 0; From 09e925e0ff776ba3d45f8e7e6a448d64d18bd309 Mon Sep 17 00:00:00 2001 From: imegotistic <42676270+imegotistic@users.noreply.github.com> Date: Mon, 17 Sep 2018 18:55:31 +0800 Subject: [PATCH 036/135] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=89=E5=B9=B4?= =?UTF-8?q?=E7=BA=A7=E7=9A=84=E9=A2=98=E7=9B=AE=EF=BC=8C=E7=AD=94=E6=A1=88?= =?UTF-8?q?=E6=AD=A3=E5=9C=A8=E5=88=B6=E4=BD=9C=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606333_211606356/MathExam6356.java | 60 ++++++++++++++++++++-- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/Pair_211606333_211606356/MathExam6356.java b/Pair_211606333_211606356/MathExam6356.java index 8433e0c..e043347 100644 --- a/Pair_211606333_211606356/MathExam6356.java +++ b/Pair_211606333_211606356/MathExam6356.java @@ -13,6 +13,7 @@ public class MathExam6356 { static int[] a; static int[] b; static int[] c; + static String str[]; static Random fuhao = new Random(); static Random num1 = new Random(); static Random num2 = new Random();// 种子相同的Random对象,生成的随机数序列是一样的。 @@ -26,7 +27,7 @@ private static void init(String[] input) throws FileNotFoundException { if (input.length == 0) { // 默认参数 n = 10; - grade = 1; + grade = 3; } else if (input.length == 4) { if (input[0].equals("-n") && input[2].equals("-grade")) { try { @@ -54,8 +55,7 @@ private static void init(String[] input) throws FileNotFoundException { } else if(grade==2) { gradeTwo(); }else if (grade==3) { - System.out.println("制作中"); - System.exit(0); + gradeThree(); }else { System.out.println("目前只支持1-3年级,请重新输入"); } @@ -65,6 +65,49 @@ private static void init(String[] input) throws FileNotFoundException { outPut(); } + private static void gradeThree() { + + str = new String[n]; + for(int i=0;i Date: Mon, 17 Sep 2018 19:13:37 +0800 Subject: [PATCH 037/135] =?UTF-8?q?=E6=94=B9=E5=96=84=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 针对不同符号生成不同范围的数字以平衡符号出现概率 --- Pair_211617246_211606326/MathExam.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Pair_211617246_211606326/MathExam.java b/Pair_211617246_211606326/MathExam.java index 1a564d7..d21cab9 100644 --- a/Pair_211617246_211606326/MathExam.java +++ b/Pair_211617246_211606326/MathExam.java @@ -371,7 +371,22 @@ private static void grade3(int num) { checkOper.add(temp); exp.add(temp); checkRepeat.append(temp); - number = (int)(Math.random() * 501); + // 根据运算符合理生成数字 + switch (temp) { + case "+": + number = (int)(Math.random() * 1001); + break; + case "-": + number = (int)(Math.random() * 1001); + break; + case "*": + number = (int)(Math.random() * 100); + break; + case "/": + number = (int)(Math.random() * 10); + break; + default:break; + } exp.add(String.valueOf(number)); checkRepeat.append(String.valueOf(number)); } From 6108516c60891f4f668bd2df67844402345aead8 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Mon, 17 Sep 2018 19:54:53 +0800 Subject: [PATCH 038/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=AB=E5=B0=BE?= =?UTF-8?q?=E5=A7=8B=E7=BB=88=E6=97=A0=E6=8B=AC=E5=8F=B7=E7=8E=B0=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606367_211606445/MathExam.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Pair_211606367_211606445/MathExam.java b/Pair_211606367_211606445/MathExam.java index 56c575f..384930f 100644 --- a/Pair_211606367_211606445/MathExam.java +++ b/Pair_211606367_211606445/MathExam.java @@ -104,7 +104,7 @@ else if(grade==3) j--; continue; } - else if(ran_left_parenthesis_num % 2 == 1 && j <= ran_symbol_num-2) + else if(ran_left_parenthesis_num % 2 == 1 && j <= ran_symbol_num-1) { if(j == 1) { @@ -115,9 +115,8 @@ else if(ran_left_parenthesis_num % 2 == 1 && j <= ran_symbol_num-2) symbol = ranSymbol.nextInt(2) + 2; cal_number2 = ranNum.nextInt(1001); word = word+str_symbol[symbol]+Integer.toString(cal_number2); - j++; } - else if(j <= ran_symbol_num-2) + else if(j <= ran_symbol_num-1) { word = word + str_symbol[symbol] + "("+Integer.toString(cal_number2); if(symbol == 0 || symbol == 1) @@ -127,6 +126,7 @@ else if(j <= ran_symbol_num-2) cal_number2 = ranNum.nextInt(1001); word = word + str_symbol[symbol] + Integer.toString(cal_number2)+")"; } + j++; continue; } word = word+str_symbol[symbol]+Integer.toString(cal_number2); From a4a264c229380794f6c6b7d62d0cacb02aa20765 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Mon, 17 Sep 2018 19:58:22 +0800 Subject: [PATCH 039/135] Add files via upload --- Pair_211606367_211606445/Calculation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pair_211606367_211606445/Calculation.java b/Pair_211606367_211606445/Calculation.java index 23fef14..297b52b 100644 --- a/Pair_211606367_211606445/Calculation.java +++ b/Pair_211606367_211606445/Calculation.java @@ -4,7 +4,7 @@ public class Calculation { int sum = 0; - String word = "";; + String word = ""; String[] cal_str = {"+","-","x",""}; List inffix_expression = new ArrayList(); List suffix_expression = new ArrayList(); From 0ff9a99190fe438f1b1899cb28776c2dcd488317 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Mon, 17 Sep 2018 20:03:10 +0800 Subject: [PATCH 040/135] Delete Calculation.java --- Pair_211606367_211606445/Calculation.java | 170 ---------------------- 1 file changed, 170 deletions(-) delete mode 100644 Pair_211606367_211606445/Calculation.java diff --git a/Pair_211606367_211606445/Calculation.java b/Pair_211606367_211606445/Calculation.java deleted file mode 100644 index 297b52b..0000000 --- a/Pair_211606367_211606445/Calculation.java +++ /dev/null @@ -1,170 +0,0 @@ -import java.util.ArrayList; -import java.util.List; -import java.util.Stack; - -public class Calculation { - int sum = 0; - String word = ""; - String[] cal_str = {"+","-","x",""}; - List inffix_expression = new ArrayList(); - List suffix_expression = new ArrayList(); - Stack cal_symbol = new Stack(); - Stack cal_sum = new Stack(); - - public Calculation(String cal_problem) { - super(); - String str_char_merge = ""; - for (int i = 0; i < cal_problem.length(); i++) { - if(cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') - { - while(i < cal_problem.length() && cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') - { - str_char_merge += cal_problem.charAt(i); - i++; - } - inffix_expression.add(str_char_merge); - str_char_merge = ""; - i--; - } - else - { - inffix_expression.add(cal_problem.substring(i, i+1)); - } - } - } - - /** - * ׺ʽת׺ʽ - * - */ - public void To_Suffix_Expression() - { - String str_char=""; - for(int i = 0;i < inffix_expression.size();i++) { - str_char = inffix_expression.get(i); - if(str_char.matches("[0-9]+")) - suffix_expression.add(str_char); - else if(str_char.equals("(")) - cal_symbol.push(str_char); - else if(str_char.equals(")")) - { - while(!(cal_symbol.peek().equals("("))) - { - suffix_expression.add(cal_symbol.pop()); - } - cal_symbol.pop(); - } - else - { - while(cal_symbol.size()!=0 && Oper(cal_symbol.peek(),str_char)) - { - suffix_expression.add(cal_symbol.pop()); - } - cal_symbol.push(str_char); - } - } - while(cal_symbol.size()!=0) - { - suffix_expression.add(cal_symbol.pop()); - } - } - - private boolean Oper(String peek, String str) { - int i = 0,j = 0; - if(peek.equals("(") || peek == null) - return false; - while(i < cal_str.length && cal_str[i] != peek) - { - i++; - } - while(j < cal_str.length && cal_str[j] != str) - { - j++; - } - if(i/2 >= j/2) - return true; - else - return false; - } - - /** - * ׺ʽ沨ʽ - * - */ - public boolean Suffix_Expression_Summation() - { - for(int i = 0;i < suffix_expression.size();i++) { - if(suffix_expression.get(i).matches("\\d+")) - { - cal_sum.push(suffix_expression.get(i)); - } - else - { - int num1 = Integer.parseInt(cal_sum.pop()); - int num2 = Integer.parseInt(cal_sum.pop()); - if(suffix_expression.get(i).equals("+")) - { - sum = num1+num2; - } - else if(suffix_expression.get(i).equals("-")) - { - sum = num2-num1; - } - else if(suffix_expression.get(i).equals("x")) - { - sum = num1*num2; - } - else if(suffix_expression.get(i).equals("") && num1 == 0) - { - return false; - } - else if(suffix_expression.get(i).equals("")) - { - sum = num2/num1; - if(num2%num1 != 0) - return false; - } - cal_sum.push(sum+""); - } - } - sum = Integer.parseInt(cal_sum.pop()); - if(sum < 0 || sum > 10000) - return false; - else - return true; - } - - /** - * ׺ʽɺϸ׺ʽword - * - */ - public void Infix_Expression_To_Word() - { - for (int i = 0; i < inffix_expression.size(); i++) { - if(i == inffix_expression.size()-1) - { - word += inffix_expression.get(i); - return; - } - else - { - word += inffix_expression.get(i)+" "; - } - } - } - - /** - * @return word - */ - public String getword() { - return word; - } - /** - * ȡ׺ʽֵ - * @return sum - */ - public int getSum() { - return sum; - } - -} From f5c41592d0777785510d737993d928c8980a8316 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Mon, 17 Sep 2018 20:07:31 +0800 Subject: [PATCH 041/135] Add files via upload --- Pair_211606367_211606445/Calculation.java | 170 ++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 Pair_211606367_211606445/Calculation.java diff --git a/Pair_211606367_211606445/Calculation.java b/Pair_211606367_211606445/Calculation.java new file mode 100644 index 0000000..297b52b --- /dev/null +++ b/Pair_211606367_211606445/Calculation.java @@ -0,0 +1,170 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +public class Calculation { + int sum = 0; + String word = ""; + String[] cal_str = {"+","-","x",""}; + List inffix_expression = new ArrayList(); + List suffix_expression = new ArrayList(); + Stack cal_symbol = new Stack(); + Stack cal_sum = new Stack(); + + public Calculation(String cal_problem) { + super(); + String str_char_merge = ""; + for (int i = 0; i < cal_problem.length(); i++) { + if(cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') + { + while(i < cal_problem.length() && cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') + { + str_char_merge += cal_problem.charAt(i); + i++; + } + inffix_expression.add(str_char_merge); + str_char_merge = ""; + i--; + } + else + { + inffix_expression.add(cal_problem.substring(i, i+1)); + } + } + } + + /** + * ׺ʽת׺ʽ + * + */ + public void To_Suffix_Expression() + { + String str_char=""; + for(int i = 0;i < inffix_expression.size();i++) { + str_char = inffix_expression.get(i); + if(str_char.matches("[0-9]+")) + suffix_expression.add(str_char); + else if(str_char.equals("(")) + cal_symbol.push(str_char); + else if(str_char.equals(")")) + { + while(!(cal_symbol.peek().equals("("))) + { + suffix_expression.add(cal_symbol.pop()); + } + cal_symbol.pop(); + } + else + { + while(cal_symbol.size()!=0 && Oper(cal_symbol.peek(),str_char)) + { + suffix_expression.add(cal_symbol.pop()); + } + cal_symbol.push(str_char); + } + } + while(cal_symbol.size()!=0) + { + suffix_expression.add(cal_symbol.pop()); + } + } + + private boolean Oper(String peek, String str) { + int i = 0,j = 0; + if(peek.equals("(") || peek == null) + return false; + while(i < cal_str.length && cal_str[i] != peek) + { + i++; + } + while(j < cal_str.length && cal_str[j] != str) + { + j++; + } + if(i/2 >= j/2) + return true; + else + return false; + } + + /** + * ׺ʽ沨ʽ + * + */ + public boolean Suffix_Expression_Summation() + { + for(int i = 0;i < suffix_expression.size();i++) { + if(suffix_expression.get(i).matches("\\d+")) + { + cal_sum.push(suffix_expression.get(i)); + } + else + { + int num1 = Integer.parseInt(cal_sum.pop()); + int num2 = Integer.parseInt(cal_sum.pop()); + if(suffix_expression.get(i).equals("+")) + { + sum = num1+num2; + } + else if(suffix_expression.get(i).equals("-")) + { + sum = num2-num1; + } + else if(suffix_expression.get(i).equals("x")) + { + sum = num1*num2; + } + else if(suffix_expression.get(i).equals("") && num1 == 0) + { + return false; + } + else if(suffix_expression.get(i).equals("")) + { + sum = num2/num1; + if(num2%num1 != 0) + return false; + } + cal_sum.push(sum+""); + } + } + sum = Integer.parseInt(cal_sum.pop()); + if(sum < 0 || sum > 10000) + return false; + else + return true; + } + + /** + * ׺ʽɺϸ׺ʽword + * + */ + public void Infix_Expression_To_Word() + { + for (int i = 0; i < inffix_expression.size(); i++) { + if(i == inffix_expression.size()-1) + { + word += inffix_expression.get(i); + return; + } + else + { + word += inffix_expression.get(i)+" "; + } + } + } + + /** + * @return word + */ + public String getword() { + return word; + } + /** + * ȡ׺ʽֵ + * @return sum + */ + public int getSum() { + return sum; + } + +} From 1125998ef822b4bd2671b2126e44e2b371a49e77 Mon Sep 17 00:00:00 2001 From: LinKai945 Date: Mon, 17 Sep 2018 20:20:33 +0800 Subject: [PATCH 042/135] =?UTF-8?q?=E6=96=87=E4=BB=B6Calculate=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E8=B0=83=E5=BA=A6=E5=9C=BA=E7=AE=97=E6=B3=95=E5=8F=8A?= =?UTF-8?q?=E9=80=86=E6=B3=A2=E5=85=B0=E8=A1=A8=E8=BE=BE=E5=BC=8F=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=B1=82=E5=80=BC=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211614269_211601233/Calculate.java | 134 +++++++++ Pair_211614269_211601233/MathExam.java | 374 ++++++++++++++++++++++++ 2 files changed, 508 insertions(+) create mode 100644 Pair_211614269_211601233/Calculate.java create mode 100644 Pair_211614269_211601233/MathExam.java diff --git a/Pair_211614269_211601233/Calculate.java b/Pair_211614269_211601233/Calculate.java new file mode 100644 index 0000000..5909a4a --- /dev/null +++ b/Pair_211614269_211601233/Calculate.java @@ -0,0 +1,134 @@ + +import java.util.Stack; + +//ʹ沨ʽ +public class Calculate { + // 췽Ŀ + + public static int ans(String str) { + // TODO Auto-generated constructor stub + squestion = str; + cutStr(); + reversePolishNotation(); + return compute(); + } + + // Ŀַ + public static int slen; + public static String[] scut = new String[20]; + public static String squestion; + // ջ + public static Stack soperators = new Stack<>(); + // ת沨ʽ + public static Stack srpn = new Stack<>(); + // ڵ沨ʽ˳ + public static Stack srpnb = new Stack<>(); + // 沨ʽõջ + public static Stack cal = new Stack<>(); + + public static boolean isNum(String str) { + for (int i = 0; i < str.length(); i++) { + if (!Character.isDigit(str.charAt(i))) { + return false; + } + } + return true; + } + + // ַĿиֵͷ + public static void cutStr() { + int n = 0; + String str=squestion.replaceAll(" ", ""); + squestion=str; + for (int i = 0; i < squestion.length(); i++) { + if (Character.isDigit(squestion.charAt(i))) { + if ((i + 1) < squestion.length() && Character.isDigit(squestion.charAt(i + 1))) { + int num = (squestion.charAt(i) - '0') * 10 + (squestion.charAt(i + 1) - '0'); + scut[n] = String.valueOf(num); + n++; + i++; + } else if (squestion.charAt(i) == ' ') { + } else { + int num = squestion.charAt(i) - '0'; + scut[n] = String.valueOf(num); + n++; + } + } else { + scut[n] = String.valueOf(squestion.charAt(i)); + n++; + } + } + slen = n; + } + + public static int priority(String str) { + switch (str) { + case "+": + case "-": + return 1; + case "*": + case "/": + return 2; + default: + return -1; + } + + } + + // ת沨ʽ + public static void reversePolishNotation() { + + for (int i = 0; i < slen; i++) { + if (!(scut[i].equals("+") || scut[i].equals("-") || scut[i].equals("*") || scut[i].equals("/"))) { + srpn.push(scut[i]); + } else { + if (soperators.isEmpty()) { + soperators.push(scut[i]); + } else { + if (priority(scut[i]) > priority(soperators.peek())) { + soperators.push(scut[i]); + } else { + while ((!soperators.isEmpty()) && (priority(soperators.peek()) >= priority(scut[i]))) { + srpn.push(soperators.pop()); + } + soperators.push(scut[i]); + } + } + } + } + while (!soperators.isEmpty()) { + srpn.push(soperators.pop()); + } + } + + public static int compute() { + // 沨ʽ˳ + while (!srpn.isEmpty()) { + srpnb.push(srpn.pop()); + } + + while (!srpnb.isEmpty()) { + if (srpnb.peek().equals("+") || srpnb.peek().equals("-") || srpnb.peek().equals("*") + || srpnb.peek().equals("/")) { + String sym = srpnb.pop(); + int a = Integer.parseInt(cal.pop()); + int b = Integer.parseInt(cal.pop()); + if (sym.equals("+")) { + cal.push(String.valueOf(b + a)); + } else if (sym.equals("-")) { + cal.push(String.valueOf(b - a)); + } else if (sym.equals("*")) { + cal.push(String.valueOf(b * a)); + } else { + cal.push(String.valueOf(b / a)); + } + + } else { + cal.push(srpnb.pop()); + } + } + return Integer.parseInt(cal.pop()); + + } + +} diff --git a/Pair_211614269_211601233/MathExam.java b/Pair_211614269_211601233/MathExam.java new file mode 100644 index 0000000..0668d77 --- /dev/null +++ b/Pair_211614269_211601233/MathExam.java @@ -0,0 +1,374 @@ +package com.java.Math; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; + +public class MathExam { + static int a; + static int b; + static int sym; + + public static boolean checkOne() { + a = (int) (0 + Math.random() * (100 - 0 + 1)); + b = (int) (0 + Math.random() * (100 - 0 + 1)); + // symΪ1Ϊ,2Ϊ + sym = (int) (1 + Math.random() * (2 - 1 + 1)); + if (sym == 1) { + if ((a + b) > 100) { + return false; + } else { + return true; + } + } else { + if ((a - b) < 0) { + return false; + } else { + return true; + } + } + } + + public static boolean checkTwo() { + // symΪ1Ϊ,2Ϊ + sym = (int) (1 + Math.random() * (2 - 1 + 1)); + if (sym == 1) { + a = (int) (0 + Math.random() * (9 - 0 + 1)); + b = (int) (0 + Math.random() * (9 - 0 + 1)); + return true; + } else { + a = (int) (1 + Math.random() * (99 - 1 + 1)); + b = (int) (1 + Math.random() * (9 - 1 + 1)); + if (a < b) { + return false; + } else { + if (a / b >= 10) { + return false; + } + } + } + return true; + } + + public static boolean checkThr() { + // symΪ1Ϊ,2Ϊ + if (sym == 1) { + a = (int) (0 + Math.random() * (9 - 0 + 1)); + b = (int) (0 + Math.random() * (9 - 0 + 1)); + return true; + } else { + a = (int) (1 + Math.random() * (99 - 1 + 1)); + b = (int) (1 + Math.random() * (9 - 1 + 1)); + if (a < b) { + return false; + } else { + if (a / b >= 10) { + return false; + } + } + } + return true; + } + + public static boolean isNum(String str) { + for (int i = 0; i < str.length(); i++) { + if (!Character.isDigit(str.charAt(i))) { + return false; + } + } + return true; + } + + public static void mathOne(int n) { + //ŵĿ + String prob; + //ŵĿ + String prob1; + String ans; + ArrayList probs = new ArrayList(); + ArrayList anss = new ArrayList(); + boolean end = false; + for (int i = 1; i <= n; i++) { + do { + end = checkOne(); + } while (!end); + // symΪ1Ϊ,2Ϊ + if (sym == 1) { + prob1=a + " " + "+" + " " + b; + prob = "(" + i + ")" + " " + a + " " + "+" + " " + b; + + ans = prob + " " + "=" + " " + Calculate.ans(prob1); + } else { + prob1=a + " " + "-" + " " + b; + prob = "(" + i + ")" + " " + a + " " + "-" + " " + b; + ans = prob + " " + "=" + " " + Calculate.ans(prob1); + } + probs.add(prob); + anss.add(ans); + + } + + File file = new File("out.txt"); + if (!file.exists()) { + File parent = file.getParentFile(); + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("ļʧ,"); + } + } + try { + OutputStream out = new FileOutputStream(file); + byte[] data; + for (String str : probs) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + String fg = "-----------------׼-----------------" + "\r\n"; + data = fg.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + for (String str : anss) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + try { + out.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("io"); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + System.out.println("Ҳļ,"); + } + } + + public static void mathTwo(int n) { + String prob; + String prob1; + String ans; + ArrayList probs = new ArrayList(); + ArrayList anss = new ArrayList(); + boolean end = false; + for (int i = 1; i <= n; i++) { + // + do { + end = checkTwo(); + } while (!end); + if (sym == 1) { + prob1=a + " " + "*" + " " + b; + prob = "(" + i + ")" + " " + a + " " + "*" + " " + b; + ans = prob + " " + "=" + " " + Calculate.ans(prob1); + } else { + prob = "(" + i + ")" + " " + a + " " + "/" + " " + b; + if (a % b != 0) { + ans = "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + (a / b) + "..." + (a % b); + } else { + prob1=a + " " + "/" + " " + b; + ans = prob + " " + "=" + " " + Calculate.ans(prob1); + } + } + probs.add(prob); + anss.add(ans); + } + + File file = new File("out.txt"); + if (!file.exists()) { + File parent = file.getParentFile(); + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("ļʧ,"); + } + } + try { + OutputStream out = new FileOutputStream(file); + byte[] data; + for (String str : probs) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + String fg = "-----------------׼-----------------" + "\r\n"; + data = fg.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + for (String str : anss) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + try { + out.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("io"); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + System.out.println("Ҳļ,"); + } + } + + public static void mathThr(int n) { + String prob; + String ans; + ArrayList probs = new ArrayList(); + ArrayList anss = new ArrayList(); + boolean end = false; + for (int i = 1; i <= n; i++) { + // + sym = (int) (1 + Math.random() * (2 - 1 + 1)); + do { + end = checkTwo(); + } while (!end); + if (sym == 1) { + prob = "(" + i + ")" + " " + a + " " + "*" + " " + b; + ans = "(" + i + ")" + " " + a + " " + "*" + " " + b + " " + "=" + " " + (a * b); + } else { + prob = "(" + i + ")" + " " + a + " " + "/" + " " + b; + if (a % b != 0) { + ans = "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + (a / b) + "..." + (a % b); + } else { + ans = "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + (a / b); + } + } + probs.add(prob); + anss.add(ans); + } + + File file = new File("out.txt"); + if (!file.exists()) { + File parent = file.getParentFile(); + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("ļʧ,"); + } + } + try { + OutputStream out = new FileOutputStream(file); + byte[] data; + for (String str : probs) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + String fg = "-----------------׼-----------------" + "\r\n"; + data = fg.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + for (String str : anss) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + try { + out.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("io"); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + System.out.println("Ҳļ,"); + } + } + + public static void main(String[] args) { + if (args.length != 1 && args.length != 2) { + System.out.println("IJȷ,"); + } else if (args.length == 1) { + String str1 = args[0]; + if (isNum(str1)) { + if (str1.length() >= 5) { + System.out.println(","); + } else { + mathOne(Integer.parseInt(str1)); + } + } + } else if (args.length == 2) { + + String str1 = args[0]; + String str2 = args[1]; + if (isNum(str1)) { + if (str1.length() >= 5) { + System.out.println(","); + } else { + if (!str2.equals("1") && !str2.equals("2")) { + System.out.println("꼶,"); + } else { + if (str2 .equals("1")) { + mathOne(Integer.parseInt(str1)); + } else { + mathTwo(Integer.parseInt(str1)); + } + } + + } + } else { + System.out.println(","); + } + } + } +} From 63e29839bb94fed5961c86d4335d496fc601fb7b Mon Sep 17 00:00:00 2001 From: LinKai945 Date: Mon, 17 Sep 2018 21:40:50 +0800 Subject: [PATCH 043/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6Cal?= =?UTF-8?q?culate.java,=E4=BF=AE=E5=A4=8D=E9=80=86=E6=B3=A2=E5=85=B0?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E4=B8=8D=E6=94=AF=E6=8C=81=E5=B8=A6?= =?UTF-8?q?=E6=8B=AC=E5=8F=B7=E9=A2=98=E7=9B=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211614269_211601233/Calculate.java | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/Pair_211614269_211601233/Calculate.java b/Pair_211614269_211601233/Calculate.java index 5909a4a..e052324 100644 --- a/Pair_211614269_211601233/Calculate.java +++ b/Pair_211614269_211601233/Calculate.java @@ -1,4 +1,3 @@ - import java.util.Stack; //ʹ沨ʽ @@ -15,7 +14,7 @@ public static int ans(String str) { // Ŀַ public static int slen; - public static String[] scut = new String[20]; + public static String[] scut = new String[100]; public static String squestion; // ջ public static Stack soperators = new Stack<>(); @@ -63,6 +62,8 @@ public static void cutStr() { public static int priority(String str) { switch (str) { + case "(": + return 0; case "+": case "-": return 1; @@ -79,19 +80,27 @@ public static int priority(String str) { public static void reversePolishNotation() { for (int i = 0; i < slen; i++) { - if (!(scut[i].equals("+") || scut[i].equals("-") || scut[i].equals("*") || scut[i].equals("/"))) { + if (!(scut[i].equals("+") || scut[i].equals("-") || scut[i].equals("*") || scut[i].equals("/") || scut[i].equals("(") || scut[i].equals(")"))) { srpn.push(scut[i]); } else { - if (soperators.isEmpty()) { + if (soperators.isEmpty() || scut[i].equals("(")) { soperators.push(scut[i]); } else { if (priority(scut[i]) > priority(soperators.peek())) { soperators.push(scut[i]); } else { - while ((!soperators.isEmpty()) && (priority(soperators.peek()) >= priority(scut[i]))) { - srpn.push(soperators.pop()); + if(scut[i].equals(")")) { + while (!soperators.peek().equals("(")) { + srpn.push(soperators.pop()); + } + soperators.pop(); + }else { + while ((!soperators.isEmpty()) && (priority(soperators.peek()) >= priority(scut[i]))) { + srpn.push(soperators.pop()); + } + soperators.push(scut[i]); } - soperators.push(scut[i]); + } } } From 4f4a88f28639592b04ebc88c3360d26267a514c2 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Mon, 17 Sep 2018 21:58:03 +0800 Subject: [PATCH 044/135] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=BC=8F=E5=AD=90=E6=98=AF=E5=90=A6=E9=87=8D?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606367_211606445/Calculation.java | 2 +- Pair_211606367_211606445/MathExam.java | 65 +++++++++++++++-------- 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/Pair_211606367_211606445/Calculation.java b/Pair_211606367_211606445/Calculation.java index 297b52b..e52a0b6 100644 --- a/Pair_211606367_211606445/Calculation.java +++ b/Pair_211606367_211606445/Calculation.java @@ -88,7 +88,7 @@ private boolean Oper(String peek, String str) { } /** - * ׺ʽ沨ʽ + * ׺ʽ沨ʽ,жǷӦ꼶 * */ public boolean Suffix_Expression_Summation() diff --git a/Pair_211606367_211606445/MathExam.java b/Pair_211606367_211606445/MathExam.java index 384930f..5b6301f 100644 --- a/Pair_211606367_211606445/MathExam.java +++ b/Pair_211606367_211606445/MathExam.java @@ -16,7 +16,8 @@ public class MathExam { static File file = new File(filename),parent = null; static OutputStream out = null; static String[] str_symbol = {"+","-","x",""},input_args= {" "," "}; - static List Calculation_Problem = new ArrayList(); + static List Calculation_Problem = new ArrayList(), + Word_Set = new ArrayList(); static int cal_number1 = 0, cal_number2 = 0,symbol = 0, sum = 0, remainder = 0, number = -1, grade = -1, calculation_num = 0 ,ran_symbol_num = 0,ran_left_parenthesis_num = 0; @@ -50,7 +51,7 @@ public static void main(String[] args) { * * **/ private static void Iteration(int i) { - if(grade==1 && symbol<=1) + if(grade == 1) { symbol = ranSymbol.nextInt(2); cal_number1 = ranNum.nextInt(101); @@ -61,10 +62,19 @@ else if(str_symbol[symbol].equals("-") && cal_number1 - cal_number2 >= 0) sum = cal_number1 - cal_number2; else Iteration(i); - word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); - return; + word = Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); + if(Word_Set.contains(word)) + { + Iteration(i); + } + else + { + Word_Set.add(word); + word = "("+Integer.toString(i)+") "+word; + return; + } } - else if(grade==2) + else if(grade == 2) { symbol = ranSymbol.nextInt(4); cal_number1 = ranNum.nextInt(101); @@ -82,10 +92,19 @@ else if(str_symbol[symbol].equals("x") && cal_number1 * cal_number2 <= 100) } else Iteration(i); - word = "("+Integer.toString(i)+") "+Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); - return; + word = Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); + if(Word_Set.contains(word)) + { + Iteration(i); + } + else + { + Word_Set.add(word); + word = "("+Integer.toString(i)+") "+word; + return; + } } - else if(grade==3) + else if(grade == 3) { cal_number2 = ranNum.nextInt(1001); ran_symbol_num = ranSymbolNum.nextInt(3)+2; @@ -136,15 +155,22 @@ else if(j <= ran_symbol_num-1) calculation.To_Suffix_Expression(); if(calculation.Suffix_Expression_Summation()) { - word = "("+i+") "+calculation.getword(); + word = calculation.getword(); sum = calculation.getSum(); - return; + if(Word_Set.contains(word)) + { + Iteration(i); + } + else + { + word = "("+i+") " + word; + Word_Set.add(word); + return; + } } else Iteration(i); } - else - Iteration(i); } private static void Input_Message(String[] args) { @@ -159,29 +185,27 @@ else if(args[0].equals("-grade") && args[2].equals("-n")) if(!pattern.matcher(check_input_message).matches()) { System.out.print("Ϸ"); - check_input_message = input.nextLine(); } else { number = Integer.parseInt(check_input_message); - if(number < 0) - System.out.print("Ϸ"); + if(number > 1000) + System.out.print("̫"); } j++; - while(number<0) + while(number<0 || number > 1000) { if(j!=1) check_input_message = input.nextLine(); if(!pattern.matcher(check_input_message).matches()) { System.out.print("Ϸ"); - continue; } else { number = Integer.parseInt(check_input_message); - if(number < 0) - System.out.print("Ϸ"); + if(number > 1000) + System.out.print("̫"); } } j=1; @@ -189,7 +213,6 @@ else if(args[0].equals("-grade") && args[2].equals("-n")) if(!pattern.matcher(check_input_message).matches()) { System.out.print("꼶Ϸ꼶"); - check_input_message = input.nextLine(); } else { @@ -205,7 +228,6 @@ else if(args[0].equals("-grade") && args[2].equals("-n")) if(!pattern.matcher(check_input_message).matches()) { System.out.print("꼶Ϸ!꼶(123)"); - continue; } else { @@ -245,6 +267,7 @@ private static void File_Write_Problem(int i) { Calculation_Problem.add(word+" = "+Integer.toString(sum)+"\r\n"); calculation_num++; } + word = ""; } catch (IOException e) { From f20079b3a94773a6136b00eef7035b3104c7b49f Mon Sep 17 00:00:00 2001 From: tt9250872 Date: Mon, 17 Sep 2018 22:48:23 +0800 Subject: [PATCH 045/135] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=B8=89=E5=B9=B4?= =?UTF-8?q?=E7=BA=A7=E5=9B=9B=E5=88=99=E6=B7=B7=E5=90=88=E8=BF=90=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606343_211606360/MathExam6360.java | 332 +++++++++++++++++++++ 1 file changed, 332 insertions(+) create mode 100644 Pair_211606343_211606360/MathExam6360.java diff --git a/Pair_211606343_211606360/MathExam6360.java b/Pair_211606343_211606360/MathExam6360.java new file mode 100644 index 0000000..4e5c7bc --- /dev/null +++ b/Pair_211606343_211606360/MathExam6360.java @@ -0,0 +1,332 @@ + + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.Stack; +import java.util.logging.Level; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class MathExam6360 { + + String QT[] = new String[1000]; //ȫֱ + String AS[] = new String[1000]; //ȫֱ + String SymB[] = {"+","-","",""}; + String NL ="\r\n"; //ȫֱ + byte[] question; //ȫֱ + byte[] newline = NL.getBytes(); //ȫֱ + byte[] answer; //ȫֱ + + + + private static int ADDITION=1; + private static int SUBTRACTION=1; + private static int MULTIPLICATION=2; + private static int DIVISION=2; + + public static int Level(String operation){ + int result; + switch (operation){ + case "+": + result=ADDITION; + break; + case "-": + result=SUBTRACTION; + break; + case "": + result=MULTIPLICATION; + break; + case "": + result=DIVISION; + break; + default: +// System.out.println("ڸ"); + result=0; + } + return result; + } + + + public MathExam6360(String args[]) { //캯 + // TODO Auto-generated constructor stub + int num[] = new int[5]; //num + num [1] = Integer.parseInt(args[1]); //תΪ + num [0] = Integer.parseInt(args[0]); + boolean B =judge(num[0],num[1]); //жϲĸʽԼСǷ + if(B==true) { + calculate(num[0], num[1]); //꼶ʽ + TxT(num[0]); //ıʽдı + } + else { + System.out.println("ûˡ"); + } + } + + + private void TxT(int count) { + File file = new File("out6343.txt"); //ı + if(!file.exists()) //жTXTǷ + { + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println("out6343.txt"); + } + try { + FileOutputStream fos = new FileOutputStream(file); + for(int i=0;i zx= toInfixExpression(QT[i]); + List rpn=parseSuffixExpression(zx); + AS[i]=QT[i]+"="+reckon(rpn); + i++; + + } + + } + + + public List parseSuffixExpression(List ls) { + Stack s1=new Stack(); + List LS = new ArrayList(); + for (String str : ls) { + if (str.matches("\\d+")) { + LS.add(str); + } + else { + while (s1.size() != 0 && Level(s1.peek()) >= Level(str)) { + LS.add(s1.pop()); + } + s1.push(str); + } + } + while (s1.size() != 0) { + LS.add(s1.pop()); + } + return LS; + } + + + public List toInfixExpression(String s) { + List ls = new ArrayList();//洢ʽ + int w = 0; + String str; + char c; + int sum=s.length(); + do { + if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { + ls.add("" + c); + if(w= 48 + && (c = s.charAt(w)) <= 57) { + str += c; + w++; + } + ls.add(str); + } + + } while (w < s.length()); + return ls; + } + + public int reckon(List ls) { + Stack s=new Stack(); + for (String str : ls) { + if (str.matches("\\d+")) { + s.push(str); + } else { + int b = Integer.parseInt(s.pop()); + int a = Integer.parseInt(s.pop()); + int result=0; + if (str.equals("+")) { + result = a + b; + } else if (str.equals("-")) { + result = a - b; + } else if (str.equals("")) { + result = a * b; + } else if (str.equals("")) { + result = a / b; + } + s.push("" + result); + } + } + return Integer.parseInt(s.pop()); + } + + public static void main(String args[]) { + new MathExam6360(args); + } + +} From a66ec35ffc5c9d52e0803c8aa510263cf03ec6fc Mon Sep 17 00:00:00 2001 From: 1234chenbin <42905147+1234chenbin@users.noreply.github.com> Date: Tue, 18 Sep 2018 13:35:52 +0800 Subject: [PATCH 046/135] =?UTF-8?q?git=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 无内容 --- ...\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" | 1 - 1 file changed, 1 deletion(-) delete mode 100644 "Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" diff --git "a/Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" "b/Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" deleted file mode 100644 index 0a5ac47..0000000 --- "a/Pair_211614331_211614354/\345\220\210\344\275\234\344\270\212\344\274\240\346\265\213\350\257\225.txt" +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From e29c66461301631dfb96c253bad179bac8bfe7b4 Mon Sep 17 00:00:00 2001 From: 1234chenbin <42905147+1234chenbin@users.noreply.github.com> Date: Tue, 18 Sep 2018 13:39:18 +0800 Subject: [PATCH 047/135] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E8=BE=93=E5=87=BA=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 可以正常输出txt文档; --- Pair_211614331_211614354/OutPutSet.java | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Pair_211614331_211614354/OutPutSet.java diff --git a/Pair_211614331_211614354/OutPutSet.java b/Pair_211614331_211614354/OutPutSet.java new file mode 100644 index 0000000..bf79479 --- /dev/null +++ b/Pair_211614331_211614354/OutPutSet.java @@ -0,0 +1,32 @@ + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; + +public class OutPutSet { //еĿ + + public OutPutSet(int n) { //nжмĿ + + + try ( PrintWriter w = new PrintWriter("out.txt")) //ӡout.txtĵ + { + + + for(int i=0;i<=(2*n-2);i=i+2) + w.println(MathExam.questionAndAnswer.get(i)); //Ŀ + + w.println(""); + + for(int i=0;i<=(2*n-2);i=i+2) + { + w.print(MathExam.questionAndAnswer.get(i)); //Ŀ + w.println(MathExam.questionAndAnswer.get(i+1)); // + + } + w.close();//ر + } catch(IOException e){ + + } + + } +} From 191056dc17e3abb5483780bfa77dfd0109dc9fea Mon Sep 17 00:00:00 2001 From: zsyISO8859 <42647685+zsyISO8859@users.noreply.github.com> Date: Tue, 18 Sep 2018 13:42:31 +0800 Subject: [PATCH 048/135] =?UTF-8?q?=E7=94=9F=E6=88=90=E5=B8=A6=E6=8B=AC?= =?UTF-8?q?=E5=8F=B7=E7=9A=84=E8=A1=A8=E8=BE=BE=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.可以生成带括号的表达式 2.用调度场算法和逆波兰表达式算出生成题目的答案 --- Pair_211606348_211606338/MathExam.java | 353 ++++++++++++++++++++++--- 1 file changed, 316 insertions(+), 37 deletions(-) diff --git a/Pair_211606348_211606338/MathExam.java b/Pair_211606348_211606338/MathExam.java index 60490f3..f26c039 100644 --- a/Pair_211606348_211606338/MathExam.java +++ b/Pair_211606348_211606338/MathExam.java @@ -1,37 +1,316 @@ -package com.it666.course1; - -import java.util.Arrays; - -public class MathExam { - public static void main(String[] args) { - //2ַƴĿʹ - StringBuffer strbuf = new StringBuffer(); - StringBuffer strbuf1 = new StringBuffer(); - //randomĿеIJ - int random = 0; - // - String[] str = { "+", "-", "X", "" }; - //ɵ2-4ostr - String[] ostr = new String[4]; - - for(int i=0;i<10;i++) { - //ɵ2-4 - int operator = (int)(Math.random()*3)+2; - int k = 0; - for (int j = 0; j < operator; j++) { - k = (int)(Math.random()*4); - ostr[j]=str[k]; - } - for (int j = 0; j < operator+1; j++) { - random = (int)(Math.random()*1001); - strbuf.append(random+" "); - if(j 4 || args.length < 4) + return false; + + // жǷ-n -gradeıʶ + if (!(("-n").equals(args[0]) && "-grade".equals(args[2]) || ("-n").equals(args[2]) && "-grade".equals(args[0]))) + return false; + + // ų-n000001Ƶ + char[] allChar = args[1].toCharArray(); + char[] allChar1 = args[3].toCharArray(); + int k = 0; + while (allChar[k++] == '0'); + args[1] = new String(allChar, k - 1, allChar.length - k + 1); + k = 0; + while (allChar1[k++] == '0'); + args[3] = new String(allChar1, k - 1, allChar1.length - k + 1); + + // Ŀ + boolean matches; + if (args[0].equals("-n")) { + matches = args[1].matches("[0-9]*"); + } else { + matches = args[3].matches("[0-9]*"); + } + + boolean matches1; + // 꼶Ƿ1-3 + if (args[0].equals("-garde")) { + matches1 = args[1].matches("[1-3]?"); + } else { + matches1 = args[3].matches("[1-3]?"); + } + if (!matches1) + return false; + + if (matches && (args[1].length() > 4 || args[3].length() > 4)) { + System.out.println("Ŀ̫ˣ룡"); + return false; + } else { + System.out.println(""); + return false; + } + + } + + /* + * ǵȳ㷨沨ʽʵ + * + */ + class Node { + + double val; + char opt; + + Node(Double val, Character opt) { + this.val = val; + this.opt = opt; + } + } + + Node[] node = new Node[10005]; + Character[] str = new Character[10005]; + HashMap mp = new HashMap<>(); + + void Init() { + mp.put('(', 0); + mp.put('-', 1); + mp.put('+', 1); + mp.put('x', 2); + mp.put('', 2); + mp.put('^', 3); + } + + // 沨ʽļ + double CalPoland(Node node[], int n) throws Exception { + Stack s = new Stack<>(); + for (int i = 0; i < n; i++) { + if (node[i].opt == ' ') + s.push(node[i].val); + else { + double a = s.peek(); + s.pop(); + double b = s.peek(); + s.pop(); + switch (node[i].opt) { + case '+': + s.push(b + a); + break; + case '-': + s.push(b - a); + break; + case 'x': + s.push(b * a); + break; + case '': + // if (Math.abs(a) < 1e-9) + // throw new Exception(); + s.push(b / a); + break; + case '^': + s.push(Math.pow(b, a)); + break; + } + } + } + return s.peek(); + } + + // ȳ㷨 + double ShuntYardAlgo(char str[]) throws Exception { + Stack oper = new Stack<>(); + + // inNumǵǰǷ + boolean inNum = true; + // hasDotǷѾС + boolean hasDot = true; + + int p = 0; // ɨָλ + int cnt = 0; // Żּ + int sign = 1; // ʾ + + while (p < str.length) { + if (Character.isDigit(str[p]) || str[p] == '.') { + if (inNum) { + double val = 0; + double w = 1; + if (str[p] == '.') { + hasDot = true; + val = 0; + } else { + hasDot = false; + val = str[p] - '0'; + } + p++; + while (p < str.length && (Character.isDigit(str[p]) || str[p] == '.')) { + if (str[p] == '.') { + if (hasDot) + throw new Exception(); + hasDot = true; + } else { + if (hasDot) { + w *= 0.1; + val += (str[p] - '0') * w; + } else + val = val * 10 + str[p] - '0'; + } + p++; + } + p--; + node[cnt++] = new Node(val * sign, ' '); + sign = 1; + inNum = false; + } else + throw new Exception(); + } else { + switch (str[p]) { + case '(': + oper.push(str[p]); + break; + case ')': + while (!oper.empty() && oper.peek() != '(') { + node[cnt++] = new Node(0.0, oper.peek()); + oper.pop(); + } + if (oper.empty()) + throw new Exception(); + oper.pop(); + break; + case '+': + case '-': + case 'x': + case '': + case '^': + if (inNum) { + if (str[p] != '+' && str[p] != '-') + while (str[p] == '+' || str[p] == '-') { + if (str[p] == '-') + sign *= -1; + p++; + } + p--; + } else { + while (!oper.empty() && mp.get(str[p]) <= mp.get(oper.peek())) { + node[cnt++] = new Node(0.0, oper.peek()); + oper.pop(); + } + oper.push(str[p]); + inNum = true; + } + break; + } + } + p++; + } + while (!oper.empty()) { + node[cnt++] = new Node(0.0, oper.peek()); + oper.pop(); + } + return CalPoland(node, cnt); + } +} From cddbee18b730d2df1da230f1f7b42ac9d118c2c6 Mon Sep 17 00:00:00 2001 From: lmk1558725384 <1558725384@qq.com> Date: Tue, 18 Sep 2018 14:28:14 +0800 Subject: [PATCH 049/135] =?UTF-8?q?=E4=BD=BF=E8=BF=90=E7=AE=97=E7=AC=A6?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E6=AC=A1=E6=95=B0=E4=B8=BA2~4=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair2018_211406285_211606314/MathExamLv2.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Pair2018_211406285_211606314/MathExamLv2.java b/Pair2018_211406285_211606314/MathExamLv2.java index 4df7245..c06684d 100644 --- a/Pair2018_211406285_211606314/MathExamLv2.java +++ b/Pair2018_211406285_211606314/MathExamLv2.java @@ -22,6 +22,7 @@ public class MathExamLv2 { private static LinkedList output=new LinkedList<>(); //չʾ׺ʽ private static StringBuilder sb=new StringBuilder(); + //׺ʽתΪ׺ʽ private static void transferToPostfix(LinkedList list){ Iterator it=list.iterator(); @@ -77,7 +78,6 @@ else if (s.equals(")")) { calculate(); //Collections.reverse(output); } - //ݺ׺ʽ private static void calculate(){ LinkedList mList=new LinkedList<>(); @@ -116,7 +116,6 @@ private static void calculate(){ } sb.setLength(0); } - //жǷ private static boolean isOperator(String oper){ if (oper.equals("+")||oper.equals("-")||oper.equals("/")||oper.equals("*") @@ -137,7 +136,7 @@ private static int priority(String s){ default :return 0; } } - + //м private static int cal(int num1,int num2,String operator){ switch (operator){ case "+":return num1+num2; @@ -147,7 +146,7 @@ private static int cal(int num1,int num2,String operator){ default :return 0; } } - + //һ꼶Ŀ private static void gradeOne(int n) throws IOException, FileNotFoundException { int[] sum = new int[n + 1];// sum char[] signSet = { '+', '-' };// sianSetַ @@ -192,7 +191,7 @@ private static void gradeOne(int n) throws IOException, FileNotFoundException { } } // forѭȷҪд뵽out.txtеstrֵҲҪĿĴ } - + //꼶Ŀ private static void gradeTwo(int n) throws IOException, FileNotFoundException { String[] sum = new String[n + 1];// sum char[] signSet = { '*', '/' };// sianSetַ @@ -242,13 +241,13 @@ private static void gradeTwo(int n) throws IOException, FileNotFoundException { } } // forѭȷҪд뵽out.txtеstrֵҲҪĿĴ } - + //꼶Ŀ private static void gradeThree(int n) throws IOException, FileNotFoundException { String[] sum = new String[n]; Random random = new Random(); char[] signSet = { '*', '/' ,'+','-'}; for(int i=0;i1) { flag=random.nextInt(2);//һʱж֮һĸʳ @@ -314,14 +313,14 @@ private static void gradeThree(int n) throws IOException, FileNotFoundException } } // forѭȷҪд뵽out.txtеstrֵҲҪĿĴ } - + //뷽 private static BufferedReader in() throws FileNotFoundException { File file = new File("out.txt"); InputStreamReader in = new InputStreamReader(new FileInputStream(file));// һĶ BufferedReader br = new BufferedReader(in);// һ󣬰ļתɼʶĶ return br; } - + // private static void out(String str) throws IOException { File file = new File("out.txt");// һļָһļλ file.createNewFile();// ָλôһļ @@ -330,7 +329,7 @@ private static void out(String str) throws IOException { br.flush(); br.close(); } - + // private static void wrongJudgement(String[] args, int n, int grade) throws IOException, FileNotFoundException { if (args.length < 4) { System.out.println("밴 -n n -grade grade -grade grade -n nķʽ4"); From fac40656d4e2dfe199de4b9d531a74da6012c6c6 Mon Sep 17 00:00:00 2001 From: YHQ0215 <42902085+YHQ0215@users.noreply.github.com> Date: Tue, 18 Sep 2018 16:13:22 +0800 Subject: [PATCH 050/135] MathExam V2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加三年级加减法混合运算 --- Pair_211606387_211606354/MathExam6387.java | 199 +++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 Pair_211606387_211606354/MathExam6387.java diff --git a/Pair_211606387_211606354/MathExam6387.java b/Pair_211606387_211606354/MathExam6387.java new file mode 100644 index 0000000..4d77ef7 --- /dev/null +++ b/Pair_211606387_211606354/MathExam6387.java @@ -0,0 +1,199 @@ +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.Date; +import java.util.Random; +import java.util.Stack; + +import java.text.SimpleDateFormat; + +//import java.util.Scanner; + + +public class MathExam6387 { + +// private static Scanner in; + private static int x,y,z,f,h; + private static String[] str ; + private static String rem; + + public static void main(String args[]) throws FileNotFoundException, InterruptedException { + // TODO Auto-generated method stub +// int n ; +// in = new Scanner(System.in); +// n = in.nextInt(); +// g = in.nextInt(); +// ָ String[] תΪ int + int i =Integer.valueOf(args[0]).intValue();//Ŀ + int g =Integer.valueOf(args[1]).intValue();//꼶 + //ļ + File file = new File("out6387.txt"); + PrintStream ps = new PrintStream(file); + System.setOut(ps); + ChoiceGrade(i, g); + + } + + //һ꼶ӷ + public static void GradeOne( int n ) { + str = new String[n]; + for (int i = 0; i < n ; i++) { + x = (int)(Math.random()*100); + y = (int)(Math.random()*100); + f = (int)(Math.random()*2); + // жϼӷͼ 0Ϊӷ + if ( f == 0) { + System.out.println("(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " " + (x+y); + } + else { + if (x-y < 0) { + System.out.println("(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " " + (y-x); + } + else { + System.out.println("(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " " + (x-y); + } + } + } + System.out.println("--------׼---------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606387 Ҷ " +sdf.format(new Date())); + } + + //꼶˷ + public static void GradeTwo( int n ) { + str = new String[n]; + for (int i = 0; i < n; i++) { + x = new Random().nextInt(10) + 1; + y = new Random().nextInt(10) + 1; + f = (int)(Math.random()*2); + + if ( f == 0 && y!=0 && x!=0) { + System.out.println("(" + (i+1) + ")" +" " + x + "*" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "*" + y + " " + "=" + " " + (x*y); + } + else { + if (x-y < 0 ) { + System.out.println("(" + (i+1) + ")" +" " + y + "/" + x + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + y + "/" + x + " " + "=" + " " + (y/x) + JudgementRemainder(y,x); + } + else { + System.out.println("(" + (i+1) + ")" +" " + x + "/" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "/" + y + " " + "=" + " " + (x/y) + JudgementRemainder(x,y); + } + } + } + System.out.println("--------׼--------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606387 Ҷ " +sdf.format(new Date())); + } + + //꼶 + private static void GradeThree( int n ) { + // TODO Զɵķ + str = new String[n]; + + for (int i = 0; i < n; i++) { + x = new Random().nextInt(10) + 1; + y = new Random().nextInt(10) + 1; + z = new Random().nextInt(10) + 1; + f = (int)(Math.random()*2); + h = (int)(Math.random()*2); + //int תΪ String + String x1 = String.valueOf(x); + String y1 = String.valueOf(y); + String z1 = String.valueOf(z); + + String [] strArr = { x1,y1,z1,SymbolicJudgment(f),SymbolicJudgment(h) }; + System.out.println("(" + (i+1) + ")" +" " + x1 + SymbolicJudgment(f) + y1 + SymbolicJudgment(h) + z1 + " " + "= "); + str[i] = "(" + (i+1) + ")" +" " + x1 + SymbolicJudgment(f) + y1 + SymbolicJudgment(h) + z1 + " " + "= " + ReversePolish(strArr); + } + System.out.println("--------׼---------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606387 Ҷ " +sdf.format(new Date())); + } + //ѡ꼶 + public static void ChoiceGrade( int n , int g ) { + if ( g == 1 ) { + GradeOne(n); + } + if ( g == 2) { + GradeTwo(n); + } + if ( g == 3) { + GradeThree(n);; + } + else { + System.out.println("Աޣ꼶δ"); + } + } + + //ж + public static String JudgementRemainder( int x , int y ) { + if( (x%y) == 0) { + + rem = " "; + } + else { + rem = "..." + (x%y) + " "; + } + return rem; + } + + //жϷ + private static String SymbolicJudgment(int f) { + // TODO Զɵķ + if (f ==0) { + rem = "+"; + } + else { + rem = "-"; + } + return rem; + } + + //沨ʽ ׺ ڻ + private static String ReversePolish (String[] strArr){ + String str = "+-*/"; + Stack stack = new Stack(); + //еÿһԪ + for(String s : strArr){ + //,ջ + if(!str.contains(s)){ + stack.push(s); + }else{ + int a = Integer.valueOf(stack.pop()); + int b = Integer.valueOf(stack.pop()); + switch(s){ + case "+" : + stack.push(String.valueOf(a+b)); + break; + case "-" : + stack.push(String.valueOf(b-a)); + break ; + case "*" : + stack.push(String.valueOf(a*b)); + break; + case "/" : + stack.push(String.valueOf(b/a)); + break ; + } + } + } + return stack.pop(); + } +} \ No newline at end of file From aa7c6d185bea14476a578ccb3d7eb87b76ec670e Mon Sep 17 00:00:00 2001 From: lmk1558725384 <1558725384@qq.com> Date: Tue, 18 Sep 2018 16:50:30 +0800 Subject: [PATCH 051/135] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8B=AC=E5=8F=B7BUG?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E4=B8=94=E4=B8=8D=E5=87=BA=E7=8E=B0=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E7=9A=84=E8=BF=90=E7=AE=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair2018_211406285_211606314/MathExamLv2.java | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/Pair2018_211406285_211606314/MathExamLv2.java b/Pair2018_211406285_211606314/MathExamLv2.java index c06684d..536538d 100644 --- a/Pair2018_211406285_211606314/MathExamLv2.java +++ b/Pair2018_211406285_211606314/MathExamLv2.java @@ -263,6 +263,29 @@ private static void gradeThree(int n) throws IOException, FileNotFoundException str=str+" "; } } + int jiahao=0,jianhao=0,chenghao=0,chuhao=0; + for(int w=0;w1 || jianhao>1 || chenghao>1 || chuhao>1) { + i=i-1; + jiahao=0; + jianhao=0; + chenghao=0; + chuhao=0; + continue; + } + jiahao=0; + jianhao=0; + chenghao=0; + chuhao=0; if((str.contains("-") || str.contains("+")) &&(str.contains("*") || str.contains("/"))) { if(flag==1) { int t=str.indexOf("-"); @@ -272,7 +295,7 @@ private static void gradeThree(int n) throws IOException, FileNotFoundException int right=str.indexOf(" ", t+2); int left=str.indexOf(" ",t-5); if(str.charAt(left)==' ' && !Character.isDigit(str.charAt(left+1)) ) { - left=left+1; + left=left+2; } StringBuffer sb = new StringBuffer(str); sb.insert(right, " )"); @@ -283,13 +306,9 @@ private static void gradeThree(int n) throws IOException, FileNotFoundException LinkedList list=new LinkedList<>(); String[] arr = str.split(" "); for(int q=1;q Date: Tue, 18 Sep 2018 17:12:02 +0800 Subject: [PATCH 052/135] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E4=B8=89=E5=B9=B4=E7=BA=A7=E8=87=AA=E5=8A=A8=E5=87=BA=E9=A2=98?= =?UTF-8?q?=E5=92=8C=E7=AD=94=E6=A1=88=EF=BC=8C=E6=9A=82=E4=B8=8D=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=8B=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606333_211606356/MathExam6356.java | 150 ++++++++++++++++----- 1 file changed, 113 insertions(+), 37 deletions(-) diff --git a/Pair_211606333_211606356/MathExam6356.java b/Pair_211606333_211606356/MathExam6356.java index e043347..d95015b 100644 --- a/Pair_211606333_211606356/MathExam6356.java +++ b/Pair_211606333_211606356/MathExam6356.java @@ -5,7 +5,7 @@ import java.io.PrintStream; import java.util.Random; -import com.sun.org.apache.xml.internal.security.Init; +//import com.sun.org.apache.xml.internal.security.Init; public class MathExam6356 { static int n; @@ -14,9 +14,11 @@ public class MathExam6356 { static int[] b; static int[] c; static String str[]; + static String AS[]; static Random fuhao = new Random(); static Random num1 = new Random(); - static Random num2 = new Random();// 种子相同的Random对象,生成的随机数序列是一样的。 + static Random num2 = new Random();// ͬRandomɵһġ + private static int i; public static void main(String[] args) throws FileNotFoundException { init(args); @@ -25,7 +27,7 @@ public static void main(String[] args) throws FileNotFoundException { private static void init(String[] input) throws FileNotFoundException { if (input.length == 0) { - // 默认参数 + // Ĭϲ n = 10; grade = 3; } else if (input.length == 4) { @@ -34,7 +36,7 @@ private static void init(String[] input) throws FileNotFoundException { n = Integer.parseInt(input[1]); grade = Integer.parseInt(input[3]); } catch (NumberFormatException e) { - System.out.println("请输入正整数!"); + System.out.println(""); } } else if (input[2].equals("-n") && input[0].equals("-grade")) { @@ -42,12 +44,12 @@ private static void init(String[] input) throws FileNotFoundException { n = Integer.parseInt(input[3]); grade = Integer.parseInt(input[1]); } catch (NumberFormatException e) { - System.out.println("请输入正整数!"); + System.out.println(""); } } } else { - System.out.println("您输入的参数有误,请重新运行!"); + System.out.println("IJУ"); System.exit(0); } if (grade == 1) { @@ -57,44 +59,45 @@ private static void init(String[] input) throws FileNotFoundException { }else if (grade==3) { gradeThree(); }else { - System.out.println("目前只支持1-3年级,请重新输入"); + System.out.println("Ŀǰֻ֧1-3꼶"); } File file = new File("out.txt"); PrintStream ps = new PrintStream(file); - System.setOut(ps);// 把创建的打印输出流赋给系统。 + System.setOut(ps);// ѴĴӡϵͳ outPut(); } private static void gradeThree() { str = new String[n]; + AS=new String[n]; for(int i=0;i zx=null; + for (int i = 0; i < str.length; i++) { + zx= toInfixExpression(str[i]); + List rpn=parseSuffixExpression(zx); + AS[i]=str[i]+"="+reckon(rpn); } - + + } @@ -113,10 +122,10 @@ private static void gradeTwo() { b = new int[n]; c = new int[n]; for (int i = 0; i < n; i++) { - a[i] = num1.nextInt(9); // 0-100的随机数 + a[i] = num1.nextInt(9); // 0-100 b[i] = num2.nextInt(9); - c[i] = fuhao.nextInt(2);// 0是乘法1是除法 - if (c[i] == 1 || b[i] == 0) {// 除数是0重新随机 + c[i] = fuhao.nextInt(2);// 0dz˷1dz + if (c[i] == 1 || b[i] == 0) {// 0 b[i] = num2.nextInt(8) + 1; } if (c[i] == 0 || (a[i] == 0 && b[i] == 0)) { @@ -148,7 +157,7 @@ public static void outPut() { } } - System.out.println("--------------标准答案----------------"); + System.out.println("--------------׼----------------"); for (int i = 0; i < n; i++) { if (grade == 1) { if (c[i] == 0) { @@ -167,12 +176,12 @@ public static void outPut() { } }else { - System.out.println("制作中"); + System.out.println(AS[i]); } } - SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); String time = sdf.format(new Date()); - System.out.println("211606356 陈宇 " + time);// 输出学号姓名时间 + System.out.println("211606356 211606333־ " + time);// ѧʱ } public static void gradeOne() { @@ -181,21 +190,21 @@ public static void gradeOne() { c = new int[n]; for (int i = 0; i < n; i++) { - a[i] = num1.nextInt(100);// 0-100的随机数 + a[i] = num1.nextInt(100);// 0-100 b[i] = num2.nextInt(100); c[i] = fuhao.nextInt(2); } for (int i = 0; i < n; i++) { - if (c[i] == 0) {// 随机加法 + if (c[i] == 0) {// ӷ while (a[i] + b[i] > 100) { - // 随机减法 + // a[i] = num1.nextInt(100); b[i] = num2.nextInt(100); } - } else {// 随机减法 + } else {// while (a[i] - b[i] < 0) { - // 如果差小于0重新随机 + // С0 a[i] = num1.nextInt(100); b[i] = num2.nextInt(100); } @@ -203,4 +212,71 @@ public static void gradeOne() { } } + public static List parseSuffixExpression(List ls) { + Stack s1=new Stack(); + List LS = new ArrayList(); + for (String ssr : ls) { + if (ssr.matches("\\d+")) { + LS.add(ssr); + } + else { + while (s1.size() != 0 && Operation.getValue(s1.peek()) >= Operation.getValue(ssr)) { + LS.add(s1.pop()); + } + s1.push(ssr); + } + } + while (s1.size() != 0) { + LS.add(s1.pop()); + } + return LS; + } + + + public static List toInfixExpression(String s) { + List ls = new ArrayList();//洢ʽ + int w = 0; + String str; + char c; + do { + if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { + ls.add("" + c); + w++; + } else { + str = ""; + while (w < s.length() && (c = s.charAt(w)) >= 48 + && (c = s.charAt(w)) <= 57) { + str += c; + w++; + } + ls.add(str); + } + + } while (w < s.length()); + return ls; + } + + public static int reckon(List ls) { + Stack s=new Stack(); + for (String str : ls) { + if (str.matches("\\d+")) { + s.push(str); + } else { + int b = Integer.parseInt(s.pop()); + int a = Integer.parseInt(s.pop()); + int result=0; + if (str.equals("+")) { + result = a + b; + } else if (str.equals("-")) { + result = a - b; + } else if (str.equals("*")) { + result = a * b; + } else if (str.equals("/")) { + result = a / b; + } + s.push("" + result); + } + } + return Integer.parseInt(s.pop()); + } } From 3ee6e0f8565da37afff26c55c53345c104941448 Mon Sep 17 00:00:00 2001 From: a139520017 Date: Tue, 18 Sep 2018 17:16:05 +0800 Subject: [PATCH 053/135] =?UTF-8?q?=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.jpg | Bin 0 -> 125353 bytes 2.jpg | Bin 0 -> 205911 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 1.jpg create mode 100644 2.jpg diff --git a/1.jpg b/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f546b5fe12687c6d8911be05e04d8c5027fc72c3 GIT binary patch literal 125353 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

4*v0)k6xB8NUYA{rWy{`aD; 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

Cffm}16Kbz$`k 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

dD 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 z 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%0D8IX|f5-cYNe%y}+{H*f%f$2~i1mLkv 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ࣅ!Y3MfE^sCZ4 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 Date: Tue, 18 Sep 2018 17:25:26 +0800 Subject: [PATCH 054/135] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E4=B8=89=E5=B9=B4=E7=BA=A7=E8=87=AA=E5=8A=A8=E5=87=BA=E9=A2=98?= =?UTF-8?q?=E5=92=8C=E7=AD=94=E6=A1=88=EF=BC=8C=E6=9A=82=E4=B8=8D=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=8B=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606333_211606356/MathExam6356.java | 41 +++++++++++++++++++--- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/Pair_211606333_211606356/MathExam6356.java b/Pair_211606333_211606356/MathExam6356.java index d95015b..89a47ab 100644 --- a/Pair_211606333_211606356/MathExam6356.java +++ b/Pair_211606333_211606356/MathExam6356.java @@ -152,7 +152,7 @@ public static void outPut() { } }else { - System.out.println("("+i+") "+str[i]); + System.out.println("(" + (i + 1) + ") " +str[i]); } @@ -176,7 +176,7 @@ public static void outPut() { } }else { - System.out.println(AS[i]); + System.out.println("(" + (i + 1) + ") " +AS[i]); } } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); @@ -219,8 +219,8 @@ public static List parseSuffixExpression(List ls) { if (ssr.matches("\\d+")) { LS.add(ssr); } - else { - while (s1.size() != 0 && Operation.getValue(s1.peek()) >= Operation.getValue(ssr)) { + else {Operation a=new Operation(); + while (s1.size() != 0 && a.getValue(s1.peek()) >= a.getValue(ssr)) { LS.add(s1.pop()); } s1.push(ssr); @@ -279,4 +279,37 @@ public static int reckon(List ls) { } return Integer.parseInt(s.pop()); } + public static class Operation { + private int ADDITION=1; + private int SUBTRACTION=1; + private int MULTIPLICATION=2; + private int DIVISION=2; + Operation() { + + } + + + public int getValue(String operation){ + int result; + switch (operation){ + case "+": + result=ADDITION; + break; + case "-": + result=SUBTRACTION; + break; + case "": + result=MULTIPLICATION; + break; + case "": + result=DIVISION; + break; + default: +// System.out.println("ڸ"); + result=0; + } + return result; + } + } + } From 2822c15fca0f0700107d077eb78d5b08ef6ec1c9 Mon Sep 17 00:00:00 2001 From: smilexzh <42776624+smilexzh@users.noreply.github.com> Date: Tue, 18 Sep 2018 17:25:28 +0800 Subject: [PATCH 055/135] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增小学三年级四则运算 --- Pair_211606367_211606445/MathExam6445.java | 376 +++++++++++++++++++++ 1 file changed, 376 insertions(+) create mode 100644 Pair_211606367_211606445/MathExam6445.java diff --git a/Pair_211606367_211606445/MathExam6445.java b/Pair_211606367_211606445/MathExam6445.java new file mode 100644 index 0000000..35f3046 --- /dev/null +++ b/Pair_211606367_211606445/MathExam6445.java @@ -0,0 +1,376 @@ +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.Iterator; +import java.util.Random; +import java.util.Scanner; +import java.util.Stack; + +public class MathExam6445{ + public static int n, grade, N = 100; + public static String[] operator = { " + ", " - ", " ", " " }; + + public static void main(String[] args) { + + if (check(args)) { + System.out.println("ͨ"); + create(); + try { + System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("out.txt")), true)); + } catch (FileNotFoundException e) { + System.out.println("ضʧʧܣ"); + e.printStackTrace(); + } + if (args[0].equals("-n")) { + work(); + } else { + work(); + } + } + } + + public static void work() { + int num1, num2, answer, op; + Random rand = new Random(); + String src = ""; + String result = ""; + String lineBreak = "\r\n"; + outerLoop: for (int i = 1; i <= n; i++) { + if (grade == 1) { + num1 = rand.nextInt(101); + num2 = rand.nextInt(101); + op = rand.nextInt(2); + if (op == 0 && num1 + num2 <= 100) { + answer = num1 + num2; + } else if (op == 1 && num1 - num2 > 0) { + answer = num1 - num2; + } else { + i--; + continue; + } + src += "(" + i + ") " + num1 + operator[op] + num2 + lineBreak; + result += "(" + i + ") " + num1 + operator[op] + num2 + " = " + answer + lineBreak; + } else if (grade == 2) { + op = rand.nextInt(4); + if (op < 2) { + num1 = rand.nextInt(101); + num2 = rand.nextInt(101); + } else { + num1 = rand.nextInt(11); + num2 = rand.nextInt(11); + } + if (op == 0 && num1 + num2 <= 100) { + answer = num1 + num2; + } else if (op == 1 && num1 - num2 >= 0) { + answer = num1 - num2; + } else if (op == 2 && num1 * num2 <= 100) { + answer = num1 * num2; + } else if (op == 3 && num2 != 0) { + answer = num1 / num2; + } else { + i--; + continue; + } + src += "(" + i + ") " + num1 + operator[op] + num2 + lineBreak; + if (op != 3) + result += "(" + i + ") " + num1 + operator[op] + num2 + " = " + answer + lineBreak; + else { + if (num1 % num2 != 0) + result += "(" + i + ") " + num1 + operator[op] + num2 + " = " + answer + "..." + (num1 % num2) + + lineBreak; + else + result += "(" + i + ") " + num1 + operator[op] + num2 + " = " + answer + lineBreak; + } + } else { + num1 = rand.nextInt(101); + answer = num1; + int isBracket = rand.nextInt(2); + if (isBracket == 0) { + int opNum = rand.nextInt(3) + 2; + String str = num1 + ""; + innerLoop: for (int j = 1; j <= opNum; j++) { + op = rand.nextInt(4); + num2 = rand.nextInt(101); + if (op == 0) { + if (num1 + num2 >= 1000) { + j--; + continue innerLoop; + } + } else if (op == 1) { + if (num1 - num2 < 0) { + j--; + continue innerLoop; + } + } else if (op == 2) { + if (answer * num2 > 1000) { + j--; + continue innerLoop; + } + } else if (op == 3) { + if (num2 == 0 || answer % num2 != 0) { + j--; + continue innerLoop; + } + } + String s = str + operator[op] + num2; + num1 = Integer.parseInt(answer(s)); + if (num1 < 0 || num1 > 10000) { + i--; + continue outerLoop; + } + str += operator[op] + num2; + answer = num2; + } + src += "(" + i + ") " + str + lineBreak; + result += "(" + i + ") " + str + " = " + answer(str.substring(str.indexOf(')') + 1)) + lineBreak; + } else { + int site = rand.nextInt(2); + if (site == 0) { + String str = "( " + num1; + op = rand.nextInt(2); + num2 = rand.nextInt(101); + if (op == 0) { + if (num1 + num2 >= 1000) { + i--; + continue outerLoop; + } + } else { + if (num1 - num2 < 0) { + i--; + continue outerLoop; + } + } + str += operator[op] + num2 + " )"; + num1 = Integer.parseInt(answer(str)); + op = rand.nextInt(2)+2; + if(op==2) { + if(num1*num2>1000) { + i--; + continue outerLoop; + } + } else { + if(num2==0 || num1%num2!=0) { + i--; + continue outerLoop; + } + } + str += operator[op] + num2; + num1 = Integer.parseInt(answer(str)); + if (num1 < 0 || num1 > 10000) { + i--; + continue outerLoop; + } + src += "(" + i + ") " + str + lineBreak; + result += "(" + i + ") " + str + " = " + answer(str) + lineBreak; + } else { + op = rand.nextInt(2); + num2 = rand.nextInt(101); + if (op == 0) { + if (num1 + num2 >= 1000) { + i--; + continue outerLoop; + } + } else { + if (num1 - num2 < 0) { + i--; + continue outerLoop; + } + } + String str = "( " + num1 + operator[op] + num2 + " )"; + num2 = Integer.parseInt(answer(str)); + op = rand.nextInt(2) + 2; + num1 = rand.nextInt(101); + if(op==2) { + if(num1*num2>1000) { + i--; + continue outerLoop; + } + } else { + if(num2==0 || num1%num2!=0) { + i--; + continue outerLoop; + } + } + str = num1 + operator[op] + str; + num1 = Integer.parseInt(answer(str)); + if (num1 < 0 || num1 > 10000) { + i--; + continue outerLoop; + } + src += "(" + i + ") " + str + lineBreak; + result += "(" + i + ") " + str + " = " + answer(str) + lineBreak; + } + } + } + } + System.out.println(src); + System.out.print(result); + } + + private static String answer(String src) { + Stack print = new Stack(); + Stack operator = new Stack(); + String str = src.replace(" ", ""); + String number = ""; + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + if (c >= '0' && c <= '9') { + number += c + ""; + if (i + 1 >= str.length()) { + print.push(number); + number = ""; + } + } else { + if (!number.isEmpty()) { + print.push(number); + number = ""; + } + if (c == '(' || operator.isEmpty() || comparePriority(c + "", operator.peek()) == 1) { + operator.push(c + ""); + } else if (c == ')') { + String stackTop = operator.pop(); + while (!stackTop.equals("(")) { + int number1 = Integer.parseInt(print.pop()); + int number2 = Integer.parseInt(print.pop()); + int number3; + if (stackTop.equals("+")) { + number3 = number2 + number1; + } else if (stackTop.equals("-")) { + number3 = number2 - number1; + } else if (stackTop.equals("")) { + number3 = number2 * number1; + } else { + number3 = number2 / number1; + } + print.push(number3 + ""); + stackTop = operator.pop(); + } + } else if (comparePriority(c + "", operator.peek()) != 1) { + while (!operator.empty() && comparePriority(c + "", operator.peek()) < 1) { + int number1 = Integer.parseInt(print.pop()); + int number2 = Integer.parseInt(print.pop()); + int number3; + String stackTop = operator.peek(); + if (stackTop.equals("+")) { + number3 = number2 + number1; + } else if (stackTop.equals("-")) { + number3 = number2 - number1; + } else if (stackTop.equals("")) { + number3 = number2 * number1; + } else { + number3 = number2 / number1; + } + print.push(number3 + ""); + stackTop = operator.pop(); + } + operator.push(c + ""); + } + } + } + + while (!operator.empty()) { + String stackTop = operator.pop(); + int number1 = Integer.parseInt(print.pop()); + int number2 = Integer.parseInt(print.pop()); + int number3; + if (stackTop.equals("+")) { + number3 = number2 + number1; + } else if (stackTop.equals("-")) { + number3 = number2 - number1; + } else if (stackTop.equals("")) { + number3 = number2 * number1; + } else { + number3 = number2 / number1; + } + print.push(number3 + ""); + } + return print.peek(); + } + + private static int comparePriority(String a, String b) { + if (a.equals(b)) { + return 0; + } else if (Priority(a) > Priority(b)) { + return 1; + } else if (Priority(a) < Priority(b)) { + return -1; + } else { + return 0; + } + } + + private static int Priority(String op) { + if (op.equals("") || op.equals("")) { + return 2; + } else if (op.equals("+") || op.equals("-")) { + return 1; + } else { + return 0; + } + } + + public static boolean check(String[] s) { + if (checkFormat(s)) { + if (s[0].equals("-n")) + return checkData(s[1], s[3]); + else + return checkData(s[3], s[1]); + } else { + System.out.println("ףʽŶ"); + return false; + } + } + + private static boolean checkData(String strN, String strGrade) { + if (!strN.matches("\\d*")) { + if (strN.matches("-\\d*")) { + System.out.println("һȷŶΪ"); + return false; + } else { + System.out.println("!"); + return false; + } + } else { + n = Integer.parseInt(strN); + if (n > 100) { + System.out.println("СѧŶ"); + return false; + } else if (n == 0) { + System.out.println("Ϊ㣬һҪҪѽ"); + return false; + } + } + + if (!strGrade.matches("[1-3]")) { + System.out.println("ԲףĿǰֻ13꼶Ŷ"); + return false; + } else { + grade = Integer.parseInt(strGrade); + } + + return true; + } + + private static boolean checkFormat(String[] s) { + if ((s[0].matches("-n") && s[2].matches("-grade")) || (s[0].matches("-grade") && s[2].matches("-n"))) { + return true; + } else { + return false; + } + } + + public static void create() { + File file = new File("out.txt"); + if (!file.exists()) { + try { + file.createNewFile(); + } catch (IOException e) { + System.out.println("ļʧܣ"); + e.printStackTrace(); + } + } + } +} \ No newline at end of file From bc930c0d8011b32c41f74dd58672cfeaba8c57ee Mon Sep 17 00:00:00 2001 From: a139520017 Date: Tue, 18 Sep 2018 17:44:34 +0800 Subject: [PATCH 056/135] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\346\265\201\347\250\213\345\233\276.jpg" | Bin 0 -> 61414 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\346\265\201\347\250\213\345\233\276.jpg" diff --git "a/\346\265\201\347\250\213\345\233\276.jpg" "b/\346\265\201\347\250\213\345\233\276.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..02ba729eb1472b0611a5b316c195335fb856f7e6 GIT binary patch literal 61414 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

2zIUf+pb9!MhZW; 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 Date: Tue, 18 Sep 2018 18:00:33 +0800 Subject: [PATCH 057/135] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E5=B9=B4?= =?UTF-8?q?=E7=BA=A7=E4=BA=8C=E5=B9=B4=E7=BA=A7=E7=9A=84=E5=87=BA=E9=A2=98?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加一二年级运算模块; 可以提供符合要求的题目; --- Pair_211614331_211614354/AddOperation.java | 45 ++++++++++++++++++++ Pair_211614331_211614354/Division.java | 33 ++++++++++++++ Pair_211614331_211614354/Multiplication.java | 20 +++++++++ Pair_211614331_211614354/Subtraction.java | 45 ++++++++++++++++++++ 4 files changed, 143 insertions(+) create mode 100644 Pair_211614331_211614354/AddOperation.java create mode 100644 Pair_211614331_211614354/Division.java create mode 100644 Pair_211614331_211614354/Multiplication.java create mode 100644 Pair_211614331_211614354/Subtraction.java diff --git a/Pair_211614331_211614354/AddOperation.java b/Pair_211614331_211614354/AddOperation.java new file mode 100644 index 0000000..61a5a35 --- /dev/null +++ b/Pair_211614331_211614354/AddOperation.java @@ -0,0 +1,45 @@ + + +import java.util.ArrayList; +import java.util.Random; + +//ӷ +public class AddOperation extends Operation{ + + + public AddOperation(ArrayList answerSet,int testNumber) { + Random rand = new Random(); + firstNumber=rand.nextInt(100); + if((firstNumber/10)>0) //λ (ݽѧ٣λֻܼӸλʮ) + { + do { + secondNumber=rand.nextInt(10); //λ + int n=0; + n=rand.nextInt(2); //жǷҪʮ 0: 1 + if(n==0) + answerNumber=firstNumber+secondNumber; + else + { + secondNumber=secondNumber*10; + answerNumber=firstNumber+secondNumber; + } + + + }while(answerNumber>=100); + } + else { //һλ + do { + secondNumber=rand.nextInt(100); + answerNumber=firstNumber+secondNumber; + }while(answerNumber>=100); + + + } + answerSet.add("("+testNumber+")"+" "+firstNumber+" + "+secondNumber+" =");//ѽļ + answerSet.add(" "+answerNumber); //Ѵ + + } + + + +} diff --git a/Pair_211614331_211614354/Division.java b/Pair_211614331_211614354/Division.java new file mode 100644 index 0000000..d5b0de9 --- /dev/null +++ b/Pair_211614331_211614354/Division.java @@ -0,0 +1,33 @@ +import java.util.ArrayList; +import java.util.Random; + +// +//꼶һλҲһλijڳ +public class Division extends Operation{ + + public Division(ArrayList answerSet,int testNumber) { + Random rand=new Random(); + + do { + + firstNumber=rand.nextInt(99)+1; // + secondNumber=rand.nextInt(9)+1; // + remainder=firstNumber%secondNumber; // + answerNumber=firstNumber/secondNumber; // + + }while(answerNumber>=10 || firstNumber answerSet,int testNumber) { + + Random rand=new Random(); // + + firstNumber=rand.nextInt(9)+1;//ΧΪ[0-9)+1ܱ010 + secondNumber=rand.nextInt(9)+1;//ڶڳ˷ + answerNumber=firstNumber*secondNumber; + answerSet.add("("+testNumber+")"+" "+firstNumber+" * "+secondNumber+" =");//ѽļ + answerSet.add(" "+answerNumber); //Ѵ + + } + +} diff --git a/Pair_211614331_211614354/Subtraction.java b/Pair_211614331_211614354/Subtraction.java new file mode 100644 index 0000000..3f12887 --- /dev/null +++ b/Pair_211614331_211614354/Subtraction.java @@ -0,0 +1,45 @@ +import java.util.ArrayList; +import java.util.Random; + +// +public class Subtraction extends Operation { + + public Subtraction(ArrayList answerSet,int testNumber) { + + Random rand = new Random(); + firstNumber=rand.nextInt(100); + if((firstNumber/10)>0) //λ (ݽѧ٣λֻܼλʮ) + { + do { + secondNumber=rand.nextInt(10); //λ + int n=0; + n=rand.nextInt(2); //жǷҪʮ 0: 1 + if(n==0) + answerNumber=firstNumber-secondNumber; + else + { + secondNumber=secondNumber*10; + answerNumber=firstNumber-secondNumber; + } + + }while(answerNumber<0); + } + else { //һλ + int n; + secondNumber=rand.nextInt(9); + if(secondNumber>firstNumber) // bug޸ڶȵһ󣬾ͽλ + { + n=firstNumber; + firstNumber=secondNumber; + secondNumber=n; + + } + answerNumber=firstNumber-secondNumber; + + } + answerSet.add("("+testNumber+")"+" "+firstNumber+" - "+secondNumber+" =");//ѽļ + answerSet.add(" "+answerNumber); //Ѵ + + + } +} From f5862993160a4846665a0452616f6b3020156d5c Mon Sep 17 00:00:00 2001 From: LinKai945 Date: Tue, 18 Sep 2018 18:14:36 +0800 Subject: [PATCH 058/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6Mat?= =?UTF-8?q?hExam.java,=E4=BD=BF=E5=85=B6=E8=83=BD=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=AF=B9=E4=BA=8E=E6=96=B0=E7=9A=84=E8=BE=93=E5=85=A5=E6=A0=87?= =?UTF-8?q?=E5=87=86=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211614269_211601233/MathExam.java | 174 ++++++------------------- 1 file changed, 39 insertions(+), 135 deletions(-) diff --git a/Pair_211614269_211601233/MathExam.java b/Pair_211614269_211601233/MathExam.java index 0668d77..695bebd 100644 --- a/Pair_211614269_211601233/MathExam.java +++ b/Pair_211614269_211601233/MathExam.java @@ -1,4 +1,3 @@ -package com.java.Math; import java.io.File; import java.io.FileNotFoundException; @@ -52,26 +51,6 @@ public static boolean checkTwo() { } return true; } - - public static boolean checkThr() { - // symΪ1Ϊ,2Ϊ - if (sym == 1) { - a = (int) (0 + Math.random() * (9 - 0 + 1)); - b = (int) (0 + Math.random() * (9 - 0 + 1)); - return true; - } else { - a = (int) (1 + Math.random() * (99 - 1 + 1)); - b = (int) (1 + Math.random() * (9 - 1 + 1)); - if (a < b) { - return false; - } else { - if (a / b >= 10) { - return false; - } - } - } - return true; - } public static boolean isNum(String str) { for (int i = 0; i < str.length(); i++) { @@ -83,9 +62,9 @@ public static boolean isNum(String str) { } public static void mathOne(int n) { - //ŵĿ + // ŵĿ String prob; - //ŵĿ + // ŵĿ String prob1; String ans; ArrayList probs = new ArrayList(); @@ -97,12 +76,12 @@ public static void mathOne(int n) { } while (!end); // symΪ1Ϊ,2Ϊ if (sym == 1) { - prob1=a + " " + "+" + " " + b; + prob1 = a + " " + "+" + " " + b; prob = "(" + i + ")" + " " + a + " " + "+" + " " + b; - + ans = prob + " " + "=" + " " + Calculate.ans(prob1); } else { - prob1=a + " " + "-" + " " + b; + prob1 = a + " " + "-" + " " + b; prob = "(" + i + ")" + " " + a + " " + "-" + " " + b; ans = prob + " " + "=" + " " + Calculate.ans(prob1); } @@ -180,7 +159,7 @@ public static void mathTwo(int n) { end = checkTwo(); } while (!end); if (sym == 1) { - prob1=a + " " + "*" + " " + b; + prob1 = a + " " + "*" + " " + b; prob = "(" + i + ")" + " " + a + " " + "*" + " " + b; ans = prob + " " + "=" + " " + Calculate.ans(prob1); } else { @@ -188,7 +167,7 @@ public static void mathTwo(int n) { if (a % b != 0) { ans = "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + (a / b) + "..." + (a % b); } else { - prob1=a + " " + "/" + " " + b; + prob1 = a + " " + "/" + " " + b; ans = prob + " " + "=" + " " + Calculate.ans(prob1); } } @@ -251,124 +230,49 @@ public static void mathTwo(int n) { System.out.println("Ҳļ,"); } } - - public static void mathThr(int n) { - String prob; - String ans; - ArrayList probs = new ArrayList(); - ArrayList anss = new ArrayList(); - boolean end = false; - for (int i = 1; i <= n; i++) { - // - sym = (int) (1 + Math.random() * (2 - 1 + 1)); - do { - end = checkTwo(); - } while (!end); - if (sym == 1) { - prob = "(" + i + ")" + " " + a + " " + "*" + " " + b; - ans = "(" + i + ")" + " " + a + " " + "*" + " " + b + " " + "=" + " " + (a * b); - } else { - prob = "(" + i + ")" + " " + a + " " + "/" + " " + b; - if (a % b != 0) { - ans = "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + (a / b) + "..." + (a % b); - } else { - ans = "(" + i + ")" + " " + a + " " + "/" + " " + b + " " + "=" + " " + (a / b); - } - } - probs.add(prob); - anss.add(ans); - } - File file = new File("out.txt"); - if (!file.exists()) { - File parent = file.getParentFile(); - if (parent != null && !parent.exists()) { - parent.mkdirs(); - } - try { - file.createNewFile(); - } catch (IOException e) { - // TODO Auto-generated catch block - System.out.println("ļʧ,"); - } - } - try { - OutputStream out = new FileOutputStream(file); - byte[] data; - for (String str : probs) { - str += "\r\n"; - data = str.getBytes(); - try { - out.write(data); - } catch (IOException e) { - // TODO Auto-generated catch block - System.out.println("д!"); - } - } - String fg = "-----------------׼-----------------" + "\r\n"; - data = fg.getBytes(); - try { - out.write(data); - } catch (IOException e) { - // TODO Auto-generated catch block - System.out.println("д!"); - } - for (String str : anss) { - str += "\r\n"; - data = str.getBytes(); - try { - out.write(data); - } catch (IOException e) { - // TODO Auto-generated catch block - System.out.println("д!"); - } - } - try { - out.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - System.out.println("io"); - } - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - System.out.println("Ҳļ,"); - } + public static void mathThr(int n) { + System.out.println("꼶"); + System.out.println(n + ""); } public static void main(String[] args) { - if (args.length != 1 && args.length != 2) { - System.out.println("IJȷ,"); - } else if (args.length == 1) { - String str1 = args[0]; - if (isNum(str1)) { - if (str1.length() >= 5) { - System.out.println(","); - } else { - mathOne(Integer.parseInt(str1)); - } - } - } else if (args.length == 2) { - - String str1 = args[0]; - String str2 = args[1]; - if (isNum(str1)) { - if (str1.length() >= 5) { - System.out.println(","); - } else { - if (!str2.equals("1") && !str2.equals("2")) { - System.out.println("꼶,"); + if (args.length != 4) { + System.out.println(""); + } else { + if (args[0].equals("-n") && args[2].equals("-grade") || args[0].equals("-grade") && args[2].equals("-n")) { + if (args[0].equals("-n")) { + // ޶Ϊ0-999 + if (isNum(args[1]) && args[1].length() <= 3 && isNum(args[3]) && args[3].length() == 1 + && Integer.parseInt(args[3]) > 0 && Integer.parseInt(args[3]) <= 3) { + if (args[3].equals("1")) { + mathOne(Integer.parseInt(args[1])); + } else if (args[3].equals("2")) { + mathTwo(Integer.parseInt(args[1])); + } else { + mathThr(Integer.parseInt(args[1])); + } } else { - if (str2 .equals("1")) { - mathOne(Integer.parseInt(str1)); + System.out.println(""); + } + } else { + if (isNum(args[3]) && args[3].length() <= 3 && isNum(args[1]) && args[1].length() == 1 + && Integer.parseInt(args[1]) > 0 && Integer.parseInt(args[1]) <= 3) { + if (args[1].equals("1")) { + mathOne(Integer.parseInt(args[3])); + } else if (args[1].equals("2")) { + mathTwo(Integer.parseInt(args[3])); } else { - mathTwo(Integer.parseInt(str1)); + mathThr(Integer.parseInt(args[3])); } + } else { + System.out.println(""); } - } } else { - System.out.println(","); + System.out.println(""); } } + } } From c6a0e59a525d171a31155547c4ddc9dd32fe60a5 Mon Sep 17 00:00:00 2001 From: weili1997 <42904019+weili1997@users.noreply.github.com> Date: Tue, 18 Sep 2018 19:37:35 +0800 Subject: [PATCH 059/135] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BB=93=E5=AF=B9?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606391_211606380/MathExam.java | 234 +++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 Pair_211606391_211606380/MathExam.java diff --git a/Pair_211606391_211606380/MathExam.java b/Pair_211606391_211606380/MathExam.java new file mode 100644 index 0000000..31b3a42 --- /dev/null +++ b/Pair_211606391_211606380/MathExam.java @@ -0,0 +1,234 @@ +package com.java391; +import java.io.*; +import java.util.Random; +import java.util.Scanner; +import java.util.ArrayList; + +public class MathExam { + public static ArrayList ss = new ArrayList(); + + public static void main(String[] args) throws Exception { + System.out.println("꼶"); + int []Grade=new int[args.length]; + System.out.println("д"); + int []count=new int [args.length]; + count[0]=Integer.parseInt(args[0]); + System.out.println(); + Grade[0]=Integer.parseInt(args[1]); + File file =new File("out.txt"); + FileOutputStream fops=null ; + + try { + fops = new FileOutputStream(file); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + PrintStream ps= new PrintStream(fops); + ps.println("211606391"); + boolean f = true; + if(Grade[0]==3 ){ + for (int i=0;i numlist = new ArrayList(); + ArrayList express = new ArrayList(); + // + for(int i=0;i<5;i++) + { + numlist.add(rand.nextInt(100)+1); + } + //System.out.print(numlist); + String[] operator=new String[]{"+","-","*","/"}; + int size=numlist.size(); + String[] num=new String[size]; + for(int i=0;i Date: Tue, 18 Sep 2018 20:07:57 +0800 Subject: [PATCH 060/135] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=8E=A8=E9=80=81=EF=BC=88=E4=B8=BB=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E6=AD=A3=E5=9C=A8=E6=B5=8B=E8=AF=95=E4=B8=AD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 替换了原有的四则运算模块,原有运算模块速度太过于缓慢,当题数大于几百时,速度越来越慢,且题目报错; 更新了高速运算模块(使用逆波兰算法),出题解题速度快了十几倍; 添加运算父类; 修改了一二年级的部分代码; 添加了符合各年级需求的限制; --- Pair_211614331_211614354/AddOperation.java | 4 +- Pair_211614331_211614354/ArithemticS.java | 236 ++++++++++++++++++ Pair_211614331_211614354/Division.java | 8 +- Pair_211614331_211614354/Multiplication.java | 4 +- Pair_211614331_211614354/Operation.java | 19 ++ Pair_211614331_211614354/OutPutSet.java | 2 +- Pair_211614331_211614354/RandomQuestions.java | 39 ++- Pair_211614331_211614354/Subtraction.java | 4 +- 8 files changed, 297 insertions(+), 19 deletions(-) create mode 100644 Pair_211614331_211614354/ArithemticS.java create mode 100644 Pair_211614331_211614354/Operation.java diff --git a/Pair_211614331_211614354/AddOperation.java b/Pair_211614331_211614354/AddOperation.java index 61a5a35..09f9a8b 100644 --- a/Pair_211614331_211614354/AddOperation.java +++ b/Pair_211614331_211614354/AddOperation.java @@ -35,8 +35,8 @@ public AddOperation(ArrayList answerSet,int testNumber) { } - answerSet.add("("+testNumber+")"+" "+firstNumber+" + "+secondNumber+" =");//ѽļ - answerSet.add(" "+answerNumber); //Ѵ + answerSet.add("("+testNumber+")"+" "+firstNumber+" + "+secondNumber);//ѽļ + answerSet.add(" = "+answerNumber); //Ѵ } diff --git a/Pair_211614331_211614354/ArithemticS.java b/Pair_211614331_211614354/ArithemticS.java new file mode 100644 index 0000000..f800a8b --- /dev/null +++ b/Pair_211614331_211614354/ArithemticS.java @@ -0,0 +1,236 @@ + +import java.util.Iterator; +import java.util.LinkedList; + +//沨󷨺ã +//㷨òĺã + + +public class ArithemticS extends Operation{ + LinkedList shortStack;// ʱ洢 + LinkedList PostfixStack;// ׺ʽ() + String problem;// Ŀ + LinkedList runAnswer;//Ŀջ + String reversedNumber;//Ԫ + boolean isRight;// Ƿȷ + + + public boolean startProblem(String problem) { + //problem="( 15 + 25 ) - ( 3 + 8 ) * ( 5 + 4 )"; + shortStack=new LinkedList();// ʱջ + PostfixStack=new LinkedList();// ׺ʽջ + String partNumber;// һԪ + + + String[] problemString=problem.split("\\s"); + + for(int i= 0;i( ); + + while (reversed.hasNext()) { // + reversedNumber= (String) reversed.next(); + if(reversedNumber.matches("\\d+")) {// ĿûиŵʽȲǺ׺ʽиŵ + + runAnswer.push(reversedNumber);//־ѹջ + // System.out.println("ѹ֣"+runAnswer); + } + else { // ǷţǾ͵ٰѽѹȥ + firstNumber=Integer.valueOf(runAnswer.pop()); // ȵ + + secondNumber=Integer.valueOf(runAnswer.pop()); + // System.out.println("1: "+firstNumber+" 2"+secondNumber); + switch (reversedNumber) { + case "+":{ + + answerNumber=firstNumber+secondNumber; + if(answerNumber<0) + { + return false; + } + runAnswer.push(String.valueOf(answerNumber)); + break; + } + case "-":{ + + answerNumber=secondNumber-firstNumber;// ǼڶǼ + if(answerNumber<0) { + return false; // 꼶ƣֹ㣬Ŀ + } + runAnswer.push(String.valueOf(answerNumber)); + break; + } + case "*":{ + answerNumber=firstNumber*secondNumber; + if(answerNumber<0) // 꼶꼶 + { + return false; + } + runAnswer.push(String.valueOf(answerNumber)); + break; + } + case "/":{ + try { + if(secondNumber%firstNumber != 0 || secondNumber==0) { // 꼶ƣҲΪ + return false; + } + answerNumber=secondNumber/firstNumber;// ͬڶDZ + if(answerNumber<0) + { + return false; + } + } catch (Exception e) { + // TODO: handle exception + return false; + } + + + runAnswer.push(String.valueOf(answerNumber)); + break; + } + + } + } + + }// + setAnswerNumber(Integer.valueOf(runAnswer.get(0))); + return true;// 꼶ƣ + // System.out.println(runAnswer); + } + +} + + diff --git a/Pair_211614331_211614354/Division.java b/Pair_211614331_211614354/Division.java index d5b0de9..e5df4ed 100644 --- a/Pair_211614331_211614354/Division.java +++ b/Pair_211614331_211614354/Division.java @@ -18,12 +18,12 @@ public Division(ArrayList answerSet,int testNumber) { }while(answerNumber>=10 || firstNumber answerSet,int testNumber) { firstNumber=rand.nextInt(9)+1;//ΧΪ[0-9)+1ܱ010 secondNumber=rand.nextInt(9)+1;//ڶڳ˷ answerNumber=firstNumber*secondNumber; - answerSet.add("("+testNumber+")"+" "+firstNumber+" * "+secondNumber+" =");//ѽļ - answerSet.add(" "+answerNumber); //Ѵ + answerSet.add("("+testNumber+")"+" "+firstNumber+" * "+secondNumber);//ѽļ + answerSet.add(" = "+answerNumber); //Ѵ } diff --git a/Pair_211614331_211614354/Operation.java b/Pair_211614331_211614354/Operation.java new file mode 100644 index 0000000..2b50882 --- /dev/null +++ b/Pair_211614331_211614354/Operation.java @@ -0,0 +1,19 @@ + +//㸸 + +public class Operation { + int firstNumber; //һ + int secondNumber; //ڶ + int remainder;// + static int answerNumber; // + + public int getAnswerNumber() { + return answerNumber; + } + + @SuppressWarnings("static-access") + public void setAnswerNumber(int answerNumber) { + this.answerNumber = answerNumber; + } + +} diff --git a/Pair_211614331_211614354/OutPutSet.java b/Pair_211614331_211614354/OutPutSet.java index bf79479..3a55b49 100644 --- a/Pair_211614331_211614354/OutPutSet.java +++ b/Pair_211614331_211614354/OutPutSet.java @@ -1,7 +1,7 @@ import java.io.IOException; import java.io.PrintWriter; -import java.util.ArrayList; + public class OutPutSet { //еĿ diff --git a/Pair_211614331_211614354/RandomQuestions.java b/Pair_211614331_211614354/RandomQuestions.java index 5663cc5..feba5cd 100644 --- a/Pair_211614331_211614354/RandomQuestions.java +++ b/Pair_211614331_211614354/RandomQuestions.java @@ -63,6 +63,10 @@ public class RandomQuestions extends Operation{ } } while (isAdd == howMany || isSub == howMany || isMult == howMany || isDivison == howMany); + isAdd=0; // ռ + isSub=0; + isMult=0; + isDivison=0; needBracket = rand.nextBoolean(); // ǷҪ @@ -79,23 +83,42 @@ public class RandomQuestions extends Operation{ } } } - for(int i = 0;i < problemSet.size(); i++) { - problem=problem+problemSet.get(i); // ݸõ - problemSave=problemSave+" "+problemSet.get(i); + + + /* + £ַĿüϰĿҪõУ + ַֻǵıĿ + + */ + + for (int i = 0; i < problemSet.size(); i++) { + + if (i == problemSet.size() - 1) { + problemSave = problemSave + problemSet.get(i); + } else + problemSave = problemSave + problemSet.get(i) + " "; + } - FindBracket findBracket=new FindBracket(); - findBracket.findOne(problem); // ĿŶ - System.out.println(problemSave+ " = " + answerNumber); + + // System.out.println(problemSave); + return problemSave; + + + + + + + } - //System.out.println(problemSet); - //} + +//} public void positionCode(int howMany) { // ȡű׼λ diff --git a/Pair_211614331_211614354/Subtraction.java b/Pair_211614331_211614354/Subtraction.java index 3f12887..cf4674b 100644 --- a/Pair_211614331_211614354/Subtraction.java +++ b/Pair_211614331_211614354/Subtraction.java @@ -37,8 +37,8 @@ public Subtraction(ArrayList answerSet,int testNumber) { answerNumber=firstNumber-secondNumber; } - answerSet.add("("+testNumber+")"+" "+firstNumber+" - "+secondNumber+" =");//ѽļ - answerSet.add(" "+answerNumber); //Ѵ + answerSet.add("("+testNumber+")"+" "+firstNumber+" - "+secondNumber);//ѽļ + answerSet.add(" = "+answerNumber); //Ѵ } From c381e3f9008b3e159902e6f1e25aa6f2e09899d4 Mon Sep 17 00:00:00 2001 From: 905364822 <905364822@qq.com> Date: Tue, 18 Sep 2018 20:08:39 +0800 Subject: [PATCH 061/135] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606390_211606329/.classpath | 6 + Pair_211606390_211606329/.project | 17 ++ .../.settings/org.eclipse.jdt.core.prefs | 11 + Pair_211606390_211606329/bin/Algorithm.class | Bin 0 -> 5983 bytes .../bin/LinearTable.class | Bin 0 -> 1334 bytes Pair_211606390_211606329/bin/MathExam.class | Bin 0 -> 492 bytes Pair_211606390_211606329/bin/Operator.class | Bin 0 -> 1697 bytes Pair_211606390_211606329/bin/SopStacks.class | Bin 0 -> 1044 bytes Pair_211606390_211606329/src/Algorithm.class | Bin 0 -> 5312 bytes Pair_211606390_211606329/src/Algorithm.java | 249 ++++++++++++++++++ Pair_211606390_211606329/src/Function.class | Bin 0 -> 388 bytes .../src/LinearTable.class | Bin 0 -> 1069 bytes Pair_211606390_211606329/src/LinearTable.java | 31 +++ Pair_211606390_211606329/src/MathExam.class | Bin 0 -> 388 bytes Pair_211606390_211606329/src/MathExam.java | 7 + Pair_211606390_211606329/src/Operator.class | Bin 0 -> 1534 bytes Pair_211606390_211606329/src/Operator.java | 42 +++ Pair_211606390_211606329/src/SopStacks.class | Bin 0 -> 855 bytes Pair_211606390_211606329/src/SopStacks.java | 27 ++ Pair_211606390_211606329/src/out.txt | 0 20 files changed, 390 insertions(+) create mode 100644 Pair_211606390_211606329/.classpath create mode 100644 Pair_211606390_211606329/.project create mode 100644 Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs create mode 100644 Pair_211606390_211606329/bin/Algorithm.class create mode 100644 Pair_211606390_211606329/bin/LinearTable.class create mode 100644 Pair_211606390_211606329/bin/MathExam.class create mode 100644 Pair_211606390_211606329/bin/Operator.class create mode 100644 Pair_211606390_211606329/bin/SopStacks.class create mode 100644 Pair_211606390_211606329/src/Algorithm.class create mode 100644 Pair_211606390_211606329/src/Algorithm.java create mode 100644 Pair_211606390_211606329/src/Function.class create mode 100644 Pair_211606390_211606329/src/LinearTable.class create mode 100644 Pair_211606390_211606329/src/LinearTable.java create mode 100644 Pair_211606390_211606329/src/MathExam.class create mode 100644 Pair_211606390_211606329/src/MathExam.java create mode 100644 Pair_211606390_211606329/src/Operator.class create mode 100644 Pair_211606390_211606329/src/Operator.java create mode 100644 Pair_211606390_211606329/src/SopStacks.class create mode 100644 Pair_211606390_211606329/src/SopStacks.java create mode 100644 Pair_211606390_211606329/src/out.txt diff --git a/Pair_211606390_211606329/.classpath b/Pair_211606390_211606329/.classpath new file mode 100644 index 0000000..51a8bba --- /dev/null +++ b/Pair_211606390_211606329/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/Pair_211606390_211606329/.project b/Pair_211606390_211606329/.project new file mode 100644 index 0000000..52ab904 --- /dev/null +++ b/Pair_211606390_211606329/.project @@ -0,0 +1,17 @@ + + + MathExam V2.0 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs b/Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a21537 --- /dev/null +++ b/Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Pair_211606390_211606329/bin/Algorithm.class b/Pair_211606390_211606329/bin/Algorithm.class new file mode 100644 index 0000000000000000000000000000000000000000..581396236155dbf8f85c183210390b6533f56fe7 GIT binary patch literal 5983 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 Me!rA)i$j(F8_4Us2LJ#7 literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/bin/LinearTable.class b/Pair_211606390_211606329/bin/LinearTable.class new file mode 100644 index 0000000000000000000000000000000000000000..8ad7325ddf51e5ba4b3588a25007b62c35ec8e33 GIT binary patch literal 1334 zcmZ{kUvJV-7{;H|jxkE<*l?T5oSV)GY!3g-`3JIO)0mLpyui%pU4aHWyRwwBsMmfJ z6K}lGM6;lY@!C(~hcN2<_HUN^uBpy79G=V6(802t%ff!=GYw?($!$A>)TGTN-HISM9prwrr-4}f#sp?vYZE` zn(x_etF%Q&#>=*A`&$BPF26_Yd+nyBK}AYO0$LoC0+~UcZO=1baWV}CQV9r5>xf}o zV3LLJb`R>76i++VcEfb`OwVRBfg|Gk&+U#tsv7ahD$K(}%WVqGX*#8wB1+0%mgo5I@`p;dF4h3Si+q7O%-8=Sc zx)jvp3d3&dxQ-j7-LnqbM;0&L*0IU_RLwUVFCLnQVaK#uyX!Tq2ew1!(~-8Vb3L&{ zcR-~JETHg3pfOG}1rs#Vg@i`WB(3aFl%O$PIEG&M3ghW9(w{N)F^JC4(+D^*j1gs$ zSf^-BmuE18S(*vV;dIEmPdOBhD15@yY7b`=JQ=XGU~hslCj!o_j14)=JqF_9gx z!d=SGP6A?ft%nOLhKWgv)C1z8jExX4VTDL1Y=z!0BS(2vj8%W27X@sc z%LXz%upH}KE?|{*WeKHagAZqWSX1yF#bHV&V%X@*GjJ`CC%Eq+Z-Yk8t1+*K4T1MV zismAUw7#Ovep6l2&rMiT%kMB1%DP3Jcq2r%PksC6C)ZI8tWHyZfh_fR9%&jE=__N~ dvO`N@5(Nv8^}IuS^w0PUF_9v*cWJ7i^cRr$>P4g`bb>t>&tjN}EFRuZ=TTS^>gO_( z8VwyyRuAhe@2}B`Pz9IE;CKm+D-_9Gc zRw`sh==C4{YVM>gWEPJGfr&jrbDYF^AcBi|2;|LSxe@q|+pY>^ z>z;cOSZ>g?Iz2ms2?3!CjO`kGM~w_78NSKpyGQ1sabVucV49h-KziF~8rzI#8CSTY z>pPzB1m7|=1g5-*?ZF^B)$iU5oK9ue>az8C!)d!#(DO<0>S(ogk!mbsxPjfa{puz` zGPPF6ah+gOAXzLmDYow2w-qc2OowvAhIg!!2W+b13YImjV37i9;jwWDysF_6UQ)4! zqJq~42SanCRvJp6XyvgqY5yyM`Jz#J0iy}LfprCREIVw@#u_SkiwwKHK;U{YcCtUc z>cvbPKH5ZEO~;9PSf%o8Ar(}=ft$zR%dW!1m@yBqv4mDDz4(X zf@>r9sbAIbK0csJ_BTDNb8-$K;#2xU>aA(G0cn5Rrnt3uqrtw5>ZI9Q8gAkvj?js2 zUpPWTPGnod9OgO9;DN*DsyR@?i7PFS^LN=R+X$@I*R(g3ts;qKm4`pp@GdrZzgpoN zun#?MEe;_{yq|)(5l;qG4T^A^#@*i20e+-WSAWdb7LdbnPK=dp%QqT{|l4=(pDj< zPNGP<*O0>wrtwa=3rNXPL`422kp%Nk^t^hC_kO@aIVAE7)dZen?GzvWj{1+dr{}Y= zdiH#MOV8(G_1yV-LC?>G^-CfC%xGQmPlo*0F~RjL?Vm$|MwV#f4H~&cH3rpvNfYnU zMu#?jkEKx4d|v@>QKkGn!R>G)ceqX?RajbDpb!@(5j z(F!@N#_-iMd^N%s@@J1h*KP#hZ1L_OyJY7O(VKzhyMdfgc5Qg7P+}cjuBrRzu-?V%sDKw?DTvAm61QL=32ct;k<|M0h8z;7GrxN@o z4j@4*frL2oqY$%eD1dfB*UZ6TmK>>c}yejvqL&+Z#qYG=|Etd*Ze{ zcRXml?H==9%%FK9qN8T3r%5clmMz9Z-nS{{UoZWP8^EypnX7v zi~C|M;sb_!z0o0^7k-}?kjIh*69pY*hH92(0VOP%U|6xRfJKHf`QdLSqb?8Mxm}NZ ztk{0f^*U}SN=!jvpe$iv2BbBaNxQ6QthTHGI5}_Q$Tyip| zw(NlUQh7GPv{z~{@B?b5-njTEB{nSF!Ci6|@{xbSQ!mq}X|Ht~=_rzA&wq=C^2Udxvq3s103yhw!$jz0-|=EmG+4~D@Dzq;E literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/src/Algorithm.class b/Pair_211606390_211606329/src/Algorithm.class new file mode 100644 index 0000000000000000000000000000000000000000..dc7c340e60425a6c46ee53bb6388b129c4742219 GIT binary patch literal 5312 zcmb_g33!v`9sj*a+AmGNUTG;UEff&3ClwT(lpDnrON$i2f(mIH+Gv`@B<1ix=kOXj zoyWAO6RopebEq^0>l})6&MDiRZs628=Q(vwr^6wFzyJFsEot4J$31(V_C5aB`@i4! z%d-a`eH_5Cs?deyxGD`zxY~*D%Y2Q2Yh6gOfIl#BoeNHDbG@K%FmR&_rUm(-KyH%Z zW&>R=x z$@Xz4elAjWifvnEctTj7l+`XlJSD>~#D=Hk$Y09vj9`By!?RBO+KK0!c;1QKPW;A& z-{N;Nyx_v`@uG-&DII^nA7$7hqV|g4UY6lcGQ48oRTmbEQBJ%jt3S&LugmZk8Qw7P zR|9VXk6dX9Q2c5wcpdGU|T_A+iI@tktp%* zy0blNJk@?rpsl(w8ukU+YKU)Mt59HJe8K9uovT-S!`{|qVPDi6CSKJkWYpF90$xve ziKp4`CCuI!3@N17acYcuTF!|OmJ(_4_^FM0=>g;Pq0 z%l+RVWlL$=yrB3yOPo=!eXbos|7b5P^n~X|6yV^+Dv>08w`AG;uHK+VWg%#tb*ot`uweu zm#Wmnr}#{Ue{ol4Vjn(Fn0^?8iGSlt6Z`SLfiFxPz?TLNnm9x|=zi*{W|+7{0Vz}TpImvN zp$tD&0_~sWRv^m8r6rL8i)-&c38lv-gQh*p2s?*^o*9U*Aw;Dd)Hc7l@(%7 zjOtouk+rZ4a^pqFgo-yr=>wTstAW3PxXXC-axBD)z?+D@_DXj~tON*A@WZYaZ2f<`T}45k}8sDM?= z$za`s=@mcA*a&#nN?#bJ#lU4^_q5XR)UdZBxQ1k8SQpiia!_shCcm_Hm;-9WrB+>O zmxdYUb=8YJQKpF;+7j#t>9+M>{5hOaE)RCdmUc;*V-AnRymn8xk%{LGw0LXc4nK^4 zp~Xc0VLHW81Cp6YPPrwmWX?}?UM(z<6tBG&+PPiX0z8bJ3ADDdL809Z1PEa_WPtgdjn}9{hp&i z+#0OqxDHTbVdonP*izodmSyjSt=!GgQQnV~raq+h!r;=$Wm+#>gUfU-O+qtzkvX`` z8eC>`nL`41FLEo~c`=OW!pQPM$9ClRa#5-0f*y>na2IN1UIJMVM~*DthLNdTs6Zb^ zJwzRCSkJK@xg5v9!8r|i$U;6wVI+=30Ux%7sNrrtpRK22H0>^-Psh<8a@>Ln+>R=oM`@#AKSY8Q1LqsKVBilZOy{Y*{VZ?Uu0Sf!g}SUCMNRJFK8&ub zh+)iTWOFK6)&u9l${5Dc^zlvoI6{+5=);k{n3%xXXB5+}0!M2%GHBRQ8*QrR&_@vm#O2>q^4nox(JQx zQuYMNx7o-(#Di@*-!6hOaIu4r(u*Ajpwxck%Crx&1+pJgYZI7#IL!hrpgnvOSy{>N zC;`#_A=t0C!-T4a+tvrsGb+ zvV_Ni2}O*;`Y@f#Y|b+*#9&dD)1}~h$ie4O4xh1;`GlRvbuHg-%h=A&;`_Ck?JUG+ zt2iJHwgX6|sdK40Ut00{O0g_atIBy$ZfXoOQ&#n2mh5Id=IX_4%eqZIB9KpP4|wY;i*_^`7Zi)zE{S0g#iR2ECiK8TnioQetz;n?xW_vk7R>Z@JkN zOc_#t_C&oUQ_n7 zXz`yk1V7fo8(ZSW%}>Hhd=EZ87`XG8_h5g_hgd zsHWp4H6LB70h?75LTV*{e~?7Th3f!DspB(>zQD?ol9J;6Eb26Q0mqYjG84p3!W{R> z+wtwXit-q0rO7UMfIvkJLEVMm4)*3d`R&wA2ENlRcJ;hjEa~S(!8^zG_>nk4GO$;sDp2|MF zKs?ZSBO1-A4~{RTNoi1og;7pM0i zG(c{-SwgSTp{^nHeoZfht5wr6>_YB`JF6wW9`I z)n5t;E!)ZnS=XHvtrw8NAHs_8A|E?@c**T$SALn#)mPY~Ut?c>oe#k`=+`%St-Zx- x?H$JVJ;v~TUT+_g<0C>p=11@g%8Ac(v~r|qZK`})R!LS#u`XG~`j=xjeFePZC4~S0 literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/src/Algorithm.java b/Pair_211606390_211606329/src/Algorithm.java new file mode 100644 index 0000000..7a361ae --- /dev/null +++ b/Pair_211606390_211606329/src/Algorithm.java @@ -0,0 +1,249 @@ +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; + +import java.util.List; +import java.util.Random; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Algorithm { + private int num1; + private int num2; + private int grade; + private int number; + private int Symbol; + private int[] flag; + private int fg=0; + private String str=""; + private BufferedWriter bw; + private LinearTable L=new LinearTable(); + private SopStacks Sop=new SopStacks(); + private SopStacks scale=new SopStacks(); + private List list=new ArrayList(); + private List problem=new ArrayList(); + private List answer=new ArrayList(); + private int sum; + Random random=new Random(); + public Algorithm(String args0,String args1,String args2,String args3) { + if(args0.equals("-n")) + { + grade=Integer.parseInt(args3); + number=Integer.parseInt(args1); + } + else if(args0.equals("-grade")) + { + number=Integer.parseInt(args3); + grade=Integer.parseInt(args1); + } + //ʹIJ˳Ի + if(grade==3) { + CalculationThree(); + } + } + private void CalculationThree() + { + File file=new File("out.txt"); + if(!file.exists()) + { + try { + file.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + //outļ + try { + bw=new BufferedWriter(new FileWriter("out.txt")); + } catch (IOException e1) { + e1.printStackTrace();//쳣ķ + } + for(int i=0;i<=number-1;i++) + { + Input(); + } + for(int i=0;i<=problem.size();i++) + { + try { + bw.write("("+(i+1)+")"+problem.get(i)); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println("("+(i+1)+")"+problem.get(i)); + } + try { + bw.newLine(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + for(int i=0;i<=problem.size();i++) + { + try { + bw.write("("+(i+1)+")"+problem.get(i)+"="+answer.get(i)); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println("("+(i+1)+")"+problem.get(i)+"="+answer.get(i)); + } + } + private void Input() + { + getProblem(); + for(int j=0;j<=L.size();j++) + { + str=str+L.get(j); + list.add(L.get(j)); + } + problem.add(str); + L.remove(); + Transformation(); + answer.add(count()); + } + //꼶ļ㷨 + private void getProblem() + { + Symbol=random.nextInt(3)+2; + flag=new int[Symbol]; + for(int i=0;i<=Symbol;i++) { + if(fg>1) + { + if(L.get(fg-1).equals(")")) + { + flag[i]=random.nextInt(4)+1; + } + } + else { + flag[i]=random.nextInt(5); + } + if(flag[i]==0) + { + L.append("("); + fg++; + } + L.append(random.nextInt(100)+1+""); + fg++; + if(flag[i]==0) + { + flag[i]=random.nextInt(4)+1; + fg++; + L.append(fg+1,")"); + } + if(flag[i]==1) + { + L.append("+"); + fg++; + } + else if(flag[i]==2) + { + L.append("-"); + fg++; + } + else if(flag[i]==3) + { + L.append("*"); + fg++; + } + else if(flag[i]==4) + { + L.append(""); + fg++; + } + } + } + //һĿ꼶 + public static boolean isDigit(String args) + { + Pattern pattern=Pattern.compile("[0-9]{1,}"); + Matcher matcher=pattern.matcher((CharSequence) args); + return matcher.matches(); + } + //жַǷΪһ + private void Transformation() + { + for(String s:list) { + if(isDigit(s)) + { + L.append(s); + } + //沨㷨Ա + else if(s.equals("(")||s.equals(")")) + { + if(s.equals("(")) + { + Sop.push(s); + } + else if(s.equals(")")) + { + while(!Sop.isEmpty()&&!Sop.pop().equals("(")) + { + L.append(Sop.pop()); + } + if(!Sop.isEmpty()) { + Sop.pop(); + } + } + }//沨㷨ֽ + else + { Operator e=new Operator(s); + Operator e1=new Operator(Sop.peek()); + while(!Sop.isEmpty()&&Sop.peek().equals("+")||Sop.peek().equals("-")||Sop.peek().equals("*")||Sop.peek().equals("")&&e.compareTo(e1)<=0) + { + L.append(Sop.pop()); + } + Sop.push(s); + } + } + + while(!Sop.isEmpty()) + { + L.append(Sop.pop()); + } + } + //׺Ϊ׺ + private String count() + { + for(int i=0;i<=L.size();i++) { + if(isDigit(L.get(i))) { + scale.push(L.get(i)); + } + else + { + num1=Integer.parseInt(scale.pop()); + num2=Integer.parseInt(scale.pop()); + if(L.get(i).equals("-")) + { + if(num2c?x) y8w36(=b$4U#v!&DTj^YuW6g_VSm;%#+&{i$hmbM~LEPixX(xfplA*s5c(dce~37JZPOot}A_Mf+@t*{X)*T(m* z)$3Fnp6m2FJG+F$YEIAbb`|tu=@Dn&?Y9X|?K?gD!SJYQy9ZXY%S_A~4D4Q8VWD__ zkRTU}^?w&)9oyUMb`>(kQb-f|3+Iym5vp^Hu-Ahj(?+QK*m*&fG*PEk*FNf>@H*S@ ztk$#p)*vvEX!M6}%f9D`qqKOm#{RZsl_oAAqmVsY>z?ac&tD+b zFUsUgQ+!_3&ojlFhBOR*(=20_nF@4%0qOE7RQVIMC#TRqAo9+~&NIpb1)_)`#?A#S z2FN1wQZdW#5!oCes^M`MHA59~A9Znp(#aU0a+MKcI>M-=uU+91E|Wo2E)y*(qr&x; z9||H(1cAoJ)|Pn7;R>Tb3W2;if#gOoG8dwk=JXv3FH;#1Ih$9@=~eSzrKk>&6k|v9zmHY3SHv4O8Ql1;?RCTQ{R27dB1(_ EH-@&yCIA2c literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/src/LinearTable.java b/Pair_211606390_211606329/src/LinearTable.java new file mode 100644 index 0000000..008a588 --- /dev/null +++ b/Pair_211606390_211606329/src/LinearTable.java @@ -0,0 +1,31 @@ + +import java.util.ArrayList; +import java.util.List; +//һԱ +public class LinearTable { + private List list=new ArrayList(); + public void append(String str) { + list.add(str); + } + public void append(int i,String str) { + list.add(i,str); + } + //ӵ + public List getAll(){ + return list; + } + //ȫ + public String get(int index) { + return list.get(index); + } + //еindexλ + public int size() { + return list.size(); + } + //ԱĴС + public void remove() { + for(int i=0;i<=list.size();i++) + list.remove(i); + } + //ɾԱе +} diff --git a/Pair_211606390_211606329/src/MathExam.class b/Pair_211606390_211606329/src/MathExam.class new file mode 100644 index 0000000000000000000000000000000000000000..975a23a5a572d7dfc8955109779d82b13c2c92f0 GIT binary patch literal 388 zcmbVIO-sW-6r8vDso}*iOlXDvqqS z4Icqv<2=vGO4swk61#-fuZqxHXWk`?bXF6tqrZdx#|)-8gv-m@BfvW&;M(Hb0e9l= z$rb300Y8(g-;jcFh)u>;dfb?Ry$^^->BQ2Fr58&-Ucq@-TkYp^9{Np4o3TLW2O=0y ATL1t6 literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/src/MathExam.java b/Pair_211606390_211606329/src/MathExam.java new file mode 100644 index 0000000..821ffa4 --- /dev/null +++ b/Pair_211606390_211606329/src/MathExam.java @@ -0,0 +1,7 @@ + +public class MathExam { + public static void main(String[] args) { + // TODO Auto-generated method stub + new Algorithm(args[0],args[1],args[2],args[3]); + } +} diff --git a/Pair_211606390_211606329/src/Operator.class b/Pair_211606390_211606329/src/Operator.class new file mode 100644 index 0000000000000000000000000000000000000000..2c49b30e583e191f09ca0050a9b4f6797e683ab8 GIT binary patch literal 1534 zcmZ`&S##206g?kMvXGV*t=hV@R;@r(+_z$_c2SfrGt@fzWQq}^2pEDhKIs4O7x?0f zTWfX3aeVYgIi4>KB~+bEzRA7!+~u76<=5}8-vOM(l7gIylR8e}v<87Q2|CXyIIkm) z3(|8@#U&M&RZQsEfxJ%F6?sf5xT+&5J#kFQv}+2kE0`9DEfw#S1X9H()(b0FwQ7}I z$#b1rWkR5Lx?XE~R?SwR4`*;7IOynv4_gBUY#6zO)Nzo(m4^D%WXP{h1}1uP2mcgk+E5!l&rb?9^oC%$ku5MhwKD1xE$v0ldEK%5x>qT zdJvNfqUR7jKM^Gocx|R4YlyzVaP|XYsmKO;BKU#$8kEma-{OIp(n4`7ls3 zJw9rt5`KKQUq8_ufA7zBnCCb&o;!ICVw8L`p;y)xkhS~B733ZxS|fWQ?`WXI*jC;rs3zZs@3!*d#IQ&IHR3Y? z{$PODvgQwnHS}$V$Dkq$Gk`b!*1(N#NZwmV|3}1pnPXotuz^$*ccrOyn|e=IG|@3T hoQA0a+4AY7N`2&$#0B(Y4g;KUbLYo!oR|ns`~i|XI { + public static final String PLUS = "+" ; + public static final String MINUS = "-" ; + public static final String MULTIPLE = "*" ; + public static final String DIVIDE = "/" ; + private int priority ; + protected static final Map operatorPiority = new HashMap <> (); + static + { + operatorPiority .put ( PLUS, 1) ; + operatorPiority .put ( MINUS, 1) ; + operatorPiority .put ( MULTIPLE, 2) ; + operatorPiority .put ( DIVIDE, 2) ; + } + protected void isLegalOperator (String content) + { + if (content.equals(PLUS)) + priority = operatorPiority .get (PLUS); + else if(content.equals(MINUS)) { + priority = operatorPiority .get (MINUS); + } + else if(content.equals(MULTIPLE)) { + priority = operatorPiority .get (MULTIPLE); + } + else if(content.equals(DIVIDE)) { + priority = operatorPiority .get (DIVIDE); + } + } + Operator(String content) + { + isLegalOperator (content); + } + @Override + public int compareTo(Operator o) { + return this . priority - o . priority; + } + } + + diff --git a/Pair_211606390_211606329/src/SopStacks.class b/Pair_211606390_211606329/src/SopStacks.class new file mode 100644 index 0000000000000000000000000000000000000000..f7eef9d5c3306111e350db1cbf1bc3f954a235d0 GIT binary patch literal 855 zcmZ`%O>fgc6r4@mI8IC(AT6JTlu}6Cl7Pf5RWFE2ND&;2kl^MdR@f%7Eq_#k-^2kV zXeE#kXMPl7o)e^|4VSmOZ)fJcdAq;=eE$jHDV|hdqhVsJf&v;As<tf-%uas<6>J@{YYumg-5Tr-QLS>@nX}uv|R~yflk_1!pN}f0mti!KmY= zu?|Mv0}@O7I?(BXLb2I;!#dBxAtlx*?!U~YeLsHf^(V|2QI@<{SZ`jG5neG0BZYdi zb@5ubzCTtlb@F@~r62NI?|2^hsjELyoV8ylRNOF&2mYa!daG_2xv4i8CvCB8<1((W zz%u(bE@9QiF7|9ZLR+Dhqs}T<5gz%P~;A% zIj2z04;0>>qWBHQmz-N?l-~iYz{r{F*qAeSn3o&N`3htA1S{t$Wt3qNd=1y)6gv&BB2%7Kus(5rR=&>DZEP|wL08VB LrSCgbDB$j2nWvmH literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/src/SopStacks.java b/Pair_211606390_211606329/src/SopStacks.java new file mode 100644 index 0000000..5f0b886 --- /dev/null +++ b/Pair_211606390_211606329/src/SopStacks.java @@ -0,0 +1,27 @@ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +//һSOPջ +public class SopStacks { + private LinkedList list = new LinkedList(); + public void push(String o){ // ջ + list.addFirst(o); + } + + public String pop(){ // ջ,ָջɾԪز + return list.removeFirst(); + } + + public String peek(){ // 鿴ջԪ + return list.getFirst(); + } + + public boolean isEmpty(){ // жջǷΪ + return list.isEmpty(); + } + + public int getSize(){ // õջĴС + return list.size(); + } + +} diff --git a/Pair_211606390_211606329/src/out.txt b/Pair_211606390_211606329/src/out.txt new file mode 100644 index 0000000..e69de29 From bcbe876147f159a35f7751422f4d74cb946e79b6 Mon Sep 17 00:00:00 2001 From: zklowens <575940907@qq.com> Date: Tue, 18 Sep 2018 20:13:51 +0800 Subject: [PATCH 062/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6Mat?= =?UTF-8?q?hExam.java,=E5=AE=9E=E7=8E=B0=E5=9F=BA=E6=9C=AC=E7=9A=84?= =?UTF-8?q?=E4=B8=89=E5=B9=B4=E7=BA=A7=E5=87=BA=E9=A2=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211614269_211601233/MathExam.java | 103 ++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 2 deletions(-) diff --git a/Pair_211614269_211601233/MathExam.java b/Pair_211614269_211601233/MathExam.java index 695bebd..98d8adf 100644 --- a/Pair_211614269_211601233/MathExam.java +++ b/Pair_211614269_211601233/MathExam.java @@ -147,7 +147,9 @@ public static void mathOne(int n) { } public static void mathTwo(int n) { + // ŵĿ String prob; + // ŵĿ String prob1; String ans; ArrayList probs = new ArrayList(); @@ -232,8 +234,105 @@ public static void mathTwo(int n) { } public static void mathThr(int n) { - System.out.println("꼶"); - System.out.println(n + ""); + String sym; + + // ŵĿ + String prob; + // ŵĿ + String prob1; + String ans; + // ŵĿ,, + ArrayList pro = new ArrayList(); + // ȫĿ + ArrayList probs = new ArrayList(); + ArrayList anss = new ArrayList(); + for (int j = 0; j < n; j++) { + // ŵĸ2-4 + int p = (int) (2 + Math.random() * (4 - 2 + 1)); + prob1 = ""; + // ֵλӷλӦ(2*λ+1) + for (int i = 0; i < (2 * p) + 1; i++) { + // жֵλӦóֵλ + if (i % 2 == 0) { + int number = (int) (0 + Math.random() * (99 - 0 + 1)); + pro.add(String.valueOf(number)); + } // ʱӦ + else { + int x = (int) (1 + Math.random() * (4 - 1 + 1)); + if (x == 1) { + sym = "+"; + } else if (x == 2) { + sym = "-"; + } else if (x == 3) { + sym = "*"; + } else { + sym = "/"; + } + pro.add(sym); + } + } + // ֵĿתַ + for (String str : pro) { + prob1 += str; + } + pro.clear(); + probs.add(prob1); + } + + File file = new File("out.txt"); + if (!file.exists()) { + File parent = file.getParentFile(); + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("ļʧ,"); + } + } + try { + OutputStream out = new FileOutputStream(file); + byte[] data; + for (String str : probs) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + String fg = "" + "\r\n"; + data = fg.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + for (String str : anss) { + str += "\r\n"; + data = str.getBytes(); + try { + out.write(data); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("д!"); + } + } + try { + out.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + System.out.println("io"); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + System.out.println("Ҳļ,"); + } } public static void main(String[] args) { From d1415726bdc1223aa808d1e95f8c392b77bdca55 Mon Sep 17 00:00:00 2001 From: zklowens <575940907@qq.com> Date: Tue, 18 Sep 2018 20:34:46 +0800 Subject: [PATCH 063/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6Mat?= =?UTF-8?q?hExam.java:=E4=BF=AE=E6=94=B9=E4=BA=86=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F,=E4=BD=BF=E5=85=B6=E6=9B=B4=E7=AC=A6?= =?UTF-8?q?=E5=90=88=E8=BE=93=E5=87=BA=E8=A6=81=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211614269_211601233/MathExam.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Pair_211614269_211601233/MathExam.java b/Pair_211614269_211601233/MathExam.java index 98d8adf..e2a665f 100644 --- a/Pair_211614269_211601233/MathExam.java +++ b/Pair_211614269_211601233/MathExam.java @@ -249,7 +249,8 @@ public static void mathThr(int n) { for (int j = 0; j < n; j++) { // ŵĸ2-4 int p = (int) (2 + Math.random() * (4 - 2 + 1)); - prob1 = ""; + prob = "(" + (j+1)+ ")"; + prob1=""; // ֵλӷλӦ(2*λ+1) for (int i = 0; i < (2 * p) + 1; i++) { // жֵλӦóֵλ @@ -271,12 +272,20 @@ public static void mathThr(int n) { pro.add(sym); } } - // ֵĿתַ + // ֵĿתɲŵַ for (String str : pro) { - prob1 += str; + prob1+=str; + } + //ֵĿתɴŵַ + for (String str : pro) { + prob+=" "; + prob+=str; } pro.clear(); - probs.add(prob1); + // + ans = prob + " " + "=" + " " + Calculate.ans(prob1); + probs.add(prob); + anss.add(ans); } File file = new File("out.txt"); @@ -305,7 +314,7 @@ public static void mathThr(int n) { System.out.println("д!"); } } - String fg = "" + "\r\n"; + String fg ="\r\n"; data = fg.getBytes(); try { out.write(data); From 26609d68a4c62aa4981fcad18754b1b01d8c8629 Mon Sep 17 00:00:00 2001 From: weili1997 <42904019+weili1997@users.noreply.github.com> Date: Tue, 18 Sep 2018 20:53:32 +0800 Subject: [PATCH 064/135] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=BD=9C=E4=B8=9A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pair_211606391_211606380/Calculate.java | 57 +++++ .../Pair_211606391_211606380/Expression.java | 114 +++++++++ .../Pair_211606391_211606380/MathExam.java | 226 ++++++++++++++++++ .../Pair_211606391_211606380/Stack.java | 22 ++ 4 files changed, 419 insertions(+) create mode 100644 Pair_211606391_211606380/Pair_211606391_211606380/Calculate.java create mode 100644 Pair_211606391_211606380/Pair_211606391_211606380/Expression.java create mode 100644 Pair_211606391_211606380/Pair_211606391_211606380/MathExam.java create mode 100644 Pair_211606391_211606380/Pair_211606391_211606380/Stack.java diff --git a/Pair_211606391_211606380/Pair_211606391_211606380/Calculate.java b/Pair_211606391_211606380/Pair_211606391_211606380/Calculate.java new file mode 100644 index 0000000..dc43b3b --- /dev/null +++ b/Pair_211606391_211606380/Pair_211606391_211606380/Calculate.java @@ -0,0 +1,57 @@ +package com.java391; + +public class Calculate { + // жǷΪ + public static boolean isOperator(String operator) { + if (operator.equals("+") || operator.equals("-") + || operator.equals("*") || operator.equals("/") + || operator.equals("(") || operator.equals(")")) + return true; + else + return false; + } + // òŵȼ + public static int priority(String operator) { + if (operator.equals("+") || operator.equals("-")) + return 1; + else if (operator.equals("*") || operator.equals("/")) + return 2; + else + return 0; + } + // 2ֵ֮ļ + public static String twoResult(String operator, String a, String b) { + try { + String op = operator; + String rs = new String(); + double x = Double.parseDouble(b); + double y = Double.parseDouble(a); + boolean f = true; + + double z = 0.0; + if (op.equals("+")) + z = x + y; + else if (op.equals("-")) + z = x - y; + else if (op.equals("*")) + z = x * y; + else if (op.equals("/")) + { + if(y==0) { + y=1; + z=999999; + } + z = x / y; + if(z*y!=x) z=999999; + } + else + z = 999999; + if(z<0) z=999999; + if(z!=(int)z) z=999999; + return String.valueOf(z); + } catch (NumberFormatException e) { + System.out.println("input has something wrong!"); + return "Error"; + } + } +} diff --git a/Pair_211606391_211606380/Pair_211606391_211606380/Expression.java b/Pair_211606391_211606380/Pair_211606391_211606380/Expression.java new file mode 100644 index 0000000..2012440 --- /dev/null +++ b/Pair_211606391_211606380/Pair_211606391_211606380/Expression.java @@ -0,0 +1,114 @@ +package com.java391; + +import java.io.*; +import java.util.*; +public class Expression { + private ArrayList expression = new ArrayList();// 洢ʽ + + private ArrayList right = new ArrayList();// 洢ʽ + + private String expresult;// + + + public String getExpresult() { + return expresult; + } + + // Ϣ󣬽ֵArrayList + Expression(String input) { + StringTokenizer st = new StringTokenizer(input, "+-*/()", true); + while (st.hasMoreElements()) { + String s=st.nextToken(); + expression.add(s); + } + } + //ʽתΪʽ + private void toRight() { + Stack aStack = new Stack(); + String operator; + int position = 0; + while (true) { + if (Calculate.isOperator((String) expression.get(position))) { + if (aStack.top == -1 + || ((String) expression.get(position)).equals("(")) { + aStack.push(expression.get(position)); + } else { + if (((String) expression.get(position)).equals(")")) { + while(true){ + if (aStack.top != -1&&!((String) aStack.top()).equals("(")) { + operator = (String) aStack.pop(); + right.add(operator); + }else{ + if(aStack.top != -1) + aStack.pop(); + break; + } + } + } else { + while(true){ + if (aStack.top != -1&& Calculate.priority((String) expression + .get(position)) <= Calculate + .priority((String) aStack.top()) + ) { + operator = (String) aStack.pop(); + if (!operator.equals("(")) + right.add(operator); + }else{ + break; + } + + } + aStack.push(expression.get(position)); + } + } + } else + right.add(expression.get(position)); + position++; + if (position >= expression.size()) + break; + } + while (aStack.top != -1) { + operator = (String) aStack.pop(); + if(!operator.equals("(")) + right.add(operator); + } + } + + // ʽֵ + boolean getResult() { + + + this.toRight(); + + Stack aStack = new Stack(); + String op1, op2, is = null; + String temp=""; + Iterator it = right.iterator(); + while (it.hasNext()) { + is = (String) it.next(); + if (Calculate.isOperator(is)) { + op1 = (String) aStack.pop(); + op2 = (String) aStack.pop(); + temp = Calculate.twoResult(is, op1, op2); + double td = Double.parseDouble(temp.trim()); + if(td==999999.0){ + return false; + + } + aStack.push(temp); + } else + aStack.push(is); + } + expresult = (String) aStack.pop(); + + it = expression.iterator(); + while (it.hasNext()) { + String tempstr = (String) it.next(); + System.out.print(tempstr); + + } + System.out.println("=" + expresult); + return true; + + } +} diff --git a/Pair_211606391_211606380/Pair_211606391_211606380/MathExam.java b/Pair_211606391_211606380/Pair_211606391_211606380/MathExam.java new file mode 100644 index 0000000..057b58f --- /dev/null +++ b/Pair_211606391_211606380/Pair_211606391_211606380/MathExam.java @@ -0,0 +1,226 @@ +package com.java391; +import java.io.*; +import java.util.Random; +import java.util.Scanner; +import java.util.ArrayList; + +public class MathExam { + public static ArrayList ss = new ArrayList(); + + public static void main(String[] args) throws Exception { + String QT[] = new String[1000]; //ȫֱ + String AS[] = new String[1000]; + System.out.println("꼶"); + int []Grade=new int[args.length]; + System.out.println("д"); + int []count=new int [args.length]; + count[0]=Integer.parseInt(args[0]); + System.out.println(); + Grade[0]=Integer.parseInt(args[1]); + File file =new File("out.txt"); + FileOutputStream fops=null ; + + try { + fops = new FileOutputStream(file); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + PrintStream ps= new PrintStream(fops); + ps.println("211606391"); + boolean f = true; + if(Grade[0]==3 ){ + for (int i=0;i numlist = new ArrayList(); + ArrayList express = new ArrayList(); + // + for(int i=0;i<5;i++) + { + numlist.add(rand.nextInt(100)+1); + } + //System.out.print(numlist); + String[] operator=new String[]{"+","-","*","/"}; + int size=numlist.size(); + String[] num=new String[size]; + for(int i=0;i Date: Tue, 18 Sep 2018 20:55:16 +0800 Subject: [PATCH 065/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=BD=9C=E4=B8=9A2=EF=BC=88=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=89=8D=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606391_211606380/Calculate.java | 57 ++++++++++++ Pair_211606391_211606380/Expression.java | 114 +++++++++++++++++++++++ Pair_211606391_211606380/Stack.java | 22 +++++ 3 files changed, 193 insertions(+) create mode 100644 Pair_211606391_211606380/Calculate.java create mode 100644 Pair_211606391_211606380/Expression.java create mode 100644 Pair_211606391_211606380/Stack.java diff --git a/Pair_211606391_211606380/Calculate.java b/Pair_211606391_211606380/Calculate.java new file mode 100644 index 0000000..dc43b3b --- /dev/null +++ b/Pair_211606391_211606380/Calculate.java @@ -0,0 +1,57 @@ +package com.java391; + +public class Calculate { + // жǷΪ + public static boolean isOperator(String operator) { + if (operator.equals("+") || operator.equals("-") + || operator.equals("*") || operator.equals("/") + || operator.equals("(") || operator.equals(")")) + return true; + else + return false; + } + // òŵȼ + public static int priority(String operator) { + if (operator.equals("+") || operator.equals("-")) + return 1; + else if (operator.equals("*") || operator.equals("/")) + return 2; + else + return 0; + } + // 2ֵ֮ļ + public static String twoResult(String operator, String a, String b) { + try { + String op = operator; + String rs = new String(); + double x = Double.parseDouble(b); + double y = Double.parseDouble(a); + boolean f = true; + + double z = 0.0; + if (op.equals("+")) + z = x + y; + else if (op.equals("-")) + z = x - y; + else if (op.equals("*")) + z = x * y; + else if (op.equals("/")) + { + if(y==0) { + y=1; + z=999999; + } + z = x / y; + if(z*y!=x) z=999999; + } + else + z = 999999; + if(z<0) z=999999; + if(z!=(int)z) z=999999; + return String.valueOf(z); + } catch (NumberFormatException e) { + System.out.println("input has something wrong!"); + return "Error"; + } + } +} diff --git a/Pair_211606391_211606380/Expression.java b/Pair_211606391_211606380/Expression.java new file mode 100644 index 0000000..2012440 --- /dev/null +++ b/Pair_211606391_211606380/Expression.java @@ -0,0 +1,114 @@ +package com.java391; + +import java.io.*; +import java.util.*; +public class Expression { + private ArrayList expression = new ArrayList();// 洢ʽ + + private ArrayList right = new ArrayList();// 洢ʽ + + private String expresult;// + + + public String getExpresult() { + return expresult; + } + + // Ϣ󣬽ֵArrayList + Expression(String input) { + StringTokenizer st = new StringTokenizer(input, "+-*/()", true); + while (st.hasMoreElements()) { + String s=st.nextToken(); + expression.add(s); + } + } + //ʽתΪʽ + private void toRight() { + Stack aStack = new Stack(); + String operator; + int position = 0; + while (true) { + if (Calculate.isOperator((String) expression.get(position))) { + if (aStack.top == -1 + || ((String) expression.get(position)).equals("(")) { + aStack.push(expression.get(position)); + } else { + if (((String) expression.get(position)).equals(")")) { + while(true){ + if (aStack.top != -1&&!((String) aStack.top()).equals("(")) { + operator = (String) aStack.pop(); + right.add(operator); + }else{ + if(aStack.top != -1) + aStack.pop(); + break; + } + } + } else { + while(true){ + if (aStack.top != -1&& Calculate.priority((String) expression + .get(position)) <= Calculate + .priority((String) aStack.top()) + ) { + operator = (String) aStack.pop(); + if (!operator.equals("(")) + right.add(operator); + }else{ + break; + } + + } + aStack.push(expression.get(position)); + } + } + } else + right.add(expression.get(position)); + position++; + if (position >= expression.size()) + break; + } + while (aStack.top != -1) { + operator = (String) aStack.pop(); + if(!operator.equals("(")) + right.add(operator); + } + } + + // ʽֵ + boolean getResult() { + + + this.toRight(); + + Stack aStack = new Stack(); + String op1, op2, is = null; + String temp=""; + Iterator it = right.iterator(); + while (it.hasNext()) { + is = (String) it.next(); + if (Calculate.isOperator(is)) { + op1 = (String) aStack.pop(); + op2 = (String) aStack.pop(); + temp = Calculate.twoResult(is, op1, op2); + double td = Double.parseDouble(temp.trim()); + if(td==999999.0){ + return false; + + } + aStack.push(temp); + } else + aStack.push(is); + } + expresult = (String) aStack.pop(); + + it = expression.iterator(); + while (it.hasNext()) { + String tempstr = (String) it.next(); + System.out.print(tempstr); + + } + System.out.println("=" + expresult); + return true; + + } +} diff --git a/Pair_211606391_211606380/Stack.java b/Pair_211606391_211606380/Stack.java new file mode 100644 index 0000000..e8631d7 --- /dev/null +++ b/Pair_211606391_211606380/Stack.java @@ -0,0 +1,22 @@ +package com.java391; + +import java.util.*; +public class Stack { + private LinkedList list=new LinkedList(); + int top=-1; + public void push(Object value){ + top++; + list.addFirst(value); + } + public Object pop(){ + Object temp=list.getFirst(); + top--; + list.removeFirst(); + return temp; + + } + public Object top(){ + return list.getFirst(); + } + +} From 047b48ff4ebe887a07098fdf7029fbde0064f55d Mon Sep 17 00:00:00 2001 From: smilexzh <42776624+smilexzh@users.noreply.github.com> Date: Tue, 18 Sep 2018 20:58:26 +0800 Subject: [PATCH 066/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加关键代码注释 --- Pair_211606367_211606445/MathExam6445.java | 119 +++++++++++++++++++-- 1 file changed, 109 insertions(+), 10 deletions(-) diff --git a/Pair_211606367_211606445/MathExam6445.java b/Pair_211606367_211606445/MathExam6445.java index 35f3046..7b9b39c 100644 --- a/Pair_211606367_211606445/MathExam6445.java +++ b/Pair_211606367_211606445/MathExam6445.java @@ -9,21 +9,27 @@ import java.util.Scanner; import java.util.Stack; -public class MathExam6445{ +public class MathExam6445 { + public static int n, grade, N = 100; public static String[] operator = { " + ", " - ", " ", " " }; + /** + * + * @param args 꼶 + */ public static void main(String[] args) { - if (check(args)) { System.out.println("ͨ"); create(); + // ض try { System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("out.txt")), true)); } catch (FileNotFoundException e) { System.out.println("ضʧʧܣ"); e.printStackTrace(); } + if (args[0].equals("-n")) { work(); } else { @@ -32,36 +38,50 @@ public static void main(String[] args) { } } + /** + * ⺯ 꼶ɶӦĿӡĿ + */ public static void work() { + int num1, num2, answer, op; Random rand = new Random(); + // src:Ŀַ result:ַlineBreak:ַ String src = ""; String result = ""; String lineBreak = "\r\n"; + // ΪΪѭԱcontinue˳ outerLoop: for (int i = 1; i <= n; i++) { if (grade == 1) { num1 = rand.nextInt(101); num2 = rand.nextInt(101); + // һ꼶ֻмӼΪ01 op = rand.nextInt(2); + // if (op == 0 && num1 + num2 <= 100) { answer = num1 + num2; } else if (op == 1 && num1 - num2 > 0) { answer = num1 - num2; } else { + // ˳ѭi--һ i--; continue; } + // ĿӵĿַӵַ src += "(" + i + ") " + num1 + operator[op] + num2 + lineBreak; result += "(" + i + ") " + num1 + operator[op] + num2 + " = " + answer + lineBreak; } else if (grade == 2) { + // 꼶漰˳Ϊ03 op = rand.nextInt(4); if (op < 2) { + // ӼΪڵļӼ num1 = rand.nextInt(101); num2 = rand.nextInt(101); } else { + // ˳Ϊڳ˳ȡֵΧ010 num1 = rand.nextInt(11); num2 = rand.nextInt(11); } + // if (op == 0 && num1 + num2 <= 100) { answer = num1 + num2; } else if (op == 1 && num1 - num2 >= 0) { @@ -71,10 +91,13 @@ public static void work() { } else if (op == 3 && num2 != 0) { answer = num1 / num2; } else { + // ˳ѭi--һ i--; continue; } + // ĿӵĿַ src += "(" + i + ") " + num1 + operator[op] + num2 + lineBreak; + // ӵַУdzҪǷ if (op != 3) result += "(" + i + ") " + num1 + operator[op] + num2 + " = " + answer + lineBreak; else { @@ -85,15 +108,22 @@ public static void work() { result += "(" + i + ") " + num1 + operator[op] + num2 + " = " + answer + lineBreak; } } else { + // 꼶 num1 = rand.nextInt(101); + // answer洢洢һֵĵڶ answer = num1; + // isBracket01洢Ƿţ0ûţ1š int isBracket = rand.nextInt(2); if (isBracket == 0) { + // opNum24洢 int opNum = rand.nextInt(3) + 2; + // һַ洢һĿɣʼΪһ String str = num1 + ""; + // ΪΪڲѭԱcontinue˳ innerLoop: for (int j = 1; j <= opNum; j++) { op = rand.nextInt(4); num2 = rand.nextInt(101); + // Ŀɹ˳ѭj--͵ڶ if (op == 0) { if (num1 + num2 >= 1000) { j--; @@ -115,23 +145,32 @@ public static void work() { continue innerLoop; } } + // ĿȼⲽⲽǸ߳Сѧ꼶Χ˵ѭi-- String s = str + operator[op] + num2; num1 = Integer.parseInt(answer(s)); if (num1 < 0 || num1 > 10000) { i--; continue outerLoop; } + // ҲϣⲽӵĿ str += operator[op] + num2; answer = num2; } + // ɵĿӵĿַʹַ src += "(" + i + ") " + str + lineBreak; result += "(" + i + ") " + str + " = " + answer(str.substring(str.indexOf(')') + 1)) + lineBreak; } else { + // ĸŵrУ + // a op bop c a opb op c + // ԴŵλÿԷΪ ǰںλsite0ǰ1ں int site = rand.nextInt(2); if (site == 0) { + // һַ洢һĿɣʼΪ "("+һ String str = "( " + num1; + // ǰڵֻӼɣ˳û壨Ҽ㣩 op = rand.nextInt(2); num2 = rand.nextInt(101); + // ͬĿɹ˳ѭi--Ŀ if (op == 0) { if (num1 + num2 >= 1000) { i--; @@ -143,16 +182,19 @@ public static void work() { continue outerLoop; } } + // Ͼӵstr str += operator[op] + num2 + " )"; num1 = Integer.parseInt(answer(str)); - op = rand.nextInt(2)+2; - if(op==2) { - if(num1*num2>1000) { + // ߵΪ˳żû + op = rand.nextInt(2) + 2; + // ͬжǷĿɹ + if (op == 2) { + if (num1 * num2 > 1000) { i--; continue outerLoop; } } else { - if(num2==0 || num1%num2!=0) { + if (num2 == 0 || num1 % num2 != 0) { i--; continue outerLoop; } @@ -163,9 +205,11 @@ public static void work() { i--; continue outerLoop; } + // Ŀʹ𰸷ֱӵĿַʹַ src += "(" + i + ") " + str + lineBreak; result += "(" + i + ") " + str + " = " + answer(str) + lineBreak; } else { + // ں߼ǰ op = rand.nextInt(2); num2 = rand.nextInt(101); if (op == 0) { @@ -183,13 +227,13 @@ public static void work() { num2 = Integer.parseInt(answer(str)); op = rand.nextInt(2) + 2; num1 = rand.nextInt(101); - if(op==2) { - if(num1*num2>1000) { + if (op == 2) { + if (num1 * num2 > 1000) { i--; continue outerLoop; } } else { - if(num2==0 || num1%num2!=0) { + if (num2 == 0 || num1 % num2 != 0) { i--; continue outerLoop; } @@ -201,7 +245,7 @@ public static void work() { continue outerLoop; } src += "(" + i + ") " + str + lineBreak; - result += "(" + i + ") " + str + " = " + answer(str) + lineBreak; + result += "(" + i + ") " + str + " = " + answer(str) + lineBreak; } } } @@ -210,32 +254,48 @@ public static void work() { System.out.print(result); } + /** + * ⺯ + * ݸĿͨȳ㷨沨ʽ˼·ó + * @param src ǴĿַ + * @return ֵһַ + */ private static String answer(String src) { + // ջ洢ֺջͷջ Stack print = new Stack(); Stack operator = new Stack(); + // ȥĿеĿո String str = src.replace(" ", ""); + // һnumberַ洢֣Ὣֲ֣2323 String number = ""; + // ַstrӵջǷžͺͷջջԪرȽȼ for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (c >= '0' && c <= '9') { number += c + ""; + // 󣬽numberջջͬʱnumber if (i + 1 >= str.length()) { print.push(number); number = ""; } } else { + // number֣numberջջͬʱnumber if (!number.isEmpty()) { print.push(number); number = ""; } + // ǰţ1Żߣ2ջΪջߣ3ǰȼ>ջȼֱջ if (c == '(' || operator.isEmpty() || comparePriority(c + "", operator.peek()) == 1) { operator.push(c + ""); } else if (c == ')') { + // ǰΪţҪջֱһΪֹ String stackTop = operator.pop(); while (!stackTop.equals("(")) { + // ջʱͬʱ沨ʽļ㣬ȡջǰ int number1 = Integer.parseInt(print.pop()); int number2 = Integer.parseInt(print.pop()); int number3; + // ջķżónumber3 if (stackTop.equals("+")) { number3 = number2 + number1; } else if (stackTop.equals("-")) { @@ -245,14 +305,18 @@ private static String answer(String src) { } else { number3 = number2 / number1; } + // ջջ print.push(number3 + ""); stackTop = operator.pop(); } } else if (comparePriority(c + "", operator.peek()) != 1) { + // ǰȼ<=ջȼҪջֱǰȼ>ջȼΪֹ while (!operator.empty() && comparePriority(c + "", operator.peek()) < 1) { + // ͬջʱͬʱ沨ʽļ㣬ȡջǰ int number1 = Integer.parseInt(print.pop()); int number2 = Integer.parseInt(print.pop()); int number3; + // ջķżónumber3 String stackTop = operator.peek(); if (stackTop.equals("+")) { number3 = number2 + number1; @@ -263,14 +327,17 @@ private static String answer(String src) { } else { number3 = number2 / number1; } + // ջջ print.push(number3 + ""); stackTop = operator.pop(); } + // 󽫵ǰջջ operator.push(c + ""); } } } + // Ҫջеķγջͬʱ沨ʽ while (!operator.empty()) { String stackTop = operator.pop(); int number1 = Integer.parseInt(print.pop()); @@ -290,6 +357,14 @@ private static String answer(String src) { return print.peek(); } + /** + * Ƚȼ + * @param a ˲Ϊһ + * @param b ˲Ϊһ + * @return һȼڵڶȼ 1 + * һȼڵڶȼ 0 + * һȼСڵڶȼ -1 + */ private static int comparePriority(String a, String b) { if (a.equals(b)) { return 0; @@ -302,6 +377,11 @@ private static int comparePriority(String a, String b) { } } + /** + * ѯȼ + * @param op Ϊѯ + * @return ȼ + */ private static int Priority(String op) { if (op.equals("") || op.equals("")) { return 2; @@ -312,6 +392,11 @@ private static int Priority(String op) { } } + /** + * 麯 IJǷϱ׼ + * @param s ַ + * @return IJϱ׼true򷵻false + */ public static boolean check(String[] s) { if (checkFormat(s)) { if (s[0].equals("-n")) @@ -324,6 +409,12 @@ public static boolean check(String[] s) { } } + /** + * ݺ check麯ãڼ𵽼ݵá + * @param strN ˲ + * @param strGrade ˲Ϊ꼶 + * @return 꼶ϱ׼true򷵻false + */ private static boolean checkData(String strN, String strGrade) { if (!strN.matches("\\d*")) { if (strN.matches("-\\d*")) { @@ -354,6 +445,11 @@ private static boolean checkData(String strN, String strGrade) { return true; } + /** + * ʽ check麯ãڼ𵽼ʽá + * @param s Ϊַ + * @return ַĸʽϱ׼true򷵻false + */ private static boolean checkFormat(String[] s) { if ((s[0].matches("-n") && s[2].matches("-grade")) || (s[0].matches("-grade") && s[2].matches("-n"))) { return true; @@ -362,6 +458,9 @@ private static boolean checkFormat(String[] s) { } } + /** + * ļ + */ public static void create() { File file = new File("out.txt"); if (!file.exists()) { From 6e3bafe6e8c871c088b645e625773d55ca942c85 Mon Sep 17 00:00:00 2001 From: a957518496 <957518496@qq.com> Date: Tue, 18 Sep 2018 21:05:26 +0800 Subject: [PATCH 067/135] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606350_211606364/MathExam.java | 273 +++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 Pair_211606350_211606364/MathExam.java diff --git a/Pair_211606350_211606364/MathExam.java b/Pair_211606350_211606364/MathExam.java new file mode 100644 index 0000000..b918faa --- /dev/null +++ b/Pair_211606350_211606364/MathExam.java @@ -0,0 +1,273 @@ +package com.java350.lesson01; + + +import java.util.List; +import java.util.Random; +import java.util.Date; +import java.util.ArrayList; +import java.util.Scanner; +import java.util.Stack; +import java.util.StringTokenizer; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.PrintStream; +import java.text.SimpleDateFormat; + +public class MathExam { + ArrayList list = new ArrayList<>();// һڴ洢ԭʽʽ + // һڴת沨ʽReversePolishNotation̫ ԼдRPO ֪Ϲ淶 + ArrayList RPOlist = new ArrayList<>(); + + Stack stack1 = new Stack<>();// ڴַջ + Stack stack2 = new Stack<>();// ջ + + public static void main(String[] args) throws IOException { + // TODO Auto-generated method stub + int a; + int p = 1; + while(true) { + Scanner sc = new Scanner(System.in); + String inputString = sc.nextLine(); + String stringArray[] = inputString.split(" ");//ԿոΪָִ + if(stringArray.length>1) { //жһ뻹룬IJжǷϱ׼ + try { + a = Integer.parseInt(stringArray[0]); + p = Integer.parseInt(stringArray[1]); + } catch (NumberFormatException e) { //жǷֲ쳣 + System.out.println(""); + continue; + } + if(stringArray.length>2) {System.out.println("ݹ");continue;} //鳤 + if(Integer.parseInt(stringArray[0])<0) {System.out.println("Ŀ");continue;}//ĵһΪĿжǷ쳣 + if(Integer.parseInt(stringArray[1])!=1 && Integer.parseInt(stringArray[1])!=2 && Integer.parseInt(stringArray[1])!=3) {System.out.println("꼶");continue;}//ĵڶΪ꼶жǷ쳣 + a = Integer.parseInt(stringArray[0]); + p = Integer.parseInt(stringArray[1]); + break; + } + else {//ĬΪһ꼶ֻжǷ쳣 + try { + a = Integer.parseInt(stringArray[0]); + } catch (NumberFormatException e) { + System.out.println(""); + continue; + } + if(Integer.parseInt(stringArray[0])<0) {System.out.println("Ŀ");continue;} + a = Integer.parseInt(stringArray[0]); + p=1; + break; + } + } + + MathExam6350(a,p); + + } + static void MathExam6350(int a,int e) throws IOException { + List list = new ArrayList(); + PrintStream out = System.out; + PrintStream ps = new PrintStream("e:/output.txt"); + if(e==1) { + for(int i=1;i<=a;i++) { + int b =(int)(Math.random()*100); + int c =(int)(Math.random()*100); + int d; + int rd=Math.random()>0.5?1:0; + if(rd==1) { + System.setOut(ps); + System.out.println("("+i+")"+" "+b+" "+"+"+" "+c+" "+"="); + d=b+c;list.add("("+i+")"+" "+b+" "+"+"+" "+c+" "+"="+" "+d);} + if(rd==0) { + while(b-c<0) {b=(int)(Math.random()*100);} + System.setOut(ps); + System.out.println("("+i+")"+" "+b+" "+"-"+" "+c+" "+"="); + d=b-c;list.add("("+i+")"+" "+b+" "+"-"+" "+c+" "+"="+" "+d);} + } + System.setOut(ps); + System.out.println("-----------׼-----------"); + for (int i = 0; i < list.size(); i++) { + System.setOut(ps); + System.out.println( list.get(i)); + } +} + if(e==2) { + for(int i=1;i<=a;i++) { + int b =(int)(Math.random()*10); + int c =(int)(Math.random()*10); + int d; + int f; + int rd=Math.random()>0.5?1:0; + if(rd==1) { + System.setOut(ps); + System.out.println("("+i+")"+" "+b+" "+""+" "+c+" "+"="); + d=b*c;list.add("("+i+")"+" "+b+" "+""+" "+c+" "+"="+" "+d);} + if(rd==0) { + while(c==0) {c=(int)(Math.random()*10);} + System.setOut(ps); + System.out.println("("+i+")"+" "+b+" "+""+" "+c+" "+"="); + if(b%c==0) {d=b/c;list.add("("+i+")"+" "+b+" "+""+" "+c+" "+"="+" "+d);} + if(b%c!=0) {d=b/c;f=b%c;list.add("("+i+")"+" "+b+" "+""+" "+c+" "+"="+" "+d+"."+"."+"."+f);}} + } + System.setOut(ps); + System.out.println("-----------׼-----------"); + for (int i = 0; i < list.size(); i++) { + System.setOut(ps); + System.out.println( list.get(i)); + } + } + if(e==3) { + char[] operator=new char[]{'+','-','',''}; + Random random=new Random(); + ArrayList list1=new ArrayList(); + for(int i=1;i<=a;i++){ + int n=random.nextInt(2)+2; //2-4 + int[] number=new int[n+1]; + String bds=new String(); + for(int j=0;j<=n;j++){ + number[j]=random.nextInt(100)+1; //4-5 + } + for(int j=0;j Judge(str2); + } + + private int Judge(String str) { + switch(str) { + case "(" :return 3; + + case "" : + case "" :return 2; + + case "+" : + case "-" :return 1; + + case ")" :return 0; + + default:return -1; + } + } + + + + // һ沨ʽӽķ + public int count(String s1,String s2,String s3) { + int a = Integer.parseInt(s2); + int b = Integer.parseInt(s1); + switch(s3) { + case "+": + return a+b; + case "-": + return a-b; + case "": + return a*b; + case "": + return a/b; + default : + return 0; + } + } + + public int count() { + for (String str:RPOlist) { + if (str.matches("[0-9]+")) { + stack2.push(str); + }else { + stack2.push(String.valueOf(count(stack2.pop(),stack2.pop(),str))); + } + } + return Integer.parseInt(stack2.pop()); + } +} From 0e3bb3bd3db34c3d0b0a972defbb7eb237157308 Mon Sep 17 00:00:00 2001 From: zsyISO8859 <42647685+zsyISO8859@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:07:36 +0800 Subject: [PATCH 068/135] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=80=86=E6=B3=A2?= =?UTF-8?q?=E5=85=B0=E7=AE=97=E6=B3=95=E5=92=8C=E9=A2=98=E7=9B=AE=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 上2步是分开写了题目生成器、逆波兰表达式的java实现 此次更新将2个文件合并在一起,使得生成的题目可以传入逆波兰表达式来进行运算出结果 --- Pair_211606348_211606338/MathExam.java | 208 +++++++++++++++++-------- 1 file changed, 143 insertions(+), 65 deletions(-) diff --git a/Pair_211606348_211606338/MathExam.java b/Pair_211606348_211606338/MathExam.java index f26c039..9ab7b2c 100644 --- a/Pair_211606348_211606338/MathExam.java +++ b/Pair_211606348_211606338/MathExam.java @@ -1,21 +1,36 @@ -package com.it666.course1; - -import java.util.Arrays; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.HashMap; import java.util.Stack; public class MathExam { + public static void main(String[] args) throws Exception { - //ĸbug - if(!check(args))return; - int m = 0; + + //ж꼶 + if (args[0].equals("-grade") && args[1].equals("3") || args[2].equals("-grade") && args[3].equals("3")) { + StringBuffer strbuf2 = init3(args); + } else { + //4ij212꼶ij + String[] strArgs = new String[2]; + strArgs[0] = args[args[0].equals("-n") ? 1 : 3]; + strArgs[1] = args[args[0].equals("-grade") ? 1 : 3]; + // һɱַƴĿʹ + StringBuffer stringBuffer = new StringBuffer(); + // ʼȡĿʹ + init1_2(stringBuffer, strArgs); + } + } + + public static StringBuffer init3(String[] args) throws Exception { + int m = 1; int l = 1; String str = null; // 2ַƴĿʹ StringBuffer strbuf = new StringBuffer(); StringBuffer strbuf1 = new StringBuffer(); StringBuffer strbuf2 = new StringBuffer(); - StringBuffer strbuf3 = new StringBuffer(); // randomĿеIJ int random = 0; // int flag=5; @@ -23,8 +38,8 @@ public static void main(String[] args) throws Exception { String[] strop = { "+", "-", "x", "" }; // ɵ2-4ostr String[] ostr = new String[4]; - - for (int i = 0; i <= 100; i++) { + int w = Integer.valueOf(args[args[0].equals("-n") ? 1 : 3]); + for (int i = 0; i < w; i++) { // ɵ2-3 int operator = (int) (Math.random() * 3) + 2; int k = 0; @@ -64,8 +79,7 @@ public static void main(String[] args) throws Exception { flag1 = 1; } } - - } else { + } else { if (flag == 0 && flag1 == 1) { strbuf.append(random + " )" + " "); flag1 = 0; @@ -80,7 +94,6 @@ public static void main(String[] args) throws Exception { } if (j < operator) strbuf.append(ostr[j] + " "); - } l = 1; // ³ʼ @@ -96,9 +109,9 @@ public static void main(String[] args) throws Exception { if (matches) { // strbuf2ƴĿ - strbuf2.append("(" + m + ")" + " " + strbuf + "\n"); + strbuf2.append("(" + m + ")" + " " + strbuf + "\r\n"); // strbuf1ƴӴ - strbuf1.append("(" + m + ")" + " " + strbuf + " " + "=" + " " + (int) shuntYardAlgo + "\n"); + strbuf1.append("(" + m + ")" + " " + strbuf + " " + "=" + " " + (int) shuntYardAlgo + "\r\n"); m++; l = 0; } @@ -106,61 +119,130 @@ public static void main(String[] args) throws Exception { if (l != 0) i--; } - strbuf2.append("\n"); + strbuf2.append("\r\n"); strbuf2.append(strbuf1); - System.out.println(strbuf2.toString()); + return strbuf2; } + /* + * initĿʹ + */ + public static void init1_2(StringBuffer strbuf, String[] s) { - public static boolean check(String[] args) { - // жϲijǷΪ4 - if (args.length > 4 || args.length < 4) - return false; - - // жǷ-n -gradeıʶ - if (!(("-n").equals(args[0]) && "-grade".equals(args[2]) || ("-n").equals(args[2]) && "-grade".equals(args[0]))) - return false; - - // ų-n000001Ƶ - char[] allChar = args[1].toCharArray(); - char[] allChar1 = args[3].toCharArray(); - int k = 0; - while (allChar[k++] == '0'); - args[1] = new String(allChar, k - 1, allChar.length - k + 1); - k = 0; - while (allChar1[k++] == '0'); - args[3] = new String(allChar1, k - 1, allChar1.length - k + 1); - - // Ŀ - boolean matches; - if (args[0].equals("-n")) { - matches = args[1].matches("[0-9]*"); - } else { - matches = args[3].matches("[0-9]*"); - } - - boolean matches1; - // 꼶Ƿ1-3 - if (args[0].equals("-garde")) { - matches1 = args[1].matches("[1-3]?"); - } else { - matches1 = args[3].matches("[1-3]?"); - } - if (!matches1) - return false; - - if (matches && (args[1].length() > 4 || args[3].length() > 4)) { - System.out.println("Ŀ̫ˣ룡"); - return false; - } else { - System.out.println(""); - return false; + int result = 0; // ʾĿ + int remainder = 0; // ʾ + String operator = null; // ʾ + String[] mark_code = { "+", "-", "*", "/" }; // Сѧ1꼶2꼶е + StringBuffer strbuf1 = new StringBuffer(); // ڴ𰸵ƴ + // forѭƴĿʹ + for (int i = 1; i <= Integer.valueOf(s[0]); i++) { + // ж꼶 жϸ꼶Ӧ + if (s.length == 1) { + operator = mark_code[(int) (Math.random() * 2)]; + } else { + if (Integer.valueOf(s[1]) == 1) { + operator = mark_code[(int) (Math.random() * 2)]; + } else if (Integer.valueOf(s[1]) == 2) { + operator = mark_code[(int) (Math.random() * 4)]; + } else { + System.out.println("꼶󣡣"); + System.exit(0); + } + } + // Ŀ + String number = "(" + i + ")" + " "; + // 2 + int first = (int) (Math.random() * 100); + int second = (int) (Math.random() * 100); + // 꼶ָĿ + if (operator.equals("+")) { + if (s.length == 2 && s[1].equals("2")) { + // 꼶ļӷĿ𰸲100 + while (first + second > 100) { + first = (int) (Math.random() * 100); + second = (int) (Math.random() * 100); + } + } else { + while (first + second > 100) { + // 1꼶ļӷ + // 1. 𰸲100 + // 2. 2λ+λ + // 3. 2λ+10λ + if (first % 2 == 0) { + first = (int) (Math.random() * 100); + second = (int) (Math.random() * 100); + if (second > 10) + second = second / 10; + } else { + first = (int) (Math.random() * 100); + if (first > 10) + second = second / 10 * 10; + second = (int) (Math.random() * 100); + } + } + } + result = first + second; + } else if (operator.equals("-")) { + // ߵұߵ + if (first < second) { + int t; + t = first; + first = second; + second = t; + } + if (!(s.length == 2 && s[1].equals("2"))) { + // 2꼶ļ + // 1. 𰸲Ϊ + // 2. 2λ-λ + // 3. 2λ-10λ + if (second > 10) + second = second / 10 * 10; + result = first - second; + } else { + result = first - second; + } + } else if (operator.equals("*")) { + // Ƴ˷ֻ99˷ + while (first > 10 || second > 10) { + first = (int) (Math.random() * 10); + second = (int) (Math.random() * 10); + } + result = first * second; + } else { + // Ϊʱ Ϊ0 + while (second == 0) { + second = (int) (Math.random() * 100); + } + // ƳֻСڵ10 + while (second > 10) { + second /= 10; + } + if (first % second == 0) { + result = first / second; + } else { // Ʋ𰸺ʾ + if (first > second) { + result = (int) (first / second); + remainder = first - (int) (first / second) * second; + } else { + result = (int) (first / second); + remainder = second; + } + } + } + // ΪҪǷƴڴ𰸺 + if (operator.equals("/")) { + strbuf1.append(number + first + " " + operator + " " + second + " " + "=" + " " + result + "..." + + remainder + "\r\n"); + } else { + strbuf1.append(number + first + " " + operator + " " + second + " " + "=" + " " + result + "\r\n"); + } + strbuf.append(number + first + " " + operator + " " + second + "\r\n"); } - + // Ŀʹƴstrbufɱַ + strbuf = strbuf.append("\r\n" + strbuf1); } /* * ǵȳ㷨沨ʽʵ - * */ class Node { @@ -185,7 +267,6 @@ void Init() { mp.put('', 2); mp.put('^', 3); } - // 沨ʽļ double CalPoland(Node node[], int n) throws Exception { Stack s = new Stack<>(); @@ -220,16 +301,13 @@ void Init() { } return s.peek(); } - // ȳ㷨 double ShuntYardAlgo(char str[]) throws Exception { Stack oper = new Stack<>(); - // inNumǵǰǷ boolean inNum = true; // hasDotǷѾС boolean hasDot = true; - int p = 0; // ɨָλ int cnt = 0; // Żּ int sign = 1; // ʾ From 864875f644de57369dfe9a11a6127c5a65e101fc Mon Sep 17 00:00:00 2001 From: LinKai945 Date: Tue, 18 Sep 2018 21:07:59 +0800 Subject: [PATCH 069/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6Mat?= =?UTF-8?q?hExam.java:=E4=BF=9D=E8=AF=81=E4=B8=89=E5=B9=B4=E7=BA=A7?= =?UTF-8?q?=E7=9A=84=E9=99=A4=E6=B3=95=E8=BF=90=E7=AE=97=E6=97=B6=E4=B8=8D?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E4=BD=99=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211614269_211601233/MathExam.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Pair_211614269_211601233/MathExam.java b/Pair_211614269_211601233/MathExam.java index e2a665f..022cb94 100644 --- a/Pair_211614269_211601233/MathExam.java +++ b/Pair_211614269_211601233/MathExam.java @@ -262,14 +262,26 @@ public static void mathThr(int n) { int x = (int) (1 + Math.random() * (4 - 1 + 1)); if (x == 1) { sym = "+"; + pro.add(sym); } else if (x == 2) { sym = "-"; + pro.add(sym); } else if (x == 3) { sym = "*"; + pro.add(sym); } else { sym = "/"; + //ҵ + int bcs=Integer.parseInt(pro.get(pro.size()-1)); + pro.add(sym); + int cs=(int) (1 + Math.random() * (99 - 1 + 1)); + while(bcs%cs!=0) { + cs=(int) (1 + Math.random() * (99 - 1 + 1)); + } + pro.add(String.valueOf(cs)); + i++; } - pro.add(sym); + } } // ֵĿתɲŵַ From 64892aa6a583fd5275518de88e1c5ed6fb29d98e Mon Sep 17 00:00:00 2001 From: a957518496 <957518496@qq.com> Date: Tue, 18 Sep 2018 21:10:33 +0800 Subject: [PATCH 070/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606350_211606364/MathExam.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/Pair_211606350_211606364/MathExam.java b/Pair_211606350_211606364/MathExam.java index b918faa..b864b36 100644 --- a/Pair_211606350_211606364/MathExam.java +++ b/Pair_211606350_211606364/MathExam.java @@ -1,5 +1,3 @@ -package com.java350.lesson01; - import java.util.List; import java.util.Random; From 36c1dfa8fb770dcdbdde891054e48e293916fe92 Mon Sep 17 00:00:00 2001 From: a957518496 <957518496@qq.com> Date: Tue, 18 Sep 2018 21:13:13 +0800 Subject: [PATCH 071/135] =?UTF-8?q?211606364=E7=AC=AC1=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606350_211606364/MathExam.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Pair_211606350_211606364/MathExam.java b/Pair_211606350_211606364/MathExam.java index b864b36..e12d7d4 100644 --- a/Pair_211606350_211606364/MathExam.java +++ b/Pair_211606350_211606364/MathExam.java @@ -1,4 +1,5 @@ + import java.util.List; import java.util.Random; import java.util.Date; From 57d96e7eec8764c815648023bbeb4a4846a821d8 Mon Sep 17 00:00:00 2001 From: a957518496 <957518496@qq.com> Date: Tue, 18 Sep 2018 21:15:42 +0800 Subject: [PATCH 072/135] =?UTF-8?q?211606364=E7=AC=AC1=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606350_211606364/MathExam.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Pair_211606350_211606364/MathExam.java b/Pair_211606350_211606364/MathExam.java index e12d7d4..e19ea46 100644 --- a/Pair_211606350_211606364/MathExam.java +++ b/Pair_211606350_211606364/MathExam.java @@ -1,5 +1,7 @@ + + import java.util.List; import java.util.Random; import java.util.Date; From cda4df4b842d65fef31232ebcf29267bc4b926af Mon Sep 17 00:00:00 2001 From: Dnyqi <42905518+a704218021@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:20:57 +0800 Subject: [PATCH 073/135] MathExam6360(1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 此次修改了判断混合运算至少包含两个运算符。 在文本输入内容时,添加了序号。 获取当前时间,并将其输入在文本末尾处。 --- Pair_211606343_211606360/MathExam6360.java | 685 +++++++++++---------- 1 file changed, 353 insertions(+), 332 deletions(-) diff --git a/Pair_211606343_211606360/MathExam6360.java b/Pair_211606343_211606360/MathExam6360.java index 4e5c7bc..5350240 100644 --- a/Pair_211606343_211606360/MathExam6360.java +++ b/Pair_211606343_211606360/MathExam6360.java @@ -1,332 +1,353 @@ - - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; -import java.util.Stack; -import java.util.logging.Level; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class MathExam6360 { - - String QT[] = new String[1000]; //ȫֱ - String AS[] = new String[1000]; //ȫֱ - String SymB[] = {"+","-","",""}; - String NL ="\r\n"; //ȫֱ - byte[] question; //ȫֱ - byte[] newline = NL.getBytes(); //ȫֱ - byte[] answer; //ȫֱ - - - - private static int ADDITION=1; - private static int SUBTRACTION=1; - private static int MULTIPLICATION=2; - private static int DIVISION=2; - - public static int Level(String operation){ - int result; - switch (operation){ - case "+": - result=ADDITION; - break; - case "-": - result=SUBTRACTION; - break; - case "": - result=MULTIPLICATION; - break; - case "": - result=DIVISION; - break; - default: -// System.out.println("ڸ"); - result=0; - } - return result; - } - - - public MathExam6360(String args[]) { //캯 - // TODO Auto-generated constructor stub - int num[] = new int[5]; //num - num [1] = Integer.parseInt(args[1]); //תΪ - num [0] = Integer.parseInt(args[0]); - boolean B =judge(num[0],num[1]); //жϲĸʽԼСǷ - if(B==true) { - calculate(num[0], num[1]); //꼶ʽ - TxT(num[0]); //ıʽдı - } - else { - System.out.println("ûˡ"); - } - } - - - private void TxT(int count) { - File file = new File("out6343.txt"); //ı - if(!file.exists()) //жTXTǷ - { - try { - file.createNewFile(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - System.out.println("out6343.txt"); - } - try { - FileOutputStream fos = new FileOutputStream(file); - for(int i=0;i zx= toInfixExpression(QT[i]); - List rpn=parseSuffixExpression(zx); - AS[i]=QT[i]+"="+reckon(rpn); - i++; - - } - - } - - - public List parseSuffixExpression(List ls) { - Stack s1=new Stack(); - List LS = new ArrayList(); - for (String str : ls) { - if (str.matches("\\d+")) { - LS.add(str); - } - else { - while (s1.size() != 0 && Level(s1.peek()) >= Level(str)) { - LS.add(s1.pop()); - } - s1.push(str); - } - } - while (s1.size() != 0) { - LS.add(s1.pop()); - } - return LS; - } - - - public List toInfixExpression(String s) { - List ls = new ArrayList();//洢ʽ - int w = 0; - String str; - char c; - int sum=s.length(); - do { - if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { - ls.add("" + c); - if(w= 48 - && (c = s.charAt(w)) <= 57) { - str += c; - w++; - } - ls.add(str); - } - - } while (w < s.length()); - return ls; - } - - public int reckon(List ls) { - Stack s=new Stack(); - for (String str : ls) { - if (str.matches("\\d+")) { - s.push(str); - } else { - int b = Integer.parseInt(s.pop()); - int a = Integer.parseInt(s.pop()); - int result=0; - if (str.equals("+")) { - result = a + b; - } else if (str.equals("-")) { - result = a - b; - } else if (str.equals("")) { - result = a * b; - } else if (str.equals("")) { - result = a / b; - } - s.push("" + result); - } - } - return Integer.parseInt(s.pop()); - } - - public static void main(String args[]) { - new MathExam6360(args); - } - -} +//˴޸жϻٰšȡǰʱ䡣 + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Stack; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class MathExam6360 { + + String Date[] = new String[100]; + String QT[] = new String[1000]; //ȫֱ + String QT_1[] = new String[1000]; + String ORDER[] = new String[1000]; //ŵ顣 + String AS[] = new String[1000]; //ȫֱʹ + String SymB[] = {"+","-","",""}; + String NL ="\r\n"; //ȫֱ + byte[] question; //ȫֱ + byte[] newline = NL.getBytes(); //ȫֱ + byte[] answer; //ȫֱ + byte[] order; + byte[] date; + + + public static int Level(String operation){ + int result; + switch (operation){ + case "+": + result=1; + break; + case "-": + result=1; + break; + case "": + result=2; + break; + case "": + result=2; + break; + default: +// System.out.println("ڸ"); + result=0; + } + return result; + } + + + public MathExam6360(String args[]) { //캯 + // TODO Auto-generated constructor stub + int num[] = new int[5]; //num + num [1] = Integer.parseInt(args[1]); //תΪ + num [0] = Integer.parseInt(args[0]); + boolean B =judge(num[0],num[1]); //жϲĸʽԼСǷ + if(B==true) { + calculate(num[0], num[1]); //꼶ʽ + TxT(num[0]); //ıʽдı + } + else { + System.out.println("ûˡ"); + } + } + + + private void TxT(int count) { + + DateFormat dt = DateFormat.getDateTimeInstance(); //ȡǰʱ + Date[0] = dt.format(new Date()); + + + File file = new File("out6343.txt"); //ı + if(!file.exists()) //жTXTǷ + { + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println("out6343.txt"); + } + try { + FileOutputStream fos = new FileOutputStream(file); + for(int i=0;i zx= toInfixExpression(QT_1[i]); + List rpn=parseSuffixExpression(zx); + AS[i]=QT[i]+" = "+reckon(rpn); + i++; + + } + + } + + + public List parseSuffixExpression(List ls) { + Stack s1=new Stack(); + List LS = new ArrayList(); + for (String str : ls) { + if (str.matches("\\d+")) { + LS.add(str); + } + else { + while (s1.size() != 0 && Level(s1.peek()) >= Level(str)) { + LS.add(s1.pop()); + } + s1.push(str); + } + } + while (s1.size() != 0) { + LS.add(s1.pop()); + } + return LS; + } + + + public List toInfixExpression(String s) { + List ls = new ArrayList();//洢ʽ + int w = 0; + String str; + char c; + int sum=s.length(); + do { + if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { + ls.add("" + c); + w++; + + } else { + str = ""; + while (w < s.length() && (c = s.charAt(w)) >= 48 + && (c = s.charAt(w)) <= 57) { + str += c; + w++; + } + ls.add(str); + } + + } while (w < s.length()); + return ls; + } + + public int reckon(List ls) { + Stack s=new Stack(); + for (String str : ls) { + if (str.matches("\\d+")) { + s.push(str); + } else { + int b = Integer.parseInt(s.pop()); + int a = Integer.parseInt(s.pop()); + int result=0; + if (str.equals("+")) { + result = a + b; + } else if (str.equals("-")) { + result = a - b; + } else if (str.equals("")) { + result = a * b; + } else if (str.equals("")) { + result = a / b; + } + s.push("" + result); + } + } + return Integer.parseInt(s.pop()); + } + + public static void main(String args[]) { + new MathExam6360(args); + + } + +} \ No newline at end of file From e82d0ee979fa97d980bc4e4c9efc92ada34d3508 Mon Sep 17 00:00:00 2001 From: tt9250872 <42865280+tt9250872@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:40:38 +0800 Subject: [PATCH 074/135] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=AC=A1=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 给式子添加了括号判断, 并在逆波兰中加入判断左右括号的判断, 并将其压入栈中或者提取出栈,添加进线性表内。 --- MathExam6360.java | 404 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 404 insertions(+) create mode 100644 MathExam6360.java diff --git a/MathExam6360.java b/MathExam6360.java new file mode 100644 index 0000000..19afa4c --- /dev/null +++ b/MathExam6360.java @@ -0,0 +1,404 @@ +//ʽжϣ沨мжŵжϣѹջлȡջӽԱڡ + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Stack; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class MathExam6360 { + + String Date[] = new String[1000]; + String QT[] = new String[10000]; //ȫֱ + String QT_1[] = new String[10000]; + String ORDER[] = new String[10000]; //ŵ顣 + String AS[] = new String[10000]; //ȫֱʹ + String SymB[] = {"+","-","",""}; + String NL ="\r\n"; //ȫֱ + byte[] question; //ȫֱ + byte[] newline = NL.getBytes(); //ȫֱ + byte[] answer; //ȫֱ + byte[] order; + byte[] date; + + + public static int Level(String operation){ + int result; + switch (operation){ + case "+": + result=1; + break; + case "-": + result=1; + break; + case "": + result=2; + break; + case "": + result=2; + break; + default: +// System.out.println("ڸ"); + result=0; + } + return result; + } + + + public MathExam6360(String args[]) { //캯 + // TODO Auto-generated constructor stub + int num[] = new int[5]; //num + num [1] = Integer.parseInt(args[1]); //תΪ + num [0] = Integer.parseInt(args[0]); + boolean B =judge(num[0],num[1]); //жϲĸʽԼСǷ + if(B==true) { + calculate(num[0], num[1]); //꼶ʽ + TxT(num[0]); //ıʽдı + } + else { + System.out.println("ûˡ"); + } + } + + + private void TxT(int count) { + + DateFormat dt = DateFormat.getDateTimeInstance(); //ȡǰʱ + Date[0] = dt.format(new Date()); + + + File file = new File("out6343.txt"); //ı + if(!file.exists()) //жTXTǷ + { + try { + file.createNewFile(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println("out6343.txt"); + } + try { + FileOutputStream fos = new FileOutputStream(file); + for(int i=0;iLevel(SymB[symbol_2])) { + QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"; + QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "; + } + else { + QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c; + QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c; + } + + } + + else if(symbol_number == 3) { + if(symbol_1==symbol_2) + {continue;} + int d=(int)(Math.random()*1000); + int symbol_3=(int)(Math.random()*4); + if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { + QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"+SymB[symbol_3]+d; + QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "+SymB[symbol_3]+" "+d; + } + else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { + QT_1[i]=+a+SymB[symbol_1]+ b +SymB[symbol_2]+"("+c +SymB[symbol_3]+d+")"; + QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" ( " +c+" "+SymB[symbol_3]+" "+d+" ) "; + } + else { + QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+d; + QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c+" "+SymB[symbol_3]+" "+d; + } + + } + + + else if(symbol_number == 4) { + if(symbol_1==symbol_2) + {continue;} + int d=(int)(Math.random()*1000); + int e=(int)(Math.random()*1000); + int symbol_3=(int)(Math.random()*4); + int symbol_4=(int)(Math.random()*4); + if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { + QT_1[i]=a+SymB[symbol_1]+"("+b+SymB[symbol_2]+c+")"+SymB[symbol_3]+d+SymB[symbol_4]+e; + QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2]+" "+c+" ) "+SymB[symbol_3]+" "+d+" "+SymB[symbol_4]+" "+e; + } + else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { + QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+"("+c+SymB[symbol_3]+d+")"+SymB[symbol_4]+e; + QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" ( "+c+" "+SymB[symbol_3]+" "+d+" ) "+" "+SymB[symbol_4]+" "+e; + } + else if(Level(SymB[symbol_3])>Level(SymB[symbol_4])) { + QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+"("+d+SymB[symbol_4]+e+")"; + QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" "+c+" "+SymB[symbol_3]+" ( "+d+" "+SymB[symbol_4]+" "+e+" )"; + } + else { + QT_1[i]=a+SymB[symbol_1]+ b+SymB[symbol_2]+c+SymB[symbol_3]+d+SymB[symbol_4]+e; + QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" " +c+" "+SymB[symbol_3] +" "+d+" "+SymB[symbol_4]+" "+e; + } + } + else {continue;} + List zx= toInfixExpression(QT_1[i]); + List rpn=parseSuffixExpression(zx); + AS[i]=QT[i]+" = "+reckon(rpn); + if(reckon(rpn)<=0) + {continue;} + i++; + + } + + } + + + public List parseSuffixExpression(List ls) { + Stack s1=new Stack(); + List LS = new ArrayList(); + for (String str : ls) { + if (str.matches("\\d+")) { + LS.add(str); + } + else if(str.equals("(")) { + s1.push(str); + } + else if (str.equals(")")) { + while(!s1.peek().equals("(")) { + LS.add(s1.pop()); + } + s1.pop(); + } + else { + while (s1.size() != 0 && Level(s1.peek()) >= Level(str)) { + LS.add(s1.pop()); + } + s1.push(str); + } + } + while (s1.size() != 0) { + LS.add(s1.pop()); + } + return LS; + } + + + public List toInfixExpression(String s) { + List ls = new ArrayList();//洢ʽ + int w = 0; + String str; + char c; + + do { + if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { + ls.add("" + c); + w++; + + } else { + str = ""; + while (w < s.length() && (c = s.charAt(w)) >= 48 + && (c = s.charAt(w)) <= 57) { + str += c; + w++; + } + ls.add(str); + } + + } while (w < s.length()); + return ls; + } + + public int reckon(List ls) { + Stack s=new Stack(); + for (String str : ls) { + if (str.matches("\\d+")) { + s.push(str); + } else { + int b = Integer.parseInt(s.pop()); + int a = Integer.parseInt(s.pop()); + int result=0; + if (str.equals("+")) { + result = a + b; + } else if (str.equals("-")) { + result = a - b; + } else if (str.equals("")) { + result = a * b; + } else if (str.equals("")) { + result = a / b; + } + s.push("" + result); + } + } + return Integer.parseInt(s.pop()); + } + + public static void main(String args[]) { + new MathExam6360(args); + + } From 910c3d8707c4949f7b7a6a577c6e28fe832bd914 Mon Sep 17 00:00:00 2001 From: xuyting <42911091+xuyting@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:41:57 +0800 Subject: [PATCH 075/135] =?UTF-8?q?=E9=87=8D=E6=9E=84=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606348_211606338/MathExam.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Pair_211606348_211606338/MathExam.java b/Pair_211606348_211606338/MathExam.java index 9ab7b2c..aca502a 100644 --- a/Pair_211606348_211606338/MathExam.java +++ b/Pair_211606348_211606338/MathExam.java @@ -8,11 +8,11 @@ public class MathExam { public static void main(String[] args) throws Exception { - //ж꼶 + // ж꼶 if (args[0].equals("-grade") && args[1].equals("3") || args[2].equals("-grade") && args[3].equals("3")) { StringBuffer strbuf2 = init3(args); } else { - //4ij212꼶ij + // 4ij212꼶ij String[] strArgs = new String[2]; strArgs[0] = args[args[0].equals("-n") ? 1 : 3]; strArgs[1] = args[args[0].equals("-grade") ? 1 : 3]; @@ -79,7 +79,7 @@ public static StringBuffer init3(String[] args) throws Exception { flag1 = 1; } } - } else { + } else { if (flag == 0 && flag1 == 1) { strbuf.append(random + " )" + " "); flag1 = 0; @@ -123,6 +123,7 @@ public static StringBuffer init3(String[] args) throws Exception { strbuf2.append(strbuf1); return strbuf2; } + /* * initĿʹ */ @@ -267,6 +268,7 @@ void Init() { mp.put('', 2); mp.put('^', 3); } + // 沨ʽļ double CalPoland(Node node[], int n) throws Exception { Stack s = new Stack<>(); @@ -301,6 +303,7 @@ void Init() { } return s.peek(); } + // ȳ㷨 double ShuntYardAlgo(char str[]) throws Exception { Stack oper = new Stack<>(); @@ -391,4 +394,3 @@ void Init() { } return CalPoland(node, cnt); } -} From d3c07caaea39fca6be799bb475624ca24116a58f Mon Sep 17 00:00:00 2001 From: fire12138 <42904626+fire12138@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:42:06 +0800 Subject: [PATCH 076/135] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=8B=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加了括号 --- Pair_211606333_211606356/MathExam6356.java | 334 ++++++++++++--------- 1 file changed, 184 insertions(+), 150 deletions(-) diff --git a/Pair_211606333_211606356/MathExam6356.java b/Pair_211606333_211606356/MathExam6356.java index 89a47ab..af8a2c3 100644 --- a/Pair_211606333_211606356/MathExam6356.java +++ b/Pair_211606333_211606356/MathExam6356.java @@ -28,7 +28,7 @@ public static void main(String[] args) throws FileNotFoundException { private static void init(String[] input) throws FileNotFoundException { if (input.length == 0) { // Ĭϲ - n = 10; + n = 100; grade = 3; } else if (input.length == 4) { if (input[0].equals("-n") && input[2].equals("-grade")) { @@ -54,11 +54,11 @@ private static void init(String[] input) throws FileNotFoundException { } if (grade == 1) { gradeOne(); - } else if(grade==2) { + } else if (grade == 2) { gradeTwo(); - }else if (grade==3) { + } else if (grade == 3) { gradeThree(); - }else { + } else { System.out.println("Ŀǰֻ֧1-3꼶"); } File file = new File("out.txt"); @@ -70,51 +70,79 @@ private static void init(String[] input) throws FileNotFoundException { private static void gradeThree() { str = new String[n]; - AS=new String[n]; - for(int i=0;i zx=null; + List infixorder = null; for (int i = 0; i < str.length; i++) { - zx= toInfixExpression(str[i]); - List rpn=parseSuffixExpression(zx); - AS[i]=str[i]+"="+reckon(rpn); - } - - - + infixorder = toInfixExpression(str[i]);// ʽ + List suffix = parseSuffixExpression(infixorder);// + AS[i] = str[i] + "=" + answer(suffix); + } + } private static void gradeTwo() { @@ -144,17 +172,16 @@ public static void outPut() { } else { System.out.println("(" + (i + 1) + ") " + a[i] + "-" + b[i] + " ="); } - } else if(grade==2) { + } else if (grade == 2) { if (c[i] == 0) { System.out.println("(" + (i + 1) + ") " + a[i] + "*" + b[i] + " ="); } else { System.out.println("(" + (i + 1) + ") " + a[i] + "/" + b[i] + " ="); } - }else { - - System.out.println("(" + (i + 1) + ") " +str[i]); - - + } else { + + System.out.println("(" + (i + 1) + ") " + str[i]); + } } System.out.println("--------------׼----------------"); @@ -165,7 +192,7 @@ public static void outPut() { } else { System.out.println("(" + (i + 1) + ") " + a[i] + "-" + b[i] + " =" + " " + (a[i] - b[i])); } - } else if(grade==2){ + } else if (grade == 2) { if (c[i] == 0) { System.out.println("(" + (i + 1) + ") " + a[i] + "*" + b[i] + " =" + " " + (a[i] * b[i])); } else if (a[i] % b[i] == 0) { @@ -175,8 +202,8 @@ public static void outPut() { + (a[i] % b[i])); } - }else { - System.out.println("(" + (i + 1) + ") " +AS[i]); + } else { + System.out.println("(" + (i + 1) + ") " + AS[i]); } } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); @@ -212,104 +239,111 @@ public static void gradeOne() { } } - public static List parseSuffixExpression(List ls) { - Stack s1=new Stack(); - List LS = new ArrayList(); - for (String ssr : ls) { - if (ssr.matches("\\d+")) { - LS.add(ssr); - } - else {Operation a=new Operation(); - while (s1.size() != 0 && a.getValue(s1.peek()) >= a.getValue(ssr)) { - LS.add(s1.pop()); - } - s1.push(ssr); - } - } - while (s1.size() != 0) { - LS.add(s1.pop()); - } - return LS; - } - - - public static List toInfixExpression(String s) { - List ls = new ArrayList();//洢ʽ - int w = 0; - String str; - char c; - do { - if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { - ls.add("" + c); - w++; - } else { - str = ""; - while (w < s.length() && (c = s.charAt(w)) >= 48 - && (c = s.charAt(w)) <= 57) { - str += c; - w++; - } - ls.add(str); - } - } while (w < s.length()); - return ls; - } - - public static int reckon(List ls) { - Stack s=new Stack(); - for (String str : ls) { - if (str.matches("\\d+")) { - s.push(str); - } else { - int b = Integer.parseInt(s.pop()); - int a = Integer.parseInt(s.pop()); - int result=0; - if (str.equals("+")) { - result = a + b; - } else if (str.equals("-")) { - result = a - b; - } else if (str.equals("*")) { - result = a * b; - } else if (str.equals("/")) { - result = a / b; - } - s.push("" + result); - } - } - return Integer.parseInt(s.pop()); - } - public static class Operation { - private int ADDITION=1; - private int SUBTRACTION=1; - private int MULTIPLICATION=2; - private int DIVISION=2; - Operation() { - - } - + public static List parseSuffixExpression(List ls) { + Stack s1 = new Stack(); + List LS = new ArrayList(); + for (String ssr : ls) { + if (ssr.matches("\\d+")) { + LS.add(ssr); + } else if (ssr.equals("(")) { + s1.push(ssr); + } else if (ssr.equals(")")) { + while (!s1.peek().equals("(")) { + LS.add(s1.pop()); + } + s1.pop(); + } else { + Operation operation = new Operation(); + while (s1.size() != 0 && operation.getValue(s1.peek()) >= operation.getValue(ssr)) { + LS.add(s1.pop()); + } + s1.push(ssr); + } + } + while (s1.size() != 0) { + LS.add(s1.pop()); + } + return LS; + } + + public static List toInfixExpression(String s) { + List infixorder = new ArrayList();// 洢ʽ + int w = 0; + String ssr; + char c; + do { + if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { + infixorder.add("" + c); + w++; + } else { + ssr = ""; + while (w < s.length() && (c = s.charAt(w)) >= 48 && (c = s.charAt(w)) <= 57) { + ssr += c; + w++; + } + infixorder.add(ssr); + } + + } while (w < s.length()); + return infixorder; + } + + public static int answer(List last) { + Stack s = new Stack(); + for (String ssr : last) { + if (ssr.matches("\\d+")) { + s.push(ssr); + } else { + int b = Integer.parseInt(s.pop()); + int a = Integer.parseInt(s.pop()); + int result = 0; + if (ssr.equals("+")) { + result = a + b; + } else if (ssr.equals("-")) { + result = a - b; + } else if (ssr.equals("")) { + result = a * b; + } else if (ssr.equals("")) { + result = a / b; + } + s.push("" + result); + } + } + return Integer.parseInt(s.pop()); + } + + public static class Operation {// ȼ + private int ADDITION = 1; + private int SUBTRACTION = 1; + private int MULTIPLICATION = 2; + private int DIVISION = 2; + + Operation() { - public int getValue(String operation){ - int result; - switch (operation){ - case "+": - result=ADDITION; - break; - case "-": - result=SUBTRACTION; - break; - case "": - result=MULTIPLICATION; - break; - case "": - result=DIVISION; - break; - default: -// System.out.println("ڸ"); - result=0; - } - return result; - } } + public int getValue(String operation) { + int result; + switch (operation) { + case "+": + result = ADDITION; + break; + case "-": + result = SUBTRACTION; + break; + case "": + result = MULTIPLICATION; + break; + case "": + result = DIVISION; + break; + default: + // System.out.println("ڸ"); + result = 0; + } + return result; + } + } + } From 1a84e582f6e89a3f6b001202425ba99b5eedd7e6 Mon Sep 17 00:00:00 2001 From: xuyting <42911091+xuyting@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:45:30 +0800 Subject: [PATCH 077/135] =?UTF-8?q?=E5=A2=9E=E5=8A=A0check=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 方法用于检测各种输入参数的错误 --- Pair_211606348_211606338/MathExam.java | 66 ++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/Pair_211606348_211606338/MathExam.java b/Pair_211606348_211606338/MathExam.java index aca502a..55c7121 100644 --- a/Pair_211606348_211606338/MathExam.java +++ b/Pair_211606348_211606338/MathExam.java @@ -7,12 +7,13 @@ public class MathExam { public static void main(String[] args) throws Exception { - - // ж꼶 - if (args[0].equals("-grade") && args[1].equals("3") || args[2].equals("-grade") && args[3].equals("3")) { + // ĸbug + if (!check(args))return; + //ж꼶 + else if (args[0].equals("-grade") && args[1].equals("3") || args[2].equals("-grade") && args[3].equals("3")) { StringBuffer strbuf2 = init3(args); } else { - // 4ij212꼶ij + //4ij212꼶ij String[] strArgs = new String[2]; strArgs[0] = args[args[0].equals("-n") ? 1 : 3]; strArgs[1] = args[args[0].equals("-grade") ? 1 : 3]; @@ -79,7 +80,7 @@ public static StringBuffer init3(String[] args) throws Exception { flag1 = 1; } } - } else { + } else { if (flag == 0 && flag1 == 1) { strbuf.append(random + " )" + " "); flag1 = 0; @@ -123,7 +124,6 @@ public static StringBuffer init3(String[] args) throws Exception { strbuf2.append(strbuf1); return strbuf2; } - /* * initĿʹ */ @@ -242,6 +242,57 @@ public static void init1_2(StringBuffer strbuf, String[] s) { strbuf = strbuf.append("\r\n" + strbuf1); } + public static boolean check(String[] args) { + // жϲijǷΪ4 + if (args.length > 4 || args.length < 4) { + System.out.println("󣡣"); + return false; + } + // жǷ-n -gradeıʶ + if (!(("-n").equals(args[0]) && "-grade".equals(args[2]) + || ("-n").equals(args[2]) && "-grade".equals(args[0]))) { + System.out.println("ʶ󣡣"); + return false; + } + // ų-n000001Ƶ + char[] allChar = args[1].toCharArray(); + char[] allChar1 = args[3].toCharArray(); + int k = 0; + while (allChar[k++] == '0'); + args[1] = new String(allChar, k - 1, allChar.length - k + 1); + k = 0; + while (allChar1[k++] == '0'); + args[3] = new String(allChar1, k - 1, allChar1.length - k + 1); + // Ŀ + boolean matches; + if (args[0].equals("-n")) { + matches = args[1].matches("[0-9]*"); + } else { + matches = args[3].matches("[0-9]*"); + } + + boolean matches1; + // 꼶Ƿ1-3 + if (args[0].equals("-garde")) { + matches1 = args[1].matches("[1-3]?"); + } else { + matches1 = args[3].matches("[1-3]?"); + } + if (!matches1) { + System.out.println("꼶ֻ[1~3]"); + return false; + } + + //жĿǷΪ + if (matches && (args[1].length() > 4 || args[3].length() > 4)) { + System.out.println("Ŀ̫ˣ룡"); + return false; + } else if (!matches) { + System.out.println(""); + return false; + } + return true; + } /* * ǵȳ㷨沨ʽʵ */ @@ -268,7 +319,6 @@ void Init() { mp.put('', 2); mp.put('^', 3); } - // 沨ʽļ double CalPoland(Node node[], int n) throws Exception { Stack s = new Stack<>(); @@ -303,7 +353,6 @@ void Init() { } return s.peek(); } - // ȳ㷨 double ShuntYardAlgo(char str[]) throws Exception { Stack oper = new Stack<>(); @@ -394,3 +443,4 @@ void Init() { } return CalPoland(node, cnt); } +} From dc69fe8b472239dfa4d9ae375c99bf5d713bdd4e Mon Sep 17 00:00:00 2001 From: tt9250872 <42865280+tt9250872@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:45:46 +0800 Subject: [PATCH 078/135] Delete MathExam6360.java --- MathExam6360.java | 404 ---------------------------------------------- 1 file changed, 404 deletions(-) delete mode 100644 MathExam6360.java diff --git a/MathExam6360.java b/MathExam6360.java deleted file mode 100644 index 19afa4c..0000000 --- a/MathExam6360.java +++ /dev/null @@ -1,404 +0,0 @@ -//ʽжϣ沨мжŵжϣѹջлȡջӽԱڡ - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Stack; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class MathExam6360 { - - String Date[] = new String[1000]; - String QT[] = new String[10000]; //ȫֱ - String QT_1[] = new String[10000]; - String ORDER[] = new String[10000]; //ŵ顣 - String AS[] = new String[10000]; //ȫֱʹ - String SymB[] = {"+","-","",""}; - String NL ="\r\n"; //ȫֱ - byte[] question; //ȫֱ - byte[] newline = NL.getBytes(); //ȫֱ - byte[] answer; //ȫֱ - byte[] order; - byte[] date; - - - public static int Level(String operation){ - int result; - switch (operation){ - case "+": - result=1; - break; - case "-": - result=1; - break; - case "": - result=2; - break; - case "": - result=2; - break; - default: -// System.out.println("ڸ"); - result=0; - } - return result; - } - - - public MathExam6360(String args[]) { //캯 - // TODO Auto-generated constructor stub - int num[] = new int[5]; //num - num [1] = Integer.parseInt(args[1]); //תΪ - num [0] = Integer.parseInt(args[0]); - boolean B =judge(num[0],num[1]); //жϲĸʽԼСǷ - if(B==true) { - calculate(num[0], num[1]); //꼶ʽ - TxT(num[0]); //ıʽдı - } - else { - System.out.println("ûˡ"); - } - } - - - private void TxT(int count) { - - DateFormat dt = DateFormat.getDateTimeInstance(); //ȡǰʱ - Date[0] = dt.format(new Date()); - - - File file = new File("out6343.txt"); //ı - if(!file.exists()) //жTXTǷ - { - try { - file.createNewFile(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - System.out.println("out6343.txt"); - } - try { - FileOutputStream fos = new FileOutputStream(file); - for(int i=0;iLevel(SymB[symbol_2])) { - QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"; - QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "; - } - else { - QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c; - } - - } - - else if(symbol_number == 3) { - if(symbol_1==symbol_2) - {continue;} - int d=(int)(Math.random()*1000); - int symbol_3=(int)(Math.random()*4); - if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { - QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"+SymB[symbol_3]+d; - QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "+SymB[symbol_3]+" "+d; - } - else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { - QT_1[i]=+a+SymB[symbol_1]+ b +SymB[symbol_2]+"("+c +SymB[symbol_3]+d+")"; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" ( " +c+" "+SymB[symbol_3]+" "+d+" ) "; - } - else { - QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+d; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c+" "+SymB[symbol_3]+" "+d; - } - - } - - - else if(symbol_number == 4) { - if(symbol_1==symbol_2) - {continue;} - int d=(int)(Math.random()*1000); - int e=(int)(Math.random()*1000); - int symbol_3=(int)(Math.random()*4); - int symbol_4=(int)(Math.random()*4); - if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { - QT_1[i]=a+SymB[symbol_1]+"("+b+SymB[symbol_2]+c+")"+SymB[symbol_3]+d+SymB[symbol_4]+e; - QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2]+" "+c+" ) "+SymB[symbol_3]+" "+d+" "+SymB[symbol_4]+" "+e; - } - else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { - QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+"("+c+SymB[symbol_3]+d+")"+SymB[symbol_4]+e; - QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" ( "+c+" "+SymB[symbol_3]+" "+d+" ) "+" "+SymB[symbol_4]+" "+e; - } - else if(Level(SymB[symbol_3])>Level(SymB[symbol_4])) { - QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+"("+d+SymB[symbol_4]+e+")"; - QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" "+c+" "+SymB[symbol_3]+" ( "+d+" "+SymB[symbol_4]+" "+e+" )"; - } - else { - QT_1[i]=a+SymB[symbol_1]+ b+SymB[symbol_2]+c+SymB[symbol_3]+d+SymB[symbol_4]+e; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" " +c+" "+SymB[symbol_3] +" "+d+" "+SymB[symbol_4]+" "+e; - } - } - else {continue;} - List zx= toInfixExpression(QT_1[i]); - List rpn=parseSuffixExpression(zx); - AS[i]=QT[i]+" = "+reckon(rpn); - if(reckon(rpn)<=0) - {continue;} - i++; - - } - - } - - - public List parseSuffixExpression(List ls) { - Stack s1=new Stack(); - List LS = new ArrayList(); - for (String str : ls) { - if (str.matches("\\d+")) { - LS.add(str); - } - else if(str.equals("(")) { - s1.push(str); - } - else if (str.equals(")")) { - while(!s1.peek().equals("(")) { - LS.add(s1.pop()); - } - s1.pop(); - } - else { - while (s1.size() != 0 && Level(s1.peek()) >= Level(str)) { - LS.add(s1.pop()); - } - s1.push(str); - } - } - while (s1.size() != 0) { - LS.add(s1.pop()); - } - return LS; - } - - - public List toInfixExpression(String s) { - List ls = new ArrayList();//洢ʽ - int w = 0; - String str; - char c; - - do { - if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { - ls.add("" + c); - w++; - - } else { - str = ""; - while (w < s.length() && (c = s.charAt(w)) >= 48 - && (c = s.charAt(w)) <= 57) { - str += c; - w++; - } - ls.add(str); - } - - } while (w < s.length()); - return ls; - } - - public int reckon(List ls) { - Stack s=new Stack(); - for (String str : ls) { - if (str.matches("\\d+")) { - s.push(str); - } else { - int b = Integer.parseInt(s.pop()); - int a = Integer.parseInt(s.pop()); - int result=0; - if (str.equals("+")) { - result = a + b; - } else if (str.equals("-")) { - result = a - b; - } else if (str.equals("")) { - result = a * b; - } else if (str.equals("")) { - result = a / b; - } - s.push("" + result); - } - } - return Integer.parseInt(s.pop()); - } - - public static void main(String args[]) { - new MathExam6360(args); - - } From f04299506dd5210431bf68800c5f6840f2c50a73 Mon Sep 17 00:00:00 2001 From: tt9250872 <42865280+tt9250872@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:49:54 +0800 Subject: [PATCH 079/135] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=AC=A1=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 给式子添加了括号判断, 并在逆波兰中加入判断左右括号的判断, 并将其压入栈中或者提取出栈,添加进线性表内。 --- Pair_211606343_211606360/MathExam6360.java | 87 +++++++++++++++++----- 1 file changed, 69 insertions(+), 18 deletions(-) diff --git a/Pair_211606343_211606360/MathExam6360.java b/Pair_211606343_211606360/MathExam6360.java index 5350240..19afa4c 100644 --- a/Pair_211606343_211606360/MathExam6360.java +++ b/Pair_211606343_211606360/MathExam6360.java @@ -1,4 +1,4 @@ -//˴޸жϻٰšȡǰʱ䡣 +//ʽжϣ沨мжŵжϣѹջлȡջӽԱڡ import java.io.File; import java.io.FileNotFoundException; @@ -15,11 +15,11 @@ public class MathExam6360 { - String Date[] = new String[100]; - String QT[] = new String[1000]; //ȫֱ - String QT_1[] = new String[1000]; - String ORDER[] = new String[1000]; //ŵ顣 - String AS[] = new String[1000]; //ȫֱʹ + String Date[] = new String[1000]; + String QT[] = new String[10000]; //ȫֱ + String QT_1[] = new String[10000]; + String ORDER[] = new String[10000]; //ŵ顣 + String AS[] = new String[10000]; //ȫֱʹ String SymB[] = {"+","-","",""}; String NL ="\r\n"; //ȫֱ byte[] question; //ȫֱ @@ -228,20 +228,29 @@ private void calculate_3(int count) { int i=0; while(iLevel(SymB[symbol_2])) { + QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"; + QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "; + } + else { + QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c; + QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c; + } - QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+c; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" " +c; } else if(symbol_number == 3) { @@ -249,8 +258,23 @@ else if(symbol_number == 3) { {continue;} int d=(int)(Math.random()*1000); int symbol_3=(int)(Math.random()*4); - QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+d; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" " +c+" "+SymB[symbol_3] +" "+d; + if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { + QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"+SymB[symbol_3]+d; + QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "+SymB[symbol_3]+" "+d; + } + else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { + QT_1[i]=+a+SymB[symbol_1]+ b +SymB[symbol_2]+"("+c +SymB[symbol_3]+d+")"; + QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" ( " +c+" "+SymB[symbol_3]+" "+d+" ) "; + } + else { + QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+d; + QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c+" "+SymB[symbol_3]+" "+d; + } + } @@ -261,13 +285,33 @@ else if(symbol_number == 4) { int e=(int)(Math.random()*1000); int symbol_3=(int)(Math.random()*4); int symbol_4=(int)(Math.random()*4); + if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { + QT_1[i]=a+SymB[symbol_1]+"("+b+SymB[symbol_2]+c+")"+SymB[symbol_3]+d+SymB[symbol_4]+e; + QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2]+" "+c+" ) "+SymB[symbol_3]+" "+d+" "+SymB[symbol_4]+" "+e; + } + else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { + QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+"("+c+SymB[symbol_3]+d+")"+SymB[symbol_4]+e; + QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" ( "+c+" "+SymB[symbol_3]+" "+d+" ) "+" "+SymB[symbol_4]+" "+e; + } + else if(Level(SymB[symbol_3])>Level(SymB[symbol_4])) { + QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+"("+d+SymB[symbol_4]+e+")"; + QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" "+c+" "+SymB[symbol_3]+" ( "+d+" "+SymB[symbol_4]+" "+e+" )"; + } + else { QT_1[i]=a+SymB[symbol_1]+ b+SymB[symbol_2]+c+SymB[symbol_3]+d+SymB[symbol_4]+e; QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" " +c+" "+SymB[symbol_3] +" "+d+" "+SymB[symbol_4]+" "+e; - } + } + } else {continue;} List zx= toInfixExpression(QT_1[i]); List rpn=parseSuffixExpression(zx); AS[i]=QT[i]+" = "+reckon(rpn); + if(reckon(rpn)<=0) + {continue;} i++; } @@ -282,6 +326,15 @@ public List parseSuffixExpression(List ls) { if (str.matches("\\d+")) { LS.add(str); } + else if(str.equals("(")) { + s1.push(str); + } + else if (str.equals(")")) { + while(!s1.peek().equals("(")) { + LS.add(s1.pop()); + } + s1.pop(); + } else { while (s1.size() != 0 && Level(s1.peek()) >= Level(str)) { LS.add(s1.pop()); @@ -301,7 +354,7 @@ public List toInfixExpression(String s) { int w = 0; String str; char c; - int sum=s.length(); + do { if ((c = s.charAt(w)) < 48 || (c = s.charAt(w)) > 57) { ls.add("" + c); @@ -349,5 +402,3 @@ public static void main(String args[]) { new MathExam6360(args); } - -} \ No newline at end of file From 8943541cf75787e349dd684e6712fa521b42484f Mon Sep 17 00:00:00 2001 From: Wuyiz <42826957+Wuyiz@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:51:29 +0800 Subject: [PATCH 080/135] MathExam_V2.0.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /* * 在原有的V2.0.0版本上加入三年级四则混合运算题 * 1.实现了调度场和逆波兰算法; * 2. 实现了生成三年级四则混合运算的题目 * 3.实现了三年级题目和答案的写入【还没加序号】 * ps:还未解决除数为0和差值为负数的bug, * coding : GBK * MathExam_V2.0.6 */ --- Pair_211606335_211606318/MathExam.java | 180 +++++++++++++++++++++++-- 1 file changed, 167 insertions(+), 13 deletions(-) diff --git a/Pair_211606335_211606318/MathExam.java b/Pair_211606335_211606318/MathExam.java index 272413c..b2215ec 100644 --- a/Pair_211606335_211606318/MathExam.java +++ b/Pair_211606335_211606318/MathExam.java @@ -11,34 +11,48 @@ import java.text.SimpleDateFormat; import java.util.Random; import java.util.Scanner; +import java.util.Stack; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.omg.CORBA.PUBLIC_MEMBER; + public class MathExam { /* * ԭеV2.0.0汾ϼ꼶 - * 1.ɾԭеĹ캯Լ캯أ - * 2.input˶´"-n""-grade"ƥжϣ - * 3.޸Ķ꼶ĿɣֻԳ˳ѵӼ㡣 + * 1.ʵ˵ȳ沨㷨 + * 2. ʵ꼶Ŀ + * 3.ʵ꼶Ŀʹ𰸵д롾ûš + * psδΪ0ͲֵΪbug * coding GBK - * MathExam_V2.0.1 + * MathExam_V2.0.6 */ int firstNumber, secondNumber; int symbol; //ж static int grade; static int count; int result; + String operator_Add; + + //ȳ沨 + Stack operators = new Stack(); //洢 + Stack operand= new Stack(); //洢 + private static StringBuilder postfixExpression=new StringBuilder(); //չʾʽ + Stack postfixNumber = new Stack(); //׺ʽʱ洢 String[] str_ArithmeticProblem = new String[10000]; // String[] str_MathAnswer = new String[10000]; //Ŀͱ׼ - public MathExam(String args0,String args1, String args2, String args3){ - inPut(args0, args1,args2,args3); + public MathExam(String[] args){ + inPut(args[0], args[1],args[2],args[3]); mathProblem(count); outPut(); + } + + private void inPut(String str0,String str1, String str2, String str3) { // TODO Auto-generated method stub boolean flag1 = true; //жĿ꼶 @@ -46,7 +60,7 @@ private void inPut(String str0,String str1, String str2, String str3) { Scanner in = new Scanner(System.in); String regex1 = "0*[1-9]{1}\\d{0,3}"; //ʽжΪ - String regex2 = "0*[1-2]{1}{0}"; + String regex2 = "0*[1-3]{1}{0}"; Pattern pattern1 = Pattern.compile(regex1); //ʽı Pattern pattern2 = Pattern.compile(regex2); Matcher matcher1,matcher2; //жϲʽIJ @@ -129,8 +143,113 @@ private void outPut() { } catch (IOException e) { // TODO Auto-generated catch block System.out.println("ļд!"); - } - + } + } + + //жǷ + private static boolean isOperator(String operator){ + if (operator.equals("+")||operator.equals("-")||operator.equals("")||operator.equals("") + ||operator.equals("(")||operator.equals(")")) { + return true; + } + return false; + } + + //ȼ + private static int priority(String s){ + if (s.equals("+") || s.equals("-")) { + return 1; + } else if (s.equals("") || s.equals("")) { + return 2; + } else if(s.equals("(") || s.equals(")")){ + return 3; + } else{ + return 0; + } + } + + //һ + private static int Calculation(int n,int m,String operator){ + int result = -4567; + if (operator.equals("+")) { + result = n + m; + } else if (operator.equals("-")) { + result = n - m; + } else if (operator.equals("")) { + result = n * m; + } else if (operator.equals("")) { + result = n / m; + } + return result; + } + + + //ȳ㷨[׺ʽת׺ʽ] + private void toPostfixExpression(String str_mix){ + int len = str_mix.length(); + char c; + String sc; + for (int i = 0 ; i <= len-1 ; i++) { + c = str_mix.charAt(i); + sc = String.valueOf(c); + if(isOperator(sc)) //жǷDz + { + if(operators.isEmpty()){ //жΪջջ + operators.push(sc); + } else { + if(priority(operators.peek()) < priority(sc) && !sc.equals(")")){ + //ջȼСڵǰȼҲΪţջ + operators.push(sc); + } else if(priority(operators.peek()) >= priority(sc) && !sc.equals(")")){ + while(!operators.empty() && !operators.peek().equals("(") //ջΪգǰջΪ + && priority(operators.peek()) >= priority(sc)){ //ȼСڵڵǰջȼ + do { + operator_Add = operators.pop(); + postfixExpression.append(operator_Add); + operand.push(operator_Add); + } while (false); } // ջʱֹͣѹջ + operators.push(sc); //ֱջ + } else if(sc.equals(")")){ //ǰɨ赽IJΪ(ջ)ѹջƥ + do { + operator_Add = operators.pop(); + postfixExpression.append(operator_Add); + operand.push(operator_Add); + } while (!operators.peek().equals("(")); + operators.pop(); //ջò + } + } + }else { //Dz + if(!sc.equals(" ")){ + postfixExpression.append(sc); + operand.push(sc); + } + } + } + while(!operators.empty()){ //ַɨջΪѹջ + operator_Add = operators.pop(); + postfixExpression.append(operator_Add); + operand.push(operator_Add); + } + } + + + //沨 + private int reversePolish() { + // TODO Auto-generated method stub + char c; + int len = postfixExpression.toString().length(); + for (int i = 0; i < len; i++) { + c = postfixExpression.charAt(i); + if(!isOperator(String.valueOf(c))){ //жϷDzջ + postfixNumber.push(Integer.parseInt(String.valueOf(c))); + } else{ + int m = postfixNumber.pop(); + int n = postfixNumber.pop(); + String operator = String.valueOf(c); + postfixNumber.push(Calculation(n, m, operator)); + } + } + return postfixNumber.pop(); } // @@ -168,10 +287,45 @@ private void mathProblem(int count) { default: break; } + }else{ + fourMixed(); + } + } + } + + //㣺ܹ2-4 + private void fourMixed() { + // TODO Auto-generated method stub + int whereBrackets = (int)(Math.random()); //Ϊλ + int howManyNum = (int)(Math.random()*3+3); + + for (int j = 0; j < count; j++) { + int n1 = (int)(Math.random()*10+1); + int n2 = (int)(Math.random()*10+1); + int n3 = (int)(Math.random()*10+1); + int n4 = (int)(Math.random()*10+1); + int n5 = (int)(Math.random()*10+1); + int c1 = (int)(Math.random()*4); + int c2 = (int)(Math.random()*4); + int c3 = (int)(Math.random()*4); + int c4 = (int)(Math.random()*4); + String[] cs = {"+","-","",""}; + if(howManyNum==3) { + str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " = " + reversePolish(); + } else if(howManyNum==4) { + str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " = " + reversePolish(); + }else if(howManyNum==5) { + str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " " + cs[c4] + " " + n5; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " " + cs[c4] + " " + n5 + " = " + reversePolish(); } - } } + /* * ӷ * 1.һ꼶ļӷ20ڡ @@ -218,8 +372,8 @@ private void mul(int n1, int n2,int i) { n2 = (int)(Math.random()*10); } result = n1 * n2; - str_ArithmeticProblem[i] = "( " + (i+1) +" ) " + n1 + " x " + n2; - str_MathAnswer[i] = "( " + (i+1) +" ) " + n1 + " x " + n2 + " = " + result; + str_ArithmeticProblem[i] = "( " + (i+1) +" ) " + n1 + " " + n2; + str_MathAnswer[i] = "( " + (i+1) +" ) " + n1 + " " + n2 + " = " + result; } /* @@ -250,7 +404,7 @@ private void div(int i) { public static void main(String[] args) { // TODO Auto-generated method stub - new MathExam(args[0], args[1],args[2],args[3]); + new MathExam(args); } } From c1e23f64ba2a0c0706e7e02940045b4c3b9f4118 Mon Sep 17 00:00:00 2001 From: zsyISO8859 <42647685+zsyISO8859@users.noreply.github.com> Date: Tue, 18 Sep 2018 21:59:13 +0800 Subject: [PATCH 081/135] =?UTF-8?q?=E5=A2=9E=E5=8A=A0FileOutPut()=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.FileOutPut()函数用于输出out.txt文件 2.重写main函数以保留1.2年级的出题功能。 --- Pair_211606348_211606338/MathExam.java | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Pair_211606348_211606338/MathExam.java b/Pair_211606348_211606338/MathExam.java index 55c7121..1aad381 100644 --- a/Pair_211606348_211606338/MathExam.java +++ b/Pair_211606348_211606338/MathExam.java @@ -5,13 +5,18 @@ import java.util.Stack; public class MathExam { - + /* ܣ + * 1.check()ĸbug + * 2.ifжϵǰ꼶꼶벻ͬĿ + * 3.outPutFile()Ŀʹout.txt + * */ public static void main(String[] args) throws Exception { // ĸbug if (!check(args))return; //ж꼶 else if (args[0].equals("-grade") && args[1].equals("3") || args[2].equals("-grade") && args[3].equals("3")) { StringBuffer strbuf2 = init3(args); + outPutFile(strbuf2); } else { //4ij212꼶ij String[] strArgs = new String[2]; @@ -21,6 +26,7 @@ else if (args[0].equals("-grade") && args[1].equals("3") || args[2].equals("-gra StringBuffer stringBuffer = new StringBuffer(); // ʼȡĿʹ init1_2(stringBuffer, strArgs); + outPutFile(stringBuffer); } } @@ -443,4 +449,21 @@ void Init() { } return CalPoland(node, cnt); } + public static void outPutFile(StringBuffer strbuf) { + // Ŀʹ𰸵Ŀɱַתɶ + byte[] bytes = new String(strbuf).getBytes(); + // ƴļout.txt + try { + FileOutputStream fos = new FileOutputStream("out.txt"); + try { + fos.write(bytes); + } catch (IOException e) { + System.out.println("ļд"); + } + } catch (FileNotFoundException e) { + System.out.println("ļδҵ"); + } + // ִеĽ + System.out.println("ĿѾɣout.txt"); + } } From 4c7f87e949f951b88ba549c83d9a2f47bf698d69 Mon Sep 17 00:00:00 2001 From: zsyISO8859 <42647685+zsyISO8859@users.noreply.github.com> Date: Tue, 18 Sep 2018 22:07:04 +0800 Subject: [PATCH 082/135] =?UTF-8?q?=E4=B8=8D=E9=9C=80=E8=A6=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 这个是我原先写的调度算法、逆波兰表达式,现在已经将这个算法写入到MathExam.java文件当中了,所以可以删除这个文件了 --- Pair_211606348_211606338/ShuntYardAlgo.java | 168 -------------------- 1 file changed, 168 deletions(-) delete mode 100644 Pair_211606348_211606338/ShuntYardAlgo.java diff --git a/Pair_211606348_211606338/ShuntYardAlgo.java b/Pair_211606348_211606338/ShuntYardAlgo.java deleted file mode 100644 index 7f27df4..0000000 --- a/Pair_211606348_211606338/ShuntYardAlgo.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.it666.zuoye; - -import java.util.HashMap; -import java.util.Stack; -class Node { - - double val; - char opt; - - Node(Double val, Character opt) { - this.val = val; - this.opt = opt; - } -} - -public class body { - - public static void main(String[] args) throws Exception { - body body = new body(); - body.Init(); - - String str = "5*10/2+7"; - char[] charArray = str.toCharArray(); - System.out.println(body.ShuntYardAlgo(charArray)); - - } - Node[] node = new Node[10005]; - Character[] str = new Character[10005]; - HashMap mp = new HashMap<>(); - - void Init() { - mp.put('(', 0); - mp.put('-', 1); - mp.put('+', 1); - mp.put('*', 2); - mp.put('/', 2); - mp.put('^', 3); - } - - // 沨ʽļ - double CalPoland(Node node[], int n) throws Exception { - Stack s = new Stack<>(); - for (int i = 0; i < n; i++) { - if (node[i].opt == ' ') - s.push(node[i].val); - else { - double a = s.peek(); - s.pop(); - double b = s.peek(); - s.pop(); - switch (node[i].opt) { - case '+': - s.push(b + a); - break; - case '-': - s.push(b - a); - break; - case '*': - s.push(b * a); - break; - case '/': - if (Math.abs(a) < 1e-9) - throw new Exception(); - s.push(b / a); - break; - case '^': - s.push(Math.pow(b, a)); - break; - } - } - } - return s.peek(); - } - - // ȳ㷨 - double ShuntYardAlgo(char str[]) throws Exception { - Stack oper = new Stack<>(); - - // inNumǵǰǷ - boolean inNum = true; - // hasDotǷѾС - boolean hasDot = true; - - int p = 0; // ɨָλ - int cnt = 0; // Żּ - int sign = 1; // ʾ - - while (p < str.length) { - if (Character.isDigit(str[p]) || str[p] == '.') { - if (inNum) { - double val = 0; - double w = 1; - if (str[p] == '.') { - hasDot = true; - val = 0; - } else { - hasDot = false; - val = str[p] - '0'; - } - p++; - while (p < str.length && (Character.isDigit(str[p]) || str[p] == '.')) { - if (str[p] == '.') { - if (hasDot) - throw new Exception(); - hasDot = true; - } else { - if (hasDot) { - w *= 0.1; - val += (str[p] - '0') * w; - } else - val = val * 10 + str[p] - '0'; - } - p++; - } - p--; - node[cnt++] = new Node(val * sign, ' '); - sign = 1; - inNum = false; - } else - throw new Exception(); - } else { - switch (str[p]) { - case '(': - oper.push(str[p]); - break; - case ')': - while (!oper.empty() && oper.peek() != '(') { - node[cnt++] = new Node(0.0, oper.peek()); - oper.pop(); - } - if (oper.empty()) - throw new Exception(); - oper.pop(); - break; - case '+': - case '-': - case '*': - case '/': - case '^': - if (inNum) { - if (str[p] != '+' && str[p] != '-') - while (str[p] == '+' || str[p] == '-') { - if (str[p] == '-') - sign *= -1; - p++; - } - p--; - } else { - while (!oper.empty() && mp.get(str[p]) <= mp.get(oper.peek())) { - node[cnt++] = new Node(0.0, oper.peek()); - oper.pop(); - } - oper.push(str[p]); - inNum = true; - } - break; - } - } - p++; - } - while (!oper.empty()) { - node[cnt++] = new Node(0.0, oper.peek()); - oper.pop(); - } - return CalPoland(node, cnt); - } - -} From 2a19b0817e8ebaa27d135b6bee8cd507aefe8653 Mon Sep 17 00:00:00 2001 From: zsyISO8859 <42647685+zsyISO8859@users.noreply.github.com> Date: Tue, 18 Sep 2018 22:08:53 +0800 Subject: [PATCH 083/135] =?UTF-8?q?=E6=9C=80=E7=BB=88=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 完成三年级题目生成器。终于完成了。 --- Pair_211606348_211606338/MathExam.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Pair_211606348_211606338/MathExam.java b/Pair_211606348_211606338/MathExam.java index 1aad381..a3deaa4 100644 --- a/Pair_211606348_211606338/MathExam.java +++ b/Pair_211606348_211606338/MathExam.java @@ -105,6 +105,7 @@ public static StringBuffer init3(String[] args) throws Exception { l = 1; // ³ʼ ostr = new String[4]; + // MathExam mathExam = new MathExam(); mathExam.Init(); str = strbuf.toString(); From e7342527505c67fc74a13e604fff8075d1a28e41 Mon Sep 17 00:00:00 2001 From: wcgxy <42913495+wcgxy@users.noreply.github.com> Date: Tue, 18 Sep 2018 22:11:43 +0800 Subject: [PATCH 084/135] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E5=9B=9B?= =?UTF-8?q?=E5=88=99=E6=B7=B7=E5=90=88=E8=BF=90=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606361_211606377/MathExam6361.java | 203 +++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 Pair_211606361_211606377/MathExam6361.java diff --git a/Pair_211606361_211606377/MathExam6361.java b/Pair_211606361_211606377/MathExam6361.java new file mode 100644 index 0000000..956877a --- /dev/null +++ b/Pair_211606361_211606377/MathExam6361.java @@ -0,0 +1,203 @@ +package first; + +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.Scanner; + +import javax.swing.plaf.synth.SynthSpinnerUI; + +public class MathExam6361 { + +public static void main(String[] args) throws FileNotFoundException { + Scanner input =new Scanner(System.in); + System.out.println("Ҫĵ꼶 "); + int grade=input.nextInt(); + if(grade==1) { + grade1(); + }else if(grade==2) { + grade2(); + }else if(grade==3) { + grade3(); + } + + } + + + + + public static void grade3() { + // TODO Auto-generated method stub + System.out.println("ҪĿ"); + Scanner input =new Scanner(System.in); + int number2=input.nextInt(); + String[] f=new String[4]; + f[0]="+"; + f[1]="-"; + f[2]="*"; + f[3]="/"; + int[] b=new int[number2]; + int[] b1=new int[number2]; + int[] b2=new int[number2]; + int[] b3=new int[number2]; + int[] b4=new int[number2]; + int[] b5=new int[number2]; + int[] b6=new int[number2]; + int[] b7=new int[number2]; + int[] b8=new int[number2]; + int[] b9=new int[number2]; + int[] b10=new int[number2]; + + + + for (int i = 0; i < number2; i++) { + int a=(int)(0+Math.random()*100); + int a1=(int)(0+Math.random()*100); + int a2=(int)(0+Math.random()*100); + int a3=(int)(0+Math.random()*100); + int a4=(int)(0+Math.random()*100); + int e=(int)(1+Math.random()*3); + int h=(int)(Math.random()*f.length); + int h1=(int)(Math.random()*f.length); + int h2=(int)(Math.random()*f.length); + int h3=(int)(Math.random()*f.length); + b1[i]=a; + b2[i]=a1; + b3[i]=a2; + b4[i]=a3; + b5[i]=a4; + b6[i]=e; + b7[i]=h; + b8[i]=h1; + b9[i]=h2; + b10[i]=h3; + + + + if(e==1) { + + System.out.println("("+(i+1)+") "+a+" "+f[h]+" "+a1+" "+f[h1]+" "+a2+"= "); + }else if(e==2){ + System.out.println("("+(i+1)+") "+a+" "+f[h]+" "+a1+" "+f[h1]+" "+a2+" "+f[h2]+" "+a3+"= "); + }else { + System.out.println("("+(i+1)+") "+a+" "+f[h]+" "+a1+" "+f[h1]+" "+a2+" "+f[h2]+" "+a3+" "+f[h3]+" "+a4+"= "); + } + + } + System.out.println("==============׼==============="); + + for (int i = 0; i < number2; i++) { + if(b6[i]==1) { + System.out.println("("+(i+1)+") "+b1[i]+" "+f[b[7]]+" "+b2[i]+" "+f[b8[i]]+" "+b3[i]+"= "); + }else if(b6[i]==2){ + System.out.println("("+(i+1)+") "+b1[i]+" "+f[b[7]]+" "+b2[i]+" "+f[b8[i]]+" "+b3[i]+" "+f[b9[i]]+" "+b4[i]+"= "); + }else { + System.out.println("("+(i+1)+") "+b1[i]+" "+f[b[7]]+" "+b2[i]+" "+f[b8[i]]+" "+b3[i]+" "+f[b9[i]]+" "+b4[i]+" "+f[b10[i]]+" "+b5[i]+"= "); + } + + } + + + } + + + + public static void grade2() { + // TODO Auto-generated method stub + int t=0; int s=0; + System.out.println("ҪĿ"); + Scanner input =new Scanner(System.in); + int number=input.nextInt(); + int[] d=new int[number]; + int[] e=new int[number]; + int[] f=new int[number]; + int[] g=new int[number]; + + + for (int i = 0; i < number; i++) { + int a=(int)(0+Math.random()*20); + int b=(int)(0+Math.random()*20); + int c=(int)(1+Math.random()*4); + d[i] =a; + e[i]=b; + f[i]=c; + g[i]=d[i]%e[i]; + if(a 1000) { + j--; + continue jixiu; + } + } + else if(op == 1) { + if(S_num1-S_num2 < 0) { + j--; + continue jixiu; + } + } + else if( op == 2 ) { + if(S_num1 == 0 || S_num2 ==0) { + j--; + continue jixiu; + } + } + else if(op == 3) { + if( S_num1 % S_num2 !=0 || S_num2 ==0 ) { + j--; + continue jixiu; + } + } + a=S_wenti + S_num1 + fuhao[op] + S_num2 ; + + S_wenti += fuhao[op] + S_num2; + } + + + System.out.println("(" +i +") " + S_wenti + "\n"); + } + + } +} diff --git a/Pair_211606370_211606382/README.md b/Pair_211606370_211606382/README.md new file mode 100644 index 0000000..1a1585c --- /dev/null +++ b/Pair_211606370_211606382/README.md @@ -0,0 +1 @@ +# Pair1 \ No newline at end of file From cff66821fdc1623cbcab3bce82c00794ecef1e02 Mon Sep 17 00:00:00 2001 From: Dnyqi <42905518+a704218021@users.noreply.github.com> Date: Tue, 18 Sep 2018 22:12:19 +0800 Subject: [PATCH 086/135] =?UTF-8?q?MathExam6360=EF=BC=884=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本次增加了判断参数-n和-grade的顺序。 给一些代码增添了新的注释,方便查看。 修改逆波兰函数的调用位置,将其在中序表达式中调用,并且直接在中序表达式中返回最终结果。 修改了三年级内随机生成数字的变量名,方便理解其含义。例如number_1,number_2等 控制了输出大小,限制在10000以内,并且不能为负数。 --- Pair_211606343_211606360/MathExam6360.java | 208 ++++++++++++--------- 1 file changed, 119 insertions(+), 89 deletions(-) diff --git a/Pair_211606343_211606360/MathExam6360.java b/Pair_211606343_211606360/MathExam6360.java index 19afa4c..572b557 100644 --- a/Pair_211606343_211606360/MathExam6360.java +++ b/Pair_211606343_211606360/MathExam6360.java @@ -1,4 +1,3 @@ -//ʽжϣ沨мжŵжϣѹջлȡջӽԱڡ import java.io.File; import java.io.FileNotFoundException; @@ -15,11 +14,11 @@ public class MathExam6360 { - String Date[] = new String[1000]; - String QT[] = new String[10000]; //ȫֱ - String QT_1[] = new String[10000]; - String ORDER[] = new String[10000]; //ŵ顣 - String AS[] = new String[10000]; //ȫֱʹ + String Date[] = new String[100]; + String QT[] = new String[1000]; //ȫֱ + String QT_1[] = new String[1000]; + String ORDER[] = new String[1000]; //ŵ顣 + String AS[] = new String[1000]; //ȫֱʹ String SymB[] = {"+","-","",""}; String NL ="\r\n"; //ȫֱ byte[] question; //ȫֱ @@ -27,9 +26,10 @@ public class MathExam6360 { byte[] answer; //ȫֱ byte[] order; byte[] date; + - public static int Level(String operation){ + public static int Level(String operation){ //ȼжϡ int result; switch (operation){ case "+": @@ -52,30 +52,46 @@ public static int Level(String operation){ } - public MathExam6360(String args[]) { //캯 + public MathExam6360(String args[]) { //캯 // TODO Auto-generated constructor stub - int num[] = new int[5]; //num - num [1] = Integer.parseInt(args[1]); //תΪ - num [0] = Integer.parseInt(args[0]); - boolean B =judge(num[0],num[1]); //жϲĸʽԼСǷ - if(B==true) { - calculate(num[0], num[1]); //꼶ʽ - TxT(num[0]); //ıʽдı + boolean B; + if(args[0].equals("-n") && args[2].equals("-grade")) //жϲ꼶˳ + { + B =judge(args[1],args[3]); //жϲĸʽԼСǷ + if(B==true) { + + calculate(Integer.parseInt(args[1]), Integer.parseInt(args[3])); //꼶ʽ + TxT(Integer.parseInt(args[1])); //ıʽдı + }else + {System.out.println("ûˡ");} + } - else { - System.out.println("ûˡ"); + else if(args[0].equals("-grade") && args[2].equals("-n")) { + + B =judge(args[3],args[1]); //жϲĸʽԼСǷ + if(B==true) { + + calculate(Integer.parseInt(args[3]), Integer.parseInt(args[1])); //꼶ʽ + TxT(Integer.parseInt(args[3])); //ıʽдı + + }else + {System.out.println("ûˡ");} + } + else + {System.out.println("ûˡ");} + } private void TxT(int count) { - - DateFormat dt = DateFormat.getDateTimeInstance(); //ȡǰʱ + + DateFormat dt = DateFormat.getDateTimeInstance(); //ȡǰʱ Date[0] = dt.format(new Date()); - File file = new File("out6343.txt"); //ı - if(!file.exists()) //жTXTǷ + File file = new File("out6343.txt"); //ı + if(!file.exists()) //жTXTǷ { try { file.createNewFile(); @@ -124,24 +140,20 @@ private void TxT(int count) { } - private boolean judge(int count ,int grade) { - String Regex="[1-9]{1}[0-9]{0,2}"; //ʽIJ޶Χڣͬʱޡ - String Regex2="[1-3]{1}{0}"; //ʽIJ޶Χڣͬʱޡ + private boolean judge(String count ,String grade) { //жϲʽǷȷķ + String Regex="[1-9]{1}[0-9]{0,2}"; //ʽIJ޶Χڣͬʱޡ + String Regex2="[1-3]{1}{0}"; //ʽIJ޶Χڣͬʱޡ Pattern p =Pattern.compile(Regex); Pattern p2 =Pattern.compile(Regex2); - String str = String.valueOf(count); //ǿƽintתΪstring - String str2 = String.valueOf(grade); - + Matcher M=p.matcher(count); //ж + Matcher M2=p2.matcher(grade); - Matcher M=p.matcher(str); //ж - Matcher M2=p2.matcher(str2); - - return M.matches() && M2.matches(); //boolean͵ֵ + return M.matches() && M2.matches(); //boolean͵ֵ } @@ -165,9 +177,9 @@ private void calculate(int count,int grade){ private void calculate_1(int count) { //һ꼶 for(int i=1;i<=count;) { - int a=(int)(Math.random()*10+1); - int b=(int)(Math.random()*10+1); - int symbol=(int)(Math.random()*2); + int a=(int)(Math.random()*10+1); //һ + int b=(int)(Math.random()*10+1); //ڶ + int symbol=(int)(Math.random()*2); //š if(symbol==0) { QT[i-1]=a + " + " + b; @@ -186,9 +198,9 @@ else if(symbol==1) { private void calculate_2(int count) { //꼶 for(int i=1;i<=count;) { - int a=(int)(Math.random()*100); - int b=(int)(Math.random()*100); - int symbol=(int)(Math.random()*4); + int a=(int)(Math.random()*100); //һ + int b=(int)(Math.random()*100); //ڶ + int symbol=(int)(Math.random()*4); //š if(symbol==0) { QT[i-1]=a + " + " + b; @@ -228,98 +240,113 @@ private void calculate_3(int count) { int i=0; while(iLevel(SymB[symbol_2])) { - QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"; - QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "; + QT_1[i]=+number_1+SymB[symbol_1]+"(" + number_2 +SymB[symbol_2]+number_3+")"; + QT[i]=number_1+" "+SymB[symbol_1]+" ( "+ number_2 +" "+SymB[symbol_2] +number_3+" ) "; } else { - QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c; + QT_1[i]=+number_1+SymB[symbol_1]+number_2+SymB[symbol_2]+number_3; + QT[i]=number_1+" "+SymB[symbol_1]+" "+ number_2 +" "+SymB[symbol_2] +" "+number_3; } - - } + } + //жΪ֮󣬿ʼжϷȼʽš - else if(symbol_number == 3) { - if(symbol_1==symbol_2) - {continue;} - int d=(int)(Math.random()*1000); + + else if(symbol_number == 3) { + if(symbol_1==symbol_2) //֤ʽ + {continue;} + int number_4=(int)(Math.random()*1000+1); int symbol_3=(int)(Math.random()*4); if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { - QT_1[i]=+a+SymB[symbol_1]+"(" + b +SymB[symbol_2]+c+")"+SymB[symbol_3]+d; - QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2] +c+" ) "+SymB[symbol_3]+" "+d; + QT_1[i]=+number_1+SymB[symbol_1]+"(" + number_2 +SymB[symbol_2]+number_3+")"+SymB[symbol_3]+number_4; + QT[i]=number_1+" "+SymB[symbol_1]+" ( "+ number_2 +" "+SymB[symbol_2] +number_3+" ) "+SymB[symbol_3]+" "+number_4; } else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { - QT_1[i]=+a+SymB[symbol_1]+ b +SymB[symbol_2]+"("+c +SymB[symbol_3]+d+")"; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" ( " +c+" "+SymB[symbol_3]+" "+d+" ) "; + QT_1[i]=+number_1+SymB[symbol_1]+ number_2 +SymB[symbol_2]+"("+number_3 +SymB[symbol_3]+number_4+")"; + QT[i]=number_1+" "+SymB[symbol_1]+" "+ number_2 +" "+SymB[symbol_2] +" ( " +number_3+" "+SymB[symbol_3]+" "+number_4+" ) "; } else { - QT_1[i]=+a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+d; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" "+c+" "+SymB[symbol_3]+" "+d; + QT_1[i]=+number_1+SymB[symbol_1]+number_2+SymB[symbol_2]+number_3+SymB[symbol_3]+number_4; + QT[i]=number_1+" "+SymB[symbol_1]+" "+ number_2 +" "+SymB[symbol_2] +" "+number_3+" "+SymB[symbol_3]+" "+number_4; } - - } + } + //жΪ֮󣬿ʼжϷȼʽš else if(symbol_number == 4) { - if(symbol_1==symbol_2) + if(symbol_1==symbol_2) //֤ʽ {continue;} - int d=(int)(Math.random()*1000); - int e=(int)(Math.random()*1000); + int number_4=(int)(Math.random()*1000+1); + int number_5=(int)(Math.random()*1000+1); int symbol_3=(int)(Math.random()*4); int symbol_4=(int)(Math.random()*4); + if(Level(SymB[symbol_1])Level(SymB[symbol_2])) { - QT_1[i]=a+SymB[symbol_1]+"("+b+SymB[symbol_2]+c+")"+SymB[symbol_3]+d+SymB[symbol_4]+e; - QT[i]=a+" "+SymB[symbol_1]+" ( "+ b +" "+SymB[symbol_2]+" "+c+" ) "+SymB[symbol_3]+" "+d+" "+SymB[symbol_4]+" "+e; + QT_1[i]=number_1+SymB[symbol_1]+"("+number_2+SymB[symbol_2]+number_3+")"+SymB[symbol_3]+number_4+SymB[symbol_4]+number_5; + QT[i]=number_1+" "+SymB[symbol_1]+" ( "+ number_2 +" "+SymB[symbol_2]+" "+number_3+" ) "+SymB[symbol_3]+" "+number_4+" "+SymB[symbol_4]+" "+number_5; } + + else if(Level(SymB[symbol_2])>Level(SymB[symbol_3])) { - QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+"("+c+SymB[symbol_3]+d+")"+SymB[symbol_4]+e; - QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" ( "+c+" "+SymB[symbol_3]+" "+d+" ) "+" "+SymB[symbol_4]+" "+e; + QT_1[i]=number_1+SymB[symbol_1]+number_2+SymB[symbol_2]+"("+number_3+SymB[symbol_3]+number_4+")"+SymB[symbol_4]+number_5; + QT[i]=number_1+" "+SymB[symbol_1]+" "+ number_2 + " "+SymB[symbol_2]+" ( "+number_3+" "+SymB[symbol_3]+" "+number_4+" ) "+" "+SymB[symbol_4]+" "+number_5; } + + else if(Level(SymB[symbol_3])>Level(SymB[symbol_4])) { - QT_1[i]=a+SymB[symbol_1]+b+SymB[symbol_2]+c+SymB[symbol_3]+"("+d+SymB[symbol_4]+e+")"; - QT[i]=a+" "+SymB[symbol_1]+" "+ b + " "+SymB[symbol_2]+" "+c+" "+SymB[symbol_3]+" ( "+d+" "+SymB[symbol_4]+" "+e+" )"; + QT_1[i]=number_1+SymB[symbol_1]+number_2+SymB[symbol_2]+number_3+SymB[symbol_3]+"("+number_4+SymB[symbol_4]+number_5+")"; + QT[i]=number_1+" "+SymB[symbol_1]+" "+ number_2 + " "+SymB[symbol_2]+" "+number_3+" "+SymB[symbol_3]+" ( "+number_4+" "+SymB[symbol_4]+" "+number_5+" )"; } + + else { - QT_1[i]=a+SymB[symbol_1]+ b+SymB[symbol_2]+c+SymB[symbol_3]+d+SymB[symbol_4]+e; - QT[i]=a+" "+SymB[symbol_1]+" "+ b +" "+SymB[symbol_2] +" " +c+" "+SymB[symbol_3] +" "+d+" "+SymB[symbol_4]+" "+e; + QT_1[i]=number_1+SymB[symbol_1]+ number_2+SymB[symbol_2]+number_3+SymB[symbol_3]+number_4+SymB[symbol_4]+number_5; + QT[i]=number_1+" "+SymB[symbol_1]+" "+ number_2 +" "+SymB[symbol_2] +" " +number_3+" "+SymB[symbol_3] +" "+number_4+" "+SymB[symbol_4]+" "+number_5; } } - else {continue;} - List zx= toInfixExpression(QT_1[i]); - List rpn=parseSuffixExpression(zx); - AS[i]=QT[i]+" = "+reckon(rpn); - if(reckon(rpn)<=0) + //жΪĸ֮󣬿ʼжϷȼʽš + + else {continue;} //symbol_numberҪʱѭ¿ʼµѭҪָֹֿ롣 + + + List rec= toInfixExpression(QT_1[i]); //ʽ + AS[i]=QT[i]+" = "+reckon(rec); + + + if(reckon(rec)<0 || reckon(rec)>10000) //ֵĽСΪߴ10000ѭʽӡ {continue;} i++; - + } } - public List parseSuffixExpression(List ls) { + public List parseSuffixExpression(List ls) { //沨ʽ Stack s1=new Stack(); List LS = new ArrayList(); for (String str : ls) { @@ -371,10 +398,11 @@ public List toInfixExpression(String s) { } } while (w < s.length()); - return ls; + List LS=parseSuffixExpression(ls); + return LS; } - public int reckon(List ls) { + public int reckon(List ls) { //ڼԱʽӡ Stack s=new Stack(); for (String str : ls) { if (str.matches("\\d+")) { @@ -402,3 +430,5 @@ public static void main(String args[]) { new MathExam6360(args); } + +} From 20186e5a54338c194d9b7d5f60767cb9336dcd7c Mon Sep 17 00:00:00 2001 From: nanxiao7ian <42741251+nqh584106761@users.noreply.github.com> Date: Tue, 18 Sep 2018 22:15:46 +0800 Subject: [PATCH 087/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E7=BB=93?= =?UTF-8?q?=E5=AF=B9=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第一次上交 --- Pair_211606374_211606357/MathExamV2_6374.java | 335 ++++++++++++++++++ 1 file changed, 335 insertions(+) create mode 100644 Pair_211606374_211606357/MathExamV2_6374.java diff --git a/Pair_211606374_211606357/MathExamV2_6374.java b/Pair_211606374_211606357/MathExamV2_6374.java new file mode 100644 index 0000000..ffefba0 --- /dev/null +++ b/Pair_211606374_211606357/MathExamV2_6374.java @@ -0,0 +1,335 @@ + + + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Scanner; +import java.util.Stack; +import java.util.concurrent.SynchronousQueue; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; + + +public class MathExamV2_6374 { + + public static void main(String[] args) throws IOException { + int i,a,b,fuhao,d,e,f; + Scanner input=new Scanner(System.in); + int flag=0,flag2=0; + int []c =new int [args.length] ; // һ + + String[] timu=new String[c[0]+1]; // Ŀ + String[] daan=new String[c[0]+1]; + String huanhang="\r\n"; // windowsĻУcmdзۿ + File file = new File("out.txt"); + FileOutputStream u = new FileOutputStream("out.txt"); + if(!file.exists()) { + file.createNewFile(); + } // out.txtı + if(flag2==1) { + for(;;) { + if(c[0]>400&&c[1]==1) { + System.out.println("1-400֮ĿĿظ룬ֱĿ꼶"); + c[0]=input.nextInt(); + c[1]=input.nextInt(); + continue; + } + if(c[1]<1) { + System.out.println("Ŀ1룬ֱĿ꼶"); + c[0]=input.nextInt(); + c[1]=input.nextInt(); + continue; + } + if(c[0]>81&&c[1]==2) { + System.out.println("1-81֮ĿĿظ룬ֱĿ꼶"); + c[0]=input.nextInt(); + c[1]=input.nextInt(); + continue; + } + if(c[1]>3) { + System.out.println("֧1꼶2꼶3꼶룬ֱĿ꼶"); + c[0]=input.nextInt(); + c[1]=input.nextInt(); + continue; + } + else { + flag=1; + if(flag==1) + break; + } + } + } + if(flag==2) { + for(;;) { + if(c[0]>400&&c[1]==1) { + System.out.println("1-400֮ĿĿظ룬ֱ꼶Ŀ"); + c[0]=input.nextInt(); + c[1]=input.nextInt(); + continue; + } + if(c[0]<1) { + System.out.println("Ŀ1룬ֱ꼶Ŀ"); + c[0]=input.nextInt(); + c[1]=input.nextInt(); + continue; + } + if(c[0]>81&&c[1]==2) { + System.out.println("1-81֮ĿĿظ룬ֱ꼶Ŀ"); + c[0]=input.nextInt(); + c[1]=input.nextInt(); + continue; + } + if(c[1]>3) { + System.out.println("֧1꼶2꼶3꼶룬ֱ꼶Ŀ"); + c[0]=input.nextInt(); + c[0]=input.nextInt(); + continue; + } + else { + flag=1; + if(flag==1) + break; + } + } + } + if(c[1]==1) { + for(i=1;i<=c[0];i++) { + fuhao=(int)(Math.random()*2); + if(fuhao==0) { + a=(int)(Math.random()*21); + b=(int)(Math.random()*21); + int answer=a+b; + System.out.println("( "+i+ ") "+a+" + "+b); + timu[i-1]="( "+ i+" ) "+a+" + "+b; + daan[i-1]="( "+i+" ) "+a+" + "+b+" = "+answer; + byte[] ti =timu[i-1].getBytes(); // ַתΪֽΪдtxtļ + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); // תõֽдtxt + u.write(h); + } + else { + a=(int)(Math.random()*21); + b=(int)(Math.random()*(a)); + int answer=a-b; + System.out.println("( "+i+" ) "+a+" - "+b); + timu[i-1]="( "+i+" ) "+a+" - "+b; + daan[i-1]="( "+i+" ) "+a+" - "+b+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + } + System.out.println("\n"); + String xieru="ĿѾдout.txt"; + byte[] xr=xieru.getBytes(); + byte[] h=huanhang.getBytes(); + u.write(h);u.write(h); + for(i=1;i<=c[0];i++) { + System.out.println( daan[i-1]); + byte[] da =daan[i-1].getBytes(); + u.write(da); + u.write(h); + } + u.write(xr); + System.out.println("Ŀдout.txt"); + } + else if(c[1]==2) { + for(i=1;i<=c[0];i++) { + fuhao=(int)(Math.random()*2); + if(fuhao==0) { + a=(int)(Math.random()*10); + b=(int)(Math.random()*10); + int answer=a*b; + System.out.println("( "+i+" ) "+a+" "+b); + timu[i-1]="( "+i+" ) "+a+" "+b; + daan[i-1]="( "+i+" ) "+a+" "+b+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + else { + a=(int)(Math.random()*10); + b=(int)(Math.random()*(a)+1); + int answer=a/b; + int yushu=a%b; + System.out.println("( "+i+" ) "+a+" "+b); + timu[i-1]="( "+i+" ) "+a+" "+b; + if(a%b==0) { + daan[i-1]="( "+i+" ) "+a+" "+b+" = "+answer; + } + else if(a%b!=0) { + daan[i-1]="( "+i+" ) "+a+" "+b+" = "+answer+" ..... "+yushu; + } + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + } + System.out.println("\n"); + String xieru="ĿѾдout.txt"; + byte[] xr=xieru.getBytes(); + byte[] h=huanhang.getBytes(); + u.write(h); + for(i=1;i<=c[0];i++) { + System.out.println( daan[i-1]); + byte[] da =daan[i-1].getBytes(); + u.write(da); + u.write(h); + } + u.write(xr); + System.out.println("ĿѾдout.txt"); + } + else if(c[1]==3) { + for(i=1;i<=c[0];i++) { + fuhao=(int)(Math.random()*8); + if(fuhao==0) { + a = (int)(Math.random()*100+1); + b = (int)(Math.random()*100+1); + d = (int)(Math.random()*100+1); + int answer=a*b+d; + System.out.println("( "+i+" )"+a+" "+b+" + "+d); + timu[i-1]="( "+i+" )"+a+" "+b+" + "+d; + daan[i-1]="( "+i+" )"+a+" "+b+" + "+d+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + if(fuhao==1) { + a = (int)(Math.random()*100+1); + b = (int)(Math.random()*100+1); + d = (int)(Math.random()*100+1); + e = (int)(Math.random()*100+1); + int answer=a*b+d-e; + System.out.println("( "+i+" ) "+a+" "+b+" + "+d+" - "+e); + timu[i-1]="( "+i+" ) "+a+" "+b+" + "+d+" - "+e; + daan[i-1]="( "+i+" ) "+a+" "+b+" + "+d+" - "+e+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + if(fuhao==2) { + b = (int)(Math.random()*100+1); + a = 3*b; + d = (int)(Math.random()*100+1); + e = (int)(Math.random()*100+1); + int answer=a/b+d-e; + System.out.println("( "+i+" ) "+a+" "+b+" + "+d+" - "+e); + timu[i-1]="( "+i+" ) "+a+" "+b+" + "+d+" - "+e; + daan[i-1]="( "+i+" ) "+a+" "+b+" + "+d+" - "+e+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + if(fuhao==3) { + b = (int)(Math.random()*100+1); + a = 6*b; + d = (int)(Math.random()*100+1); + e = (int)(Math.random()*100+1); + f = (int)(Math.random()*100+1); + int answer=a/b+d-e+f; + System.out.println("( "+i+" ) "+a+" "+b+" + "+d+" - "+e+" + "+f); + timu[i-1]="( "+i+" ) "+a+" "+b+" + "+d+" - "+e+" + "+f; + daan[i-1]="( "+i+" ) "+a+" "+b+" + "+d+" - "+e+" + "+f+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + if(fuhao==4) { + b = (int)(Math.random()*100+1); + a = 2*b; + d = (int)(Math.random()*100+1); + e = (int)(Math.random()*100+1); + f = (int)(Math.random()*100+1); + int answer=a/b*d-e+f; + System.out.println("( "+i+" ) "+a+" "+b+" "+d+" - "+e+" + "+f); + timu[i-1]="( "+i+" ) "+a+" "+b+" "+d+" - "+e+" + "+f; + daan[i-1]="( "+i+" ) "+a+" "+b+" "+d+" - "+e+" + "+f+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + if(fuhao==5) { + b = (int)(Math.random()*100+1); + a = 3*b; + d = (int)(Math.random()*100+1); + e = (int)(Math.random()*100+1); + int l=d-e; + int answer=l+a/b; + System.out.println("( "+i+" ) "+a+" "+b+" + "+"( "+d+" - "+e+" )"); + timu[i-1]="( "+i+" ) "+a+" "+b+" + "+"( "+d+" - "+e+" )"; + daan[i-1]="( "+i+" ) "+a+" "+b+" + "+"( "+d+" - "+e+" )"+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + if(fuhao==6) { + a = (int)(Math.random()*100+1); + b = (int)(Math.random()*100+1); + d = (int)(Math.random()*100+1); + e = (int)(Math.random()*100+1); + int l=+b+d+e; + int answer=a*l; + System.out.println("( "+i+" ) "+a+" "+"( "+b+" + "+d+" + "+e+" )"); + timu[i-1]="( "+i+" ) "+a+" "+"( "+b+" + "+d+" + "+e+" )"; + daan[i-1]="( "+i+" ) "+a+" "+"( "+b+" + "+d+" + "+e+" )"+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + }if(fuhao==7) { + a = (int)(Math.random()*100+1); + b = (int)(Math.random()*100+1); + d = (int)(Math.random()*100+1); + e = (int)(Math.random()*100+1); + int l=a+b; + int z=d+e; + int answer=z*l; + System.out.println("( "+i+" ) "+"( "+a+" + "+b+" )"+" * "+"( "+d+" + "+e+" )"); + timu[i-1]="( "+i+" ) "+"( "+a+" + "+b+" )"+" * "+"( "+d+" + "+e+" )"; + daan[i-1]="( "+i+" ) "+"( "+a+" + "+b+" )"+" * "+"( "+d+" + "+e+" )"+" = "+answer; + byte[] ti =timu[i-1].getBytes(); + byte[] da =daan[i-1].getBytes(); + byte[] h=huanhang.getBytes(); + u.write(ti); + u.write(h); + } + + } + System.out.println("\n"); + String xieru="ĿѾдout.txt"; + byte[] xr=xieru.getBytes(); + byte[] h=huanhang.getBytes(); + u.write(h); + for(i=1;i<=c[0];i++) { + System.out.println( daan[i-1]); + byte[] da =daan[i-1].getBytes(); + u.write(da); + u.write(h); + } + u.write(xr); + System.out.println("ĿѾдout.txt"); + } +} +} \ No newline at end of file From 9ba44ead160f916d53a387b1ba93e568e11d757f Mon Sep 17 00:00:00 2001 From: 1234chenbin <42905147+1234chenbin@users.noreply.github.com> Date: Tue, 18 Sep 2018 22:22:24 +0800 Subject: [PATCH 088/135] =?UTF-8?q?=E4=B8=BB=E6=96=B9=E6=B3=95=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 通过测试; 可以正确运行; --- Pair_211614331_211614354/MathExam.java | 142 +++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 Pair_211614331_211614354/MathExam.java diff --git a/Pair_211614331_211614354/MathExam.java b/Pair_211614331_211614354/MathExam.java new file mode 100644 index 0000000..8b589f4 --- /dev/null +++ b/Pair_211614331_211614354/MathExam.java @@ -0,0 +1,142 @@ +import java.util.ArrayList; +import java.util.Random; + + +public class MathExam extends Operation{ + + static boolean isRight;//ǷϷ + static ArrayList questionAndAnswer;// 洢Ŀʹ𰸵ļ + static int testNumber;// Ŀ + static String errorMessage=""; + static boolean isError=true; + static String whereIsN=""; + static String whereIsGrade=""; + + @SuppressWarnings("unused") + public static void main(String[] args) { + + int n=9999;// Ŀ + int grade=3; // + String problem;// ճ + questionAndAnswer=new ArrayList();// Ŀʹ𰸣Ȼ뵽ģ + RandomQuestions rQ=new RandomQuestions(); // + ArithemticS aR=new ArithemticS(); // + Random rand=new Random();// һ꼶ĿǼӻǼ + + + + if (args.length != 4) { + isError = false; + errorMessage = ",IJΪ4"; + } + else if (args[0].equals("-n") && args[2].equals("-grade")) { + //һ,ڶ꼶 + whereIsN=args[1];// һĿ + whereIsGrade=args[3]; + if (args[1].length() >= 5 || args[1].length()==0) { + isError = false; + errorMessage = "IJdzλҲΪ0λ"; + } + else if ((!args[1].matches("\\d+")) || args[1].matches("[0]\\d*")) { + isError = false; + errorMessage = ",IJ붼Ϊ,IJв0ͷ,ΪС"; + } + else if (!args[3].matches("[123]")) { + isError = false; + errorMessage = ",꼶IJΪ123еһ"; + } + } + else if (args[0].equals("-grade") && args[2].equals("-n")) { + //ĵһ꼶,ڶ + whereIsN=args[3];// + whereIsGrade=args[1]; + if (!args[1].matches("[123]")) { + isError = false; + errorMessage = ",꼶IJΪ123еһ"; + } + else if (args[3].length() >= 5 || args[3].length()==0) { + isError = false; + errorMessage = "IJdzλҲΪ0λ";} + else if (!(args[3].matches("\\d+")) || !args[3].matches("[^0]\\d*")) {//bug޸:޷ʶ꼶Ϊ001 + isError = false; + errorMessage = ",IJ붼Ϊ,IJв0ͷ,ΪС"; + } + + } + else if(args[0].matches("\\d+") || args[2].matches("\\d+")) { + isError = false; + errorMessage = "IJλò"; + }//жϽ + + if(isError) { + n=Integer.valueOf(whereIsN);// + grade=Integer.valueOf(whereIsGrade); + if(grade==1) { + grade=0; + }else if(grade==2) { + grade=2; + } + + if(grade==0||grade==2) { + for(int i=1;i<=n;i++) { + int s=rand.nextInt(2); + s=s+grade; + switch(s) { + case 0: //ΪӺʱ + { + //testNumber++; + AddOperation opp=new AddOperation(questionAndAnswer,i); + break; + } + case 1: //Ϊʱ + { + //testNumber++; + Subtraction opp=new Subtraction(questionAndAnswer,i); + break; + } + case 2: //˷ + { + //testNumber++; + Multiplication opp=new Multiplication(questionAndAnswer,i); + break; + } + case 3: // + { + testNumber++; + Division opp=new Division(questionAndAnswer,i); + break; + } + } + + } + + }else if(grade==3){ + for(int i=0;i=9999) { + isRight=false; //Ʋ9999(꼶Ҫ) + } + }while(!isRight);// жϳǷ꼶淶 + questionAndAnswer.add("("+(i+1)+") "+problem);// 꼶Ŀ뼯 + questionAndAnswer.add(" = "+answerNumber);// 꼶𰸼뼯 + //꼶ô + } + } + //System.out.println(questionAndAnswer); + OutPutSet outPut=new OutPutSet(n); // + }else { + System.out.println(errorMessage); + } + + }// main end +}// end + + + + + + From 9cd9ed7e7817dce82a75d50bd6e4c388d1db2c59 Mon Sep 17 00:00:00 2001 From: cielpupu <923070543@qq.com> Date: Tue, 18 Sep 2018 22:24:21 +0800 Subject: [PATCH 089/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=B8=8D?= =?UTF-8?q?=E5=AE=8C=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606349_211606369/KK.java | 203 +++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 Pair_211606349_211606369/KK.java diff --git a/Pair_211606349_211606369/KK.java b/Pair_211606349_211606369/KK.java new file mode 100644 index 0000000..aae4052 --- /dev/null +++ b/Pair_211606349_211606369/KK.java @@ -0,0 +1,203 @@ +package com.java6369.lesson02; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Random; + +public class KK{ + private static final String[] fuhao = {"+", "-"," * ", " / "};//ʹõ + static StringBuffer Topic = new StringBuffer(); //ѭнַƴӣƴĿʹ + static StringBuffer Answer= new StringBuffer(); + private static int i; + +public static void main(String[] args) throws IOException {//׳쳣 + int n = Integer.parseInt(args[0]); //й + int grade = Integer.parseInt(args[1]);//Ŀ + + + if (args.length == 0) { + //һڶ꼶IJ + throw new IllegalArgumentException("꼶"); + } + if(args.length == 1) { + throw new IllegalArgumentException("2"); + } + String str = args[0];//ĵ1 + if(str.length()>=3) { + throw new IllegalArgumentException("ֻ2"); + } + + + for(i=0;(str.charAt(i) < '0' || str.charAt(i++) > '9') && i < str.length();i++) { + //λΪiַ0~9ʾ֣ + throw new IllegalArgumentException("Ҫ"); + } + n = Integer.parseInt(args[0]);//ѺתΪintͽֵ + Exam369(n,grade); + writeTo(); + System.out.println("Ŀ鿴out.txt");//out.txt +} + private static void Exam369(int n,int grade) { + int re1 = 0, left=0,right=0; + int re2 = 0; + int re3 = 0; + String c[] ={"+","-","",""}; + byte contentInBytes[]; + + Random rand=new Random(); + for (int i=0;i<=n;i++) { + int a=rand.nextInt(c.length); + String resultChar=c[a];//ŴresultChar + + if (grade==1) { + for (int i1=0;i1<=n;i1++) { + left=rand.nextInt(100); + right=rand.nextInt(100);//Ұ + String b= left+resultChar+right+"=";//Ŀ + //һףĿ + + if(resultChar=="+"){ + re3=left+right; + String d=left+resultChar+right+"="+re3; + + }else if(resultChar=="-"){ + re3=left-right; + String e=left+resultChar+right+"="+re3; + + } + } + } + if (grade==2) { + for (int i2=0;i2<=n;i2++) { + if(resultChar=="+"){ + left=rand.nextInt(10000); + right=rand.nextInt(10000); + String b= left+resultChar+right+"="; + + if((left%100==0 || left%1000==0 || left<=100)&&(right%100==0 || right%1000==0 || right<=100)) { + re3=left+right; + String e=left+resultChar+right+"="+re3; + + } + if(left%100==0 && left>=100 && (right%100==0 || right%10==0)) { + re3=left+right; + String f=left+resultChar+right+"="+re3; + + } + }else if(resultChar=="-"){ + left=rand.nextInt(10000); + right=rand.nextInt(10000); + String b= left+resultChar+right+"="; + + if((left%100==0 || left%1000==0 || left<=100)&&(right%100==0 || right%1000==0 || right<=100)) { + re3=left-right; + String g=left+resultChar+right+"="+re3; + + } + if(left%100==0 && left>=100 && (right%100==0 || right%10==0)) { + re3=left-right; + String h=left+resultChar+right+"="+re3; + + } + }else if(resultChar==""){ + left=rand.nextInt(10)+1; + right=rand.nextInt(10)+1; + String b= left+resultChar+right+"="; + re3=left-right; + String j=left+resultChar+right+"="+re3; + + }else if(resultChar==""){ + left=rand.nextInt(10)+1; + right=rand.nextInt(10)+1; + String b= left+resultChar+right+"="; + + re2=left/right; + re1=left%right; + String k=left+resultChar+right+"="; + + if(re1==0) { + re3=left/right; + String l=left+resultChar+right+"="+re3; + } + else { + String m=left+resultChar+right+"="+(re1+"..."+re2); + + } + } + } + } + if (grade==3) { + for (int i3=0;i3<=n;i3++) { + if(resultChar=="+"){ + left=rand.nextInt(10000); + right=rand.nextInt(10000); + re3=left+right; + String o= left+resultChar+right+"="+re3; + + } + if(resultChar=="-") { + left=rand.nextInt(10000); + right=rand.nextInt(10000); + re3=left-right; + String o= left+resultChar+right+"="+re3; + + } + if(resultChar=="") { + left=rand.nextInt(1000)+100; + right=rand.nextInt(100)+10; + re3=left*right; + String o= left+resultChar+right+"="+re3; + + } + if(resultChar=="") { + left=rand.nextInt(1000)+100; + right=rand.nextInt(100)+10; + re3=left/right; + String o= left+resultChar+right+"="+re3; + + re2=left/right; + re1=left%right; + if(re1==0) { + String p=left+resultChar+right+"="+re3; + } + else { + String p=left+resultChar+right+"="+(re1+"..."+re2); + + } + } + } + } + // ¼Ŀ + Topic.append("("+ i +") "+ left + " " + resultChar + " " + right + "\r\n"); + if (resultChar.equals(" / ")) { + Answer.append("(" + i + ") " + left + " " + resultChar + " " + right + " = " + re3 + + (re1 != 0 ? ("..." + re1) : "") + "\r\n"); + } else { + Answer.append("(" + i + ") " + left + " " + resultChar + " " + right + " = " + re3 + "\r\n"); + } + } + + + } + public static void writeTo() throws IOException {//׳쳣 + File file= new File("out.txt"); + if (!file.exists()) { + //жǷڴ· + File parent = file.getParentFile(); + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + file.createNewFile(); + } + OutputStream out = new FileOutputStream(file); + byte[] question=Topic.toString().getBytes(); + byte[] answer=Answer.toString().getBytes(); + out.write(question); + out.write(System.lineSeparator().getBytes()); + out.write(answer); + out.close(); + } +} + From 2e5f830b37128315014e6792c1b0a28bde50d84f Mon Sep 17 00:00:00 2001 From: 905364822 <905364822@qq.com> Date: Tue, 18 Sep 2018 22:25:03 +0800 Subject: [PATCH 090/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.classpath | 0 .../.project | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 MathExam V2.0/bin/Algorithm.class | Bin 0 -> 5689 bytes .../bin/LinearTable.class | Bin .../bin/MathExam.class | Bin .../bin/Operator.class | Bin MathExam V2.0/bin/SopStacks.class | Bin 0 -> 1172 bytes .../src => MathExam V2.0/bin}/out.txt | 0 MathExam V2.0/src/Algorithm.class | Bin 0 -> 5054 bytes .../src/Algorithm.java | 105 +++++++----------- .../src/Function.class | Bin .../src/LinearTable.class | Bin .../src/LinearTable.java | 0 .../src/MathExam.class | Bin .../src/MathExam.java | 0 .../src/Operator.class | Bin .../src/Operator.java | 0 .../src/SopStacks.class | Bin .../src/SopStacks.java | 11 +- Pair_211606390_211606329/bin/Algorithm.class | Bin 5983 -> 0 bytes Pair_211606390_211606329/bin/SopStacks.class | Bin 1044 -> 0 bytes Pair_211606390_211606329/src/Algorithm.class | Bin 5312 -> 0 bytes 23 files changed, 47 insertions(+), 69 deletions(-) rename {Pair_211606390_211606329 => MathExam V2.0}/.classpath (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/.project (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/.settings/org.eclipse.jdt.core.prefs (100%) create mode 100644 MathExam V2.0/bin/Algorithm.class rename {Pair_211606390_211606329 => MathExam V2.0}/bin/LinearTable.class (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/bin/MathExam.class (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/bin/Operator.class (100%) create mode 100644 MathExam V2.0/bin/SopStacks.class rename {Pair_211606390_211606329/src => MathExam V2.0/bin}/out.txt (100%) create mode 100644 MathExam V2.0/src/Algorithm.class rename {Pair_211606390_211606329 => MathExam V2.0}/src/Algorithm.java (76%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/Function.class (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/LinearTable.class (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/LinearTable.java (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/MathExam.class (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/MathExam.java (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/Operator.class (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/Operator.java (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/SopStacks.class (100%) rename {Pair_211606390_211606329 => MathExam V2.0}/src/SopStacks.java (76%) delete mode 100644 Pair_211606390_211606329/bin/Algorithm.class delete mode 100644 Pair_211606390_211606329/bin/SopStacks.class delete mode 100644 Pair_211606390_211606329/src/Algorithm.class diff --git a/Pair_211606390_211606329/.classpath b/MathExam V2.0/.classpath similarity index 100% rename from Pair_211606390_211606329/.classpath rename to MathExam V2.0/.classpath diff --git a/Pair_211606390_211606329/.project b/MathExam V2.0/.project similarity index 100% rename from Pair_211606390_211606329/.project rename to MathExam V2.0/.project diff --git a/Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs b/MathExam V2.0/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs rename to MathExam V2.0/.settings/org.eclipse.jdt.core.prefs diff --git a/MathExam V2.0/bin/Algorithm.class b/MathExam V2.0/bin/Algorithm.class new file mode 100644 index 0000000000000000000000000000000000000000..56348f8a2c67699a3eb5c9660e310a26a77c1a04 GIT binary patch literal 5689 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 ZaRkecU|B{{M$y!9BvLVr%WPu$e*mkocQpV2 literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/bin/LinearTable.class b/MathExam V2.0/bin/LinearTable.class similarity index 100% rename from Pair_211606390_211606329/bin/LinearTable.class rename to MathExam V2.0/bin/LinearTable.class diff --git a/Pair_211606390_211606329/bin/MathExam.class b/MathExam V2.0/bin/MathExam.class similarity index 100% rename from Pair_211606390_211606329/bin/MathExam.class rename to MathExam V2.0/bin/MathExam.class diff --git a/Pair_211606390_211606329/bin/Operator.class b/MathExam V2.0/bin/Operator.class similarity index 100% rename from Pair_211606390_211606329/bin/Operator.class rename to MathExam V2.0/bin/Operator.class diff --git a/MathExam V2.0/bin/SopStacks.class b/MathExam V2.0/bin/SopStacks.class new file mode 100644 index 0000000000000000000000000000000000000000..aea29fb877d6a5847db0847432f68c19c740fdeb GIT binary patch literal 1172 zcmZ`%Yi|-k6g>l!g=H;|BGuxnY89v!t*ur;5@R$m*=P)gM87RCp;I19c9$mloBW`O zZ4*t5pZ!tBJF^=obem0P=RVH4=iWPi|NZ<8UmhS)&3^edPuH1WisYKl>xcTMuwB!lRUEN|j)hDvBs-S;Zirss%Juht+S za~ZOy07?e=Hx_;8;Nx{M5?+HLS}M0l=S#cGbwrUdVBms=978@#vyLn>NibYAu!OjV zRfhB|QOVFz@N?D-B%xCR^~~Q+hHdVAu-XIaHD}r#YtXVBA??5!^Y#U`l`^MerG{eT ziMvnbN@wR#Zb>ya4cx+Q2F>brO-oLDF4x~gO*YAFS$MXjV4O6Au|1}KOXagcS)pQJ z6ZaT&hY#&T?iZQQ4ytI_ntKL*1=$4WeM$Auz_z5)dffAQG~vD)j=j%n6Q5+xV*`({ zej;je|9=<;-ETe3r}(~hF_RwMM$qR7&em7tTB zGPP4GMms0ZGR58#iqXGVIYGMe3)zn+SUEzTt_8YYI>P1eil|6u4lz2H=!_#x1=i?( zg*=8&fvdPi7Q=Pi2QEIBFdLG4t5Q>#h3R+U2VmnZg@Kx-7U68PP3ZIxt Tc!Irf{L@8zF%(}{Ri6I`k~h;I literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/src/out.txt b/MathExam V2.0/bin/out.txt similarity index 100% rename from Pair_211606390_211606329/src/out.txt rename to MathExam V2.0/bin/out.txt diff --git a/MathExam V2.0/src/Algorithm.class b/MathExam V2.0/src/Algorithm.class new file mode 100644 index 0000000000000000000000000000000000000000..7f949f08ef73b4c71dc59768b4bfa5dd485b5525 GIT binary patch literal 5054 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 literal 0 HcmV?d00001 diff --git a/Pair_211606390_211606329/src/Algorithm.java b/MathExam V2.0/src/Algorithm.java similarity index 76% rename from Pair_211606390_211606329/src/Algorithm.java rename to MathExam V2.0/src/Algorithm.java index 7a361ae..44e40e5 100644 --- a/Pair_211606390_211606329/src/Algorithm.java +++ b/MathExam V2.0/src/Algorithm.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Random; +import java.util.Stack; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -15,13 +16,13 @@ public class Algorithm { private int grade; private int number; private int Symbol; - private int[] flag; private int fg=0; - private String str=""; + private int[] flag; + private String word=""; private BufferedWriter bw; - private LinearTable L=new LinearTable(); - private SopStacks Sop=new SopStacks(); - private SopStacks scale=new SopStacks(); + private List L=new ArrayList(); + private Stack Sop=new Stack(); + private Stack scale=new Stack(); private List list=new ArrayList(); private List problem=new ArrayList(); private List answer=new ArrayList(); @@ -94,67 +95,36 @@ private void CalculationThree() private void Input() { getProblem(); - for(int j=0;j<=L.size();j++) - { - str=str+L.get(j); - list.add(L.get(j)); - } - problem.add(str); - L.remove(); + System.out.println(word); + for(int i=0;i1) - { - if(L.get(fg-1).equals(")")) - { - flag[i]=random.nextInt(4)+1; - } - } - else { - flag[i]=random.nextInt(5); - } - if(flag[i]==0) - { - L.append("("); - fg++; - } - L.append(random.nextInt(100)+1+""); - fg++; - if(flag[i]==0) - { - flag[i]=random.nextInt(4)+1; - fg++; - L.append(fg+1,")"); - } - if(flag[i]==1) - { - L.append("+"); - fg++; - } - else if(flag[i]==2) - { - L.append("-"); - fg++; - } - else if(flag[i]==3) - { - L.append("*"); - fg++; - } - else if(flag[i]==4) - { - L.append(""); - fg++; - } +// flag=new int[Symbol]; +// word=""+random.nextInt(100)+1; +// flag[0]=random.nextInt(5); +// Symbol=random.nextInt(2)+2; +// for(int i=0;i<=Symbol-1;i++) { +// int Symbol1 = random.nextInt(2)+2; +// if(flag[0]%2==0) { +// word=word+"("+symbolStr[Symbol1-1]+random.nextInt(100)+1+")"; +// i++; +// flag[0]=1; +// continue; +// +// +// } +// +// word = word+symbolStr[Symbol1-1]+random.nextInt(100)+1; + word=8+"*"+"("+6+""+3+")"+""; } - } + //һĿ꼶 public static boolean isDigit(String args) { @@ -165,10 +135,10 @@ public static boolean isDigit(String args) //жַǷΪһ private void Transformation() { - for(String s:list) { + for(String s:list) { if(isDigit(s)) { - L.append(s); + L.add(s); } //沨㷨Ա else if(s.equals("(")||s.equals(")")) @@ -181,7 +151,7 @@ else if(s.equals(")")) { while(!Sop.isEmpty()&&!Sop.pop().equals("(")) { - L.append(Sop.pop()); + L.add(Sop.pop()); } if(!Sop.isEmpty()) { Sop.pop(); @@ -191,9 +161,12 @@ else if(s.equals(")")) else { Operator e=new Operator(s); Operator e1=new Operator(Sop.peek()); - while(!Sop.isEmpty()&&Sop.peek().equals("+")||Sop.peek().equals("-")||Sop.peek().equals("*")||Sop.peek().equals("")&&e.compareTo(e1)<=0) + while(!Sop.isEmpty()&&Sop.peek().equals("+") + ||Sop.peek().equals("-") + ||Sop.peek().equals("*") + ||Sop.peek().equals("")&&e.compareTo(e1)<=0) { - L.append(Sop.pop()); + L.add(Sop.pop()); } Sop.push(s); } @@ -201,13 +174,14 @@ else if(s.equals(")")) while(!Sop.isEmpty()) { - L.append(Sop.pop()); + L.add(Sop.pop()); } } //׺Ϊ׺ private String count() { for(int i=0;i<=L.size();i++) { + System.out.println(i+" "+L); if(isDigit(L.get(i))) { scale.push(L.get(i)); } @@ -242,6 +216,7 @@ else if(L.get(i).equals("*")) } } + System.out.println(scale.peek()); return scale.pop(); } //׺ʽ diff --git a/Pair_211606390_211606329/src/Function.class b/MathExam V2.0/src/Function.class similarity index 100% rename from Pair_211606390_211606329/src/Function.class rename to MathExam V2.0/src/Function.class diff --git a/Pair_211606390_211606329/src/LinearTable.class b/MathExam V2.0/src/LinearTable.class similarity index 100% rename from Pair_211606390_211606329/src/LinearTable.class rename to MathExam V2.0/src/LinearTable.class diff --git a/Pair_211606390_211606329/src/LinearTable.java b/MathExam V2.0/src/LinearTable.java similarity index 100% rename from Pair_211606390_211606329/src/LinearTable.java rename to MathExam V2.0/src/LinearTable.java diff --git a/Pair_211606390_211606329/src/MathExam.class b/MathExam V2.0/src/MathExam.class similarity index 100% rename from Pair_211606390_211606329/src/MathExam.class rename to MathExam V2.0/src/MathExam.class diff --git a/Pair_211606390_211606329/src/MathExam.java b/MathExam V2.0/src/MathExam.java similarity index 100% rename from Pair_211606390_211606329/src/MathExam.java rename to MathExam V2.0/src/MathExam.java diff --git a/Pair_211606390_211606329/src/Operator.class b/MathExam V2.0/src/Operator.class similarity index 100% rename from Pair_211606390_211606329/src/Operator.class rename to MathExam V2.0/src/Operator.class diff --git a/Pair_211606390_211606329/src/Operator.java b/MathExam V2.0/src/Operator.java similarity index 100% rename from Pair_211606390_211606329/src/Operator.java rename to MathExam V2.0/src/Operator.java diff --git a/Pair_211606390_211606329/src/SopStacks.class b/MathExam V2.0/src/SopStacks.class similarity index 100% rename from Pair_211606390_211606329/src/SopStacks.class rename to MathExam V2.0/src/SopStacks.class diff --git a/Pair_211606390_211606329/src/SopStacks.java b/MathExam V2.0/src/SopStacks.java similarity index 76% rename from Pair_211606390_211606329/src/SopStacks.java rename to MathExam V2.0/src/SopStacks.java index 5f0b886..84ecbb0 100644 --- a/Pair_211606390_211606329/src/SopStacks.java +++ b/MathExam V2.0/src/SopStacks.java @@ -1,19 +1,22 @@ -import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Stack; //һSOPջ public class SopStacks { private LinkedList list = new LinkedList(); + Stack s = new Stack(); + public void push(String o){ // ջ - list.addFirst(o); + list.addLast(o); + } public String pop(){ // ջ,ָջɾԪز - return list.removeFirst(); + return list.removeLast(); } public String peek(){ // 鿴ջԪ - return list.getFirst(); + return list.getLast(); } public boolean isEmpty(){ // жջǷΪ diff --git a/Pair_211606390_211606329/bin/Algorithm.class b/Pair_211606390_211606329/bin/Algorithm.class deleted file mode 100644 index 581396236155dbf8f85c183210390b6533f56fe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5983 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 Me!rA)i$j(F8_4Us2LJ#7 diff --git a/Pair_211606390_211606329/bin/SopStacks.class b/Pair_211606390_211606329/bin/SopStacks.class deleted file mode 100644 index 6147185e7a7561f01cf0b6e3b480708e7b4bac94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1044 zcmZ{iO>fgc5Qg7P+}cjuBrRzu-?V%sDKw?DTvAm61QL=32ct;k<|M0h8z;7GrxN@o z4j@4*frL2oqY$%eD1dfB*UZ6TmK>>c}yejvqL&+Z#qYG=|Etd*Ze{ zcRXml?H==9%%FK9qN8T3r%5clmMz9Z-nS{{UoZWP8^EypnX7v zi~C|M;sb_!z0o0^7k-}?kjIh*69pY*hH92(0VOP%U|6xRfJKHf`QdLSqb?8Mxm}NZ ztk{0f^*U}SN=!jvpe$iv2BbBaNxQ6QthTHGI5}_Q$Tyip| zw(NlUQh7GPv{z~{@B?b5-njTEB{nSF!Ci6|@{xbSQ!mq}X|Ht~=_rzA&wq=C^2Udxvq3s103yhw!$jz0-|=EmG+4~D@Dzq;E diff --git a/Pair_211606390_211606329/src/Algorithm.class b/Pair_211606390_211606329/src/Algorithm.class deleted file mode 100644 index dc7c340e60425a6c46ee53bb6388b129c4742219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5312 zcmb_g33!v`9sj*a+AmGNUTG;UEff&3ClwT(lpDnrON$i2f(mIH+Gv`@B<1ix=kOXj zoyWAO6RopebEq^0>l})6&MDiRZs628=Q(vwr^6wFzyJFsEot4J$31(V_C5aB`@i4! z%d-a`eH_5Cs?deyxGD`zxY~*D%Y2Q2Yh6gOfIl#BoeNHDbG@K%FmR&_rUm(-KyH%Z zW&>R=x z$@Xz4elAjWifvnEctTj7l+`XlJSD>~#D=Hk$Y09vj9`By!?RBO+KK0!c;1QKPW;A& z-{N;Nyx_v`@uG-&DII^nA7$7hqV|g4UY6lcGQ48oRTmbEQBJ%jt3S&LugmZk8Qw7P zR|9VXk6dX9Q2c5wcpdGU|T_A+iI@tktp%* zy0blNJk@?rpsl(w8ukU+YKU)Mt59HJe8K9uovT-S!`{|qVPDi6CSKJkWYpF90$xve ziKp4`CCuI!3@N17acYcuTF!|OmJ(_4_^FM0=>g;Pq0 z%l+RVWlL$=yrB3yOPo=!eXbos|7b5P^n~X|6yV^+Dv>08w`AG;uHK+VWg%#tb*ot`uweu zm#Wmnr}#{Ue{ol4Vjn(Fn0^?8iGSlt6Z`SLfiFxPz?TLNnm9x|=zi*{W|+7{0Vz}TpImvN zp$tD&0_~sWRv^m8r6rL8i)-&c38lv-gQh*p2s?*^o*9U*Aw;Dd)Hc7l@(%7 zjOtouk+rZ4a^pqFgo-yr=>wTstAW3PxXXC-axBD)z?+D@_DXj~tON*A@WZYaZ2f<`T}45k}8sDM?= z$za`s=@mcA*a&#nN?#bJ#lU4^_q5XR)UdZBxQ1k8SQpiia!_shCcm_Hm;-9WrB+>O zmxdYUb=8YJQKpF;+7j#t>9+M>{5hOaE)RCdmUc;*V-AnRymn8xk%{LGw0LXc4nK^4 zp~Xc0VLHW81Cp6YPPrwmWX?}?UM(z<6tBG&+PPiX0z8bJ3ADDdL809Z1PEa_WPtgdjn}9{hp&i z+#0OqxDHTbVdonP*izodmSyjSt=!GgQQnV~raq+h!r;=$Wm+#>gUfU-O+qtzkvX`` z8eC>`nL`41FLEo~c`=OW!pQPM$9ClRa#5-0f*y>na2IN1UIJMVM~*DthLNdTs6Zb^ zJwzRCSkJK@xg5v9!8r|i$U;6wVI+=30Ux%7sNrrtpRK22H0>^-Psh<8a@>Ln+>R=oM`@#AKSY8Q1LqsKVBilZOy{Y*{VZ?Uu0Sf!g}SUCMNRJFK8&ub zh+)iTWOFK6)&u9l${5Dc^zlvoI6{+5=);k{n3%xXXB5+}0!M2%GHBRQ8*QrR&_@vm#O2>q^4nox(JQx zQuYMNx7o-(#Di@*-!6hOaIu4r(u*Ajpwxck%Crx&1+pJgYZI7#IL!hrpgnvOSy{>N zC;`#_A=t0C!-T4a+tvrsGb+ zvV_Ni2}O*;`Y@f#Y|b+*#9&dD)1}~h$ie4O4xh1;`GlRvbuHg-%h=A&;`_Ck?JUG+ zt2iJHwgX6|sdK40Ut00{O0g_atIBy$ZfXoOQ&#n2mh5Id=IX_4%eqZIB9KpP4|wY;i*_^`7Zi)zE{S0g#iR2ECiK8TnioQetz;n?xW_vk7R>Z@JkN zOc_#t_C&oUQ_n7 zXz`yk1V7fo8(ZSW%}>Hhd=EZ87`XG8_h5g_hgd zsHWp4H6LB70h?75LTV*{e~?7Th3f!DspB(>zQD?ol9J;6Eb26Q0mqYjG84p3!W{R> z+wtwXit-q0rO7UMfIvkJLEVMm4)*3d`R&wA2ENlRcJ;hjEa~S(!8^zG_>nk4GO$;sDp2|MF zKs?ZSBO1-A4~{RTNoi1og;7pM0i zG(c{-SwgSTp{^nHeoZfht5wr6>_YB`JF6wW9`I z)n5t;E!)ZnS=XHvtrw8NAHs_8A|E?@c**T$SALn#)mPY~Ut?c>oe#k`=+`%St-Zx- x?H$JVJ;v~TUT+_g<0C>p=11@g%8Ac(v~r|qZK`})R!LS#u`XG~`j=xjeFePZC4~S0 From eb42fc042f36b7406ea540e39d672b09f4291a2d Mon Sep 17 00:00:00 2001 From: HYOUKACC Date: Tue, 18 Sep 2018 22:32:49 +0800 Subject: [PATCH 091/135] =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=9A=84=E5=AE=8C=E6=95=B4=E7=89=88=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 上传通过测试的所有类; 删除了老的四则运算模块; Co-Authored-By: 1234chenbin <42905147+1234chenbin@users.noreply.github.com> --- Pair_211614331_211614354/ArithemticS.java | 20 ++--- Pair_211614331_211614354/Arithmetic.java | 95 ----------------------- Pair_211614331_211614354/FindBracket.java | 75 ------------------ 3 files changed, 10 insertions(+), 180 deletions(-) delete mode 100644 Pair_211614331_211614354/Arithmetic.java delete mode 100644 Pair_211614331_211614354/FindBracket.java diff --git a/Pair_211614331_211614354/ArithemticS.java b/Pair_211614331_211614354/ArithemticS.java index f800a8b..be3ae83 100644 --- a/Pair_211614331_211614354/ArithemticS.java +++ b/Pair_211614331_211614354/ArithemticS.java @@ -8,7 +8,7 @@ public class ArithemticS extends Operation{ LinkedList shortStack;// ʱ洢 - LinkedList PostfixStack;// ׺ʽ() + LinkedList postFixStack;// ׺ʽ() String problem;// Ŀ LinkedList runAnswer;//Ŀջ String reversedNumber;//Ԫ @@ -18,7 +18,7 @@ public class ArithemticS extends Operation{ public boolean startProblem(String problem) { //problem="( 15 + 25 ) - ( 3 + 8 ) * ( 5 + 4 )"; shortStack=new LinkedList();// ʱջ - PostfixStack=new LinkedList();// ׺ʽջ + postFixStack=new LinkedList();// ׺ʽջ String partNumber;// һԪ @@ -28,7 +28,7 @@ public boolean startProblem(String problem) { partNumber=problemString[i]; if(partNumber.matches("\\d+")) { // ֱӼ׺ʽջ - PostfixStack.push(partNumber); // ֱѹջ׺ջ + postFixStack.push(partNumber); // ֱѹջ׺ջ //System.out.println("ջ--׺ջǰΪ"+PostfixStack); } else { @@ -43,7 +43,7 @@ public boolean startProblem(String problem) { if(shortStack.peek().matches("[\\+\\-\\*\\/]")) { // ջΪͬӼ do { - PostfixStack.push(shortStack.pop()); + postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//󣬱 }while(shortStack.peek().matches("[\\+\\-\\*\\/]") ); @@ -64,7 +64,7 @@ public boolean startProblem(String problem) { if(shortStack.peek().matches("[\\+\\-\\*\\/]")) { // ջΪͬӼ do { - PostfixStack.push(shortStack.pop()); + postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//󣬱 @@ -86,7 +86,7 @@ public boolean startProblem(String problem) { if(shortStack.peek().matches("[\\*\\/]") ) { // ջΪͬӼ do { - PostfixStack.push(shortStack.pop()); + postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//󣬱 }while(shortStack.peek().matches("[\\*\\/]")); @@ -106,7 +106,7 @@ public boolean startProblem(String problem) { if(shortStack.peek().matches("[\\*\\/]") ) { // ջΪͬӼ do { - PostfixStack.push(shortStack.pop()); + postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//ջգҲѭ }while(shortStack.peek().matches("[\\*\\/]") ); @@ -128,7 +128,7 @@ public boolean startProblem(String problem) { partNumber=shortStack.pop(); // ţֱӴʱջеջ //System.out.println("һԪصʱˣ"+shortStack); - PostfixStack.push(partNumber); // ջԪأ׺ջ + postFixStack.push(partNumber); // ջԪأ׺ջ }while(!shortStack.peekFirst().equals("(")); //System.out.println("Ԫصʱˣ"+shortStack); shortStack.pop(); @@ -142,7 +142,7 @@ public boolean startProblem(String problem) { //System.out.println(shortStack); if(!shortStack.isEmpty()) { //ʱջԪȫ׺ջ do { - PostfixStack.push(shortStack.pop()); + postFixStack.push(shortStack.pop()); }while(!shortStack.isEmpty()); // ֱջΪֹ } @@ -156,7 +156,7 @@ public boolean startProblem(String problem) { public boolean solveProblem(){ @SuppressWarnings("rawtypes") - Iterator reversed = PostfixStack.descendingIterator();// + Iterator reversed = postFixStack.descendingIterator();// // print list with descending order runAnswer=new LinkedList( ); diff --git a/Pair_211614331_211614354/Arithmetic.java b/Pair_211614331_211614354/Arithmetic.java deleted file mode 100644 index 6d7aa55..0000000 --- a/Pair_211614331_211614354/Arithmetic.java +++ /dev/null @@ -1,95 +0,0 @@ -import java.util.LinkedList; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class Arithmetic extends Operation{ // - - String sPart = ""; - - public void arithmeticOne(String sPart) { // һĿ - - // (Ŀ)תַѶַ - // صǰĿĴ𰸸 (FindBracket) - - Matcher findNumber = Pattern.compile("(\\d+)").matcher(sPart); // ַе - Matcher findSymbol = Pattern.compile("[\\+\\-\\*\\/]").matcher(sPart); // ַеķ - - LinkedList numberSet = new LinkedList(); // ֵļ - LinkedList symbolSet = new LinkedList(); // ŵļ - - while(findNumber.find()) { // ʼַе - numberSet.add(findNumber.group()); // ҵִּ - } - - while(findSymbol.find()) { // ʼַеķ - symbolSet.add(findSymbol.group()); // ҵķŴڷż - } - - multiplicationAndDivision(numberSet,symbolSet); // ȳ˳Ӽ - addAndSubtract(numberSet,symbolSet); // üӼ - - System.out.println(" 㣺" + answerNumber); - - setAnswerNumber(Integer.valueOf(answerNumber)); // õ˵ǰĿմ - - } - - public static void multiplicationAndDivision(LinkedList numberSet, LinkedList symbolSet) { - - for (int i = 0 ; i < symbolSet.size(); i++) { - //(Ŀ) żϣֻ*/ţΪȳ˳Ӽ - // ƥһţѽּϣȻӷżɾ˷ - - if (symbolSet.get(i).equals("*") || symbolSet.get(i).equals("/")) { // */ʱ - - firstNumber = Integer.valueOf(numberSet.get(i)); // ּеǰλõ - secondNumber = Integer.valueOf(numberSet.get(i + 1)); // ҵڶ - - if (symbolSet.get(i).equals("*")) { // жϵǰżϵķţ˷ - answerNumber = firstNumber * secondNumber; // answerNumber - - } else if (symbolSet.get(i).equals("/")) { // - answerNumber = firstNumber / secondNumber; - - - } - - numberSet.set(i, String.valueOf(answerNumber)); // ּϵĵiλãӴ𰸣ḲǵfirstNumber - numberSet.remove(i + 1); // ɾּеsecondNUmber - symbolSet.remove(i); // ǰѾɣӷżɾȥ˷ţٺڱϴ - i--; // ΪǰλõķѾɾˣϻԶǰ룬ҪһţҪλ-1 - } - } - } - - public static void addAndSubtract(LinkedList numberSet, LinkedList symbolSet) { - - for (int i = 0; i < symbolSet.size(); i++) { // Ӽͬ - - if (symbolSet.get(i).equals("+") || symbolSet.get(i).equals("-")) { - - firstNumber = Integer.valueOf(numberSet.get(i)); // ּϵ - secondNumber = Integer.valueOf(numberSet.get(i + 1)); - - if (symbolSet.get(i).equals("+")) { // ӷ - answerNumber = firstNumber + secondNumber; - - } else if (symbolSet.get(i).equals("-")) { // - - answerNumber = firstNumber - secondNumber; - - - } - - - numberSet.set(i, String.valueOf(answerNumber)); - numberSet.remove(i + 1); // ɾһ - symbolSet.remove(i); - i--; - - - } - } - } - -} diff --git a/Pair_211614331_211614354/FindBracket.java b/Pair_211614331_211614354/FindBracket.java deleted file mode 100644 index 4c77929..0000000 --- a/Pair_211614331_211614354/FindBracket.java +++ /dev/null @@ -1,75 +0,0 @@ -import java.util.LinkedList; - -public class FindBracket extends Operation{ // ѽѽţ - - static int sRight = 0; // ¼ŵλ - static int sLeft = 0; // ¼ŵλ - static String sPart = ""; // һĿ֮Ŀ - static LinkedList sInitialProblemSet; // ʼĿϣţԺ󷽱ɾݣ - static String sProblem; // Ŀַ - - - - public void findOne(String sProblem) { // ҵһСţ - - LinkedList sInitialProblemSet = new LinkedList(); // ʼĿԺ󷽱ɾݣ - Arithmetic sendToArithmetic = new Arithmetic(); // ڰҳݴ - - - for(int i = 0; i < sProblem.length(); i++) { // ѽܵĿת浽ʼĿļ - sInitialProblemSet.add(String.valueOf(sProblem.charAt(i))); - } - - for(int i = 0; i < sInitialProblemSet.size(); i++) { // ϣҵһ - - - if( sInitialProblemSet.get(i).equals(")")) { // ǰλʱ - sRight = i; // ¼ŵλ - - for(int j = sRight-1; j >= 0; j--) { // ӵǰǰҵһ - - - if(sInitialProblemSet.get(j).equals("(")) { - sInitialProblemSet.set(j, "!"); // ı־ - sLeft = j; // ¼λ - break; - } - - } - - - for( int z = sLeft + 1; z < sRight; z++) // ѭҳ֮ - { - sPart = sPart + sInitialProblemSet.get(z); // ҳƴΪĿһ - - } - - - sendToArithmetic.arithmeticOne(sPart); // sPartΪ - sInitialProblemSet.set( sLeft, String.valueOf(getAnswerNumber()) ); // ѴõУΪһɾԪ׼ - - for(int m = 1; m <= sRight-sLeft ; m++){ - - sInitialProblemSet.remove(sLeft + 1); - - } - - i = i - ( sRight - sLeft ); // ɾsRight-sLeftԪأiλҲƶ - - // ɾiλ - - }//ǰλʱ - - sPart=""; // Ϊƴַÿҵһ󣬾Ҫַ - }// ҵ - - for(int i = 0; i < sInitialProblemSet.size(); i++) { // ŵʽӴ - sPart = sPart + sInitialProblemSet.get(i); - } - - sendToArithmetic.arithmeticOne(sPart); // ŵʽӴ - - }//findOne - - -} From e75edd3802f2266fef4028593921cb9485254aa8 Mon Sep 17 00:00:00 2001 From: nanxiao7ian <42741251+nqh584106761@users.noreply.github.com> Date: Tue, 18 Sep 2018 22:40:42 +0800 Subject: [PATCH 092/135] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用 -n -grade 以及 -grade -n 都可输入 --- Pair_211606374_211606357/MathExamV2_6374.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Pair_211606374_211606357/MathExamV2_6374.java b/Pair_211606374_211606357/MathExamV2_6374.java index ffefba0..bc6c3e2 100644 --- a/Pair_211606374_211606357/MathExamV2_6374.java +++ b/Pair_211606374_211606357/MathExamV2_6374.java @@ -19,7 +19,18 @@ public static void main(String[] args) throws IOException { Scanner input=new Scanner(System.in); int flag=0,flag2=0; int []c =new int [args.length] ; // һ - + if(args[0].equals("-n")) + { + c[0] = Integer.parseInt(args[1]); + c[1] = Integer.parseInt(args[3]); + flag2=1; + } + else if(args[0].equals("-grade")) + { + c[0] = Integer.parseInt(args[3]); + c[1] = Integer.parseInt(args[1]); + flag2=2; + } String[] timu=new String[c[0]+1]; // Ŀ String[] daan=new String[c[0]+1]; String huanhang="\r\n"; // windowsĻУcmdзۿ From 5887fb0c211ea52ab2ac3b851734c17cb701de29 Mon Sep 17 00:00:00 2001 From: Wzx-Erica <962524436@qq.com> Date: Tue, 18 Sep 2018 23:00:29 +0800 Subject: [PATCH 093/135] =?UTF-8?q?=E7=AC=AC1=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MathExam V2.0/bin/Algorithm.class | Bin 5689 -> 0 bytes MathExam V2.0/bin/out.txt | 0 MathExam V2.0/src/Algorithm.class | Bin 5054 -> 0 bytes MathExam V2.0/src/Function.class | Bin 388 -> 0 bytes MathExam V2.0/src/LinearTable.class | Bin 1069 -> 0 bytes MathExam V2.0/src/MathExam.class | Bin 388 -> 0 bytes MathExam V2.0/src/Operator.class | Bin 1534 -> 0 bytes MathExam V2.0/src/SopStacks.class | Bin 855 -> 0 bytes .../.classpath | 2 +- .../.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 0 Pair_211606390_211606329/bin/Algorithm.class | Bin 0 -> 5899 bytes .../bin/LinearTable.class | Bin .../bin/MathExam.class | Bin .../bin/Operator.class | Bin .../bin/SopStacks.class | Bin .../src/Algorithm.java | 12 ++++++++++++ .../src/LinearTable.java | 0 .../src/MathExam.java | 0 .../src/Operator.java | 0 .../src/SopStacks.java | 0 21 files changed, 14 insertions(+), 2 deletions(-) delete mode 100644 MathExam V2.0/bin/Algorithm.class delete mode 100644 MathExam V2.0/bin/out.txt delete mode 100644 MathExam V2.0/src/Algorithm.class delete mode 100644 MathExam V2.0/src/Function.class delete mode 100644 MathExam V2.0/src/LinearTable.class delete mode 100644 MathExam V2.0/src/MathExam.class delete mode 100644 MathExam V2.0/src/Operator.class delete mode 100644 MathExam V2.0/src/SopStacks.class rename {MathExam V2.0 => Pair_211606390_211606329}/.classpath (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/.project (89%) rename {MathExam V2.0 => Pair_211606390_211606329}/.settings/org.eclipse.jdt.core.prefs (100%) create mode 100644 Pair_211606390_211606329/bin/Algorithm.class rename {MathExam V2.0 => Pair_211606390_211606329}/bin/LinearTable.class (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/bin/MathExam.class (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/bin/Operator.class (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/bin/SopStacks.class (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/src/Algorithm.java (96%) rename {MathExam V2.0 => Pair_211606390_211606329}/src/LinearTable.java (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/src/MathExam.java (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/src/Operator.java (100%) rename {MathExam V2.0 => Pair_211606390_211606329}/src/SopStacks.java (100%) diff --git a/MathExam V2.0/bin/Algorithm.class b/MathExam V2.0/bin/Algorithm.class deleted file mode 100644 index 56348f8a2c67699a3eb5c9660e310a26a77c1a04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5689 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 ZaRkecU|B{{M$y!9BvLVr%WPu$e*mkocQpV2 diff --git a/MathExam V2.0/bin/out.txt b/MathExam V2.0/bin/out.txt deleted file mode 100644 index e69de29..0000000 diff --git a/MathExam V2.0/src/Algorithm.class b/MathExam V2.0/src/Algorithm.class deleted file mode 100644 index 7f949f08ef73b4c71dc59768b4bfa5dd485b5525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5054 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 diff --git a/MathExam V2.0/src/Function.class b/MathExam V2.0/src/Function.class deleted file mode 100644 index 38c7f7835be55d731676de8f347ac070e3f4d97e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmbVIO-sW-5Pg%ct+BOLt2Ync(i|)XZ;Bv7FBUyiD&lDqL)?;VAZ+|!o(c;70DqJ? z8;~BnIft3IkN0MF=Ii_Y6Tlh9A$;rz3_~~=3G52&5rPY)mANFi(PT;RuIuNVFq|u$ z-?mknH}^6vnei&AG~qCMny=)moR(4-(}ii2F3znnT-0roc?x) y8w36(=b$4U#v!&DTj^YuW6g_VSm;%#+&{i$hmbM~LEPixX(xfplA*s5c(dce~37JZPOot}A_Mf+@t*{X)*T(m* z)$3Fnp6m2FJG+F$YEIAbb`|tu=@Dn&?Y9X|?K?gD!SJYQy9ZXY%S_A~4D4Q8VWD__ zkRTU}^?w&)9oyUMb`>(kQb-f|3+Iym5vp^Hu-Ahj(?+QK*m*&fG*PEk*FNf>@H*S@ ztk$#p)*vvEX!M6}%f9D`qqKOm#{RZsl_oAAqmVsY>z?ac&tD+b zFUsUgQ+!_3&ojlFhBOR*(=20_nF@4%0qOE7RQVIMC#TRqAo9+~&NIpb1)_)`#?A#S z2FN1wQZdW#5!oCes^M`MHA59~A9Znp(#aU0a+MKcI>M-=uU+91E|Wo2E)y*(qr&x; z9||H(1cAoJ)|Pn7;R>Tb3W2;if#gOoG8dwk=JXv3FH;#1Ih$9@=~eSzrKk>&6k|v9zmHY3SHv4O8Ql1;?RCTQ{R27dB1(_ EH-@&yCIA2c diff --git a/MathExam V2.0/src/MathExam.class b/MathExam V2.0/src/MathExam.class deleted file mode 100644 index 975a23a5a572d7dfc8955109779d82b13c2c92f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmbVIO-sW-6r8vDso}*iOlXDvqqS z4Icqv<2=vGO4swk61#-fuZqxHXWk`?bXF6tqrZdx#|)-8gv-m@BfvW&;M(Hb0e9l= z$rb300Y8(g-;jcFh)u>;dfb?Ry$^^->BQ2Fr58&-Ucq@-TkYp^9{Np4o3TLW2O=0y ATL1t6 diff --git a/MathExam V2.0/src/Operator.class b/MathExam V2.0/src/Operator.class deleted file mode 100644 index 2c49b30e583e191f09ca0050a9b4f6797e683ab8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1534 zcmZ`&S##206g?kMvXGV*t=hV@R;@r(+_z$_c2SfrGt@fzWQq}^2pEDhKIs4O7x?0f zTWfX3aeVYgIi4>KB~+bEzRA7!+~u76<=5}8-vOM(l7gIylR8e}v<87Q2|CXyIIkm) z3(|8@#U&M&RZQsEfxJ%F6?sf5xT+&5J#kFQv}+2kE0`9DEfw#S1X9H()(b0FwQ7}I z$#b1rWkR5Lx?XE~R?SwR4`*;7IOynv4_gBUY#6zO)Nzo(m4^D%WXP{h1}1uP2mcgk+E5!l&rb?9^oC%$ku5MhwKD1xE$v0ldEK%5x>qT zdJvNfqUR7jKM^Gocx|R4YlyzVaP|XYsmKO;BKU#$8kEma-{OIp(n4`7ls3 zJw9rt5`KKQUq8_ufA7zBnCCb&o;!ICVw8L`p;y)xkhS~B733ZxS|fWQ?`WXI*jC;rs3zZs@3!*d#IQ&IHR3Y? z{$PODvgQwnHS}$V$Dkq$Gk`b!*1(N#NZwmV|3}1pnPXotuz^$*ccrOyn|e=IG|@3T hoQA0a+4AY7N`2&$#0B(Y4g;KUbLYo!oR|ns`~i|XIfgc6r4@mI8IC(AT6JTlu}6Cl7Pf5RWFE2ND&;2kl^MdR@f%7Eq_#k-^2kV zXeE#kXMPl7o)e^|4VSmOZ)fJcdAq;=eE$jHDV|hdqhVsJf&v;As<tf-%uas<6>J@{YYumg-5Tr-QLS>@nX}uv|R~yflk_1!pN}f0mti!KmY= zu?|Mv0}@O7I?(BXLb2I;!#dBxAtlx*?!U~YeLsHf^(V|2QI@<{SZ`jG5neG0BZYdi zb@5ubzCTtlb@F@~r62NI?|2^hsjELyoV8ylRNOF&2mYa!daG_2xv4i8CvCB8<1((W zz%u(bE@9QiF7|9ZLR+Dhqs}T<5gz%P~;A% zIj2z04;0>>qWBHQmz-N?l-~iYz{r{F*qAeSn3o&N`3htA1S{t$Wt3qNd=1y)6gv&BB2%7Kus(5rR=&>DZEP|wL08VB LrSCgbDB$j2nWvmH diff --git a/MathExam V2.0/.classpath b/Pair_211606390_211606329/.classpath similarity index 100% rename from MathExam V2.0/.classpath rename to Pair_211606390_211606329/.classpath index 51a8bba..fceb480 100644 --- a/MathExam V2.0/.classpath +++ b/Pair_211606390_211606329/.classpath @@ -1,6 +1,6 @@ - + diff --git a/MathExam V2.0/.project b/Pair_211606390_211606329/.project similarity index 89% rename from MathExam V2.0/.project rename to Pair_211606390_211606329/.project index 52ab904..6bb73d6 100644 --- a/MathExam V2.0/.project +++ b/Pair_211606390_211606329/.project @@ -1,6 +1,6 @@ - MathExam V2.0 + Pair_211606390_211606329 diff --git a/MathExam V2.0/.settings/org.eclipse.jdt.core.prefs b/Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from MathExam V2.0/.settings/org.eclipse.jdt.core.prefs rename to Pair_211606390_211606329/.settings/org.eclipse.jdt.core.prefs diff --git a/Pair_211606390_211606329/bin/Algorithm.class b/Pair_211606390_211606329/bin/Algorithm.class new file mode 100644 index 0000000000000000000000000000000000000000..3b5b4ee09f3c3367b5a7f1396500e150b37985ed GIT binary patch literal 5899 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 Dv&5Eh literal 0 HcmV?d00001 diff --git a/MathExam V2.0/bin/LinearTable.class b/Pair_211606390_211606329/bin/LinearTable.class similarity index 100% rename from MathExam V2.0/bin/LinearTable.class rename to Pair_211606390_211606329/bin/LinearTable.class diff --git a/MathExam V2.0/bin/MathExam.class b/Pair_211606390_211606329/bin/MathExam.class similarity index 100% rename from MathExam V2.0/bin/MathExam.class rename to Pair_211606390_211606329/bin/MathExam.class diff --git a/MathExam V2.0/bin/Operator.class b/Pair_211606390_211606329/bin/Operator.class similarity index 100% rename from MathExam V2.0/bin/Operator.class rename to Pair_211606390_211606329/bin/Operator.class diff --git a/MathExam V2.0/bin/SopStacks.class b/Pair_211606390_211606329/bin/SopStacks.class similarity index 100% rename from MathExam V2.0/bin/SopStacks.class rename to Pair_211606390_211606329/bin/SopStacks.class diff --git a/MathExam V2.0/src/Algorithm.java b/Pair_211606390_211606329/src/Algorithm.java similarity index 96% rename from MathExam V2.0/src/Algorithm.java rename to Pair_211606390_211606329/src/Algorithm.java index 44e40e5..c9cbb23 100644 --- a/MathExam V2.0/src/Algorithm.java +++ b/Pair_211606390_211606329/src/Algorithm.java @@ -43,7 +43,19 @@ else if(args0.equals("-grade")) if(grade==3) { CalculationThree(); } + if(grade==2) { + CalculationTwo(); + } + if(grade==1) { + CalculationOne(); + } } + private void CalculationOne() { + + } + private void CalculationTwo() { + + } private void CalculationThree() { File file=new File("out.txt"); diff --git a/MathExam V2.0/src/LinearTable.java b/Pair_211606390_211606329/src/LinearTable.java similarity index 100% rename from MathExam V2.0/src/LinearTable.java rename to Pair_211606390_211606329/src/LinearTable.java diff --git a/MathExam V2.0/src/MathExam.java b/Pair_211606390_211606329/src/MathExam.java similarity index 100% rename from MathExam V2.0/src/MathExam.java rename to Pair_211606390_211606329/src/MathExam.java diff --git a/MathExam V2.0/src/Operator.java b/Pair_211606390_211606329/src/Operator.java similarity index 100% rename from MathExam V2.0/src/Operator.java rename to Pair_211606390_211606329/src/Operator.java diff --git a/MathExam V2.0/src/SopStacks.java b/Pair_211606390_211606329/src/SopStacks.java similarity index 100% rename from MathExam V2.0/src/SopStacks.java rename to Pair_211606390_211606329/src/SopStacks.java From b55a260bff1bd8f3e4de9924ca36b9fff19737da Mon Sep 17 00:00:00 2001 From: 228353317 <42884536+228353317@users.noreply.github.com> Date: Tue, 18 Sep 2018 23:03:15 +0800 Subject: [PATCH 094/135] =?UTF-8?q?=E5=B0=8F=E5=AD=A6=E7=94=9F=E5=87=BA?= =?UTF-8?q?=E9=A2=98=E5=99=A8=EF=BC=88=E6=94=B9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 适用三年级以内 --- Pair_211606320_211506332/MathExam.java | 281 +++++++++++++++++++++++++ Pair_211606320_211506332/TS.java | 9 + 2 files changed, 290 insertions(+) create mode 100644 Pair_211606320_211506332/MathExam.java create mode 100644 Pair_211606320_211506332/TS.java diff --git a/Pair_211606320_211506332/MathExam.java b/Pair_211606320_211506332/MathExam.java new file mode 100644 index 0000000..9b6ef2b --- /dev/null +++ b/Pair_211606320_211506332/MathExam.java @@ -0,0 +1,281 @@ +/** + * + * + * + * + */ + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Random; +import java.util.Scanner; +import java.util.Stack; + +public class MathExam { +// + static char sign[]= {'+','-','*','/'}; +// Ŀ + static List list=new ArrayList(); +// Ŵ + static List answer=new ArrayList(); +// Ŀ + static int N=0; + static int M=1; + static int O=1; + static double sum1,sum2; + + static Random random=new Random(); + + static List RPN; +// һstack¼ + static Stack ops = new Stack(); +// һ³ʼ +// һopȼ + public static int priorityInfo(String symbol) { + HashMap precedence = new HashMap<>(); + precedence.put("(", 2); + precedence.put(")", 2); + precedence.put("+", 0); + precedence.put("-", 0); + precedence.put("*", 1); + precedence.put("/", 1); + return precedence.get(symbol); + } + public static boolean isNumber(String s) { + if (s.equals("(") || s.equals(")") || s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) + return false; + return true; + } + + public static double eval(String op, String val1, String val2) { +// if (op.equals("+")) return Integer.parseInt(val1) + Integer.parseInt(val2); +// if (op.equals("-")) return Integer.parseInt(val1) - Integer.parseInt(val2); +// if (op.equals("/")) return Integer.parseInt(val1) / Integer.parseInt(val2); +// if (op.equals("*")) return Integer.parseInt(val1) * Integer.parseInt(val2); + if (op.equals("+")) return Double.parseDouble(val1) + Double.parseDouble(val2); + if (op.equals("-")) return Double.parseDouble(val1) - Double.parseDouble(val2); + if (op.equals("/")) return Double.parseDouble(val1) / Double.parseDouble(val2); + if (op.equals("*")) return Double.parseDouble(val1) * Double.parseDouble(val2); + + throw new RuntimeException("Invalid operator"); + } +// 潫׺ʽתΪ׺ʽ + /** + * ׺ʽɺ׺ʽ + * + * @param in + */ + + public static void fixPosition(String[] in) { + for (int i = 0; i < in.length; i++) { + if (isNumber(in[i])) { + //,ֱӽ + RPN.add(in[i]); + } else { + + if (ops.isEmpty()) { + ops.push(in[i]); + } else if (in[i].equals("(")) { + ops.push(in[i]); + } else if (in[i].equals(")")) { + //ųջ + bracketsPop(); + } else { + //ҪӵȼСڻߵջȼ ջȼջ µԪջ,Ļ µԪؽջ + int newpriority = priorityInfo(in[i]); + int stackTopPriority = priorityInfo(ops.peek()); + //ҪųջԪز + if (stackTopPriority != 2 && newpriority <= stackTopPriority) { + RPN.add(ops.pop()); + } + ops.push(in[i]); + } + } + } + //forѭִϣop stackʣopƵlist + while (!ops.isEmpty()) + RPN.add(ops.pop()); + } + private static void bracketsPop() { + + while (!ops.peek().equals("(")) { + RPN.add(ops.pop()); + } + //Ҫϲ"("ȥ + ops.pop(); + } + private static void calculate() { + for (int i = 0; i < RPN.size(); i++) { + if (!isNumber(RPN.get(i))) { + //Ҫǰֽ, + try { + double newTmp = eval(RPN.get(i), RPN.get(i - 2), RPN.get(i - 1)); + RPN.remove(i); + RPN.remove(i - 1); + RPN.remove(i - 2); + RPN.add(i - 2, newTmp + ""); + if (RPN.size() == 1) { +// System.out.println(RPN.get(0)); + sum1=Double.parseDouble(RPN.get(0)); + return; + } + } catch (Exception e) { + // TODO: handle exception + sum1=Double.NEGATIVE_INFINITY; + return; + } + break; + } + } + calculate(); + } + + +// ɲ + public static int createNumber(int S) { +// RandomnextInt +// SʾķΧ + return random.nextInt(S); + } +// Ŀ + public static void createProblem() { +// pro_numĿͷϣַlist +// ͨ沨㷨ĿĽanswer +// ͨNƳĿ + String str; + for(int i=0;i2 && createNumber(5)==0) { + str=brackets(); + }else { + str=nubrackets(); + } + RPNcalculate(str); + sum2=(int)sum1; + if(sum1==sum2 && sum1>=0.0) { + break; + } + } + list.add(str); + answer.add((int)sum1); +// System.out.println(str+"= "+(int)sum1); + } + createFile("out"); + waterFile("out"); + } + public static String brackets() { + int i; + int size=random.nextInt(1)+2; + int start=random.nextInt(3); + String str=""; + for(i=0;i=start+size) { + str=str+sign[random.nextInt(1)+2]+" "; + }else { + str=str+sign[random.nextInt(4)]+" "; + } + + } + str=str+random.nextInt(100)+" "; + if(i==start+size) { + str+=") "; + } + +// System.out.println(str); + return str; + } + public static String nubrackets() { + int T=random.nextInt(3)+2; + if(O<3) { + T=1; + } + String str=""; + for(int i=0;i Date: Tue, 18 Sep 2018 23:31:39 +0800 Subject: [PATCH 095/135] MathExam_V2.0.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /* * 在原有的V2.0.0版本上加入三年级四则混合运算题 * 1.实现了三年级题目和答案添加序列号 * ps:还未解决除数为0和差值为负数的bug, * coding : GBK * MathExam_V2.0.7 */ --- Pair_211606335_211606318/MathExam.java | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Pair_211606335_211606318/MathExam.java b/Pair_211606335_211606318/MathExam.java index b2215ec..543f557 100644 --- a/Pair_211606335_211606318/MathExam.java +++ b/Pair_211606335_211606318/MathExam.java @@ -21,12 +21,10 @@ public class MathExam { /* * ԭеV2.0.0汾ϼ꼶 - * 1.ʵ˵ȳ沨㷨 - * 2. ʵ꼶Ŀ - * 3.ʵ꼶Ŀʹ𰸵д롾ûš + * 1.ʵ꼶Ŀʹк * psδΪ0ͲֵΪbug * coding GBK - * MathExam_V2.0.6 + * MathExam_V2.0.7 */ int firstNumber, secondNumber; int symbol; //ж @@ -187,7 +185,7 @@ private static int Calculation(int n,int m,String operator){ //ȳ㷨[׺ʽת׺ʽ] private void toPostfixExpression(String str_mix){ int len = str_mix.length(); - char c; + char c,nextChar; String sc; for (int i = 0 ; i <= len-1 ; i++) { c = str_mix.charAt(i); @@ -298,13 +296,13 @@ private void fourMixed() { // TODO Auto-generated method stub int whereBrackets = (int)(Math.random()); //Ϊλ int howManyNum = (int)(Math.random()*3+3); - + StringBuilder bf_sequence; for (int j = 0; j < count; j++) { - int n1 = (int)(Math.random()*10+1); - int n2 = (int)(Math.random()*10+1); - int n3 = (int)(Math.random()*10+1); - int n4 = (int)(Math.random()*10+1); - int n5 = (int)(Math.random()*10+1); + int n1 = (int)(Math.random()*10); + int n2 = (int)(Math.random()*10); + int n3 = (int)(Math.random()*10); + int n4 = (int)(Math.random()*10); + int n5 = (int)(Math.random()*10); int c1 = (int)(Math.random()*4); int c2 = (int)(Math.random()*4); int c3 = (int)(Math.random()*4); @@ -313,16 +311,18 @@ private void fourMixed() { if(howManyNum==3) { str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3; toPostfixExpression(str_ArithmeticProblem[j]); - str_MathAnswer[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " = " + reversePolish(); + str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " = " + reversePolish(); } else if(howManyNum==4) { str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4; toPostfixExpression(str_ArithmeticProblem[j]); - str_MathAnswer[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " = " + reversePolish(); + str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " = " + reversePolish(); }else if(howManyNum==5) { str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " " + cs[c4] + " " + n5; toPostfixExpression(str_ArithmeticProblem[j]); - str_MathAnswer[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " " + cs[c4] + " " + n5 + " = " + reversePolish(); + str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " " + cs[c4] + " " + n5 + " = " + reversePolish(); } + bf_sequence = new StringBuilder("( " + (j+1) + " ) ") ; //Ŀк + str_ArithmeticProblem[j] = bf_sequence.append(str_ArithmeticProblem[j]).toString(); } } From 9f4130dc9a63c0ccfb236fb22c7002721df4cc4b Mon Sep 17 00:00:00 2001 From: AloneQian <42911115+AloneQian@users.noreply.github.com> Date: Tue, 18 Sep 2018 23:32:43 +0800 Subject: [PATCH 096/135] Add files via upload --- Pair_211606375_211606351/MathExam6375.java | 200 +++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 Pair_211606375_211606351/MathExam6375.java diff --git a/Pair_211606375_211606351/MathExam6375.java b/Pair_211606375_211606351/MathExam6375.java new file mode 100644 index 0000000..d8c0dc0 --- /dev/null +++ b/Pair_211606375_211606351/MathExam6375.java @@ -0,0 +1,200 @@ +package niu; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.Date; +import java.util.Random; +import java.text.SimpleDateFormat; + +import java.util.Scanner; +import java.util.Stack; + + +public class MathExam6375 { + + private static int x,y,f; + private static String[] str ; + private static String rem; + + public static void main(String args[]) throws FileNotFoundException, InterruptedException { + // TODO Auto-generated method stub + + //String[] תΪ int +// int i =Integer.valueOf(args[0]).intValue(); +// int g =Integer.valueOf(args[1]).intValue(); + //ļ + Scanner in = new Scanner(System.in); + int i = in.nextInt(); + int g = in.nextInt(); + File file = new File("out6375.txt"); + PrintStream ps = new PrintStream(file); + System.setOut(ps); + choiceGrade(i, g); + + } + + //һ꼶ӷ + public static void gradeOne( int n ) { + str = new String[n]; + for (int i = 0; i < n ; i++) { + x = (int)(Math.random()*100); + y = (int)(Math.random()*100); + f = (int)(Math.random()*2); + // жϼӷͼ 0Ϊӷ + if ( f == 0) { + System.out.println("(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " " + (x+y); + } + else { + if (x-y < 0) { + System.out.println("(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " " + (y-x); + } + else { + System.out.println("(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " " + (x-y); + } + } + } + System.out.println("--------׼--------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606375 ţǬ " +sdf.format(new Date())); + } + + //꼶˷ + public static void gradeTwo( int n ) { + str = new String[n]; + for (int i = 0; i < n; i++) { + x = new Random().nextInt(10) + 1; + y = new Random().nextInt(10) + 1; + f = (int)(Math.random()*2); + + if ( f == 0 && y!=0 && x!=0) { + System.out.println("(" + (i+1) + ")" +" " + x + "*" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "*" + y + " " + "=" + " " + (x*y); + } + else { + if (x-y < 0 ) { + System.out.println("(" + (i+1) + ")" +" " + y + "/" + x + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + y + "/" + x + " " + "=" + " " + (y/x) + judgementRemainder(y,x); + } + else { + System.out.println("(" + (i+1) + ")" +" " + x + "/" + y + " " + "=" + " "); + str[i] = "(" + (i+1) + ")" +" " + x + "/" + y + " " + "=" + " " + (x/y) + judgementRemainder(x,y); + } + } + } + System.out.println("--------׼--------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606375 ţǬ " +sdf.format(new Date())); + } + + //ѡ꼶 + public static void choiceGrade( int n , int g ) { + if ( g == 1 ) { + gradeOne(n); + } + else if ( g == 2) { + gradeTwo(n); + } + else if ( g == 3) { + GradeThree(n); + } + else { + System.out.println("Աޣ꼶δ"); + } + } + + //ж + public static String judgementRemainder( int x , int y ) { + if( (x%y) == 0) { + + rem = " "; + } + else { + rem = "..." + (x%y) + " "; + } + return rem; + } + + private static String SymbolicJudgment(int f) { + // TODO Զɵķ + if (f == 0) { + rem = "+"; + } + else{ + rem = "-"; + } + return rem; + } + + //沨ʽ ׺ ڻ + private static String ReversePolish (String[] strArr){ + String str = "+-*/"; + Stack stack = new Stack(); + //еÿһԪ + for(String s : strArr){ + //,ջ + if(!str.contains(s)){ + stack.push(s); + } + else{ + int a = Integer.valueOf(stack.pop()); + int b = Integer.valueOf(stack.pop()); + switch(s){ + case "+" : + stack.push(String.valueOf(a+b)); + break; + case "-" : + stack.push(String.valueOf(a-b)); + break ; + case "*" : + stack.push(String.valueOf(a*b)); + break; + case "/" : + stack.push(String.valueOf(a/b)); + break ; + } + } + } + return stack.pop(); + } + + //꼶 + private static void GradeThree( int n ) { + // TODO Զɵķ + str = new String[n]; + + for (int i = 0; i < n; i++) { + x = (int)(Math.random()*10); + y = (int)(Math.random()*10); + int z = (int)(Math.random()*10); + f = (int)(Math.random()*2); + int h = (int)(Math.random()*2); + //int תΪ String + String x1 = String.valueOf(x); + String y1 = String.valueOf(y); + String z1 = String.valueOf(z); + + String [] strArr = { x1,y1,z1,SymbolicJudgment(h),SymbolicJudgment(f) }; + System.out.println("(" + (i+1) + ")" +" " + z1 + " " + SymbolicJudgment(h) + " " + y1 + " " + SymbolicJudgment(f) + " " + x1 + " = " ); + str[i] = "(" + (i+1) + ")" +" " + z1 +" " + SymbolicJudgment(h) +" " + y1 +" " + SymbolicJudgment(f) +" " + x1 + " = " + ReversePolish(strArr); + } + System.out.println("--------׼---------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606375 ţǬ " +sdf.format(new Date())); + } +} \ No newline at end of file From 2114d46808e721390cb075728c5b1562b2a889f5 Mon Sep 17 00:00:00 2001 From: wzx-Erica <962524436@qq.com> Date: Tue, 18 Sep 2018 23:34:46 +0800 Subject: [PATCH 097/135] =?UTF-8?q?=E7=AC=AC2=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606390_211606329/src/Algorithm.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Pair_211606390_211606329/src/Algorithm.java b/Pair_211606390_211606329/src/Algorithm.java index c9cbb23..a524cfc 100644 --- a/Pair_211606390_211606329/src/Algorithm.java +++ b/Pair_211606390_211606329/src/Algorithm.java @@ -48,14 +48,14 @@ else if(args0.equals("-grade")) } if(grade==1) { CalculationOne(); - } + }//ݲж꼶 } private void CalculationOne() { - } + }//һ꼶ļ㷨 private void CalculationTwo() { - } + }//꼶ļ㷨 private void CalculationThree() { File file=new File("out.txt"); From a08b5510dda941521632bd2221d19be04d1683a9 Mon Sep 17 00:00:00 2001 From: 228353317 <42884536+228353317@users.noreply.github.com> Date: Tue, 18 Sep 2018 23:36:25 +0800 Subject: [PATCH 098/135] Add files via upload --- Pair_211606320_211506332/MathExam.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pair_211606320_211506332/MathExam.java b/Pair_211606320_211506332/MathExam.java index 9b6ef2b..98df026 100644 --- a/Pair_211606320_211506332/MathExam.java +++ b/Pair_211606320_211506332/MathExam.java @@ -31,7 +31,7 @@ public class MathExam { static Random random=new Random(); - static List RPN; + static List RPN = new ArrayList(); // һstack¼ static Stack ops = new Stack(); // һ³ʼ From 0d4cc43897b5e1b2ea78f7bb2ee9a13501daf4b7 Mon Sep 17 00:00:00 2001 From: jiowww <42857618+jiowww@users.noreply.github.com> Date: Tue, 18 Sep 2018 23:41:21 +0800 Subject: [PATCH 099/135] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第三次commit --- Pair_211606374_211606357/MathExamV2_6374.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Pair_211606374_211606357/MathExamV2_6374.java b/Pair_211606374_211606357/MathExamV2_6374.java index bc6c3e2..97b42dc 100644 --- a/Pair_211606374_211606357/MathExamV2_6374.java +++ b/Pair_211606374_211606357/MathExamV2_6374.java @@ -4,6 +4,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.Scanner; import java.util.Stack; import java.util.concurrent.SynchronousQueue; @@ -342,5 +344,8 @@ else if(c[1]==3) { u.write(xr); System.out.println("ĿѾдout.txt"); } + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + String time = sdf.format(new Date()); + System.out.println("Զ"+time); + } } -} \ No newline at end of file From 08030cfe9df060d85d4d667d9c2888c497004c7d Mon Sep 17 00:00:00 2001 From: cielpupu <923070543@qq.com> Date: Tue, 18 Sep 2018 23:45:13 +0800 Subject: [PATCH 100/135] =?UTF-8?q?=E7=AC=AC2=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606349_211606369/MathExam_02.java | 114 ++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 Pair_211606349_211606369/MathExam_02.java diff --git a/Pair_211606349_211606369/MathExam_02.java b/Pair_211606349_211606369/MathExam_02.java new file mode 100644 index 0000000..dd0f8df --- /dev/null +++ b/Pair_211606349_211606369/MathExam_02.java @@ -0,0 +1,114 @@ +package com.java6369.lesson02; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + +public class MathExam_02{ + private static final String[] fuhao = {"+", "-"," * ", " / "};//ʹõ + static StringBuffer Topic = new StringBuffer(); //ѭнַƴӣƴĿʹ + static StringBuffer Answer= new StringBuffer(); + private static int i; + +public static void main(String[] args) throws IOException {//׳쳣 + int n = Integer.parseInt(args[0]); //й + int grade = Integer.parseInt(args[1]);//Ŀ + if (args.length == 0) { + //һڶ꼶IJ + throw new IllegalArgumentException("꼶"); + } + if(args.length == 1) { + throw new IllegalArgumentException("2"); + } + String str = args[0];//ĵ1 + if(str.length()>=3) { + throw new IllegalArgumentException("ֻ2"); + } + for(i=0;(str.charAt(i) < '0' || str.charAt(i++) > '9') && i < str.length();i++) { + //λΪiַ0~9ʾ֣ + throw new IllegalArgumentException("Ҫ"); + } + n = Integer.parseInt(args[0]);//ѺתΪintͽֵ + Exam369(n,grade); + writeTo(); + System.out.println("Ŀ鿴out.txt");//out.txt +} + private static void Exam369(int n,int grade) { + int result = 0; + int num1,num2,sub; + int yushu=0; + for (int i = 1; i <= n ; i++) { + num1 = (int) (Math.random() * 101); + num2 = (int) (Math.random() * 101); + sub = (int) (Math.random() *2); + String symbol = fuhao[sub]; + switch (symbol) { + case "+": + result = num1 + num2; + break; + case "-": + if (num1 Date: Tue, 18 Sep 2018 23:49:57 +0800 Subject: [PATCH 101/135] Add files via upload From 4e037646d4ce037b2922ade3ded96d8a5c2fb14a Mon Sep 17 00:00:00 2001 From: 228353317 <42884536+228353317@users.noreply.github.com> Date: Tue, 18 Sep 2018 23:51:29 +0800 Subject: [PATCH 102/135] =?UTF-8?q?=E5=B0=8F=E5=AD=A6=E7=94=9F=E5=87=BA?= =?UTF-8?q?=E9=A2=98=E5=99=A8=EF=BC=88=E6=94=B9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 三年级以内四则运算 From c7b4242c65bf1289ceb879305cd18c69b01cf7d0 Mon Sep 17 00:00:00 2001 From: jiowww <42857618+jiowww@users.noreply.github.com> Date: Wed, 19 Sep 2018 00:00:06 +0800 Subject: [PATCH 103/135] Add files via upload d From e5d4d2caba1f2763c81cac5b4a69e3e3df360a41 Mon Sep 17 00:00:00 2001 From: linzenghan <42675313+linzenghan@users.noreply.github.com> Date: Wed, 19 Sep 2018 00:02:19 +0800 Subject: [PATCH 104/135] MathExam_V2.0.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /* * 在原有的V2.0.0版本上加入三年级四则混合运算题 * 1.增加了括号的随机性; * ps:还未解决除数为0和差值为负数的bug, * coding : GBK * MathExam_V2.0.8 */ --- Pair_211606335_211606318/MathExam.java | 52 +++++++++++++++++++------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/Pair_211606335_211606318/MathExam.java b/Pair_211606335_211606318/MathExam.java index 543f557..2c1a0ea 100644 --- a/Pair_211606335_211606318/MathExam.java +++ b/Pair_211606335_211606318/MathExam.java @@ -21,10 +21,10 @@ public class MathExam { /* * ԭеV2.0.0汾ϼ꼶 - * 1.ʵ꼶Ŀʹк + * 1.ŵԣ * psδΪ0ͲֵΪbug * coding GBK - * MathExam_V2.0.7 + * MathExam_V2.0.8 */ int firstNumber, secondNumber; int symbol; //ж @@ -298,24 +298,50 @@ private void fourMixed() { int howManyNum = (int)(Math.random()*3+3); StringBuilder bf_sequence; for (int j = 0; j < count; j++) { - int n1 = (int)(Math.random()*10); - int n2 = (int)(Math.random()*10); - int n3 = (int)(Math.random()*10); - int n4 = (int)(Math.random()*10); - int n5 = (int)(Math.random()*10); + int n = (int)(Math.random()); + int n6= (int)(Math.random()*5); + int n1 = (int)(Math.random()*9+1); + int n2 = (int)(Math.random()*9+1); + int n3 = (int)(Math.random()*9+1); + int n4 = (int)(Math.random()*9+1); + int n5 = (int)(Math.random()*9+1); int c1 = (int)(Math.random()*4); int c2 = (int)(Math.random()*4); int c3 = (int)(Math.random()*4); int c4 = (int)(Math.random()*4); String[] cs = {"+","-","",""}; - if(howManyNum==3) { - str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3; + if(howManyNum==3 && n==0 ) { + str_ArithmeticProblem[j] = "( " +n1 + " " + cs[c1] + " " + n2 +" ) " + " " + cs[c2] + " " + n3; toPostfixExpression(str_ArithmeticProblem[j]); - str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " = " + reversePolish(); - } else if(howManyNum==4) { - str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4; + str_MathAnswer[j] ="( " + (j+1) + " ) " +"( " +n1 + " " + cs[c1] + " " + n2 +" ) "+ " " + cs[c2] + " " + n3 + " = " + reversePolish(); + } + if(howManyNum==3 && n==1) { + str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " +"( " +n2 + " " + cs[c2] + " " + n3 + " ) "; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " +"( " +n2 + " " + cs[c2] + " " + n3+ " ) " + " = " + reversePolish(); + } + if(howManyNum==4 ) { + if( n6==0){ + str_ArithmeticProblem[j] ="( "+ n1 + " " + cs[c1] + " " + n2 +" ) "+ " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4; toPostfixExpression(str_ArithmeticProblem[j]); - str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " = " + reversePolish(); + str_MathAnswer[j] ="( " + (j+1) + " ) " + "( "+ n1 + " " + cs[c1] + " " + n2 +" ) " + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " = " + reversePolish(); + }if( n6==1){ + str_ArithmeticProblem[j] ="( "+ n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 +" ) "+ " " + cs[c3] + " " + n4; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] ="( " + (j+1) + " ) " + "( "+ n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " ) "+" " + cs[c3] + " " + n4 + " = " + reversePolish(); + }if( n6==2){ + str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " +"( "+ n2 + " " + cs[c2] + " " + n3 +" ) "+ " " + cs[c3] + " " + n4; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + "( "+ n2 + " " + cs[c2] + " " + n3 + " ) "+" " + cs[c3] + " " + n4 + " = " + reversePolish(); + }if( n6==3){ + str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " +"( "+ n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4+" ) "; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + "( "+ n2 + " " + cs[c2] + " " + n3 +" " + cs[c3] + " " + n4+ " ) " + " = " + reversePolish(); + }if( n6==4){ + str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " +"( "+ n3 + " " + cs[c3] + " " + n4+" ) "; + toPostfixExpression(str_ArithmeticProblem[j]); + str_MathAnswer[j] ="( " + (j+1) + " ) " + n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + "( " + n3 +" " + cs[c3] + " " + n4+ " ) " + " = " + reversePolish(); + } }else if(howManyNum==5) { str_ArithmeticProblem[j] = n1 + " " + cs[c1] + " " + n2 + " " + cs[c2] + " " + n3 + " " + cs[c3] + " " + n4 + " " + cs[c4] + " " + n5; toPostfixExpression(str_ArithmeticProblem[j]); From 579b2312027ce4464007c66f3e6712626ea005d4 Mon Sep 17 00:00:00 2001 From: TUZHONGA <42775511+TUZHONGA@users.noreply.github.com> Date: Wed, 19 Sep 2018 00:05:01 +0800 Subject: [PATCH 105/135] new MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 三年级 --- Pair_211606340_211606372/MathExam.java | 201 +++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 Pair_211606340_211606372/MathExam.java diff --git a/Pair_211606340_211606372/MathExam.java b/Pair_211606340_211606372/MathExam.java new file mode 100644 index 0000000..834c78a --- /dev/null +++ b/Pair_211606340_211606372/MathExam.java @@ -0,0 +1,201 @@ + + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Random; +import java.util.Scanner; + + +public class MathExam { + + public static void main(String[] args) { + Scanner input = new Scanner(System.in); + int number = input.nextInt(); + int grade = input.nextInt(); + creatFourOperations(number,grade); + } + + /** + * 随机生成四则运算式 + */ + static ScriptEngine js = new ScriptEngineManager().getEngineByName("JavaScript"); + public static void creatFourOperations(int number,int grade){ + ArrayList arrayList = new ArrayList<>(); + for (int i=0;i arrayList1 = new ArrayList<>(); + //存储运算数 + ArrayList arrayList2 = new ArrayList<>(); + //存储运算式 + ArrayList arrayList3 = new ArrayList<>(); + //存储运算符 + for (int j=0;j arithList) throws IOException { + //封装存储位置 + BufferedWriter BufferedWriterbw = new BufferedWriter(new FileWriter("out.txt")); + BufferedWriterbw.newLine(); + for(String s : arithList){ + //写数据 + BufferedWriterbw.write(s); + BufferedWriterbw.newLine(); + BufferedWriterbw.flush(); + } + BufferedWriterbw.write("================== 答案================="); + BufferedWriterbw.newLine(); + BufferedWriterbw.flush(); + for(String s : arithList){ + //写数据 + try { + BufferedWriterbw.write(s+"="+js.eval(s)); + } catch (ScriptException e) { + e.printStackTrace(); + } + BufferedWriterbw.newLine(); + BufferedWriterbw.flush(); + } + } +} From 7a30e90e6e787ee86fbefb58ca40fa7c8c462083 Mon Sep 17 00:00:00 2001 From: TUZHONGA <42775511+TUZHONGA@users.noreply.github.com> Date: Wed, 19 Sep 2018 00:05:44 +0800 Subject: [PATCH 106/135] =?UTF-8?q?=E7=BB=93=E5=AF=B9=E4=BD=9C=E4=B8=9A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606340_211606372/MathExam6340(1).java | 301 ++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 Pair_211606340_211606372/MathExam6340(1).java diff --git a/Pair_211606340_211606372/MathExam6340(1).java b/Pair_211606340_211606372/MathExam6340(1).java new file mode 100644 index 0000000..b76cf01 --- /dev/null +++ b/Pair_211606340_211606372/MathExam6340(1).java @@ -0,0 +1,301 @@ + + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import java.io.*; +import java.util.ArrayList; +import java.util.Random; +import java.util.Scanner; + + +public class MathExam6340 { + + public static void main(String[] args) { + Scanner input = new Scanner(System.in); + int number = input.nextInt(); + int grade = input.nextInt(); + if(grade==1 || grade==2){ + try { + generateExam(number,grade); + write(); + } catch (IOException e) { + e.printStackTrace(); + } + }else if(grade==3){ + creatFourOperations(number,grade); + }else { + System.out.println("对不起,其他年级暂无数据!"); + } + } + + /** + * 随机生成四则运算式 + */ + static ScriptEngine js = new ScriptEngineManager().getEngineByName("JavaScript"); + public static void creatFourOperations(int number,int grade){ + ArrayList arrayList = new ArrayList<>(); + for (int i=0;i arrayList1 = new ArrayList<>(); + //存储运算数 + ArrayList arrayList2 = new ArrayList<>(); + //存储运算式 + ArrayList arrayList3 = new ArrayList<>(); + //存储运算符 + for (int j=0;j arithList) throws IOException { + //封装存储位置 + BufferedWriter BufferedWriterbw = new BufferedWriter(new FileWriter("out.txt")); + BufferedWriterbw.newLine(); + for(String s : arithList){ + //写数据 + BufferedWriterbw.write(s); + BufferedWriterbw.newLine(); + BufferedWriterbw.flush(); + } + BufferedWriterbw.write("================== 答案================="); + BufferedWriterbw.newLine(); + BufferedWriterbw.flush(); + for(String s : arithList){ + //写数据 + try { + BufferedWriterbw.write(s+"="+js.eval(s)); + } catch (ScriptException e) { + e.printStackTrace(); + } + BufferedWriterbw.newLine(); + BufferedWriterbw.flush(); + } + } + + + static StringBuffer questions = new StringBuffer(); + static StringBuffer answers = new StringBuffer(); + + public static void generateExam(int number , int grade){ + int[] num1 = new int[number]; + int[] num2 = new int[number]; + int[] sum = new int[number]; + String[] so = new String[number] ; + Random random = new Random(); + String[] ch = {"+", "-", "*", "/"}; + + int remainder = 0; + for (int i=0;i num2[i]) { + remainder = num1[i] % num2[i]; + } + } + break; + default: + } + questions.append("("+(i+1)+")"+" "+num1[i]+" "+symbol+" "+num2[i]+ "\r\n"); + System.out.println("("+(i+1)+")"+" "+num1[i]+" "+symbol+" "+num2[i]); + + } + questions.append("========输出所有答案========"); + System.out.println("========输出所有答案========"); + for (int i=0;i Date: Wed, 19 Sep 2018 00:15:23 +0800 Subject: [PATCH 107/135] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第四次commit From 5ac5fdae1ffecf80ee4f66f91f5cf8e9e68cf17b Mon Sep 17 00:00:00 2001 From: 228353317 <42884536+228353317@users.noreply.github.com> Date: Wed, 19 Sep 2018 00:36:06 +0800 Subject: [PATCH 108/135] =?UTF-8?q?=E8=A7=A3=E5=86=B3StackOverflowError?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20=E5=B9=B6=E6=B7=BB=E5=8A=A0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606320_211506332/MathExam.java | 11 ++++++----- Pair_211606320_211506332/TS.java | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Pair_211606320_211506332/MathExam.java b/Pair_211606320_211506332/MathExam.java index 98df026..7fac1ba 100644 --- a/Pair_211606320_211506332/MathExam.java +++ b/Pair_211606320_211506332/MathExam.java @@ -1,8 +1,8 @@ /** - * - * - * - * + * ʹTabֶո + * ַƲ120 + * עͣÿܻسһнע + * ˹ǷϹ淶 */ import java.io.File; @@ -31,7 +31,7 @@ public class MathExam { static Random random=new Random(); - static List RPN = new ArrayList(); + static List RPN; // һstack¼ static Stack ops = new Stack(); // һ³ʼ @@ -250,6 +250,7 @@ public static void waterFile(String name) { // 沨㷨 public static void RPNcalculate(String str) { + RPN = new ArrayList(); String[] RPNStr= str.split(" "); fixPosition(RPNStr); calculate(); diff --git a/Pair_211606320_211506332/TS.java b/Pair_211606320_211506332/TS.java index 9d1f021..517fc0a 100644 --- a/Pair_211606320_211506332/TS.java +++ b/Pair_211606320_211506332/TS.java @@ -1,9 +1,10 @@ + import java.util.ArrayList; import java.util.List; public class TS { public static void main(String[] args) { - String[] str= {"-n","10","-grade","3"}; + String[] str= {"-n","30","-grade","3"}; new MathExam().main(str); } } From 5987c852d0bc1a27cfc6d1753ee7c688ab3f88f1 Mon Sep 17 00:00:00 2001 From: 228353317 <42884536+228353317@users.noreply.github.com> Date: Wed, 19 Sep 2018 00:39:51 +0800 Subject: [PATCH 109/135] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=B2=BE=E7=AE=80?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606320_211506332/MathExam.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Pair_211606320_211506332/MathExam.java b/Pair_211606320_211506332/MathExam.java index 7fac1ba..663e681 100644 --- a/Pair_211606320_211506332/MathExam.java +++ b/Pair_211606320_211506332/MathExam.java @@ -53,10 +53,6 @@ public static boolean isNumber(String s) { } public static double eval(String op, String val1, String val2) { -// if (op.equals("+")) return Integer.parseInt(val1) + Integer.parseInt(val2); -// if (op.equals("-")) return Integer.parseInt(val1) - Integer.parseInt(val2); -// if (op.equals("/")) return Integer.parseInt(val1) / Integer.parseInt(val2); -// if (op.equals("*")) return Integer.parseInt(val1) * Integer.parseInt(val2); if (op.equals("+")) return Double.parseDouble(val1) + Double.parseDouble(val2); if (op.equals("-")) return Double.parseDouble(val1) - Double.parseDouble(val2); if (op.equals("/")) return Double.parseDouble(val1) / Double.parseDouble(val2); From 410488ba5ea2867285d6fcb79c86d20253603aba Mon Sep 17 00:00:00 2001 From: Dawned1 <994820659@qq.com> Date: Wed, 19 Sep 2018 00:40:03 +0800 Subject: [PATCH 110/135] =?UTF-8?q?=E7=BB=93=E5=AF=B9=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606302_211606303/MathExam.java | 126 +++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 Pair_211606302_211606303/MathExam.java diff --git a/Pair_211606302_211606303/MathExam.java b/Pair_211606302_211606303/MathExam.java new file mode 100644 index 0000000..51365b2 --- /dev/null +++ b/Pair_211606302_211606303/MathExam.java @@ -0,0 +1,126 @@ + +import java.awt.List; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Random; + +public class MathExam6303 { + private static int len;// ûĿ + @SuppressWarnings("unused") + private static int grade = 1;// Ĭ1꼶 + private static final String[] sign = { "+", "-", "*", "/" }; + static StringBuffer questions = new StringBuffer(); // ;Ŀ𰸵ƴ + static StringBuffer answers = new StringBuffer(); + + // űʾ + private static void generateExam6303(int grade) { + int result = 0; + int remainder = 0; + for (int i = 1; i <= len; i++) { + // ȡ; + int left = (int) (Math.random() * 10); + int right = (int) (Math.random() * 10); + int subScript = (1 == grade) ? ((int) (Math.random() * 2)) : ((int) (Math.random() * 4)); + String symbol = sign[subScript]; + switch (symbol) { + case "+": + result = left + right; + break; + case "-": + // ȷһȵڶ󣬱ָСѧһ꼶Ӽûи + if (left < right) { + int temp = left; + left = right; + right = temp; + } + result = left - right; + break; + case "*": + result = left * right; + break; + case "/": + while (right == 0) { + right = (int) (Math.random() * 100); + } + result = left / right; + if (left % right == 0) { + break; + } else { + if (left < right) { + remainder = left; + } else if (left > right) { + remainder = left % right; + } + } + break; + default: + System.out.println("unsupported sign!"); + } + // ¼Ŀ + questions.append("(" + i + ") " + left + " " + symbol + " " + right + "\r\n"); + if (symbol.equals("/") && (left % right != 0)) { + if (remainder != 0 || (remainder == 0 && left == 0)) { + answers.append("(" + i + ") " + left + " " + symbol + " " + right + " " + "= " + result + "......" + + remainder + "\r\n"); + } + } else { + answers.append("(" + i + ") " + left + " " + symbol + " " + right + " " + "= " + result + "\r\n"); + } + } + } + + + public static void write6303() throws IOException { + File file = new File("out.txt"); + if (!file.exists()) { + File parent = file.getParentFile(); + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + file.createNewFile(); + } + // 2ָļ + OutputStream out = new FileOutputStream(file); + // 3д + byte[] question = questions.toString().getBytes(); + byte[] answer = answers.toString().getBytes(); + out.write(question); + out.write(System.lineSeparator().getBytes()); + out.write(answer); + // 4ر + out.close(); + } + + @SuppressWarnings("unused") + public static void main(String[] args) throws IOException { + if (args.length < 2) { + throw new IllegalArgumentException("2"); + } else if (args.length > 2) { + throw new IllegalArgumentException(""); + } + String str = args[0].replaceFirst("^0*", ""); + if (str.length() > 4) { + throw new IllegalArgumentException("ĵһֵ̫"); + } + for (int i = str.length(); --i >= 0;) { + if (!Character.isDigit(str.charAt(i))) { + throw new IllegalArgumentException(""); + } + } + if (Integer.parseInt(args[0]) == 0) { + throw new IllegalArgumentException("1Ϊʼ)"); + } + len = Integer.parseInt(args[0]); + if (Integer.parseInt(args[1]) == 1 || Integer.parseInt(args[1]) == 2) + generateExam6303(Integer.parseInt(args[1])); + else if (Integer.parseInt(args[1]) == 3) { + List list=new ArrayList<>(); + } + + write6303(); + System.out.println("ĿѾɣout.txt"); + } +} From b5db7bb7d84b578d132e165e2b181f78936477cc Mon Sep 17 00:00:00 2001 From: Misayaki <497524150@qq.com> Date: Wed, 19 Sep 2018 01:02:12 +0800 Subject: [PATCH 111/135] =?UTF-8?q?=E7=BB=93=E5=AF=B9=E4=BD=9C=E4=B8=9A01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211506368_211606359/MathExam.java | 391 +++++++++++++++++++++++++ 1 file changed, 391 insertions(+) create mode 100644 Pair_211506368_211606359/MathExam.java diff --git a/Pair_211506368_211606359/MathExam.java b/Pair_211506368_211606359/MathExam.java new file mode 100644 index 0000000..8313411 --- /dev/null +++ b/Pair_211506368_211606359/MathExam.java @@ -0,0 +1,391 @@ +package test; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.InputMismatchException; +import java.util.Random; +import java.util.Scanner; + +public class MathExam { + + //扫描器,用于扫描键盘输入 + private static Scanner s = new Scanner(System.in); + private static int firstNum_index = 0; + private static int secondNum_index = 2; + private static int thirdNum_index = 4; + + private static int firstOperate_index = 1; + private static int secondOperate_index = 3; + + private static int result_index = 5; + + public static void main(String[] args) { + System.out.println("请输出所需要的题目数量和年级,用逗号隔开如(100,3):"); + try{ + + String str = s.nextLine(); + String[] params = str.split(","); + if(params.length == 1){ + params = str.split(","); + } + int count = Integer.valueOf(params[0]); + int grade = Integer.valueOf(params[1]); + File file = new File("D:\\java\\out.txt"); + if(!makeTxt(file)){ + throw new RuntimeException("文件创建失败"); + } + String[][] titleArr = null; + if(params.length >= 2){ + titleArr = buildQuestion(count, grade); + }else{ + titleArr = buildQuestion(count); + } + boolean isSuccess = printQuestion(file, titleArr); + if(isSuccess){ + System.out.println("文件及其算术创建成功!"); + }else{ + System.out.println("文件及其算术创建失败!"); + } + }catch(InputMismatchException e){ + e.printStackTrace(); + System.out.println("文件及其算术创建失败!"); + System.out.println("输入的题目数量和年级必须为正整数!"); + }catch(Exception e){ + e.printStackTrace(); + System.out.println("文件及其算术创建失败!"); + } + } + + /** + * 生成题目,默认为2年级 + * @param count + * @return + */ + private static String[][] buildQuestion(int count){ + return buildQuestion(count, 1); + } + + /** + * 生成题目 + * @param count 题目的数量 + * @param grade 对应的年级,年级下限制为1 + * @return + */ + private static String[][] buildQuestion(int count, int grade){ + //运算符号范围 + int operate = 0; + //如果题目数量为负数 + if(count < 0){ + count = 1; + } + //如果年级为负数 + if(grade <= 1){ + operate = 0; + }else if(grade == 2){ + operate = 2; + }else{ + operate = 3; + } + //基数默认为50 + int limited = 49; + //随机数工具 + Random random = new Random(); + + int firstNum = 0; + int secondNum = 0; + int thirdNum = 0; + + int firstOperate = 0; + int secondOperate = 0; + + int result = 0; + + + //二维数组, 其第二维度 依次存放的是 数字、运算、数字、运算、数字、结果 + String[][] titleArr = new String[count][6]; + for (String[] arr : titleArr) { + //第一位运算数字 + firstNum = random.nextInt(99) + 1; + //第二位运算数字 + secondNum = random.nextInt(99) + 1; + //第三位运算数字 + thirdNum = random.nextInt(99) + 1; + + //第一位符号 0:+ 1:- 2:× 3:÷ + firstOperate = random.nextInt(4); + //第二位符号 0:+ 1:- 2:× 3:÷ 4:四则运算 + secondOperate = random.nextInt(2) + operate; + + switch(secondOperate){ + case 0: + //加法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[firstNum_index] = String.valueOf(firstNum); + arr[thirdNum_index] = String.valueOf(secondNum); + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + break; + + case 1: + //减法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[firstNum_index] = String.valueOf(firstNum); + arr[secondNum_index] = String.valueOf(secondNum); + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + break; + + case 2: + //乘法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[firstNum_index] = String.valueOf(firstNum); + arr[secondNum_index] = String.valueOf(secondNum); + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + break; + + case 3: + //除法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + //判断分母不能为0,如果是0,则重新取值 + while(secondNum == 0){ + secondNum = random.nextInt(limited) + 1; + } + //余数 + int remainder = (firstNum % secondNum); + if(remainder == 0){ + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + }else{ + arr[result_index] = calculate(firstNum, secondNum, firstOperate) + "..." + String.valueOf(remainder); + } + arr[firstNum_index] = String.valueOf(secondNum); + arr[secondNum_index] = String.valueOf(thirdNum); + break; + + case 4: + //运算符重新取值 + secondOperate = random.nextInt(4); + //如果第一个符号的优先相等或高,则不用做括号处理 + if(compareOperate(firstOperate, secondOperate) >= 0){ + //如果第一位符号是除法 要做特殊处理 + if(firstOperate == 3){ + while((firstNum % secondNum) != 0 || result == 0){ + firstNum = random.nextInt(limited); + //防止除数为0 + secondNum = random.nextInt(limited) + 1; + result = firstNum / secondNum; + } + result = firstNum / secondNum; + //第二位是乘法和除法 + if(secondOperate == 3 || secondOperate == 2){ + //如果第二位符号是除法 要做特殊处理 + if(secondOperate == 3){ + while((result % thirdNum)!=0 || result/thirdNum==0){ + thirdNum = random.nextInt(limited) + 1; + } + } + //填充数据 + arr[secondNum_index] = String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum); + + arr[result_index] = calculate(result, thirdNum, secondOperate); + }else{ + //加法和减法的操作处理 + result = Integer.valueOf(calculate(secondNum, thirdNum, secondOperate)); + //逆推 + int temp = random.nextInt(20); + firstNum = temp * result; + arr[secondNum_index] = "( " + String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum) + " )"; + arr[result_index] = String.valueOf(temp); + } + }else{ + result = Integer.valueOf(calculate(firstNum, secondNum, firstOperate)); + //填充数据 + arr[secondNum_index] = String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum); + arr[result_index] = calculate(result, thirdNum, secondOperate); + } + arr[firstNum_index] = String.valueOf(firstNum); + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[secondOperate_index] = paraseOperateStr(secondOperate); + }else{ + //优先级低的处理,既加括号 + result = Integer.valueOf(calculate(secondNum, thirdNum, secondOperate)); + if(firstOperate == 3){ + //如果此时result等于0,则重新取值 + while(result == 0){ + secondNum = random.nextInt(limited); + //防止出现除数为0的情况 + thirdNum = random.nextInt(limited) +1; + result = Integer.valueOf(calculate(secondNum, thirdNum, secondOperate)); + } + //此时除数可能很大,所以应该逆推 + int temp = random.nextInt(20); + + arr[firstNum_index] = calculate(result, temp, 2); + arr[result_index] = String.valueOf(temp); + }else{ + arr[firstNum_index] = String.valueOf(firstNum); + arr[result_index] = calculate(firstNum, result, firstOperate); + } + arr[secondNum_index] = String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum); + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[secondOperate_index] = paraseOperateStr(secondOperate); + } + break; + } + + } + return titleArr; + + } + + private static boolean printQuestion(File file, String[][] titleArr){ + // 仅带有问题的字符缓存器 + StringBuilder buff = new StringBuilder(); + //携带问题和答案的字符缓存器 + StringBuilder answerbuff = new StringBuilder(); + //换行符 + String newLine = "\r\n"; + //"------------------标准答案------------------"字符 + String divideStr = "------------------标准答案------------------\r\n"; + // "211606359 戴俊涵 yyyy年MM月dd日 HH:mm" + SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日\tHH:mm"); + String anthorInfo = "\t\t211506368 \t\t霍金池\t\t" + sdf.format(new Date()); + + for(int i =1; i<=titleArr.length; i++){ + String[] arr = titleArr[i-1]; + String str = "("+ i + ") "; + for(int j = 0; j < 5; j++){ + if(arr[j] != null){ + str += arr[j]; + } + } + str += " ="; + buff.append(str + newLine); + answerbuff.append(str + " " + arr[result_index] + newLine); + } + + FileOutputStream fos = null; + try { + fos = new FileOutputStream(file); + fos.write(buff.toString().getBytes()); + fos.write(divideStr.getBytes()); + fos.write(answerbuff.toString().getBytes()); + fos.write(anthorInfo.getBytes()); + } catch (FileNotFoundException e) { + throw new RuntimeException("文件未找到异常", e); + } catch (IOException e) { + throw new RuntimeException("输入或输出流发生异常", e); + } + finally{ + try { + fos.close(); + } catch (IOException e) { + throw new RuntimeException("输出流关闭发生异常", e); + } + } + return true; + } + + /** + * 检查文件是否存在 + * @param f 文件目录 + * @param fileName 文件名称 + * @return 目录创建成功则返回true,否则返回false。 + */ + private static boolean makeTxt(File file){ + //如果目录不存在,则创建父级目录 + if(!file.exists()){ + file.getParentFile().mkdirs(); + } + + //如果文件不存在,则创建文件。 + if(! file.exists()){ + try { + file.createNewFile(); + } catch (IOException e) { + throw new RuntimeException("文件创建失败", e); + } + } + + //清空文本数据,防止出现乱数据 + FileWriter fileWrite = null; + try { + fileWrite = new FileWriter(file); + fileWrite.write(""); + fileWrite.flush(); + } catch (IOException e) { + throw new RuntimeException("文件清空发生异常", e); + }finally{ + try { + fileWrite.close(); + } catch (IOException e) { + throw new RuntimeException("文件写入流关闭发生异常", e); + } + } + + return file.exists(); + } + + /** + * 比较优先级 + * @param first 第一位参数 + * @param second 第二位参数 + * @return 0: 相等 1:优先 -1:殿后 + */ + private static int compareOperate(int first, int second){ + // 0:+ 1:- 2:× 3:÷ + int f = first <= 1 ? 0 : 1; + int s = second <= 1 ? 0 : 1; + return f-s; + } + + /** + * 将数字转成符号 + * @param operate 数字 + * @return + */ + private static String paraseOperateStr(int operate){ + if(operate == 0){ + return " + "; + }else if(operate == 1){ + return " - "; + }else if(operate == 2){ + return " × "; + }else if(operate == 3){ + return " ÷ "; + }else{ + throw new RuntimeException("无效的符号数字"); + } + } + + /** + * 计算出first和second之间的operate运算的字符串结果 + * @param first 第一位参数 + * @param second 第二位参数 + * @param operate 运算 + * @return 结果的字符串表示形式 + */ + private static String calculate(int first, int second, int operate){ + if(operate == 0){ + return String.valueOf(first + second); + }else if(operate == 1){ + return String.valueOf(first - second); + }else if(operate == 2){ + return String.valueOf(first * second); + }else if(operate == 3){ + return String.valueOf(first / second); + }else{ + throw new RuntimeException("计算传入的参数有误!"); + } + } +} From 088f970ed21da5ef17b54c9bfcd65c349ef72e37 Mon Sep 17 00:00:00 2001 From: wwhing <1376211905@qq.com> Date: Wed, 19 Sep 2018 03:11:24 +0800 Subject: [PATCH 112/135] =?UTF-8?q?=E2=80=98=E6=B5=8B=E8=AF=95=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606313_211606381/MathExam.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Pair_211606313_211606381/MathExam.java diff --git a/Pair_211606313_211606381/MathExam.java b/Pair_211606313_211606381/MathExam.java new file mode 100644 index 0000000..e69de29 From 23a2eea87c1d6fc121fa7d3877618011cbcd27c6 Mon Sep 17 00:00:00 2001 From: wwhing <1376211905@qq.com> Date: Wed, 19 Sep 2018 03:16:50 +0800 Subject: [PATCH 113/135] =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BB=A3=E7=A0=81=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606313_211606381/MathExam.java | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/Pair_211606313_211606381/MathExam.java b/Pair_211606313_211606381/MathExam.java index e69de29..a92f64c 100644 --- a/Pair_211606313_211606381/MathExam.java +++ b/Pair_211606313_211606381/MathExam.java @@ -0,0 +1,56 @@ +import java.util.regex.Pattern; + +public class MathExam { + private static String errorMessage = "IJʽ밴 -n -grade -grade -n ʽ롣"; + private static String grade; + + public static void main(String[] args) { + if(judgmentParameter(args)) { + System.out.println("Сѧ" + grade + "꼶ѧĿɣ鿴out.txtļ"); + }else { + System.out.println(errorMessage); + } + } + + /** + * + * @param args ûIJ + * @return Ҫʱ true򷵻false + */ + private static boolean judgmentParameter(String[] args) { + if(args.length < 4 || args.length > 4) { + return false; + }else { + // 1 жǷ -n -grade ʶ + if(!(("-n".equals(args[0]) && "-grade".equals(args[2]) )|| ("-grade".equals(args[0]) && "-n".equals(args[2])))) { + return false; + } + + // 2 ȥֲǰ0 + args[1] = args[1].replaceFirst("^0*", ""); + args[3] = args[3].replaceFirst("^0*", ""); + + // 3 Ƿ + Pattern pattern = Pattern.compile("[0-9]*"); + boolean matches = pattern.matcher(args["-n".equals(args[0]) ? 1 : 3]).matches(); + + if (matches && args["-n".equals(args[0]) ? 3 : 1].length() > 4) { + errorMessage = "ĿУ"; + return false; + } else if (!matches) { + errorMessage = "ĿУһ"; + return false; + } + + // 4 꼶Ƿ1~3 + Pattern compile = Pattern.compile("[1-3]?"); + boolean matches2 = compile.matcher(args["-n".equals(args[0]) ? 3 : 1]).matches(); + + if (!matches2) { + errorMessage = "Ŀǰֻ֧1~3꼶У1~3еһ"; + return false; + } + } + return true; + } +} From 2be9a2475ef7e1b913cbb75a0b690ac2b00b7843 Mon Sep 17 00:00:00 2001 From: wwhing <1376211905@qq.com> Date: Wed, 19 Sep 2018 03:20:43 +0800 Subject: [PATCH 114/135] =?UTF-8?q?=E5=B0=86=E8=80=81=E5=B8=88=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E7=9A=84C++=E7=9A=84=E8=B0=83=E5=BA=A6=E5=9C=BA?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E5=92=8C=E9=80=86=E6=B3=A2=E5=85=B0=E6=B1=82?= =?UTF-8?q?=E5=80=BC=E7=AE=97=E6=B3=95=E6=94=B9=E4=B8=BAjava=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606313_211606381/Node.java | 30 ++++ Pair_211606313_211606381/ShuntingYard.java | 157 +++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 Pair_211606313_211606381/Node.java create mode 100644 Pair_211606313_211606381/ShuntingYard.java diff --git a/Pair_211606313_211606381/Node.java b/Pair_211606313_211606381/Node.java new file mode 100644 index 0000000..ff6f07e --- /dev/null +++ b/Pair_211606313_211606381/Node.java @@ -0,0 +1,30 @@ + +public class Node { + double val; + char opt; + + + Node(double val, char opt) + { + this.val = val; + this.opt = opt; + } + + Node(double val) + { + this.val = val; + this.opt = ' '; + } + + Node(char opt) + { + this.val = 0; + this.opt = opt; + } + + Node() + { + this.val = 0; + this.opt = ' '; + } +} diff --git a/Pair_211606313_211606381/ShuntingYard.java b/Pair_211606313_211606381/ShuntingYard.java new file mode 100644 index 0000000..d8cfe96 --- /dev/null +++ b/Pair_211606313_211606381/ShuntingYard.java @@ -0,0 +1,157 @@ +import java.util.HashMap; +import java.util.Stack; + +public class ShuntingYard { + + HashMap mp = new HashMap(); + final double EPS = 1e-9 ; + Node[] node = new Node[10005]; + char[] str = new char[10005]; + + // + ShuntingYard(){ + mp.put('(',0); + mp.put('-',1); + mp.put('+',1); + mp.put('*',2);// + mp.put('/',2);// + } + + //ȳ㷨 + public double shuntYardAlgo(char[] str) throws Exception + { + Stack oper = new Stack() ; + + //inNumǵǰǷ + boolean inNum = true; + //hasDotǷѾС + boolean hasDot = true; + + int p = 0; //ɨָλ + int cnt = 0; //Żּ + int sign = 1; //ʾ + + while(p < str.length){ + //ΪʱʾֵַתΪ + if(Character.isDigit(str[p]) || str[p] == '.'){ + if(inNum){ + double val = 0; + double w = 1; + if(str[p] == '.'){ + hasDot = true; + val = 0; + }else{ + hasDot = false; + val = str[p] - '0'; + } + p++; + while(p < str.length && (Character.isDigit(str[p]) || str[p] == '.' )){ + if(str[p] == '.'){ + if(hasDot) throw new Exception();//һС + hasDot = true; + }else{ + if(hasDot){ + w *= 0.1; + val += (str[p] - '0') * w; + }else + val = val * 10 + str[p] - '0'; + } + p++; + } + p--; + node[cnt++] = new Node(val * sign, ' '); + sign = 1; + inNum = false; + }else throw new Exception(); + }else{ + switch(str[p]){ + case '(': + oper.push(str[p]); + break; + case ')': + while(!oper.empty() && oper.peek() != '('){ + node[cnt++] = new Node(0, oper.peek()); + oper.pop(); + } + if(oper.empty()) + throw new Exception(); + oper.pop(); + break; + case '+': + case '-': + case '*': + case '/': + // жֵ + if(inNum){ + if(str[p] != '+' && str[p] != '-') + throw new Exception(); //ֻΪΪ + while(str[p] == '+' || str[p] == '-'){ + if(str[p] == '-') + sign *= -1; + p++; + } + p--; + }else{ + while(!oper.empty() && mp.get(str[p]) <= mp.get(oper.peek())){ + node[cnt++] = new Node(0, oper.pop()); + } + oper.push(str[p]); + inNum = true; + } + break; + } + } + p++; + } + while(!oper.empty()){ + node[cnt++] = new Node(0, oper.peek()); + oper.pop(); + } +// for(int i = 0; i < cnt; i++) { +// if(node[i].val!=0) { +// System.out.print(node[i].val); +// }else { +// System.out.print(node[i].opt); +// } +// +// } + return CalPoland(node, cnt); + } + + //沨ʽļ + double CalPoland(Node node[], int n) throws Exception + { + Stack s = new Stack(); + for(int i = 0; i < n; i++) + { + if(node[i].opt == ' ') + s.push(node[i].val); + else + { + double a = s.peek(); + s.pop(); + double b = s.peek(); + s.pop(); + switch(node[i].opt) + { + case '+': + s.push(b + a); + break; + case '-': + s.push(b - a); + break; + case '*': + s.push(b * a); + break; + case '/': + if(Math.abs(a) < EPS) { + throw new Exception(); + } + s.push(b / a); + break; + } + } + } + return s.peek(); + } +} From 173c5d7ec718d817a0601441db9c3a79c1a185a2 Mon Sep 17 00:00:00 2001 From: mujinjia <42687707+mujinjia@users.noreply.github.com> Date: Wed, 19 Sep 2018 03:24:16 +0800 Subject: [PATCH 115/135] Delete Node.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了程序逻辑,减少了调度场算法 --- Pair_211606313_211606381/Node.java | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100644 Pair_211606313_211606381/Node.java diff --git a/Pair_211606313_211606381/Node.java b/Pair_211606313_211606381/Node.java deleted file mode 100644 index ff6f07e..0000000 --- a/Pair_211606313_211606381/Node.java +++ /dev/null @@ -1,30 +0,0 @@ - -public class Node { - double val; - char opt; - - - Node(double val, char opt) - { - this.val = val; - this.opt = opt; - } - - Node(double val) - { - this.val = val; - this.opt = ' '; - } - - Node(char opt) - { - this.val = 0; - this.opt = opt; - } - - Node() - { - this.val = 0; - this.opt = ' '; - } -} From 607e58ad8ae3e35b295330ebfb1822f3147d703e Mon Sep 17 00:00:00 2001 From: mujinjia <42687707+mujinjia@users.noreply.github.com> Date: Wed, 19 Sep 2018 03:24:55 +0800 Subject: [PATCH 116/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E9=80=BB=E8=BE=91=EF=BC=8C=E5=87=8F=E5=B0=91=E4=BA=86?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E5=9C=BA=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了程序逻辑,减少了调度场算法 --- Pair_211606313_211606381/ShuntingYard.java | 157 --------------------- 1 file changed, 157 deletions(-) delete mode 100644 Pair_211606313_211606381/ShuntingYard.java diff --git a/Pair_211606313_211606381/ShuntingYard.java b/Pair_211606313_211606381/ShuntingYard.java deleted file mode 100644 index d8cfe96..0000000 --- a/Pair_211606313_211606381/ShuntingYard.java +++ /dev/null @@ -1,157 +0,0 @@ -import java.util.HashMap; -import java.util.Stack; - -public class ShuntingYard { - - HashMap mp = new HashMap(); - final double EPS = 1e-9 ; - Node[] node = new Node[10005]; - char[] str = new char[10005]; - - // - ShuntingYard(){ - mp.put('(',0); - mp.put('-',1); - mp.put('+',1); - mp.put('*',2);// - mp.put('/',2);// - } - - //ȳ㷨 - public double shuntYardAlgo(char[] str) throws Exception - { - Stack oper = new Stack() ; - - //inNumǵǰǷ - boolean inNum = true; - //hasDotǷѾС - boolean hasDot = true; - - int p = 0; //ɨָλ - int cnt = 0; //Żּ - int sign = 1; //ʾ - - while(p < str.length){ - //ΪʱʾֵַתΪ - if(Character.isDigit(str[p]) || str[p] == '.'){ - if(inNum){ - double val = 0; - double w = 1; - if(str[p] == '.'){ - hasDot = true; - val = 0; - }else{ - hasDot = false; - val = str[p] - '0'; - } - p++; - while(p < str.length && (Character.isDigit(str[p]) || str[p] == '.' )){ - if(str[p] == '.'){ - if(hasDot) throw new Exception();//һС - hasDot = true; - }else{ - if(hasDot){ - w *= 0.1; - val += (str[p] - '0') * w; - }else - val = val * 10 + str[p] - '0'; - } - p++; - } - p--; - node[cnt++] = new Node(val * sign, ' '); - sign = 1; - inNum = false; - }else throw new Exception(); - }else{ - switch(str[p]){ - case '(': - oper.push(str[p]); - break; - case ')': - while(!oper.empty() && oper.peek() != '('){ - node[cnt++] = new Node(0, oper.peek()); - oper.pop(); - } - if(oper.empty()) - throw new Exception(); - oper.pop(); - break; - case '+': - case '-': - case '*': - case '/': - // жֵ - if(inNum){ - if(str[p] != '+' && str[p] != '-') - throw new Exception(); //ֻΪΪ - while(str[p] == '+' || str[p] == '-'){ - if(str[p] == '-') - sign *= -1; - p++; - } - p--; - }else{ - while(!oper.empty() && mp.get(str[p]) <= mp.get(oper.peek())){ - node[cnt++] = new Node(0, oper.pop()); - } - oper.push(str[p]); - inNum = true; - } - break; - } - } - p++; - } - while(!oper.empty()){ - node[cnt++] = new Node(0, oper.peek()); - oper.pop(); - } -// for(int i = 0; i < cnt; i++) { -// if(node[i].val!=0) { -// System.out.print(node[i].val); -// }else { -// System.out.print(node[i].opt); -// } -// -// } - return CalPoland(node, cnt); - } - - //沨ʽļ - double CalPoland(Node node[], int n) throws Exception - { - Stack s = new Stack(); - for(int i = 0; i < n; i++) - { - if(node[i].opt == ' ') - s.push(node[i].val); - else - { - double a = s.peek(); - s.pop(); - double b = s.peek(); - s.pop(); - switch(node[i].opt) - { - case '+': - s.push(b + a); - break; - case '-': - s.push(b - a); - break; - case '*': - s.push(b * a); - break; - case '/': - if(Math.abs(a) < EPS) { - throw new Exception(); - } - s.push(b / a); - break; - } - } - } - return s.peek(); - } -} From e71858eede6f9a65f571d6ecc94f0795529694e4 Mon Sep 17 00:00:00 2001 From: mujinjia <42687707+mujinjia@users.noreply.github.com> Date: Wed, 19 Sep 2018 03:32:06 +0800 Subject: [PATCH 117/135] =?UTF-8?q?=E6=9C=80=E5=90=8E=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 完结 --- MathExam.java | 380 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 380 insertions(+) create mode 100644 MathExam.java diff --git a/MathExam.java b/MathExam.java new file mode 100644 index 0000000..780a0ff --- /dev/null +++ b/MathExam.java @@ -0,0 +1,380 @@ +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Stack; +import java.util.regex.Pattern; + +public class MathExam { + //mpȼ + private static HashMap mp = new HashMap(); + private static String errorMessage = "IJʽ밴 -n -grade -grade -n ʽ롣"; + private static int grade; + private static StringBuffer[] topic; + private static StringBuffer[] standAnswer; + + private static char[] Operator = { '+', '-', '', '' }; + + public static void main(String[] args) throws Exception { + if(judgmentParameter(args)) { + mp.put('-',1); + mp.put('+',1); + mp.put('',2);// + mp.put('',2);// + int len = Integer.parseInt(args["-n".equals(args[0]) ? 1 : 3]); + grade = Integer.parseInt(args["-n".equals(args[0]) ? 3 : 1]); + topic = new StringBuffer[len]; + standAnswer = new StringBuffer[len]; + for(int i = 0;i 4) { + return false; + }else { + // 1 жǷ -n -grade ʶ + if(!(("-n".equals(args[0]) && "-grade".equals(args[2]) )|| ("-grade".equals(args[0]) && "-n".equals(args[2])))) { + return false; + } + + // 2 ȥֲǰ0 + args[1] = args[1].replaceFirst("^0*", ""); + args[3] = args[3].replaceFirst("^0*", ""); + + // 3 Ƿ + Pattern pattern = Pattern.compile("[0-9]*"); + boolean matches = pattern.matcher(args["-n".equals(args[0]) ? 1 : 3]).matches(); + + if (matches && args["-n".equals(args[0]) ? 3 : 1].length() > 4) { + errorMessage = "ĿУ"; + return false; + } else if (!matches) { + errorMessage = "ĿУһ"; + return false; + } + + // 4 꼶Ƿ1~3 + Pattern compile = Pattern.compile("[1-3]?"); + boolean matches2 = compile.matcher(args["-n".equals(args[0]) ? 3 : 1]).matches(); + + if (!matches2) { + errorMessage = "Ŀǰֻ֧1~3꼶У1~3еһ"; + return false; + } + } + return true; + } + + /** + * ãһ꼶Ŀ + * @param len ûҪɵĿ + * @param grade 꼶 + */ + private static void generatingTopicTwo(int len,int grade) { + for (int i = 0; i < len; i++) { + // ȡnum1,num2ʾ; + int num1 = (int) (Math.random() * 100); + int num2 = (int) (Math.random() * 100); + + // symbol; + int index = (1 == grade) ? ((int) (Math.random() * 10)) % 2 : ((int) (Math.random() * 10)) % 4; + char symbol = Operator[index]; + + //ȷͲ100 + while(0 == index && num1 + num2 >= 100) { + num1 = (int) (Math.random() * 100); + num2 = (int) (Math.random() * 100); + } + + // + int res = 0; + int remainder = 0; // + switch (symbol) { + case '+': + //ȷСѧ1꼶ĿΪλӼʮλӼһλ + if(1 == grade && num1>10 && num2 >10 && num1%10 != 0 && num2%10 !=0) { + num2 = num2/10*10; + } + res = num1 + num2; + break; + case '-': + // ȷһȵڶ󣬱ָСѧӼ޸ + if (num1 < num2) { + int temp = num1; + num1 = num2; + num2 = temp; + } + //ȷСѧ1꼶ĿΪλӼʮλӼһλ + if(1 == grade && num1>10 && num2 >10 && num2%10 !=0) { + num2 = num2/10*10; + } + res = num1 - num2; + break; + case '': + //ȷΪڳ˷ + num1 %= 10; + num2 %= 10; + res = num1 * num2; + break; + case '': + //ֹΪ0 + while(0 == num2) { + num2 = (int) (Math.random() * 100); + } + + //ȷΪڳ + if(num2>10) { + num2 /=10 ; + } + + res = num1 / num2; + remainder = num1 % num2; + break; + } + // Ŀʹ𰸼¼ + topic[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + System.lineSeparator()); + if (symbol == '/') { + standAnswer[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + " = " + res + + (remainder != 0 ? ("..." + remainder) : "")); + } else { + standAnswer[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + " = " + res); + } + if(i != len - 1){ + standAnswer[i].append(System.lineSeparator()); + } + } + } + + /** + * ã꼶Ŀ + * @param len + * @param grade + * @throws Exception + */ + private static void generatingTopic(int len,int grade) throws Exception { + for(int i = 0;i < len;i++) { + // ȷͲܸ + int n=5+(int)(Math.random()*3); + if(n%2 == 0) n++; + + Character[] infixExpression = new Character[n]; + + // (n-1)/2 + char[] str = new char[(n-1)/2]; + char c ; + infixExpression[n-1] = c = Operator[(int)(Math.random()*4)]; + for(int j = 1,k = n-2;j < (n-1)/2;j++,k--) { + infixExpression[k] = Operator[(int)(Math.random()*4)]; + c ^= infixExpression[k].charValue(); + } + + if(c == 0) { + int q = (int)(Math.random()*4); + infixExpression[n-1] = Operator[q] != infixExpression[n-1].charValue() ? Operator[q] : Operator[(q+1)%4]; + } + + // ɵIJ[2,n-2]Χ + do { + List list = new ArrayList(); + for(int j = 2;j < infixExpression.length-1;j++){ + list.add(infixExpression[j]); + } + + Collections.shuffle(list); + + Iterator ite = list.iterator(); + int k = 2,l = 0; + while(ite.hasNext()){ + infixExpression[k] = ite.next(); + if(infixExpression[k] != null) { + str[l++] = infixExpression[k]; + } + k++; + } + str[l] = infixExpression[k]; + }while(isInfixExpre(infixExpression)); + + try { + topic[i].append("(" + (i+1) + ")"); + standAnswer[i].append("(" + (i+1) + ")"); + int res = CalPoland(infixExpression,i,str); + topic[i].append(System.lineSeparator()); + standAnswer[i].append(" = " + res); + if(i != len - 1){ + standAnswer[i].append(System.lineSeparator()); + } + } catch (Exception e) { + // ɵĿϷStringBuffer + topic[i].setLength(0); + standAnswer[i].setLength(0); + i--; + } + } + } + + /** + * ãжϴ˺׺ʽǷ + * @param infix ֻĺ׺ʽ + * @return 󷵻trueȷfalse + */ + private static boolean isInfixExpre(Character[] infix) { + for(int i = infix.length-1;i>=0;i--) { + if(infix[i] != null) { + int temp = 0; + int count = 0; + for(int j = i-1;j>=0;j--) { + if(infix[j] != null) { + temp++; + }else { + count++; + } + } + if(count - temp < 2) { + return true; + } + } + } + return false; + } + + /** + * ãĿ沨ʽ + * @param infix ׺ʽ + * @param n ڼĿ + * @param str + * @return ؼ + * @throws Exception ʽгʱ׳쳣 + */ + static int CalPoland(Character infix[],int n,char[] str) throws Exception{ + Stack s = new Stack(); + Stack tops = new Stack(); + int k = 1;// + for(int i = 0; i < infix.length; i++) + { + if(infix[i] == null) { + s.push(' '); + }else{ + int a,b; + String str1,str2; + if(s.peek() instanceof Character) { + a = 1 + (int) (Math.random() * 100); + str1 = " " + a; + }else { + a = (int) s.peek(); + str1 = tops.peek(); + tops.pop(); + } + s.pop(); + + if(s.peek() instanceof Character) { + b = 1 + (int) (Math.random() * 100); + str2 = " " + b; + }else { + b = (int) s.peek(); + str2 = tops.peek(); + tops.pop(); + } + s.pop(); + + switch(infix[i]) + { + case '+': + s.push(b + a); + break; + case '-': + if(b < a ) { + int temp = b; + b = a; + a = temp; + + String st = str1; + str1 = str2; + str2 = st; + } + s.push(b - a); + break; + case '': + s.push(b * a); + break; + case '': + if(b % a != 0) { + throw new Exception(); + } + s.push(b / a); + break; + } + tops.push(str2 + " " + infix[i] + str1); + int j; + for(j = k;j Date: Wed, 19 Sep 2018 03:32:57 +0800 Subject: [PATCH 118/135] =?UTF-8?q?=E6=9C=80=E5=90=8E=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 完结 --- Pair_211606313_211606381/MathExam.java | 436 +++++++++++++++++++++---- 1 file changed, 380 insertions(+), 56 deletions(-) diff --git a/Pair_211606313_211606381/MathExam.java b/Pair_211606313_211606381/MathExam.java index a92f64c..780a0ff 100644 --- a/Pair_211606313_211606381/MathExam.java +++ b/Pair_211606313_211606381/MathExam.java @@ -1,56 +1,380 @@ -import java.util.regex.Pattern; - -public class MathExam { - private static String errorMessage = "IJʽ밴 -n -grade -grade -n ʽ롣"; - private static String grade; - - public static void main(String[] args) { - if(judgmentParameter(args)) { - System.out.println("Сѧ" + grade + "꼶ѧĿɣ鿴out.txtļ"); - }else { - System.out.println(errorMessage); - } - } - - /** - * - * @param args ûIJ - * @return Ҫʱ true򷵻false - */ - private static boolean judgmentParameter(String[] args) { - if(args.length < 4 || args.length > 4) { - return false; - }else { - // 1 жǷ -n -grade ʶ - if(!(("-n".equals(args[0]) && "-grade".equals(args[2]) )|| ("-grade".equals(args[0]) && "-n".equals(args[2])))) { - return false; - } - - // 2 ȥֲǰ0 - args[1] = args[1].replaceFirst("^0*", ""); - args[3] = args[3].replaceFirst("^0*", ""); - - // 3 Ƿ - Pattern pattern = Pattern.compile("[0-9]*"); - boolean matches = pattern.matcher(args["-n".equals(args[0]) ? 1 : 3]).matches(); - - if (matches && args["-n".equals(args[0]) ? 3 : 1].length() > 4) { - errorMessage = "ĿУ"; - return false; - } else if (!matches) { - errorMessage = "ĿУһ"; - return false; - } - - // 4 꼶Ƿ1~3 - Pattern compile = Pattern.compile("[1-3]?"); - boolean matches2 = compile.matcher(args["-n".equals(args[0]) ? 3 : 1]).matches(); - - if (!matches2) { - errorMessage = "Ŀǰֻ֧1~3꼶У1~3еһ"; - return false; - } - } - return true; - } -} +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Stack; +import java.util.regex.Pattern; + +public class MathExam { + //mpȼ + private static HashMap mp = new HashMap(); + private static String errorMessage = "IJʽ밴 -n -grade -grade -n ʽ롣"; + private static int grade; + private static StringBuffer[] topic; + private static StringBuffer[] standAnswer; + + private static char[] Operator = { '+', '-', '', '' }; + + public static void main(String[] args) throws Exception { + if(judgmentParameter(args)) { + mp.put('-',1); + mp.put('+',1); + mp.put('',2);// + mp.put('',2);// + int len = Integer.parseInt(args["-n".equals(args[0]) ? 1 : 3]); + grade = Integer.parseInt(args["-n".equals(args[0]) ? 3 : 1]); + topic = new StringBuffer[len]; + standAnswer = new StringBuffer[len]; + for(int i = 0;i 4) { + return false; + }else { + // 1 жǷ -n -grade ʶ + if(!(("-n".equals(args[0]) && "-grade".equals(args[2]) )|| ("-grade".equals(args[0]) && "-n".equals(args[2])))) { + return false; + } + + // 2 ȥֲǰ0 + args[1] = args[1].replaceFirst("^0*", ""); + args[3] = args[3].replaceFirst("^0*", ""); + + // 3 Ƿ + Pattern pattern = Pattern.compile("[0-9]*"); + boolean matches = pattern.matcher(args["-n".equals(args[0]) ? 1 : 3]).matches(); + + if (matches && args["-n".equals(args[0]) ? 3 : 1].length() > 4) { + errorMessage = "ĿУ"; + return false; + } else if (!matches) { + errorMessage = "ĿУһ"; + return false; + } + + // 4 꼶Ƿ1~3 + Pattern compile = Pattern.compile("[1-3]?"); + boolean matches2 = compile.matcher(args["-n".equals(args[0]) ? 3 : 1]).matches(); + + if (!matches2) { + errorMessage = "Ŀǰֻ֧1~3꼶У1~3еһ"; + return false; + } + } + return true; + } + + /** + * ãһ꼶Ŀ + * @param len ûҪɵĿ + * @param grade 꼶 + */ + private static void generatingTopicTwo(int len,int grade) { + for (int i = 0; i < len; i++) { + // ȡnum1,num2ʾ; + int num1 = (int) (Math.random() * 100); + int num2 = (int) (Math.random() * 100); + + // symbol; + int index = (1 == grade) ? ((int) (Math.random() * 10)) % 2 : ((int) (Math.random() * 10)) % 4; + char symbol = Operator[index]; + + //ȷͲ100 + while(0 == index && num1 + num2 >= 100) { + num1 = (int) (Math.random() * 100); + num2 = (int) (Math.random() * 100); + } + + // + int res = 0; + int remainder = 0; // + switch (symbol) { + case '+': + //ȷСѧ1꼶ĿΪλӼʮλӼһλ + if(1 == grade && num1>10 && num2 >10 && num1%10 != 0 && num2%10 !=0) { + num2 = num2/10*10; + } + res = num1 + num2; + break; + case '-': + // ȷһȵڶ󣬱ָСѧӼ޸ + if (num1 < num2) { + int temp = num1; + num1 = num2; + num2 = temp; + } + //ȷСѧ1꼶ĿΪλӼʮλӼһλ + if(1 == grade && num1>10 && num2 >10 && num2%10 !=0) { + num2 = num2/10*10; + } + res = num1 - num2; + break; + case '': + //ȷΪڳ˷ + num1 %= 10; + num2 %= 10; + res = num1 * num2; + break; + case '': + //ֹΪ0 + while(0 == num2) { + num2 = (int) (Math.random() * 100); + } + + //ȷΪڳ + if(num2>10) { + num2 /=10 ; + } + + res = num1 / num2; + remainder = num1 % num2; + break; + } + // Ŀʹ𰸼¼ + topic[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + System.lineSeparator()); + if (symbol == '/') { + standAnswer[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + " = " + res + + (remainder != 0 ? ("..." + remainder) : "")); + } else { + standAnswer[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + " = " + res); + } + if(i != len - 1){ + standAnswer[i].append(System.lineSeparator()); + } + } + } + + /** + * ã꼶Ŀ + * @param len + * @param grade + * @throws Exception + */ + private static void generatingTopic(int len,int grade) throws Exception { + for(int i = 0;i < len;i++) { + // ȷͲܸ + int n=5+(int)(Math.random()*3); + if(n%2 == 0) n++; + + Character[] infixExpression = new Character[n]; + + // (n-1)/2 + char[] str = new char[(n-1)/2]; + char c ; + infixExpression[n-1] = c = Operator[(int)(Math.random()*4)]; + for(int j = 1,k = n-2;j < (n-1)/2;j++,k--) { + infixExpression[k] = Operator[(int)(Math.random()*4)]; + c ^= infixExpression[k].charValue(); + } + + if(c == 0) { + int q = (int)(Math.random()*4); + infixExpression[n-1] = Operator[q] != infixExpression[n-1].charValue() ? Operator[q] : Operator[(q+1)%4]; + } + + // ɵIJ[2,n-2]Χ + do { + List list = new ArrayList(); + for(int j = 2;j < infixExpression.length-1;j++){ + list.add(infixExpression[j]); + } + + Collections.shuffle(list); + + Iterator ite = list.iterator(); + int k = 2,l = 0; + while(ite.hasNext()){ + infixExpression[k] = ite.next(); + if(infixExpression[k] != null) { + str[l++] = infixExpression[k]; + } + k++; + } + str[l] = infixExpression[k]; + }while(isInfixExpre(infixExpression)); + + try { + topic[i].append("(" + (i+1) + ")"); + standAnswer[i].append("(" + (i+1) + ")"); + int res = CalPoland(infixExpression,i,str); + topic[i].append(System.lineSeparator()); + standAnswer[i].append(" = " + res); + if(i != len - 1){ + standAnswer[i].append(System.lineSeparator()); + } + } catch (Exception e) { + // ɵĿϷStringBuffer + topic[i].setLength(0); + standAnswer[i].setLength(0); + i--; + } + } + } + + /** + * ãжϴ˺׺ʽǷ + * @param infix ֻĺ׺ʽ + * @return 󷵻trueȷfalse + */ + private static boolean isInfixExpre(Character[] infix) { + for(int i = infix.length-1;i>=0;i--) { + if(infix[i] != null) { + int temp = 0; + int count = 0; + for(int j = i-1;j>=0;j--) { + if(infix[j] != null) { + temp++; + }else { + count++; + } + } + if(count - temp < 2) { + return true; + } + } + } + return false; + } + + /** + * ãĿ沨ʽ + * @param infix ׺ʽ + * @param n ڼĿ + * @param str + * @return ؼ + * @throws Exception ʽгʱ׳쳣 + */ + static int CalPoland(Character infix[],int n,char[] str) throws Exception{ + Stack s = new Stack(); + Stack tops = new Stack(); + int k = 1;// + for(int i = 0; i < infix.length; i++) + { + if(infix[i] == null) { + s.push(' '); + }else{ + int a,b; + String str1,str2; + if(s.peek() instanceof Character) { + a = 1 + (int) (Math.random() * 100); + str1 = " " + a; + }else { + a = (int) s.peek(); + str1 = tops.peek(); + tops.pop(); + } + s.pop(); + + if(s.peek() instanceof Character) { + b = 1 + (int) (Math.random() * 100); + str2 = " " + b; + }else { + b = (int) s.peek(); + str2 = tops.peek(); + tops.pop(); + } + s.pop(); + + switch(infix[i]) + { + case '+': + s.push(b + a); + break; + case '-': + if(b < a ) { + int temp = b; + b = a; + a = temp; + + String st = str1; + str1 = str2; + str2 = st; + } + s.push(b - a); + break; + case '': + s.push(b * a); + break; + case '': + if(b % a != 0) { + throw new Exception(); + } + s.push(b / a); + break; + } + tops.push(str2 + " " + infix[i] + str1); + int j; + for(j = k;j Date: Wed, 19 Sep 2018 03:33:21 +0800 Subject: [PATCH 119/135] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=94=99=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MathExam.java | 380 -------------------------------------------------- 1 file changed, 380 deletions(-) delete mode 100644 MathExam.java diff --git a/MathExam.java b/MathExam.java deleted file mode 100644 index 780a0ff..0000000 --- a/MathExam.java +++ /dev/null @@ -1,380 +0,0 @@ -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Stack; -import java.util.regex.Pattern; - -public class MathExam { - //mpȼ - private static HashMap mp = new HashMap(); - private static String errorMessage = "IJʽ밴 -n -grade -grade -n ʽ롣"; - private static int grade; - private static StringBuffer[] topic; - private static StringBuffer[] standAnswer; - - private static char[] Operator = { '+', '-', '', '' }; - - public static void main(String[] args) throws Exception { - if(judgmentParameter(args)) { - mp.put('-',1); - mp.put('+',1); - mp.put('',2);// - mp.put('',2);// - int len = Integer.parseInt(args["-n".equals(args[0]) ? 1 : 3]); - grade = Integer.parseInt(args["-n".equals(args[0]) ? 3 : 1]); - topic = new StringBuffer[len]; - standAnswer = new StringBuffer[len]; - for(int i = 0;i 4) { - return false; - }else { - // 1 жǷ -n -grade ʶ - if(!(("-n".equals(args[0]) && "-grade".equals(args[2]) )|| ("-grade".equals(args[0]) && "-n".equals(args[2])))) { - return false; - } - - // 2 ȥֲǰ0 - args[1] = args[1].replaceFirst("^0*", ""); - args[3] = args[3].replaceFirst("^0*", ""); - - // 3 Ƿ - Pattern pattern = Pattern.compile("[0-9]*"); - boolean matches = pattern.matcher(args["-n".equals(args[0]) ? 1 : 3]).matches(); - - if (matches && args["-n".equals(args[0]) ? 3 : 1].length() > 4) { - errorMessage = "ĿУ"; - return false; - } else if (!matches) { - errorMessage = "ĿУһ"; - return false; - } - - // 4 꼶Ƿ1~3 - Pattern compile = Pattern.compile("[1-3]?"); - boolean matches2 = compile.matcher(args["-n".equals(args[0]) ? 3 : 1]).matches(); - - if (!matches2) { - errorMessage = "Ŀǰֻ֧1~3꼶У1~3еһ"; - return false; - } - } - return true; - } - - /** - * ãһ꼶Ŀ - * @param len ûҪɵĿ - * @param grade 꼶 - */ - private static void generatingTopicTwo(int len,int grade) { - for (int i = 0; i < len; i++) { - // ȡnum1,num2ʾ; - int num1 = (int) (Math.random() * 100); - int num2 = (int) (Math.random() * 100); - - // symbol; - int index = (1 == grade) ? ((int) (Math.random() * 10)) % 2 : ((int) (Math.random() * 10)) % 4; - char symbol = Operator[index]; - - //ȷͲ100 - while(0 == index && num1 + num2 >= 100) { - num1 = (int) (Math.random() * 100); - num2 = (int) (Math.random() * 100); - } - - // - int res = 0; - int remainder = 0; // - switch (symbol) { - case '+': - //ȷСѧ1꼶ĿΪλӼʮλӼһλ - if(1 == grade && num1>10 && num2 >10 && num1%10 != 0 && num2%10 !=0) { - num2 = num2/10*10; - } - res = num1 + num2; - break; - case '-': - // ȷһȵڶ󣬱ָСѧӼ޸ - if (num1 < num2) { - int temp = num1; - num1 = num2; - num2 = temp; - } - //ȷСѧ1꼶ĿΪλӼʮλӼһλ - if(1 == grade && num1>10 && num2 >10 && num2%10 !=0) { - num2 = num2/10*10; - } - res = num1 - num2; - break; - case '': - //ȷΪڳ˷ - num1 %= 10; - num2 %= 10; - res = num1 * num2; - break; - case '': - //ֹΪ0 - while(0 == num2) { - num2 = (int) (Math.random() * 100); - } - - //ȷΪڳ - if(num2>10) { - num2 /=10 ; - } - - res = num1 / num2; - remainder = num1 % num2; - break; - } - // Ŀʹ𰸼¼ - topic[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + System.lineSeparator()); - if (symbol == '/') { - standAnswer[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + " = " + res - + (remainder != 0 ? ("..." + remainder) : "")); - } else { - standAnswer[i].append("(" + (i+1) + ") " + num1 + " " + symbol + " " + num2 + " = " + res); - } - if(i != len - 1){ - standAnswer[i].append(System.lineSeparator()); - } - } - } - - /** - * ã꼶Ŀ - * @param len - * @param grade - * @throws Exception - */ - private static void generatingTopic(int len,int grade) throws Exception { - for(int i = 0;i < len;i++) { - // ȷͲܸ - int n=5+(int)(Math.random()*3); - if(n%2 == 0) n++; - - Character[] infixExpression = new Character[n]; - - // (n-1)/2 - char[] str = new char[(n-1)/2]; - char c ; - infixExpression[n-1] = c = Operator[(int)(Math.random()*4)]; - for(int j = 1,k = n-2;j < (n-1)/2;j++,k--) { - infixExpression[k] = Operator[(int)(Math.random()*4)]; - c ^= infixExpression[k].charValue(); - } - - if(c == 0) { - int q = (int)(Math.random()*4); - infixExpression[n-1] = Operator[q] != infixExpression[n-1].charValue() ? Operator[q] : Operator[(q+1)%4]; - } - - // ɵIJ[2,n-2]Χ - do { - List list = new ArrayList(); - for(int j = 2;j < infixExpression.length-1;j++){ - list.add(infixExpression[j]); - } - - Collections.shuffle(list); - - Iterator ite = list.iterator(); - int k = 2,l = 0; - while(ite.hasNext()){ - infixExpression[k] = ite.next(); - if(infixExpression[k] != null) { - str[l++] = infixExpression[k]; - } - k++; - } - str[l] = infixExpression[k]; - }while(isInfixExpre(infixExpression)); - - try { - topic[i].append("(" + (i+1) + ")"); - standAnswer[i].append("(" + (i+1) + ")"); - int res = CalPoland(infixExpression,i,str); - topic[i].append(System.lineSeparator()); - standAnswer[i].append(" = " + res); - if(i != len - 1){ - standAnswer[i].append(System.lineSeparator()); - } - } catch (Exception e) { - // ɵĿϷStringBuffer - topic[i].setLength(0); - standAnswer[i].setLength(0); - i--; - } - } - } - - /** - * ãжϴ˺׺ʽǷ - * @param infix ֻĺ׺ʽ - * @return 󷵻trueȷfalse - */ - private static boolean isInfixExpre(Character[] infix) { - for(int i = infix.length-1;i>=0;i--) { - if(infix[i] != null) { - int temp = 0; - int count = 0; - for(int j = i-1;j>=0;j--) { - if(infix[j] != null) { - temp++; - }else { - count++; - } - } - if(count - temp < 2) { - return true; - } - } - } - return false; - } - - /** - * ãĿ沨ʽ - * @param infix ׺ʽ - * @param n ڼĿ - * @param str - * @return ؼ - * @throws Exception ʽгʱ׳쳣 - */ - static int CalPoland(Character infix[],int n,char[] str) throws Exception{ - Stack s = new Stack(); - Stack tops = new Stack(); - int k = 1;// - for(int i = 0; i < infix.length; i++) - { - if(infix[i] == null) { - s.push(' '); - }else{ - int a,b; - String str1,str2; - if(s.peek() instanceof Character) { - a = 1 + (int) (Math.random() * 100); - str1 = " " + a; - }else { - a = (int) s.peek(); - str1 = tops.peek(); - tops.pop(); - } - s.pop(); - - if(s.peek() instanceof Character) { - b = 1 + (int) (Math.random() * 100); - str2 = " " + b; - }else { - b = (int) s.peek(); - str2 = tops.peek(); - tops.pop(); - } - s.pop(); - - switch(infix[i]) - { - case '+': - s.push(b + a); - break; - case '-': - if(b < a ) { - int temp = b; - b = a; - a = temp; - - String st = str1; - str1 = str2; - str2 = st; - } - s.push(b - a); - break; - case '': - s.push(b * a); - break; - case '': - if(b % a != 0) { - throw new Exception(); - } - s.push(b / a); - break; - } - tops.push(str2 + " " + infix[i] + str1); - int j; - for(j = k;j Date: Wed, 19 Sep 2018 07:30:33 +0800 Subject: [PATCH 120/135] =?UTF-8?q?=E7=BB=93=E5=AF=B9=E4=BD=9C=E4=B8=9A01?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606359_211506368/MathExam.java | 391 +++++++++++++++++++++++++ 1 file changed, 391 insertions(+) create mode 100644 Pair_211606359_211506368/MathExam.java diff --git a/Pair_211606359_211506368/MathExam.java b/Pair_211606359_211506368/MathExam.java new file mode 100644 index 0000000..8313411 --- /dev/null +++ b/Pair_211606359_211506368/MathExam.java @@ -0,0 +1,391 @@ +package test; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.InputMismatchException; +import java.util.Random; +import java.util.Scanner; + +public class MathExam { + + //扫描器,用于扫描键盘输入 + private static Scanner s = new Scanner(System.in); + private static int firstNum_index = 0; + private static int secondNum_index = 2; + private static int thirdNum_index = 4; + + private static int firstOperate_index = 1; + private static int secondOperate_index = 3; + + private static int result_index = 5; + + public static void main(String[] args) { + System.out.println("请输出所需要的题目数量和年级,用逗号隔开如(100,3):"); + try{ + + String str = s.nextLine(); + String[] params = str.split(","); + if(params.length == 1){ + params = str.split(","); + } + int count = Integer.valueOf(params[0]); + int grade = Integer.valueOf(params[1]); + File file = new File("D:\\java\\out.txt"); + if(!makeTxt(file)){ + throw new RuntimeException("文件创建失败"); + } + String[][] titleArr = null; + if(params.length >= 2){ + titleArr = buildQuestion(count, grade); + }else{ + titleArr = buildQuestion(count); + } + boolean isSuccess = printQuestion(file, titleArr); + if(isSuccess){ + System.out.println("文件及其算术创建成功!"); + }else{ + System.out.println("文件及其算术创建失败!"); + } + }catch(InputMismatchException e){ + e.printStackTrace(); + System.out.println("文件及其算术创建失败!"); + System.out.println("输入的题目数量和年级必须为正整数!"); + }catch(Exception e){ + e.printStackTrace(); + System.out.println("文件及其算术创建失败!"); + } + } + + /** + * 生成题目,默认为2年级 + * @param count + * @return + */ + private static String[][] buildQuestion(int count){ + return buildQuestion(count, 1); + } + + /** + * 生成题目 + * @param count 题目的数量 + * @param grade 对应的年级,年级下限制为1 + * @return + */ + private static String[][] buildQuestion(int count, int grade){ + //运算符号范围 + int operate = 0; + //如果题目数量为负数 + if(count < 0){ + count = 1; + } + //如果年级为负数 + if(grade <= 1){ + operate = 0; + }else if(grade == 2){ + operate = 2; + }else{ + operate = 3; + } + //基数默认为50 + int limited = 49; + //随机数工具 + Random random = new Random(); + + int firstNum = 0; + int secondNum = 0; + int thirdNum = 0; + + int firstOperate = 0; + int secondOperate = 0; + + int result = 0; + + + //二维数组, 其第二维度 依次存放的是 数字、运算、数字、运算、数字、结果 + String[][] titleArr = new String[count][6]; + for (String[] arr : titleArr) { + //第一位运算数字 + firstNum = random.nextInt(99) + 1; + //第二位运算数字 + secondNum = random.nextInt(99) + 1; + //第三位运算数字 + thirdNum = random.nextInt(99) + 1; + + //第一位符号 0:+ 1:- 2:× 3:÷ + firstOperate = random.nextInt(4); + //第二位符号 0:+ 1:- 2:× 3:÷ 4:四则运算 + secondOperate = random.nextInt(2) + operate; + + switch(secondOperate){ + case 0: + //加法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[firstNum_index] = String.valueOf(firstNum); + arr[thirdNum_index] = String.valueOf(secondNum); + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + break; + + case 1: + //减法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[firstNum_index] = String.valueOf(firstNum); + arr[secondNum_index] = String.valueOf(secondNum); + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + break; + + case 2: + //乘法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[firstNum_index] = String.valueOf(firstNum); + arr[secondNum_index] = String.valueOf(secondNum); + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + break; + + case 3: + //除法 + firstOperate = secondOperate; + arr[firstOperate_index] = paraseOperateStr(firstOperate); + //判断分母不能为0,如果是0,则重新取值 + while(secondNum == 0){ + secondNum = random.nextInt(limited) + 1; + } + //余数 + int remainder = (firstNum % secondNum); + if(remainder == 0){ + arr[result_index] = calculate(firstNum, secondNum, firstOperate); + }else{ + arr[result_index] = calculate(firstNum, secondNum, firstOperate) + "..." + String.valueOf(remainder); + } + arr[firstNum_index] = String.valueOf(secondNum); + arr[secondNum_index] = String.valueOf(thirdNum); + break; + + case 4: + //运算符重新取值 + secondOperate = random.nextInt(4); + //如果第一个符号的优先相等或高,则不用做括号处理 + if(compareOperate(firstOperate, secondOperate) >= 0){ + //如果第一位符号是除法 要做特殊处理 + if(firstOperate == 3){ + while((firstNum % secondNum) != 0 || result == 0){ + firstNum = random.nextInt(limited); + //防止除数为0 + secondNum = random.nextInt(limited) + 1; + result = firstNum / secondNum; + } + result = firstNum / secondNum; + //第二位是乘法和除法 + if(secondOperate == 3 || secondOperate == 2){ + //如果第二位符号是除法 要做特殊处理 + if(secondOperate == 3){ + while((result % thirdNum)!=0 || result/thirdNum==0){ + thirdNum = random.nextInt(limited) + 1; + } + } + //填充数据 + arr[secondNum_index] = String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum); + + arr[result_index] = calculate(result, thirdNum, secondOperate); + }else{ + //加法和减法的操作处理 + result = Integer.valueOf(calculate(secondNum, thirdNum, secondOperate)); + //逆推 + int temp = random.nextInt(20); + firstNum = temp * result; + arr[secondNum_index] = "( " + String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum) + " )"; + arr[result_index] = String.valueOf(temp); + } + }else{ + result = Integer.valueOf(calculate(firstNum, secondNum, firstOperate)); + //填充数据 + arr[secondNum_index] = String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum); + arr[result_index] = calculate(result, thirdNum, secondOperate); + } + arr[firstNum_index] = String.valueOf(firstNum); + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[secondOperate_index] = paraseOperateStr(secondOperate); + }else{ + //优先级低的处理,既加括号 + result = Integer.valueOf(calculate(secondNum, thirdNum, secondOperate)); + if(firstOperate == 3){ + //如果此时result等于0,则重新取值 + while(result == 0){ + secondNum = random.nextInt(limited); + //防止出现除数为0的情况 + thirdNum = random.nextInt(limited) +1; + result = Integer.valueOf(calculate(secondNum, thirdNum, secondOperate)); + } + //此时除数可能很大,所以应该逆推 + int temp = random.nextInt(20); + + arr[firstNum_index] = calculate(result, temp, 2); + arr[result_index] = String.valueOf(temp); + }else{ + arr[firstNum_index] = String.valueOf(firstNum); + arr[result_index] = calculate(firstNum, result, firstOperate); + } + arr[secondNum_index] = String.valueOf(secondNum); + arr[thirdNum_index] = String.valueOf(thirdNum); + arr[firstOperate_index] = paraseOperateStr(firstOperate); + arr[secondOperate_index] = paraseOperateStr(secondOperate); + } + break; + } + + } + return titleArr; + + } + + private static boolean printQuestion(File file, String[][] titleArr){ + // 仅带有问题的字符缓存器 + StringBuilder buff = new StringBuilder(); + //携带问题和答案的字符缓存器 + StringBuilder answerbuff = new StringBuilder(); + //换行符 + String newLine = "\r\n"; + //"------------------标准答案------------------"字符 + String divideStr = "------------------标准答案------------------\r\n"; + // "211606359 戴俊涵 yyyy年MM月dd日 HH:mm" + SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日\tHH:mm"); + String anthorInfo = "\t\t211506368 \t\t霍金池\t\t" + sdf.format(new Date()); + + for(int i =1; i<=titleArr.length; i++){ + String[] arr = titleArr[i-1]; + String str = "("+ i + ") "; + for(int j = 0; j < 5; j++){ + if(arr[j] != null){ + str += arr[j]; + } + } + str += " ="; + buff.append(str + newLine); + answerbuff.append(str + " " + arr[result_index] + newLine); + } + + FileOutputStream fos = null; + try { + fos = new FileOutputStream(file); + fos.write(buff.toString().getBytes()); + fos.write(divideStr.getBytes()); + fos.write(answerbuff.toString().getBytes()); + fos.write(anthorInfo.getBytes()); + } catch (FileNotFoundException e) { + throw new RuntimeException("文件未找到异常", e); + } catch (IOException e) { + throw new RuntimeException("输入或输出流发生异常", e); + } + finally{ + try { + fos.close(); + } catch (IOException e) { + throw new RuntimeException("输出流关闭发生异常", e); + } + } + return true; + } + + /** + * 检查文件是否存在 + * @param f 文件目录 + * @param fileName 文件名称 + * @return 目录创建成功则返回true,否则返回false。 + */ + private static boolean makeTxt(File file){ + //如果目录不存在,则创建父级目录 + if(!file.exists()){ + file.getParentFile().mkdirs(); + } + + //如果文件不存在,则创建文件。 + if(! file.exists()){ + try { + file.createNewFile(); + } catch (IOException e) { + throw new RuntimeException("文件创建失败", e); + } + } + + //清空文本数据,防止出现乱数据 + FileWriter fileWrite = null; + try { + fileWrite = new FileWriter(file); + fileWrite.write(""); + fileWrite.flush(); + } catch (IOException e) { + throw new RuntimeException("文件清空发生异常", e); + }finally{ + try { + fileWrite.close(); + } catch (IOException e) { + throw new RuntimeException("文件写入流关闭发生异常", e); + } + } + + return file.exists(); + } + + /** + * 比较优先级 + * @param first 第一位参数 + * @param second 第二位参数 + * @return 0: 相等 1:优先 -1:殿后 + */ + private static int compareOperate(int first, int second){ + // 0:+ 1:- 2:× 3:÷ + int f = first <= 1 ? 0 : 1; + int s = second <= 1 ? 0 : 1; + return f-s; + } + + /** + * 将数字转成符号 + * @param operate 数字 + * @return + */ + private static String paraseOperateStr(int operate){ + if(operate == 0){ + return " + "; + }else if(operate == 1){ + return " - "; + }else if(operate == 2){ + return " × "; + }else if(operate == 3){ + return " ÷ "; + }else{ + throw new RuntimeException("无效的符号数字"); + } + } + + /** + * 计算出first和second之间的operate运算的字符串结果 + * @param first 第一位参数 + * @param second 第二位参数 + * @param operate 运算 + * @return 结果的字符串表示形式 + */ + private static String calculate(int first, int second, int operate){ + if(operate == 0){ + return String.valueOf(first + second); + }else if(operate == 1){ + return String.valueOf(first - second); + }else if(operate == 2){ + return String.valueOf(first * second); + }else if(operate == 3){ + return String.valueOf(first / second); + }else{ + throw new RuntimeException("计算传入的参数有误!"); + } + } +} From 693e5e6a9c0c8ece147d07c23cb9e62ecd0a237d Mon Sep 17 00:00:00 2001 From: CHY523 <42905664+CHY523@users.noreply.github.com> Date: Wed, 19 Sep 2018 10:14:34 +0800 Subject: [PATCH 121/135] MathExam2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了混合运算答案出错的问题 --- .../MathExam6387.java.txt | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 Pair_211606387_211606354/MathExam6387.java.txt diff --git a/Pair_211606387_211606354/MathExam6387.java.txt b/Pair_211606387_211606354/MathExam6387.java.txt new file mode 100644 index 0000000..8c19f8b --- /dev/null +++ b/Pair_211606387_211606354/MathExam6387.java.txt @@ -0,0 +1,200 @@ +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.Date; +import java.util.Random; +import java.util.Stack; + +import java.text.SimpleDateFormat; + +import java.util.Scanner; + + +public class MathExam6387 { + + private static Scanner in; + private static int x,y,z,f,h,g; + private static String[] str ; + private static String rem; + + public static void main(String args[]) throws FileNotFoundException, InterruptedException { + // TODO Auto-generated method stub + int n ; +// in = new Scanner(System.in); +// n = in.nextInt(); +// g = in.nextInt(); +// ָ String[] תΪ int + int i =Integer.valueOf(args[0]).intValue();//Ŀ + int g =Integer.valueOf(args[1]).intValue();//꼶 + //ļ + File file = new File("out6387.txt"); + PrintStream ps = new PrintStream(file); + System.setOut(ps); + ChoiceGrade(i, g); + + } + + //һ꼶ӷ + public static void GradeOne( int n ) { + str = new String[n]; + for (int i = 0; i < n ; i++) { + x = (int)(Math.random()*100); + y = (int)(Math.random()*100); + f = (int)(Math.random()*2); + // жϼӷͼ 0Ϊӷ + if ( f == 0) { + System.out.println("(" + (i+1) + ")" +" " + x + "+" + y + " = " ); + str[i] = "(" + (i+1) + ")" +" " + x + "+" + y + " " + "=" + " " + (x+y); + } + else { + if (x-y < 0) { + System.out.println("(" + (i+1) + ")" +" " + y + "-" + x + " = " ); + str[i] = "(" + (i+1) + ")" +" " + y + "-" + x + " " + "=" + " " + (y-x); + } + else { + System.out.println("(" + (i+1) + ")" +" " + x + "-" + y + " = " ); + str[i] = "(" + (i+1) + ")" +" " + x + "-" + y + " " + "=" + " " + (x-y); + } + } + } + System.out.println("--------׼---------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606387 Ҷ " +sdf.format(new Date())); + } + + //꼶˷ + public static void GradeTwo( int n ) { + str = new String[n]; + for (int i = 0; i < n; i++) { + x = new Random().nextInt(10) + 1; + y = new Random().nextInt(10) + 1; + f = (int)(Math.random()*2); + + if ( f == 0 && y!=0 && x!=0) { + System.out.println("(" + (i+1) + ")" +" " + x + " " + y + " = " ); + str[i] = "(" + (i+1) + ")" +" " + x + " " + y + " " + "=" + " " + (x*y); + } + else { + if (x-y < 0 ) { + System.out.println("(" + (i+1) + ")" +" " + y + " " + x + " = " ); + str[i] = "(" + (i+1) + ")" +" " + y + " " + x + " " + "=" + " " + (y/x) + JudgementRemainder(y,x); + } + else { + System.out.println("(" + (i+1) + ")" +" " + x + " " + y + " = " ); + str[i] = "(" + (i+1) + ")" +" " + x + " " + y + " " + "=" + " " + (x/y) + JudgementRemainder(x,y); + } + } + } + System.out.println("--------׼--------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606387 Ҷ " +sdf.format(new Date())); + } + + //꼶 + private static void GradeThree( int n ) { + // TODO Զɵķ + str = new String[n]; + + for (int i = 0; i < n; i++) { + x = new Random().nextInt(10) + 1; + y = new Random().nextInt(10) + 1; + z = new Random().nextInt(10) + 1; + f = (int)(Math.random()*2); + h = (int)(Math.random()*2); + //int תΪ String + String x1 = String.valueOf(x); + String y1 = String.valueOf(y); + String z1 = String.valueOf(z); + + String [] strArr = { x1,y1,z1,SymbolicJudgment(h),SymbolicJudgment(f) }; + System.out.println("(" + (i+1) + ")" +" " + z1 + " " + SymbolicJudgment(h) + " " + y1 + " " + SymbolicJudgment(f) + " " + x1 + " = " ); + str[i] = "(" + (i+1) + ")" +" " + z1 +" " + SymbolicJudgment(h) +" " + y1 +" " + SymbolicJudgment(f) +" " + x1 + " = " + ReversePolish(strArr); + } + System.out.println("--------׼---------"); + // + for(String a:str) + System.out.println(a); + //ںѧ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + System.out.println(" 211606387 Ҷ " +sdf.format(new Date())); + } + //ѡ꼶 + public static void ChoiceGrade( int n , int g ) { + if ( g == 1 ) { + GradeOne(n); + } + else if ( g == 2) { + GradeTwo(n); + } + else if ( g == 3) { + GradeThree(n);; + } + else { + System.out.println("Աޣ꼶δ"); + } + } + + //ж + public static String JudgementRemainder( int x , int y ) { + if( (x%y) == 0) { + + rem = " "; + } + else { + rem = "..." + (x%y) + " "; + } + return rem; + } + + //жϷ + private static String SymbolicJudgment(int f) { + // TODO Զɵķ + if (f == 0) { + rem = "+"; + } + else{ + rem = "-"; + } + return rem; + } + + //沨ʽ ׺ ڻ + private static String ReversePolish (String[] strArr){ + String str = "+-*/"; + Stack stack = new Stack(); + //еÿһԪ + for(String s : strArr){ + //,ջ + if(!str.contains(s)){ + stack.push(s); + } + else{ + int a = Integer.valueOf(stack.pop()); + int b = Integer.valueOf(stack.pop()); + switch(s){ + case "+" : + stack.push(String.valueOf(a+b)); + break; + case "-" : + stack.push(String.valueOf(a-b)); + break ; + case "*" : + stack.push(String.valueOf(a*b)); + break; + case "/" : + stack.push(String.valueOf(a/b)); + break ; + } + } + } + return stack.pop(); + } +} \ No newline at end of file From 150f725f9e9d3c5e21f0d65f051047673c5e123f Mon Sep 17 00:00:00 2001 From: hktttygithub Date: Wed, 19 Sep 2018 10:48:46 +0800 Subject: [PATCH 122/135] =?UTF-8?q?=E7=BB=93=E5=AF=B9=E7=BC=96=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 可以输出年级三的题目和答案,暂时不能生成文本 --- Pair_211611302_211605242/Bean.java | 69 ++++++++++ Pair_211611302_211605242/MathExam3.java | 109 ++++++++++++++++ Pair_211611302_211605242/Operation.java | 9 ++ Pair_211611302_211605242/OperationAdd.java | 14 ++ Pair_211611302_211605242/OperationDiv.java | 18 +++ .../OperationFactory.java | 24 ++++ .../OperationMultiply.java | 15 +++ .../OperationSubtract.java | 15 +++ Pair_211611302_211605242/PolishNotation.java | 121 ++++++++++++++++++ Pair_211611302_211605242/Topic.java | 17 +++ Pair_211611302_211605242/TopicFactory.java | 25 ++++ Pair_211611302_211605242/TopicGradeThree.java | 101 +++++++++++++++ Pair_211611302_211605242/TopicOfAdd.java | 21 +++ Pair_211611302_211605242/TopicOfDiv.java | 24 ++++ Pair_211611302_211605242/TopicOfMultiply.java | 12 ++ Pair_211611302_211605242/TopicOfSubtract.java | 20 +++ 16 files changed, 614 insertions(+) create mode 100644 Pair_211611302_211605242/Bean.java create mode 100644 Pair_211611302_211605242/MathExam3.java create mode 100644 Pair_211611302_211605242/Operation.java create mode 100644 Pair_211611302_211605242/OperationAdd.java create mode 100644 Pair_211611302_211605242/OperationDiv.java create mode 100644 Pair_211611302_211605242/OperationFactory.java create mode 100644 Pair_211611302_211605242/OperationMultiply.java create mode 100644 Pair_211611302_211605242/OperationSubtract.java create mode 100644 Pair_211611302_211605242/PolishNotation.java create mode 100644 Pair_211611302_211605242/Topic.java create mode 100644 Pair_211611302_211605242/TopicFactory.java create mode 100644 Pair_211611302_211605242/TopicGradeThree.java create mode 100644 Pair_211611302_211605242/TopicOfAdd.java create mode 100644 Pair_211611302_211605242/TopicOfDiv.java create mode 100644 Pair_211611302_211605242/TopicOfMultiply.java create mode 100644 Pair_211611302_211605242/TopicOfSubtract.java diff --git a/Pair_211611302_211605242/Bean.java b/Pair_211611302_211605242/Bean.java new file mode 100644 index 0000000..6f56d31 --- /dev/null +++ b/Pair_211611302_211605242/Bean.java @@ -0,0 +1,69 @@ + +import java.util.Random; + +public class Bean { + private int count = 1; // ţʼΪ1 + private String symbol = null; // Ŀ + private int numberA = 0; + private int numberB = 0; + private int result = 0; // + private int mod = 0; // е + private StringBuffer text1 = new StringBuffer(""); // Ŀ ʽ: A + B = + private StringBuffer text2 = new StringBuffer(""); // ʽ: A + B = C + private String txt = null; // txt = text1 + text2 + private StringBuffer topic=new StringBuffer(""); //꼶3Ŀ + + public String getSymbol() { + return symbol; + } + + public void setSymbol(String symbol) { + this.symbol = symbol; + } + + public int getNumberA() { + return numberA; + } + + public void setNumberA(int numberA) { + this.numberA = numberA; + } + + public int getNumberB() { + return numberB; + } + + public void setNumberB(int numberB) { + this.numberB = numberB; + } + + public int getResult() { + return result; + } + + public void setResult(int result) { + this.result = result; + } + + + public String getTxt() { + return txt; + } + + public int getMod() { + return mod; + } + + public void setMod(int mod) { + this.mod = mod; + } + + public StringBuffer getTopic() { + return topic; + } + + public void setTopic(StringBuffer topic) { + this.topic = topic; + } + +} diff --git a/Pair_211611302_211605242/MathExam3.java b/Pair_211611302_211605242/MathExam3.java new file mode 100644 index 0000000..40e3b1f --- /dev/null +++ b/Pair_211611302_211605242/MathExam3.java @@ -0,0 +1,109 @@ + + +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.util.Random; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class MathExam3 { + private Bean bean = null; + private static int grade = 0; // 꼶 + private static int numberOfTopics = 0; // + private Random random = new Random(); + + public static void main(String[] args) { + checkInput(args); + new MathExam3().start(); + } + + private void start() { + System.out.println(grade); + this.bean = new Bean(); + if (grade == 1 || grade == 2) { + for (int i = 0; i < numberOfTopics; i++) { + String [] symbol = {"+","-","*","/"}; + String s = symbol[random.nextInt(4)]; + bean.setSymbol(s); + Topic ran = TopicFactory.createRan(bean.getSymbol()); + String topic =ran.createTopic(); + StringBuffer topic1 = new StringBuffer(topic); + PolishNotation po = new PolishNotation(topic1); + int result = Integer.valueOf(po.calculate()); + System.out.println(topic1 + " = " + result); + } + } else if (grade == 3) { + for (int i = 0; i < numberOfTopics; i++) { + + TopicGradeThree topic = new TopicGradeThree(); + StringBuffer topic1 = topic.createTopic(); + PolishNotation po = new PolishNotation(topic1); + int result = Integer.valueOf(po.calculate()); + System.out.println(topic1 + " = " + result); + } + } + + createMathExamTxt(); + } + + // IJǷϹ淶 + private static void checkInput(String[] args) { + // System.out.println(args.length);//test + if (args.length != 4) { + exception(); + } + String input = args[0] + " " + args[1] + " " + args[2] + " " + args[3]; + // System.out.println(input);//test + // -grade-n˳Եߵ + input.matches("(\\-grade [123] \\-n [1-9]\\d*)|(\\-n [1-9]\\d* \\-grade [123])"); + Matcher m = Pattern.compile("\\-grade [123]").matcher(input); + + if (m.find()) { + String n = m.group(); + // System.out.println(n); //test + m = Pattern.compile("[123]").matcher(n); + if (m.find()) { + grade = Integer.valueOf(m.group()); + } + + } else { + exception(); + } + m = Pattern.compile("\\-n [1-9]\\d*").matcher(input); + if (m.find()) { + // ҵ֣ó + String n = m.group(); + // System.out.println(n); //test + m = Pattern.compile("[1-9]\\d*").matcher(n); + String digit = null; + if (m.find()) { + digit = m.group(); + if (digit.length() >= 5) { + exception(); + } + } + numberOfTopics = Integer.valueOf(digit); + } else { + exception(); + } + + } + + private static void exception() { + System.out.println(","); + System.exit(0); + } + + // txtı + private void createMathExamTxt() { + try { + FileOutputStream fos = new FileOutputStream("out.txt"); + PrintStream ps = new PrintStream(fos); + ps.println(bean.getTxt()); + ps.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + } +} diff --git a/Pair_211611302_211605242/Operation.java b/Pair_211611302_211605242/Operation.java new file mode 100644 index 0000000..3015516 --- /dev/null +++ b/Pair_211611302_211605242/Operation.java @@ -0,0 +1,9 @@ + + + +public abstract class Operation { + Bean bean = null; + + public abstract void calculate(); +} + \ No newline at end of file diff --git a/Pair_211611302_211605242/OperationAdd.java b/Pair_211611302_211605242/OperationAdd.java new file mode 100644 index 0000000..8b39a0c --- /dev/null +++ b/Pair_211611302_211605242/OperationAdd.java @@ -0,0 +1,14 @@ + + + +public class OperationAdd extends Operation { + public OperationAdd(Bean bean) { + this.bean = bean; + } + + public void calculate() { + int result = bean.getNumberA() + bean.getNumberB(); + bean.setResult(result); + } + +} diff --git a/Pair_211611302_211605242/OperationDiv.java b/Pair_211611302_211605242/OperationDiv.java new file mode 100644 index 0000000..9ea5f1e --- /dev/null +++ b/Pair_211611302_211605242/OperationDiv.java @@ -0,0 +1,18 @@ + + + +public class OperationDiv extends Operation { + + public OperationDiv(Bean bean) { + this.bean = bean; + } + + public void calculate() { + int result = bean.getNumberA() / bean.getNumberB(); + int mod=0; + mod = bean.getNumberA() % bean.getNumberB(); + bean.setResult(result); + bean.setMod(mod); + } + +} diff --git a/Pair_211611302_211605242/OperationFactory.java b/Pair_211611302_211605242/OperationFactory.java new file mode 100644 index 0000000..c1ec67d --- /dev/null +++ b/Pair_211611302_211605242/OperationFactory.java @@ -0,0 +1,24 @@ + + + +public class OperationFactory { + public static Operation createOperate(Bean bean) { + Operation oper = null; + switch (bean.getSymbol()) { + case "+": + oper = new OperationAdd(bean); + break; + case "-": + oper = new OperationSubtract(bean); + break; + case "*": + oper = new OperationMultiply(bean); + break; + case "/": + oper = new OperationDiv(bean); + break; + } + + return oper; + } +} diff --git a/Pair_211611302_211605242/OperationMultiply.java b/Pair_211611302_211605242/OperationMultiply.java new file mode 100644 index 0000000..b90a56f --- /dev/null +++ b/Pair_211611302_211605242/OperationMultiply.java @@ -0,0 +1,15 @@ + + + +public class OperationMultiply extends Operation { + + public OperationMultiply(Bean bean) { + this.bean=bean; + } + + public void calculate() { + int result = bean.getNumberA() * bean.getNumberB(); + bean.setResult(result); + } + +} diff --git a/Pair_211611302_211605242/OperationSubtract.java b/Pair_211611302_211605242/OperationSubtract.java new file mode 100644 index 0000000..870ecbd --- /dev/null +++ b/Pair_211611302_211605242/OperationSubtract.java @@ -0,0 +1,15 @@ + + + +public class OperationSubtract extends Operation { + + public OperationSubtract(Bean bean) { + this.bean = bean; + } + + public void calculate() { + int result = bean.getNumberA() - bean.getNumberB(); + bean.setResult(result); + } + +} diff --git a/Pair_211611302_211605242/PolishNotation.java b/Pair_211611302_211605242/PolishNotation.java new file mode 100644 index 0000000..efbfa1a --- /dev/null +++ b/Pair_211611302_211605242/PolishNotation.java @@ -0,0 +1,121 @@ + +import java.util.ArrayDeque; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/* + * ׺ת׺Ĺ򣺴ұ׺ʽÿֺͷ + * ־Ϊ׺ʽһ֣ + * ǷţжջŵȼŻȼ + * ջţ˳ȼӼջԪγջ + * ǰŽջһֱ׺ʽ + */ + +public class PolishNotation { + private StringBuffer expression = null; + private StringBuffer Postfix = new StringBuffer(""); + private ArrayDeque stack = new ArrayDeque<>(); + Bean bean; + Operation oper; + + public PolishNotation() { + // д޲ιһϰ + } + + public PolishNotation(StringBuffer expression) { + this.expression = expression; + getPostfix(); + } + + String calculate() { + //׺ʽ +// System.out.println("׺ʽ" + Postfix); + stack = new ArrayDeque<>(); + bean = new Bean(); + String s [] = (String.valueOf(Postfix)).split(" "); + for (int i = 0; i < s.length; i++) { + if(s[i].matches("-?\\d+")){ + stack.push(s[i]); + } + else{ + bean.setNumberB(Integer.valueOf(stack.pop())); + bean.setNumberA(Integer.valueOf(stack.pop())); + bean.setSymbol(s[i]); + oper = OperationFactory.createOperate(bean); + oper.calculate(); + stack.push(String.valueOf(bean.getResult())); + } + } + return (stack.pop()); + + } + + // ׺ʽתΪ׺ʽ + public void getPostfix() { + Matcher m = Pattern.compile("(-?\\d+)|(\\+)|" + "(\\-)|(\\*)|(\\/)|(\\()|(\\))").matcher(expression); + while (m.find()) { + // ֱ֣ӵ׺ʽ + if (m.group().matches("-?\\d+")) { + Postfix.append(" " + m.group()); + } + // ջΪգֱӽջ + else if (stack.isEmpty()) { + stack.push(m.group()); + } + //ǰΪ šֱӽջ + else if (m.group().equals("(")) { + stack.push("("); + } + // ǰΪšջջԪӵ׺ʽ + // ֱšŲӵ׺ʽУ + else if (m.group().matches("\\)")) { + while (true) { + String pop = stack.pop(); + if (pop.equals("(")) { + break; + } else { + Postfix.append(" " +pop); + } + } + } + // еʱǰֻǡӼ˳еijһ + // ջԪǡšm.group()ֱӽջ + else if (stack.peek().equals("(")) { + stack.push(m.group()); + } + else { + // Ƚȼ + comparePriority(m.group(), stack.peek()); + } + } + while(!stack.isEmpty()){ + Postfix.append(" " + stack.pop()); + } + Postfix.delete(0, 1);//ɾַλĿո + } + + private void comparePriority(String group, String peek) { + if (group.equals("+") || group.equals("-")) { + do { + Postfix.append(" " +stack.pop()); + if(stack.isEmpty()){ + break; + } + } while (!(stack.peek().equals("("))); + stack.push(group); + } else { + if (peek.equals("+") || peek.equals("-")) { + stack.push(group); + } else { + do { + Postfix.append(" " +stack.pop()); + if(stack.isEmpty()){ + break; + } + //ǰΪ˻߳š+-ֱӽջ + } while (!(stack.peek().matches("(\\+)|(\\-)|(\\()"))); + stack.push(group); + } + } + } +} \ No newline at end of file diff --git a/Pair_211611302_211605242/Topic.java b/Pair_211611302_211605242/Topic.java new file mode 100644 index 0000000..47aa177 --- /dev/null +++ b/Pair_211611302_211605242/Topic.java @@ -0,0 +1,17 @@ + + + +import java.util.Random; + +public abstract class Topic { + static Random random = new Random(); + + abstract public String createTopic(); + + static int createRandomNumber(int min,int max){ + // randNumber ֵΪһ MIN MAX Χڵ + int ranNumber = random.nextInt(max - min + 1) + min; + return ranNumber; + + } +} diff --git a/Pair_211611302_211605242/TopicFactory.java b/Pair_211611302_211605242/TopicFactory.java new file mode 100644 index 0000000..aa67aa2 --- /dev/null +++ b/Pair_211611302_211605242/TopicFactory.java @@ -0,0 +1,25 @@ + + + +public class TopicFactory { + + public static Topic createRan(String symbol) { + Topic ran = null; + switch (symbol) { + case "+": + ran = new TopicOfAdd(); + break; + case "-": + ran = new TopicOfSubtract(); + break; + case "*": + ran = new TopicOfMultiply(); + break; + case "/": + ran = new TopicOfDiv(); + break; + } + return ran; + } + +} diff --git a/Pair_211611302_211605242/TopicGradeThree.java b/Pair_211611302_211605242/TopicGradeThree.java new file mode 100644 index 0000000..09a626b --- /dev/null +++ b/Pair_211611302_211605242/TopicGradeThree.java @@ -0,0 +1,101 @@ + + +import java.util.Random; + +public class TopicGradeThree { + private int SymbolNumber = 0; // ĸ + private StringBuffer topic; + private Random random = new Random(); + private int a1, a2, a3, a4; + + public StringBuffer createTopic() { + topic = new StringBuffer(""); + // ĸȡֵΧΪ[2,3] + SymbolNumber = Topic.createRandomNumber(2, 3); + if(random.nextBoolean()){ + if(random.nextBoolean()){ + // a1ȡֵΪ3040 a2 + a1 = Topic.createRandomNumber(30, 40); + a2 = Topic.createRandomNumber(10, 30); + // 12ֻ ӡ򡰳ˡ + String symbol = randomSymbol("+*"); + a3 = Topic.createRandomNumber(10, 30); + String symbol2 = randomSymbol("+*"); + topic.append(a3 + " " + symbol2 + " ( " + a1 + " " + symbol + " " + a2 + " )"); + if (SymbolNumber==2) + return topic; + else if(SymbolNumber==3){ + String symbol3; + // 3ֻ 򡰼ӡ + symbol3 = randomSymbol("-+"); + a4 = Topic.createRandomNumber(30, a1+a2+a3); + topic.append(" " + symbol3 + " " + a4); + return topic; + } + } + else{ + /* + * ĿʽΪ + * (1) (a1-a2)/a3=a4 + * (2) (a1-a2)/a3 [*-] a4; + * + */ + String symbol1 ="-"; + a3 = Topic.createRandomNumber(5, 20); + a4 = Topic.createRandomNumber(10, 20); + a2 = Topic.createRandomNumber(20, 100); + a1 = a3 * a4 + a2; + String symbol2 = "/"; + topic.append("( " + a1 + " " + symbol1 + " " + a2 + " )" + " " + symbol2 + " " + a3); + if (SymbolNumber==2) + return topic; + else{ + String symbol3 = randomSymbol("*-"); + if(symbol3.equals("-")){ + int asum = (a1-a2)/a3; + int a4 = Topic.createRandomNumber(1, asum); + topic.append(" " + symbol3 + " " + a4); + } + else{ + int a4 = Topic.createRandomNumber(2, 10); + topic.append(" " + symbol3 + " " + a4); + } + return topic; + } + } + } + else{ + a1 = Topic.createRandomNumber(25, 50); + String s [] = {"+","*","-"}; + String symbol1 = s[Topic.createRandomNumber(0, 2)]; + a2 = Topic.createRandomNumber(5, 10); + a3 = Topic.createRandomNumber(5, 10); + String symbol2 = s[Topic.createRandomNumber(0, 2)]; + topic.append(a1 + " " + symbol1 + " " + a2 + " " + symbol2 + " " + a3); + return topic; + } + return topic; + } + + private String randomSymbol(String symbol) { + if (symbol.equals("+*")) { + if (random.nextBoolean()) { + return "*"; + } else + return "+"; + } + else if (symbol.equals("-+")) { + if (random.nextBoolean()) { + return "-"; + } else + return "+"; + } + else if (symbol.equals("*-")) { + if (random.nextBoolean()) { + return "-"; + } else + return "*"; + } + return null; + } +} diff --git a/Pair_211611302_211605242/TopicOfAdd.java b/Pair_211611302_211605242/TopicOfAdd.java new file mode 100644 index 0000000..2d8d2fc --- /dev/null +++ b/Pair_211611302_211605242/TopicOfAdd.java @@ -0,0 +1,21 @@ + +public class TopicOfAdd extends Topic { + // һ꼶ӷĿ A+B + // AΪλ + // BΪλʮ + public String createTopic() { + // AȡֵΧΪ [1-9] + int randomA = random.nextInt(9) + 1; + int randomB = 0; + // BΪλʮ + // true λ,falseʮ + if (random.nextBoolean()) { + randomB = random.nextInt(9) + 1; + } else { + randomB = 10 * (random.nextInt(9) + 1); + } + + return (randomA + " + " + randomB); + } + +} diff --git a/Pair_211611302_211605242/TopicOfDiv.java b/Pair_211611302_211605242/TopicOfDiv.java new file mode 100644 index 0000000..11aed7a --- /dev/null +++ b/Pair_211611302_211605242/TopicOfDiv.java @@ -0,0 +1,24 @@ + +public class TopicOfDiv extends Topic { + // 꼶ij + // AΪһλλ,BΪλ + // A/B=C,CӦΪλ + + public String createTopic() { + int result = 0; + int randomB = 0; + int randomA = 0; + int mod = 0; + do { + // AȡֵΧΪ1099 + randomA = 10 + random.nextInt(90); + // BȡֵΧΪ19 + randomB = 1 + random.nextInt(9); + result = randomA / randomB; + mod = randomA % randomB; + } while (result >= 10); + + return (randomA + " / " + randomB); + } + +} diff --git a/Pair_211611302_211605242/TopicOfMultiply.java b/Pair_211611302_211605242/TopicOfMultiply.java new file mode 100644 index 0000000..d1e6788 --- /dev/null +++ b/Pair_211611302_211605242/TopicOfMultiply.java @@ -0,0 +1,12 @@ + +public class TopicOfMultiply extends Topic { + //꼶ij˷ + //(A*B)Ӧھžų˷ + // ABӦΪλ + public String createTopic() { + int randomA = 1 + random.nextInt(9); + int randomB = 1 + random.nextInt(9); + return randomA + " * " + randomB; + } + +} diff --git a/Pair_211611302_211605242/TopicOfSubtract.java b/Pair_211611302_211605242/TopicOfSubtract.java new file mode 100644 index 0000000..7d72482 --- /dev/null +++ b/Pair_211611302_211605242/TopicOfSubtract.java @@ -0,0 +1,20 @@ + +public class TopicOfSubtract extends Topic { + // һ꼶Ŀ A-B + // AӦôB + public String createTopic() { + // ΪBȡֵAȡֵΧó [5-9] [10 20 30 ....90] + int randomA = 0; + int randomB = 0; + // trueʱ [5-9], falseʱ [10 20 30 ....90] + if (random.nextBoolean()) { + randomA = random.nextInt(5) + 5; + randomB = random.nextInt(randomA+1); + } else { + randomA = 10 * (random.nextInt(9) + 1); + randomB = 1+ random.nextInt(9); + } + return randomA + " - " + randomB; + } + +} From 8986369b3ed06252c547db4b0621b7c062482974 Mon Sep 17 00:00:00 2001 From: hktttygithub Date: Wed, 19 Sep 2018 10:53:42 +0800 Subject: [PATCH 123/135] =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=8C=E5=B9=B4=E7=BA=A7=E7=9A=84=E5=87=BA=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 现在可以正常生成一二三年级的题目 --- Pair_211611302_211605242/MathExam3.java | 51 +++++++++++++++--------- Pair_211611302_211605242/TopicOfDiv.java | 4 +- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/Pair_211611302_211605242/MathExam3.java b/Pair_211611302_211605242/MathExam3.java index 40e3b1f..153cbd4 100644 --- a/Pair_211611302_211605242/MathExam3.java +++ b/Pair_211611302_211605242/MathExam3.java @@ -1,5 +1,4 @@ - import java.io.FileOutputStream; import java.io.PrintStream; import java.util.Random; @@ -11,6 +10,7 @@ public class MathExam3 { private static int grade = 0; // 꼶 private static int numberOfTopics = 0; // private Random random = new Random(); + static int mod = 0; public static void main(String[] args) { checkInput(args); @@ -18,31 +18,46 @@ public static void main(String[] args) { } private void start() { - System.out.println(grade); + StringBuffer topic1 = new StringBuffer(""); + StringBuffer topic2 = new StringBuffer(""); + StringBuffer topic3 = new StringBuffer(""); this.bean = new Bean(); if (grade == 1 || grade == 2) { - for (int i = 0; i < numberOfTopics; i++) { - String [] symbol = {"+","-","*","/"}; - String s = symbol[random.nextInt(4)]; - bean.setSymbol(s); - Topic ran = TopicFactory.createRan(bean.getSymbol()); - String topic =ran.createTopic(); - StringBuffer topic1 = new StringBuffer(topic); - PolishNotation po = new PolishNotation(topic1); - int result = Integer.valueOf(po.calculate()); - System.out.println(topic1 + " = " + result); - } - } else if (grade == 3) { for (int i = 0; i < numberOfTopics; i++) { + String s=null; + if (grade == 1) { + String[] symbol = { "+", "-" }; + s = symbol[random.nextInt(2)]; + } else { + String[] symbol = { "*", "/" }; + s = symbol[random.nextInt(2)]; + } + bean.setSymbol(s); + Topic ran = TopicFactory.createRan(bean.getSymbol()); + String topic = ran.createTopic(); + PolishNotation po = new PolishNotation(new StringBuffer(topic)); + String result = (po.calculate()); + topic2.append("(" + (i + 1) + ") " + topic + "\n"); + topic3.append("(" + (i + 1) + ") " + topic + " = " + result); + if (mod != 0) { + topic3.append("..." + mod); + mod = 0; + } + topic3.append("\n"); + } + } else if (grade == 3) { + for (int i = 0; i < numberOfTopics; i++) { TopicGradeThree topic = new TopicGradeThree(); - StringBuffer topic1 = topic.createTopic(); + topic1 = topic.createTopic(); PolishNotation po = new PolishNotation(topic1); - int result = Integer.valueOf(po.calculate()); - System.out.println(topic1 + " = " + result); + String result = (po.calculate()); + topic2.append("(" + (i + 1) + ") " + topic1 + "\n"); + topic3.append("(" + (i + 1) + ") " + topic1 + " = " + result + "\n"); } } - + System.out.println(topic2); + System.out.println(topic3); createMathExamTxt(); } diff --git a/Pair_211611302_211605242/TopicOfDiv.java b/Pair_211611302_211605242/TopicOfDiv.java index 11aed7a..c1faf3f 100644 --- a/Pair_211611302_211605242/TopicOfDiv.java +++ b/Pair_211611302_211605242/TopicOfDiv.java @@ -17,7 +17,9 @@ public String createTopic() { result = randomA / randomB; mod = randomA % randomB; } while (result >= 10); - + if(mod!=0){ + MathExam3.mod=mod; + } return (randomA + " / " + randomB); } From e2d21db3d70cd094717d52c3ee42b891294c7552 Mon Sep 17 00:00:00 2001 From: imegotistic <42676270+imegotistic@users.noreply.github.com> Date: Wed, 19 Sep 2018 11:02:25 +0800 Subject: [PATCH 124/135] Update MathExam6356.java --- Pair_211606333_211606356/MathExam6356.java | 74 +++++++++++----------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/Pair_211606333_211606356/MathExam6356.java b/Pair_211606333_211606356/MathExam6356.java index af8a2c3..be3293b 100644 --- a/Pair_211606333_211606356/MathExam6356.java +++ b/Pair_211606333_211606356/MathExam6356.java @@ -17,7 +17,7 @@ public class MathExam6356 { static String AS[]; static Random fuhao = new Random(); static Random num1 = new Random(); - static Random num2 = new Random();// ͬRandomɵһġ + static Random num2 = new Random();// 种子相同的Random对象,生成的随机数序列是一样的。 private static int i; public static void main(String[] args) throws FileNotFoundException { @@ -27,7 +27,7 @@ public static void main(String[] args) throws FileNotFoundException { private static void init(String[] input) throws FileNotFoundException { if (input.length == 0) { - // Ĭϲ + // 默认参数 n = 100; grade = 3; } else if (input.length == 4) { @@ -36,7 +36,7 @@ private static void init(String[] input) throws FileNotFoundException { n = Integer.parseInt(input[1]); grade = Integer.parseInt(input[3]); } catch (NumberFormatException e) { - System.out.println(""); + System.out.println("请输入正整数!"); } } else if (input[2].equals("-n") && input[0].equals("-grade")) { @@ -44,12 +44,12 @@ private static void init(String[] input) throws FileNotFoundException { n = Integer.parseInt(input[3]); grade = Integer.parseInt(input[1]); } catch (NumberFormatException e) { - System.out.println(""); + System.out.println("请输入正整数!"); } } } else { - System.out.println("IJУ"); + System.out.println("您输入的参数有误,请重新运行!"); System.exit(0); } if (grade == 1) { @@ -59,11 +59,11 @@ private static void init(String[] input) throws FileNotFoundException { } else if (grade == 3) { gradeThree(); } else { - System.out.println("Ŀǰֻ֧1-3꼶"); + System.out.println("目前只支持1-3年级,请重新输入"); } File file = new File("out.txt"); PrintStream ps = new PrintStream(file); - System.setOut(ps);// ѴĴӡϵͳ + System.setOut(ps);// 把创建的打印输出流赋给系统。 outPut(); } @@ -72,30 +72,30 @@ private static void gradeThree() { str = new String[n]; AS = new String[n]; for (int i = 0; i < n; i++) { - int n1 = num1.nextInt(2) + 3;// ŵĸ - a = new int[n1];// - b = new int[n1 + 1];// ֵĸ - String fuhao[] = { "+", "-", "", "" }; - String fuhao1[] = new String[4]; // жϷ + int n1 = num1.nextInt(2) + 3;// 随机符号的个数 + a = new int[n1];// 运算符个数 + b = new int[n1 + 1];// 数字的个数 + String fuhao[] = { "+", "-", "×", "÷" }; + String fuhao1[] = new String[4]; // 判断符号 for (int j = 0; j < n1; j++) { a[j] = num1.nextInt(4); - fuhao1[j] = fuhao[a[j]];// n1 + fuhao1[j] = fuhao[a[j]];// 随机生成n1个运算符 } for (int k = 0; k < n1 + 1; k++) { - b[k] = num2.nextInt(100) + 1;// n+1 + b[k] = num2.nextInt(100) + 1;// 根据运算符个数随机生成n+1个数字 } String[] str2 = new String[n1 + 1]; - int[] flag = new int[n1 + 1];// 0(,1޷,2) + int[] flag = new int[n1 + 1];// 标记数组0(,1无符号,2) for (int j = 0; j < n1 + 1; j++) { str2[j] = Integer.toString(b[j]); flag[j] = 1; } int front = -2; - String ss = null;// һʽΪһ + String ss = null;// 用来保存一个算式,让它先为一个数字 for (int x = 0; x < n1; x++) { if (fuhao1[x].equals("+") || fuhao1[x].equals("-")) { - int n2 = (int) (0 + Math.random() * (2 - 1 + 1));// 01ɼӼ + int n2 = (int) (0 + Math.random() * (2 - 1 + 1));// 随机生成0或1,用来随机生成加减法的括号 boolean tag = false; if (n2 == 0) { if (front == x - 1) { @@ -138,8 +138,8 @@ private static void gradeThree() { } List infixorder = null; for (int i = 0; i < str.length; i++) { - infixorder = toInfixExpression(str[i]);// ʽ - List suffix = parseSuffixExpression(infixorder);// + infixorder = toInfixExpression(str[i]);// 中序表达式 + List suffix = parseSuffixExpression(infixorder);// 后续 AS[i] = str[i] + "=" + answer(suffix); } @@ -150,10 +150,10 @@ private static void gradeTwo() { b = new int[n]; c = new int[n]; for (int i = 0; i < n; i++) { - a[i] = num1.nextInt(9); // 0-100 + a[i] = num1.nextInt(9); // 0-100的随机数 b[i] = num2.nextInt(9); - c[i] = fuhao.nextInt(2);// 0dz˷1dz - if (c[i] == 1 || b[i] == 0) {// 0 + c[i] = fuhao.nextInt(2);// 0是乘法1是除法 + if (c[i] == 1 || b[i] == 0) {// 除数是0重新随机 b[i] = num2.nextInt(8) + 1; } if (c[i] == 0 || (a[i] == 0 && b[i] == 0)) { @@ -184,7 +184,7 @@ public static void outPut() { } } - System.out.println("--------------׼----------------"); + System.out.println(""); for (int i = 0; i < n; i++) { if (grade == 1) { if (c[i] == 0) { @@ -206,9 +206,9 @@ public static void outPut() { System.out.println("(" + (i + 1) + ") " + AS[i]); } } - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm"); String time = sdf.format(new Date()); - System.out.println("211606356 211606333־ " + time);// ѧʱ + System.out.println("211606356 陈宇 211606333温志铭 " + time);// 输出学号姓名时间 } public static void gradeOne() { @@ -217,21 +217,21 @@ public static void gradeOne() { c = new int[n]; for (int i = 0; i < n; i++) { - a[i] = num1.nextInt(100);// 0-100 + a[i] = num1.nextInt(100);// 0-100的随机数 b[i] = num2.nextInt(100); c[i] = fuhao.nextInt(2); } for (int i = 0; i < n; i++) { - if (c[i] == 0) {// ӷ + if (c[i] == 0) {// 随机加法 while (a[i] + b[i] > 100) { - // + // 随机减法 a[i] = num1.nextInt(100); b[i] = num2.nextInt(100); } - } else {// + } else {// 随机减法 while (a[i] - b[i] < 0) { - // С0 + // 如果差小于0重新随机 a[i] = num1.nextInt(100); b[i] = num2.nextInt(100); } @@ -268,7 +268,7 @@ public static List parseSuffixExpression(List ls) { } public static List toInfixExpression(String s) { - List infixorder = new ArrayList();// 洢ʽ + List infixorder = new ArrayList();// 存储中序表达式 int w = 0; String ssr; char c; @@ -302,9 +302,9 @@ public static int answer(List last) { result = a + b; } else if (ssr.equals("-")) { result = a - b; - } else if (ssr.equals("")) { + } else if (ssr.equals("×")) { result = a * b; - } else if (ssr.equals("")) { + } else if (ssr.equals("÷")) { result = a / b; } s.push("" + result); @@ -313,7 +313,7 @@ public static int answer(List last) { return Integer.parseInt(s.pop()); } - public static class Operation {// ȼ + public static class Operation {// 优先级 private int ADDITION = 1; private int SUBTRACTION = 1; private int MULTIPLICATION = 2; @@ -332,14 +332,14 @@ public int getValue(String operation) { case "-": result = SUBTRACTION; break; - case "": + case "×": result = MULTIPLICATION; break; - case "": + case "÷": result = DIVISION; break; default: - // System.out.println("ڸ"); + // System.out.println("不存在该运算符"); result = 0; } return result; From 7c52a913cbf1b7b5d03cbf8d5434930b26aac8e8 Mon Sep 17 00:00:00 2001 From: yhdboolean <2279337734@qq.com> Date: Wed, 19 Sep 2018 11:10:46 +0800 Subject: [PATCH 125/135] =?UTF-8?q?=E4=BF=AE=E6=AD=A3mathExam=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.修正mathExam文件名 2.完善了生成txt的文件的功能 --- .../{MathExam3.java => MathExam.java} | 14 +++++++------- Pair_211611302_211605242/TopicOfDiv.java | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) rename Pair_211611302_211605242/{MathExam3.java => MathExam.java} (92%) diff --git a/Pair_211611302_211605242/MathExam3.java b/Pair_211611302_211605242/MathExam.java similarity index 92% rename from Pair_211611302_211605242/MathExam3.java rename to Pair_211611302_211605242/MathExam.java index 153cbd4..dc4a952 100644 --- a/Pair_211611302_211605242/MathExam3.java +++ b/Pair_211611302_211605242/MathExam.java @@ -5,7 +5,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -public class MathExam3 { +public class MathExam{ private Bean bean = null; private static int grade = 0; // 꼶 private static int numberOfTopics = 0; // @@ -14,7 +14,7 @@ public class MathExam3 { public static void main(String[] args) { checkInput(args); - new MathExam3().start(); + new MathExam().start(); } private void start() { @@ -56,9 +56,9 @@ private void start() { topic3.append("(" + (i + 1) + ") " + topic1 + " = " + result + "\n"); } } - System.out.println(topic2); - System.out.println(topic3); - createMathExamTxt(); + String txt = String.valueOf(topic2) + "\n" + String.valueOf(topic3); +// System.out.println(txt); + createMathExamTxt(txt); } // IJǷϹ淶 @@ -110,11 +110,11 @@ private static void exception() { } // txtı - private void createMathExamTxt() { + private void createMathExamTxt(String txt) { try { FileOutputStream fos = new FileOutputStream("out.txt"); PrintStream ps = new PrintStream(fos); - ps.println(bean.getTxt()); + ps.println(txt); ps.close(); } catch (Exception e) { e.printStackTrace(); diff --git a/Pair_211611302_211605242/TopicOfDiv.java b/Pair_211611302_211605242/TopicOfDiv.java index c1faf3f..3cd2362 100644 --- a/Pair_211611302_211605242/TopicOfDiv.java +++ b/Pair_211611302_211605242/TopicOfDiv.java @@ -18,7 +18,7 @@ public String createTopic() { mod = randomA % randomB; } while (result >= 10); if(mod!=0){ - MathExam3.mod=mod; + MathExam.mod=mod; } return (randomA + " / " + randomB); } From f7250ab74abeb8332653ac23547d4a332e0b2b63 Mon Sep 17 00:00:00 2001 From: HYOUKACC <37267364+HYOUKACC@users.noreply.github.com> Date: Wed, 19 Sep 2018 11:21:21 +0800 Subject: [PATCH 126/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AC=A6=E5=8F=B7?= =?UTF-8?q?=EF=BC=81=EF=BC=81=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改乘除符号的样式 --- Pair_211614331_211614354/ArithemticS.java | 24 +++++++++---------- Pair_211614331_211614354/Division.java | 4 ++-- Pair_211614331_211614354/Multiplication.java | 2 +- Pair_211614331_211614354/RandomQuestions.java | 6 ++--- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Pair_211614331_211614354/ArithemticS.java b/Pair_211614331_211614354/ArithemticS.java index be3ae83..b2329c2 100644 --- a/Pair_211614331_211614354/ArithemticS.java +++ b/Pair_211614331_211614354/ArithemticS.java @@ -41,12 +41,12 @@ public boolean startProblem(String problem) { case "+":{ if(!shortStack.isEmpty()) { - if(shortStack.peek().matches("[\\+\\-\\*\\/]")) { // ջΪͬӼ + if(shortStack.peek().matches("[\\+\\-\\\\]")) { // ջΪͬӼ do { postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//󣬱 - }while(shortStack.peek().matches("[\\+\\-\\*\\/]") ); + }while(shortStack.peek().matches("[\\+\\-\\\\]") ); shortStack.push(partNumber); // ѵǰԪջ } else @@ -62,13 +62,13 @@ public boolean startProblem(String problem) { if(!shortStack.isEmpty()) { - if(shortStack.peek().matches("[\\+\\-\\*\\/]")) { // ջΪͬӼ + if(shortStack.peek().matches("[\\+\\-\\\\]")) { // ջΪͬӼ do { postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//󣬱 - }while(shortStack.peek().matches("[\\+\\-\\*\\/]") ); + }while(shortStack.peek().matches("[\\+\\-\\\\]") ); shortStack.push(partNumber); // ѵǰԪջ } else @@ -80,16 +80,16 @@ public boolean startProblem(String problem) { //System.out.println("׺ջǰΪ"+PostfixStack); break; } - case "*":{ + case "":{ if(!shortStack.isEmpty()) { - if(shortStack.peek().matches("[\\*\\/]") ) { // ջΪͬӼ + if(shortStack.peek().matches("[\\\\]") ) { // ջΪͬӼ do { postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//󣬱 - }while(shortStack.peek().matches("[\\*\\/]")); + }while(shortStack.peek().matches("[\\\\]")); shortStack.push(partNumber); // ѵǰԪջ } else @@ -101,15 +101,15 @@ public boolean startProblem(String problem) { //System.out.println("׺ջǰΪ"+PostfixStack); break; } - case "/":{ + case "":{ if(!shortStack.isEmpty()) { - if(shortStack.peek().matches("[\\*\\/]") ) { // ջΪͬӼ + if(shortStack.peek().matches("[\\\\]") ) { // ջΪͬӼ do { postFixStack.push(shortStack.pop()); if(shortStack.isEmpty()) break;//ջգҲѭ - }while(shortStack.peek().matches("[\\*\\/]") ); + }while(shortStack.peek().matches("[\\\\]") ); shortStack.push(partNumber); // ѵǰԪջ } else @@ -193,7 +193,7 @@ public boolean solveProblem(){ runAnswer.push(String.valueOf(answerNumber)); break; } - case "*":{ + case "":{ answerNumber=firstNumber*secondNumber; if(answerNumber<0) // 꼶꼶 { @@ -202,7 +202,7 @@ public boolean solveProblem(){ runAnswer.push(String.valueOf(answerNumber)); break; } - case "/":{ + case "":{ try { if(secondNumber%firstNumber != 0 || secondNumber==0) { // 꼶ƣҲΪ return false; diff --git a/Pair_211614331_211614354/Division.java b/Pair_211614331_211614354/Division.java index e5df4ed..dee8422 100644 --- a/Pair_211614331_211614354/Division.java +++ b/Pair_211614331_211614354/Division.java @@ -18,11 +18,11 @@ public Division(ArrayList answerSet,int testNumber) { }while(answerNumber>=10 || firstNumber answerSet,int testNumber) { firstNumber=rand.nextInt(9)+1;//ΧΪ[0-9)+1ܱ010 secondNumber=rand.nextInt(9)+1;//ڶڳ˷ answerNumber=firstNumber*secondNumber; - answerSet.add("("+testNumber+")"+" "+firstNumber+" * "+secondNumber);//ѽļ + answerSet.add("("+testNumber+")"+" "+firstNumber+" "+secondNumber);//ѽļ answerSet.add(" = "+answerNumber); //Ѵ } diff --git a/Pair_211614331_211614354/RandomQuestions.java b/Pair_211614331_211614354/RandomQuestions.java index feba5cd..ed4808b 100644 --- a/Pair_211614331_211614354/RandomQuestions.java +++ b/Pair_211614331_211614354/RandomQuestions.java @@ -5,7 +5,7 @@ public class RandomQuestions extends Operation{ String sProblem = ""; // 洢Ŀ boolean needBracket = false;// ǷҪ - int howMany = 0;// Ҫ + int howMany = 0;// Ҫ1 int bracketNumber = 0; // ҪţҪ int whichSymbol = 0; // жһ int number = 0;// @@ -46,12 +46,12 @@ public class RandomQuestions extends Operation{ break; } case 2: { - problemSet.add("*"); + problemSet.add(""); isMult++; break; } case 3: { - problemSet.add("/"); + problemSet.add(""); isDivison++; break; } From 64d6710c1606b5678643caed6d347e3094637477 Mon Sep 17 00:00:00 2001 From: caizhenyi <345027407@qq.com> Date: Wed, 19 Sep 2018 11:29:39 +0800 Subject: [PATCH 127/135] =?UTF-8?q?=E5=AE=8C=E6=95=B4=E7=9A=84=E4=B8=89?= =?UTF-8?q?=E5=B9=B4=E7=BA=A7=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 代码 --- Pair_211606301_211605240/MathExam.java | 335 +++++++++++++++++++------ 1 file changed, 260 insertions(+), 75 deletions(-) diff --git a/Pair_211606301_211605240/MathExam.java b/Pair_211606301_211605240/MathExam.java index 79daf4d..0e745d4 100644 --- a/Pair_211606301_211605240/MathExam.java +++ b/Pair_211606301_211605240/MathExam.java @@ -1,112 +1,297 @@ +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; public class MathExam { + static int num1; + static StringBuffer word,id; + static OutputStream out; + static PrintWriter p; + static int n,g,f,test,rem,grade; + + + public static int[] input(String[] args,int[] str) { + String regex="\\d*"; + if(args.length!=4) {//Ϊ + System.out.println("IJӦΪ4"); + str[0]=0; + return str; + } + if(!args[1].matches(regex) || !args[3].matches(regex)) {//벻Ϊ + System.out.println("꼶ӦΪ"); + str[0]=0; + return str; + } + if(!((args[0].equals("-n") && args[2].equals("-grade"))||(args[0].equals("-grade") && args[2].equals("-n")))) { + System.out.println("Ҳ-n-grade"); + str[0]=0; + return str; + } + String s0=String.valueOf(args[1]); + String s1=String.valueOf(args[3]); + grade=Integer.parseInt(s0); + n=Integer.parseInt(s1); + + if(args[0].equals("-n") && args[2].equals("-grade")) { + n=Integer.parseInt(s0); + grade=Integer.parseInt(s1); + } + if( grade>3 || grade<=0 ) { + System.out.println("꼶Ӧһ꼶"); + str[0]=0; + return str; + } + if(n<=0||n>1000) + { + System.out.println("ĿӦ1~1000"); + str[0]=0; + return str; + } + str[0]=1; + str[1]=n; + str[2]=grade; + return str; + } + + //ӷ - private static void add(int i,StringBuffer word,int[] answer) { + private static void add(int i,StringBuffer word,int[] answer, int grade,int[] sub, int m) { // TODO Զɵķ - int num1 = (int) (Math.random()*999); - System.out.println("Ǽӷ1"+num1); + if(grade==1) { + num1 = (int) (Math.random()*(answer[i]-1)); + sub[m]=num1; + }else { + num1 = (int) (Math.random()*99); + sub[m]=num1; + } word.insert(word.length()," + "+num1); answer[i] = answer[i]+num1; } // - private static void sub(int i,StringBuffer word, int[] answer) { + private static void sub(int i,StringBuffer word, int[] answer,int[] sub, int m) { // TODO Զɵķ - int num1 = (int) (Math.random()*(answer[i]-1)); - System.out.println("Ǽ1"+num1); - word.insert(word.length(),"-"+num1); + num1 = (int) (Math.random()*(answer[i]-1)); + sub[m]=num1; + word.insert(word.length()," - "+num1); answer[i] = answer[i]-num1; } //˷ - private static void mul(int i,StringBuffer word, int[] answer) { + private static void mul(int i,StringBuffer word, int[] answer, int grade,int[] sub, int m){ // TODO Զɵķ - int num1 = (int) (Math.random()*98); - System.out.println("dz˷1"+num1); - word.insert(word.length(), "x"+num1); - answer[i]= answer[i]*num1; + if(grade==2) { + num1 = (int) (Math.random()*9); + sub[m]=num1; + } + else { + num1 = (int) (Math.random()*99); + sub[m]=num1; + } + word.insert(word.length(), " x "+num1); + answer[i]= answer[i]*num1; } // - private static void div(int i,int j,int f, StringBuffer word, int[] answer) { + private static String div(int i,int j,int f, StringBuffer word, int[] answer,int grade,int[] sub, int m, int[] remb, int k) { // TODO Զɵķ - int test = (int)(Math.random()); - if((test==1)||(answer[i]==0)) { - int num1 = 1+(int)(Math.random()*98); // - System.out.println("dz1"+num1); - int rem=answer[i]%num1; - if(rem>0) { - word.insert(word.length(), "+"+rem); - word.insert(word.length(),""+num1); - answer[i]=(answer[i]+rem)/num1; - }else { - word.insert(word.length(),""+num1); - answer[i]=answer[i]/num1;} - } - else if(test==0) { - int num1 = (int)(Math.random()*(1000/answer[i])); // - System.out.println("dz2"+num1*answer[i]); - word.insert(0,(num1*answer[i])+""); - answer[i] = num1; + if(grade==2) { + num1 = 1+(int)(Math.random()*9); + rem=answer[i]%num1; + remb[k] = rem; + sub[m]=num1; + word.insert(word.length()," "+num1); + answer[i]=answer[i]/num1; } + else{ + test = 1+(int)(Math.random()*2); + if(answer[i]==0 && f-j<=2) return "false"; + if((test==2 || answer[i]==0) && (f-j>2)) { + + num1 = 1+(int)(Math.random()*(answer[i]-1)); // + if(answer[i]>99) {num1 = 1+(int)(Math.random()*99);} + rem=answer[i]%num1; + sub[m]=num1; + + if(rem>0) {word.insert(0, "("); + word.insert(word.length(), " - "+rem+") "+num1); + answer[i]=(answer[i]-rem)/num1; + }else { + word.insert(word.length()," "+num1); + answer[i]=answer[i]/num1;} + return "j++"; + } + + num1 = (int)(Math.random()*((1000/answer[i])+1)); // + sub[m]=num1*answer[i];m++; + word.insert(0,(num1*answer[i])+" "); + answer[i] = num1; + return "true"; + } - private static void operation(int n) { + return null; + } + + + + private static void operation(int n, int grade) { // TODO Զɵķ //str鴢ĵȼͷţanswerʽӴ𰸣word鴢Ŀfĸ;numĵһ;gѡg;iǵi⣻jǵǰ - int level=1;//õȼ + int k=0;//õȼ int[] str= {0,0,1,1}; // 0Ϊ+-1Ϊ*/ int[] answer = new int[n]; //𰸵 - //Ŀ - for(int i=0;if-2)break;//Ҫŵ - if(level list=new HashSet(); + + File file = new File("out.txt"); + try { + p = new PrintWriter(new FileOutputStream(file.getAbsolutePath())); + out = new FileOutputStream(file); + id = new StringBuffer(""); + + for(int i=0;i=100) { - g = (int)(Math.random()*(str.length-1)); + else {//꼶 + f = 2+(int) (Math.random()*3); //f:ȡĸ + g = (int)(Math.random()*(str.length-1));//һ + answer[i]= (int) (Math.random()*99); + sub[m]=answer[i];m++; + word= new StringBuffer(answer[i]+""); + final int g1=g; + for(int j=0;jf-2 && j>=2) break;//Ҫŵ + if(level=100) { + g = (int)(Math.random()*(str.length-1)); + } + while(g==g1 && j==0) + { + g = (int)(Math.random()*(str.length)); + if(answer[i]>=100) { + g = (int)(Math.random()*(str.length-1));} + } + } + } + word.insert(0, "("+(i+1)+")"); + if(grade==2 && g==3 && remb[k-1]!=0) { + id.insert(id.length(), word+" = "+answer[i]+"..."+remb[k-1]+"\n"); + } + else { + id.insert(id.length(), word+" = "+answer[i]+"\n"); + }// + word.insert(word.length(),"\n"); + if(examine(sub,answer[i],list)) { + p.write(word.toString()); + }else { + i--; } - + + + } - System.out.println(word); - System.out.println(answer[i]); + + p.write("\n"); + p.write(id.toString()); + p.close(); + out.close(); + + } catch (IOException e) { + // TODO Զɵ catch + e.printStackTrace(); + } + + } + + public static boolean examine(int strs[],int answer,Collection list) { + String str1=""+answer; + Arrays.sort(strs); + + for(int str : strs) { + str1=str1+str; + } + if(list.contains(str1)) { + return false; } + list.add(str1); + return true; } - public static void main(String[] args) { + public static void main(String[] args){ // TODO Զɵķ - int n = 1; - operation(n); - + int[] str= new int[3]; + input(args,str); + if(str[0]==0){ + return ; + } + n=str[1]; + grade=str[2]; + operation(n,grade); } -} +} \ No newline at end of file From 351c66d862fb2833f3f4a4c862a48fd5044b2699 Mon Sep 17 00:00:00 2001 From: yhdboolean <2279337734@qq.com> Date: Wed, 19 Sep 2018 11:31:13 +0800 Subject: [PATCH 128/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BC=9A?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E8=B4=9F=E6=95=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 因为三年级中随机符号的选择问题,会出现负数,现已经修复。 另外还减少了一二三年级整合后,冗余的代码 --- Pair_211611302_211605242/Bean.java | 16 ---------------- Pair_211611302_211605242/MathExam.java | 3 ++- Pair_211611302_211605242/TopicGradeThree.java | 6 +++--- 3 files changed, 5 insertions(+), 20 deletions(-) diff --git a/Pair_211611302_211605242/Bean.java b/Pair_211611302_211605242/Bean.java index 6f56d31..e17e761 100644 --- a/Pair_211611302_211605242/Bean.java +++ b/Pair_211611302_211605242/Bean.java @@ -8,10 +8,6 @@ public class Bean { private int numberB = 0; private int result = 0; // private int mod = 0; // е - private StringBuffer text1 = new StringBuffer(""); // Ŀ ʽ: A + B = - private StringBuffer text2 = new StringBuffer(""); // ʽ: A + B = C - private String txt = null; // txt = text1 + text2 - private StringBuffer topic=new StringBuffer(""); //꼶3Ŀ public String getSymbol() { return symbol; @@ -45,11 +41,6 @@ public void setResult(int result) { this.result = result; } - - public String getTxt() { - return txt; - } - public int getMod() { return mod; } @@ -58,12 +49,5 @@ public void setMod(int mod) { this.mod = mod; } - public StringBuffer getTopic() { - return topic; - } - - public void setTopic(StringBuffer topic) { - this.topic = topic; - } } diff --git a/Pair_211611302_211605242/MathExam.java b/Pair_211611302_211605242/MathExam.java index dc4a952..91c65fa 100644 --- a/Pair_211611302_211605242/MathExam.java +++ b/Pair_211611302_211605242/MathExam.java @@ -44,7 +44,7 @@ private void start() { mod = 0; } topic3.append("\n"); - + //( 360 - 71 ) / 17 - 17 = 0 } } else if (grade == 3) { for (int i = 0; i < numberOfTopics; i++) { @@ -58,6 +58,7 @@ private void start() { } String txt = String.valueOf(topic2) + "\n" + String.valueOf(topic3); // System.out.println(txt); +// txt=txt.replaceAll("\\*", "x"); createMathExamTxt(txt); } diff --git a/Pair_211611302_211605242/TopicGradeThree.java b/Pair_211611302_211605242/TopicGradeThree.java index 09a626b..2eec3c9 100644 --- a/Pair_211611302_211605242/TopicGradeThree.java +++ b/Pair_211611302_211605242/TopicGradeThree.java @@ -66,11 +66,11 @@ else if(SymbolNumber==3){ } else{ a1 = Topic.createRandomNumber(25, 50); - String s [] = {"+","*","-"}; - String symbol1 = s[Topic.createRandomNumber(0, 2)]; + String s [] = {"+","*"}; + String symbol1 = s[Topic.createRandomNumber(0, 1)]; a2 = Topic.createRandomNumber(5, 10); a3 = Topic.createRandomNumber(5, 10); - String symbol2 = s[Topic.createRandomNumber(0, 2)]; + String symbol2 = s[Topic.createRandomNumber(0, 1)]; topic.append(a1 + " " + symbol1 + " " + a2 + " " + symbol2 + " " + a3); return topic; } From 6caf420a99d00f3ee60922ce09936bc467f25575 Mon Sep 17 00:00:00 2001 From: mumuyinxin <42675910+mumuyinxin@users.noreply.github.com> Date: Wed, 19 Sep 2018 11:40:52 +0800 Subject: [PATCH 129/135] Add files via upload --- Pair_211606367_211606445/Calculation.txt | 198 +++++++++++++++ Pair_211606367_211606445/MathExam.txt | 301 +++++++++++++++++++++++ 2 files changed, 499 insertions(+) create mode 100644 Pair_211606367_211606445/Calculation.txt create mode 100644 Pair_211606367_211606445/MathExam.txt diff --git a/Pair_211606367_211606445/Calculation.txt b/Pair_211606367_211606445/Calculation.txt new file mode 100644 index 0000000..03f6870 --- /dev/null +++ b/Pair_211606367_211606445/Calculation.txt @@ -0,0 +1,198 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; + +public class Calculation { + int sum = 0; + String word = ""; + String[] cal_str = {"+","-","x",""}; + List inffix_expression = new ArrayList(), + List Word_Set = new ArrayList(); + List suffix_expression = new ArrayList(); + Stack cal_symbol = new Stack(); + Stack cal_sum = new Stack(); + + public Calculation(String cal_problem,List Word_Set) { + super(); + String str_char_merge = ""; + for (int i = 0; i < cal_problem.length(); i++) { + if(cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') + { + while(i < cal_problem.length() && cal_problem.charAt(i) >= '0' && cal_problem.charAt(i) <= '9') + { + str_char_merge += cal_problem.charAt(i); + i++; + } + inffix_expression.add(str_char_merge); + str_char_merge = ""; + i--; + } + else + { + inffix_expression.add(cal_problem.substring(i, i+1)); + } + } + this.Word_Set = Word_Set; + } + + /** + * ׺ʽת׺ʽ + * + */ + public void To_Suffix_Expression() + { + String str_char=""; + for(int i = 0;i < inffix_expression.size();i++) { + str_char = inffix_expression.get(i); + if(str_char.matches("[0-9]+")) + suffix_expression.add(str_char); + else if(str_char.equals("(")) + cal_symbol.push(str_char); + else if(str_char.equals(")")) + { + while(!(cal_symbol.peek().equals("("))) + { + suffix_expression.add(cal_symbol.pop()); + } + cal_symbol.pop(); + } + else + { + while(cal_symbol.size()!=0 && Oper(cal_symbol.peek(),str_char)) + { + suffix_expression.add(cal_symbol.pop()); + } + cal_symbol.push(str_char); + } + } + while(cal_symbol.size()!=0) + { + suffix_expression.add(cal_symbol.pop()); + } + } + + private boolean Oper(String peek, String str) { + int i = 0,j = 0; + if(peek.equals("(") || peek == null) + return false; + while(i < cal_str.length && cal_str[i] != peek) + { + i++; + } + while(j < cal_str.length && cal_str[j] != str) + { + j++; + } + if(i/2 >= j/2) + return true; + else + return false; + } + + /** + * ׺ʽ沨ʽ,жǷӦ꼶 + * + */ + public boolean Suffix_Expression_Summation() + { + for(int i = 0;i < suffix_expression.size();i++) { + if(suffix_expression.get(i).matches("\\d+")) + { + cal_sum.push(suffix_expression.get(i)); + } + else + { + int num1 = Integer.parseInt(cal_sum.pop()); + int num2 = Integer.parseInt(cal_sum.pop()); + if(suffix_expression.get(i).equals("+")) + { + sum = num1+num2; + if(sum > 10000) + return false; + } + else if(suffix_expression.get(i).equals("-")) + { + sum = num2-num1; + if(sum < 0) + return false; + } + else if(suffix_expression.get(i).equals("x")) + { + sum = num1*num2; + if(sum < 0) + return false; + } + else if(suffix_expression.get(i).equals("") && num1 == 0) + { + return false; + } + else if(suffix_expression.get(i).equals("")) + { + sum = num2/num1; + if(sum < 0) + return false; + if(num2%num1 != 0) + return false; + } + if(Word_Set.contains(Integer.toString(num2)+" "+suffix_expression.get(i)+" "+Integer.toString(num1)) + || Word_Set.contains(Integer.toString(num1)+" "+suffix_expression.get(i)+" "+Integer.toString(num2) + ) + { + return false; + } + else + { + Word_Set.add(Integer.toString(num2)+" "+suffix_expression.get(i)+" "+Integer.toString(num1)); + if(suffix_expression.get(i).equals("x") || suffix_expression.get(i).equals("+")) + { + Word_Set.add(Integer.toString(num1)+" "+suffix_expression.get(i)+" "+Integer.toString(num2)); + } + } + if(sum < 0 || sum > 10000) + return false; + cal_sum.push(sum+""); + } + } + sum = Integer.parseInt(cal_sum.pop()); + return true; + } + + /** + * ׺ʽɺϸ׺ʽword + * + */ + public void Infix_Expression_To_Word() + { + for (int i = 0; i < inffix_expression.size(); i++) { + if(i == inffix_expression.size()-1) + { + word += inffix_expression.get(i); + } + else + { + word += inffix_expression.get(i)+" "; + } + } + } + + /** + * @return word + */ + public String getword() { + return word; + } + /** + * ȡ׺ʽֵ + * @return sum + */ + public int getSum() { + return sum; + } + /** + * @return Word_Set + */ + public List getWord_Set(){ + return Word_Set; + } + +} diff --git a/Pair_211606367_211606445/MathExam.txt b/Pair_211606367_211606445/MathExam.txt new file mode 100644 index 0000000..7e6b3d2 --- /dev/null +++ b/Pair_211606367_211606445/MathExam.txt @@ -0,0 +1,301 @@ +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.Scanner; +import java.util.regex.Pattern; + +public class MathExam { + static Scanner input = new Scanner(System.in); + static String filename ="out.txt"; + static File file = new File(filename),parent = null; + static OutputStream out = null; + static String[] str_symbol = {"+","-","x",""},input_args= {" "," "}; + static List Calculation_Problem = new ArrayList(), + Word_Set = new ArrayList(); + static int cal_number1 = 0, cal_number2 = 0,symbol = 0, sum = 0, remainder = 0, + number = -1, grade = -1, + calculation_num = 0 ,ran_symbol_num = 0,ran_left_parenthesis_num = 0; + static Random ranNum = new Random(),ranSymbol = new Random(),ranSymbolNum = new Random(),ran_left_parenthesis = new Random(); + static String word = null,check_input_message = null; + static Pattern pattern = Pattern.compile("[0-9]*"); + public static void main(String[] args) { + File_Initialization(file);//ĵʼ + Input_Message(args);//Ϣ + for (int i = 1; i <= number; i++) + { + Iteration(i);//һϸĿ + File_Write_Problem(i);//Ŀдĵ + } + if(number != 0) + { + File_Write_Answer();//ĿĴдĵ + System.out.println("ĿѾɣ뿴out.txtĵ"); + } + } + + /** + Сѧ꼶Ҫ£ + 24 + Լ + Ľи--Ҫ沨ʱж + Ϊ0 + 0-1000ڣ˵ + ȻΪһ꼶꼶ĹܻҪ + ѯ꼶С,ڵֻ + * + * **/ + private static void Iteration(int i) { + if(grade == 1) + { + symbol = ranSymbol.nextInt(2); + cal_number1 = ranNum.nextInt(101); + cal_number2 = ranNum.nextInt(101); + if(str_symbol[symbol].equals("+") && cal_number1 + cal_number2 <= 100) + sum = cal_number1 + cal_number2; + else if(str_symbol[symbol].equals("-") && cal_number1 - cal_number2 >= 0) + sum = cal_number1 - cal_number2; + else + Iteration(i); + word = Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); + if(Word_Set.contains(word)) + { + Iteration(i); + } + else + { + Word_Set.add(word); + Word_Set.add(Integer.toString(cal_number2)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number1)); + word = "("+Integer.toString(i)+") "+word; + return; + } + } + else if(grade == 2) + { + symbol = ranSymbol.nextInt(4); + cal_number1 = ranNum.nextInt(101); + cal_number2 = ranNum.nextInt(101); + if(str_symbol[symbol].equals("+") && cal_number1 + cal_number2 <= 100) + sum = cal_number1 + cal_number2; + else if(str_symbol[symbol].equals("-")&& cal_number1 - cal_number2 >= 0) + sum = cal_number1 - cal_number2; + else if(str_symbol[symbol].equals("x") && cal_number1 * cal_number2 <= 100) + sum = cal_number1 * cal_number2; + else if(str_symbol[symbol].equals("") && cal_number2 != 0) + { + sum = cal_number1 / cal_number2; + remainder = cal_number1 % cal_number2; + } + else + Iteration(i); + word = Integer.toString(cal_number1)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number2); + if(Word_Set.contains(word)) + { + Iteration(i); + } + else + { + Word_Set.add(word); + Word_Set.add(Integer.toString(cal_number2)+" "+str_symbol[symbol]+" "+Integer.toString(cal_number1)); + word = "("+Integer.toString(i)+") "+word; + return; + } + } + else if(grade == 3) + { + cal_number2 = ranNum.nextInt(1001); + ran_symbol_num = ranSymbolNum.nextInt(3)+2; + word = Integer.toString(cal_number2); + for(int j=1;j<=ran_symbol_num;j++) + { + cal_number1 = cal_number2; + cal_number2 = ranNum.nextInt(1001); + symbol = ranSymbol.nextInt(4); + ran_left_parenthesis_num = ran_left_parenthesis.nextInt(2); + if(str_symbol[symbol].equals("+") && cal_number1 + cal_number2 > 1000 + || str_symbol[symbol].equals("-") && cal_number1 - cal_number2 < 0 + || str_symbol[symbol].equals("x") && cal_number1 * cal_number2 > 1000 + || str_symbol[symbol].equals("") && j!=1 && cal_number2 == 0) + { + j--; + continue; + } + else if(ran_left_parenthesis_num % 2 == 1 && j <= ran_symbol_num-1) + { + if(j == 1) + { + word = "(" + word; + symbol = ranSymbol.nextInt(2); + cal_number2 = ranNum.nextInt(1001); + word = word + str_symbol[symbol] + Integer.toString(cal_number2)+")"; + symbol = ranSymbol.nextInt(2) + 2; + cal_number2 = ranNum.nextInt(1001); + word = word+str_symbol[symbol]+Integer.toString(cal_number2); + } + else if(j <= ran_symbol_num-1) + { + word = word + str_symbol[symbol] + "("+Integer.toString(cal_number2); + if(symbol == 0 || symbol == 1) + symbol = ranSymbol.nextInt(2); + else + symbol = ranSymbol.nextInt(4); + cal_number2 = ranNum.nextInt(1001); + word = word + str_symbol[symbol] + Integer.toString(cal_number2)+")"; + } + j++; + continue; + } + word = word+str_symbol[symbol]+Integer.toString(cal_number2); + } + Calculation calculation = new Calculation(word); + calculation.Infix_Expression_To_Word(); + calculation.To_Suffix_Expression(); + if(calculation.Suffix_Expression_Summation()) + { + word = calculation.getword(); + sum = calculation.getSum(); + if(Word_Set.contains(word)) + { + Iteration(i); + } + else + { + word = "("+i+") " + word; + Word_Set.add(word); + return; + } + } + else + Iteration(i); + } + } + + private static void Input_Message(String[] args) { + int j=1; + if(args[0].equals("-n") && args[2].equals("-grade")) + { input_args[0] = args[1];input_args[1] = args[3];} + else if(args[0].equals("-grade") && args[2].equals("-n")) + { input_args[0] = args[3];input_args[1] = args[1];} + else + System.out.print("󣡣"); + check_input_message = input_args[0];// + if(!pattern.matcher(check_input_message).matches()) + { + System.out.print("Ϸ"); + } + else + { + number = Integer.parseInt(check_input_message); + if(number > 1000) + System.out.print("̫"); + } + j++; + while(number<0 || number > 1000) + { + if(j!=1) + check_input_message = input.nextLine(); + if(!pattern.matcher(check_input_message).matches()) + { + System.out.print("Ϸ"); + } + else + { + number = Integer.parseInt(check_input_message); + if(number > 1000) + System.out.print("̫"); + } + } + j=1; + check_input_message = input_args[1];//꼶 + if(!pattern.matcher(check_input_message).matches()) + { + System.out.print("꼶Ϸ꼶"); + } + else + { + grade = Integer.parseInt(check_input_message); + if(grade<1 || grade>3) + System.out.print("꼶Ϸ!꼶(123)"); + } + j++; + while(grade<1 || grade>3) + { + if(j!=1) + check_input_message = input.nextLine(); + if(!pattern.matcher(check_input_message).matches()) + { + System.out.print("꼶Ϸ!꼶(123)"); + } + else + { + grade = Integer.parseInt(check_input_message); + if(grade<1 || grade>3) + System.out.print("꼶Ϸ!꼶(123)"); + } + + } + } + + private static void File_Write_Answer() { + try { + out.write("\r\n".getBytes()); + for (int i = 0; i < calculation_num; i++) + { + out.write(Calculation_Problem.get(i).getBytes()); + } + } + catch (IOException e) { + System.out.println("дʱ쳣"+e.getMessage()); + } + } + + private static void File_Write_Problem(int i) { + try { + + out.write((word+"\r\n").getBytes()); + if(remainder!=0) + { + Calculation_Problem.add(word+" = "+Integer.toString(sum)+"..."+Integer.toString(remainder)+"\r\n"); + calculation_num++; + remainder = 0; + } + else + { + Calculation_Problem.add(word+" = "+Integer.toString(sum)+"\r\n"); + calculation_num++; + } + word = ""; + } + catch (IOException e) + { + System.out.println("out.write()ʱ׳쳣"+e.getMessage()); + } + } + + private static void File_Initialization(File file) { + if(!file.exists()) + { parent = file.getParentFile(); + if(parent !=null && !parent.exists()) + { parent.mkdir();//Ŀ¼ + System.out.println("Ŀ¼"+parent); + } + try { + file.createNewFile(); + } catch (IOException e) { + System.out.println("file.createNewFile()ʱ׳쳣"+e.getMessage()); + } + System.out.println("ļ"+file.getAbsolutePath()); + }//ȡ· + try { + out = new FileOutputStream(file); + } + catch (FileNotFoundException e) { + System.out.println("new FileOutputStream(file)ʱ׳쳣"+e.getMessage()); + } + } + +} \ No newline at end of file From 41843949b918507f1523e4db97e8807e5cc417a6 Mon Sep 17 00:00:00 2001 From: hktttygithub Date: Wed, 19 Sep 2018 11:44:13 +0800 Subject: [PATCH 130/135] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将乘号改成“×” 将除号改成“÷” --- Pair_211611302_211605242/MathExam.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Pair_211611302_211605242/MathExam.java b/Pair_211611302_211605242/MathExam.java index 91c65fa..a4704c2 100644 --- a/Pair_211611302_211605242/MathExam.java +++ b/Pair_211611302_211605242/MathExam.java @@ -57,8 +57,10 @@ private void start() { } } String txt = String.valueOf(topic2) + "\n" + String.valueOf(topic3); + + txt=txt.replaceAll("\\*",""); + txt=txt.replaceAll("\\/",""); // System.out.println(txt); -// txt=txt.replaceAll("\\*", "x"); createMathExamTxt(txt); } From 183fae149bbf3939a3c0163b32241522b3941e5e Mon Sep 17 00:00:00 2001 From: xtlhq <41507303+xtlhq@users.noreply.github.com> Date: Wed, 19 Sep 2018 11:51:31 +0800 Subject: [PATCH 131/135] Add files via upload --- Pair_211606370_211606382/Mathexam.java | 266 +++++++++++++++++++++++++ 1 file changed, 266 insertions(+) create mode 100644 Pair_211606370_211606382/Mathexam.java diff --git a/Pair_211606370_211606382/Mathexam.java b/Pair_211606370_211606382/Mathexam.java new file mode 100644 index 0000000..a1c125b --- /dev/null +++ b/Pair_211606370_211606382/Mathexam.java @@ -0,0 +1,266 @@ +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.Random; +import java.util.Stack; + +public class Mathexam { + + static StringBuffer wenti = new StringBuffer(); + static StringBuffer daan = new StringBuffer(); + static int result; + static int n; + static int grade; + + public static boolean test(String A, String B) { + grade = Integer.parseInt(B); + n = Integer.parseInt(A); + if (n > 100) { + System.out.println("࣬100µ"); + return false; + } + return true; + } + + public static void main(String[] args) { + problems(10, 3); + File file = new File("out.txt"); + try { + System.setOut(new PrintStream(new BufferedOutputStream(new + FileOutputStream("out.txt")), true)); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + problems(20, 3); + } + + private static void problems(int n, int grade) { + String[] fuhao = { " + ", " - ", " * ", " / " }; + String fengge = "\r\n"; + Random rand = new Random(); + String a = ""; + int S_num1 = (rand.nextInt(101)); + int i = 0; + String S_wenti = S_num1 + ""; + + if (grade == 1) { + for (i = 1; i <= n; i++) { + int operator = (int) (Math.random() * 2); + if (operator == 0) { + int num1 = (int) (Math.random() * 10); + int num2 = (int) (Math.random() * 10); + result = num1 + num2; + + wenti.append("(" + i + ") " + num1 + " + " + num2 + "\r\n"); + daan.append("(" + i + ") " + num1 + " + " + num2 + " = " + result + "\r\n"); + } else if (operator == 1) { + int x = (int) (Math.random() * 10); + int y = (int) (Math.random() * 10); + result = x - y; + + wenti.append("(" + i + ") " + x + " - " + y + "\r\n"); + daan.append("(" + i + ") " + x + " - " + y + " = " + result + "\r\n"); + } + } + System.out.println(wenti); + System.out.println(daan); + + } + + else if (grade == 2) { + for (i = 1; i <= n; i++) { + int operator = (int) (Math.random() * 2); + if (operator == 0) { + int num1 = (int) (Math.random() * 10); + int num2 = (int) (Math.random() * 10); + result = num1 * num2; + + wenti.append("(" + (i + 1) + ") " + num1 + " * " + num2 + "\r\n"); + daan.append("(" + (i + 1) + ") " + num1 + " * " + num2 + " = " + result + "\r\n"); + } else if (operator == 1) { + int x = (int) (Math.random() * 10); + int y = (int) (Math.random() * 10); + if (y == 0) { + System.out.println("Ϊ"); + } + if (x % y == 0) { + result = x / y; + wenti.append("(" + i + ") " + x + " / " + y + "\r\n"); + daan.append("(" + i + ") " + x + " / " + y + " = " + result + "\r\n"); + + } + if (x % y != 0) { + result = x / y; + wenti.append("(" + i + ") " + x + " / " + y + "\r\n"); + daan.append("(" + i + ") " + x + " / " + y + " = " + result + "..." + (x % y) + "\r\n"); + } + } + } + System.out.println(wenti); + System.out.println(daan); + } + + if (grade == 3) { + outLoop:for (i = 1; i <= n; i++) { + int OPNum = (rand.nextInt(3) + 2); + int S_num2 = (rand.nextInt(100) + 1); + S_wenti = S_num2 + ""; + for (int j = 1; j <= OPNum; j++) { + int S_num = S_num2; + S_num2 = (rand.nextInt(1000) + 1); + int op = (rand.nextInt(4)); + if (op == 0) { + if (S_num + S_num2 > 1000) { + j--; + continue; + } + } else if (op == 1) { + if (S_num - S_num2 < 0) { + j--; + continue; + } + } else if (op == 2) { + if (S_num1 * S_num2 > 10000) { + j--; + continue; + } + } else if (op == 3) { + if (S_num1 % S_num2 != 0 || S_num2 == 0) { + j--; + continue; + } + } + a = S_wenti + S_num1 + fuhao[op] + S_num2; + S_wenti += fuhao[op] + S_num2; + if (Integer.parseInt(answers(S_wenti))<0 || Integer.parseInt(answers(S_wenti))>100000) { + i--; + continue outLoop; + } + } + + wenti.append("(" + i + ") " + S_wenti + "\r\n"); + + daan.append("(" + i + ") " + S_wenti + " = " + answers(S_wenti) + "\r\n"); + //S_num1 = (rand.nextInt(1001)); + //S_wenti = S_num1 + ""; + } + System.out.println(wenti); + System.out.println(daan); + } + + } + + public static String answers(String S_wenti) { + Stack number1 = new Stack(); + Stack op_Stack = new Stack(); + String stc = S_wenti.replace(" ", ""); + String number = ""; + for (int i = 0; i < stc.length(); i++) { + char c = stc.charAt(i); + if (c >= '0' && c <= '9') { + number += c + ""; + if (i + 1 >= stc.length()) { + number1.push(number); + number = ""; + } + } + else { + if (!number.isEmpty()) { + number1.push(number); + number = ""; + } + + if (!op_Stack.empty() && comparePriority(c + "", op_Stack.peek()) < 1 ) { + while (!op_Stack.empty() && comparePriority(c + "", op_Stack.peek()) < 1) { + + int a = Integer.parseInt(number1.pop()); + int b = Integer.parseInt(number1.pop()); + int d; + String stackTop = op_Stack.peek(); + if (stackTop.equals("+")) { + d = b + a; + } else if (stackTop.equals("-")) { + d = b - a; + } else if (stackTop.equals("*")) { + d = b * a; + } else { + d = b / a; + } + number1.push(d + ""); + stackTop = op_Stack.pop(); + } + + op_Stack.push(c + ""); + } + else + op_Stack.push(c+""); + } + + } + + while (!op_Stack.empty()) { + String stackTop = op_Stack.pop(); + int a = Integer.parseInt(number1.pop()); + int b = Integer.parseInt(number1.pop()); + int d; + if (stackTop.equals("+")) { + d = b + a; + } else if (stackTop.equals("-")) { + d = b - a; + } else if (stackTop.equals("*")) { + d = b * a; + } else { + d = b / a; + } + number1.push(d + ""); + } + + return number1.peek(); + } + + private static int comparePriority(String a, String b) { + if (a.equals(b)) { + return 0; + } else if (adv(a) > adv(b)) { + return 1; + } else if (adv(a) < adv(b)) { + return -1; + } else { + return 0; + } + } + + private static int adv(String op) { + if (op.equals("*") || op.equals("/")) { + return 2; + } else if (op.equals("+") || op.equals("-")) { + return 1; + + } + // if(op.equals("(")){ + // return 0; + // } + return 0; + + } + + private static void out(String filename) throws IOException { + File file = new File(filename); + File parentFile = file.getParentFile(); + if (parentFile != null && !parentFile.exists()) { + parentFile.mkdirs(); + System.out.println("Ŀ¼" + parentFile); + } + file.createNewFile(); + OutputStream a = new FileOutputStream(file); + a.write(wenti.toString().getBytes()); + a.write(System.lineSeparator().getBytes()); + a.write(daan.toString().getBytes()); + a.close(); + } + +} From 611ae4f28267e4279c76cd54f967760a661f0f8a Mon Sep 17 00:00:00 2001 From: 1183951410 <42765497+1183951410@users.noreply.github.com> Date: Wed, 19 Sep 2018 12:48:19 +0800 Subject: [PATCH 132/135] Add files via upload --- MathExam6321.class | Bin 0 -> 5373 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 MathExam6321.class diff --git a/MathExam6321.class b/MathExam6321.class new file mode 100644 index 0000000000000000000000000000000000000000..a45c5a5f2dc339310aa018ee011b13e9484deced GIT binary patch literal 5373 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 Date: Wed, 19 Sep 2018 12:53:08 +0800 Subject: [PATCH 133/135] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E5=A4=9A?= =?UTF-8?q?=E6=AD=A5=E8=BF=90=E7=AE=97=E7=9A=84=E5=BC=8F=E5=AD=90=E8=BE=93?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pair_211606319_211606321/MathExam6321.java | 200 +++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 Pair_211606319_211606321/MathExam6321.java diff --git a/Pair_211606319_211606321/MathExam6321.java b/Pair_211606319_211606321/MathExam6321.java new file mode 100644 index 0000000..80ffb39 --- /dev/null +++ b/Pair_211606319_211606321/MathExam6321.java @@ -0,0 +1,200 @@ +package first; + +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.util.Scanner; + +public class MathExam6321 { + +public static void main(String[] args) throws FileNotFoundException { + File file = new File("out.txt"); + DataOutputStream out = new DataOutputStream(new FileOutputStream(file)); + // TODO Auto-generated method stub + Scanner s=new Scanner(System.in); + System.out.println("꼶"); + int grade = s.nextInt(); + switch( grade ){ + case 1 : grade_one();break; + case 2: grade_two();break; + case 3: grade_Three();break; + } + +// if(grade == 2) { +// grade_two(); +// }else { +// grade_one(); +// } + } +public static void grade_one() { + int p=0; int q=0; + Scanner input =new Scanner(System.in); + System.out.println("ҪĿ"); + int number=input.nextInt(); + int[] d=new int[number]; + int[] e=new int[number]; + int[] f=new int[number]; + + for (int i = 0; i < number; i++) { + int a=(int)(0+Math.random()*20); + int b=(int)(0+Math.random()*20); + int c=(int)(1+Math.random()*2); + d[i] =a; + e[i]=b; + f[i]=c; + if(d[i] Date: Wed, 19 Sep 2018 13:00:52 +0800 Subject: [PATCH 135/135] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 答案的输出为完成