diff --git a/README.md b/README.md new file mode 100644 index 0000000..1be8fa6 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# math_paper + diff --git a/src/.idea/.name b/src/.idea/.name deleted file mode 100644 index 730557c..0000000 --- a/src/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -Authenticator.java \ No newline at end of file diff --git a/src/AbstractQuestionGenerator.java b/src/AbstractQuestionGenerator.java deleted file mode 100644 index bcae7de..0000000 --- a/src/AbstractQuestionGenerator.java +++ /dev/null @@ -1,43 +0,0 @@ -import java.util.Random; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -abstract public class AbstractQuestionGenerator { - protected final Random random = new Random(); - protected final Level level; - - public AbstractQuestionGenerator(Level level) { - this.level = level; - } - - protected int getRandomNumber() { - return random.nextInt(100) + 1; - } - - protected String getRandomBinaryOp() { - String[] ops = {"+", "-", "*", "/"}; - return ops[random.nextInt(ops.length)]; - } - - abstract String generateExpression(); - - abstract boolean isValidForLevel(String expression); - - protected int countOperands(String expression) { - int count = 0; - Pattern pattern = Pattern.compile("\\d+"); - Matcher matcher = pattern.matcher(expression); - while (matcher.find()) { - count++; - } - return count; - } - - public String generateQuestion() { - String expression; - do { - expression = generateExpression(); - } while (countOperands(expression) < 1 || countOperands(expression) > 5 || !isValidForLevel(expression)); - return expression + " ="; - } -} diff --git a/src/Authenticator.java b/src/Authenticator.java deleted file mode 100644 index 8a5a526..0000000 --- a/src/Authenticator.java +++ /dev/null @@ -1,26 +0,0 @@ -import java.util.HashMap; -import java.util.Map; - -public class Authenticator { - private final Map users = new HashMap<>(); - - public Authenticator() { - users.put("张三1", new User("张三1", "123", Level.ELEMENTARY)); - users.put("张三2", new User("张三2", "123", Level.ELEMENTARY)); - users.put("张三3", new User("张三3", "123", Level.ELEMENTARY)); - users.put("李四1", new User("李四1", "123", Level.JUNIOR)); - users.put("李四2", new User("李四2", "123", Level.JUNIOR)); - users.put("李四3", new User("李四3", "123", Level.JUNIOR)); - users.put("王五1", new User("王五1", "123", Level.SENIOR)); - users.put("王五2", new User("王五2", "123", Level.SENIOR)); - users.put("王五3", new User("王五3", "123", Level.SENIOR)); - } - - public User login(String username, String password) { - User user = users.get(username); - if (user != null && user.password.equals(password)) { - return user; - } - return null; - } -} diff --git a/src/ElementaryGenerator.java b/src/ElementaryGenerator.java deleted file mode 100644 index e7940c1..0000000 --- a/src/ElementaryGenerator.java +++ /dev/null @@ -1,25 +0,0 @@ -public class ElementaryGenerator extends AbstractQuestionGenerator{ - public ElementaryGenerator() { - super(Level.ELEMENTARY); - } - - @Override - String generateExpression() { - return generateSub(4); - } - - private String generateSub(int depth) { - if (depth == 0 || random.nextDouble() < 0.4) { - return String.valueOf(getRandomNumber()); - } - String left = generateSub(depth - 1); - String op = getRandomBinaryOp(); - String right = generateSub(depth - 1); - return "(" + left + op + right + ")"; - } - - @Override - boolean isValidForLevel(String expression) { - return true; - } -} diff --git a/src/HistoryManager.java b/src/HistoryManager.java deleted file mode 100644 index e3941a4..0000000 --- a/src/HistoryManager.java +++ /dev/null @@ -1,45 +0,0 @@ -import java.util.HashSet; -import java.util.Set; -import java.io.*; - -public class HistoryManager { - private final Set existingQuestions = new HashSet<>(); - - public HistoryManager(String username) { - File folder = new File(username); - if (!folder.exists() && !folder.mkdir()) { - System.err.println("无法创建文件夹: " + username); - } - File[] files = folder.listFiles(); - if (files != null) { - for (File file : files) { - if (file.isFile() && file.getName().endsWith(".txt")) { - try (BufferedReader reader = new BufferedReader(new FileReader(file))) { - String line; - while ((line = reader.readLine()) != null) { - line = line.trim(); - if (line.matches("^\\d+\\..*")) { - int dotIndex = line.indexOf('.'); - String question = line.substring(dotIndex + 1).trim(); - if (question.endsWith("=")) { - question = question.substring(0, question.length() - 1).trim(); - } - existingQuestions.add(question); - } - } - } catch (IOException e) { - System.err.println("读取文件出错: " + file.getName()); - } - } - } - } - } - - public boolean isDuplicate(String question) { - return existingQuestions.contains(question); - } - - public void add(String question) { - existingQuestions.add(question); - } -} diff --git a/src/JuniorGenerator.java b/src/JuniorGenerator.java deleted file mode 100644 index 9a1b636..0000000 --- a/src/JuniorGenerator.java +++ /dev/null @@ -1,34 +0,0 @@ -public class JuniorGenerator extends AbstractQuestionGenerator{ - public JuniorGenerator() { - super(Level.JUNIOR); - } - - @Override - String generateExpression() { - return generateSub(4); - } - - private String generateSub(int depth) { - if (depth == 0 || random.nextDouble() < 0.4) { - return String.valueOf(getRandomNumber()); - } - double r = random.nextDouble(); - if (r < 0.5) { - String left = generateSub(depth - 1); - String op = getRandomBinaryOp(); - String right = generateSub(depth - 1); - return "(" + left + op + right + ")"; - } else if (r < 0.75) { - String sub = generateSub(depth - 1); - return "sqrt(" + sub + ")"; - } else { - String sub = generateSub(depth - 1); - return "(" + sub + ")^2"; - } - } - - @Override - boolean isValidForLevel(String expression) { - return expression.contains("sqrt") || expression.contains("^2"); - } -} diff --git a/src/Level.java b/src/Level.java deleted file mode 100644 index 0263cd3..0000000 --- a/src/Level.java +++ /dev/null @@ -1,15 +0,0 @@ -public enum Level { - ELEMENTARY("小学"), - JUNIOR("初中"), - SENIOR("高中"); - - private final String name; - - Level(String name) { - this.name = name; - } - - public String getName() { - return name; - } -} \ No newline at end of file diff --git a/src/Main.java b/src/Main.java deleted file mode 100644 index 8fe26fb..0000000 --- a/src/Main.java +++ /dev/null @@ -1,114 +0,0 @@ -import java.util.*; -import java.io.*; -import java.text.SimpleDateFormat; - -public class Main { - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - Authenticator authenticator = new Authenticator(); - User user; - - while (true) { - System.out.print("请输入用户名和密码(空格隔开):"); - String inputLine = scanner.nextLine().trim(); - String[] input = inputLine.split("\\s+"); - if (input.length != 2) { - System.out.println("请输入正确的用户名、密码"); - continue; - } - user = authenticator.login(input[0], input[1]); - if (user == null) { - System.out.println("请输入正确的用户名、密码"); - continue; - } - Level currentLevel = user.initialLevel; - HistoryManager history = new HistoryManager(user.username); - - while (true) { - System.out.println("当前选择为" + currentLevel.getName() + " 出题"); - System.out.print("准备生成" + currentLevel.getName() + " 数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); - String input_text = scanner.nextLine().trim(); - - if (input_text.startsWith("切换为")) { - String newLevelStr = input_text.substring("切换为".length()).trim(); - Level newLevel = switch (newLevelStr) { - case "小学" -> Level.ELEMENTARY; - case "初中" -> Level.JUNIOR; - case "高中" -> Level.SENIOR; - default -> null; - }; - if (newLevel != null) { - currentLevel = newLevel; - } else { - System.out.println("请输入小学、初中和高中三个选项中的一个"); - } - continue; - } - - int numQuestions; - try { - numQuestions = Integer.parseInt(input_text); - } catch (NumberFormatException e) { - System.out.println("无效输入"); - continue; - } - - if (numQuestions == -1) { - break; - } - - if (numQuestions < 10 || numQuestions > 30) { - System.out.println("数量应在10-30"); - continue; - } - - AbstractQuestionGenerator generator = getGenerator(currentLevel); - List questions = new ArrayList<>(); - boolean failed = false; - for (int i = 0; i < numQuestions; i++) { - String question; - int attempts = 0; - do { - question = generator.generateQuestion(); - attempts++; - if (attempts > 100) { - System.out.println("无法生成足够独特的题目"); - failed = true; - break; - } - } while (history.isDuplicate(question)); - if (failed) { - break; - } - questions.add(question); - history.add(question); - } - - if (!questions.isEmpty() && !failed) { - Date now = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - String filename = sdf.format(now) + ".txt"; - File folder = new File(user.username); - File file = new File(folder, filename); - try (PrintWriter writer = new PrintWriter(file)) { - for (int i = 0; i < questions.size(); i++) { - writer.println((i + 1) + ". " + questions.get(i)); - writer.println(); - } - } catch (IOException e) { - System.err.println("保存文件出错: " + e.getMessage()); - } - } - } - } - } - - private static AbstractQuestionGenerator getGenerator(Level level) { - return switch (level) { - case ELEMENTARY -> new ElementaryGenerator(); - case JUNIOR -> new JuniorGenerator(); - case SENIOR -> new SeniorGenerator(); - //default -> throw new IllegalArgumentException("未知水平"); - }; - } -} diff --git a/src/SeniorGenerator.java b/src/SeniorGenerator.java deleted file mode 100644 index 54d0562..0000000 --- a/src/SeniorGenerator.java +++ /dev/null @@ -1,33 +0,0 @@ -public class SeniorGenerator extends AbstractQuestionGenerator{ - public SeniorGenerator() { - super(Level.SENIOR); - } - - @Override - String generateExpression() { - return generateSub(4); - } - - private String generateSub(int depth) { - if (depth == 0 || random.nextDouble() < 0.4) { - return String.valueOf(getRandomNumber()); - } - double r = random.nextDouble(); - if (r < 0.5) { - String left = generateSub(depth - 1); - String op = getRandomBinaryOp(); - String right = generateSub(depth - 1); - return "(" + left + op + right + ")"; - } else { - String[] funcs = {"sin", "cos", "tan"}; - String func = funcs[random.nextInt(funcs.length)]; - String sub = generateSub(depth - 1); - return func + "(" + sub + ")"; - } - } - - @Override - boolean isValidForLevel(String expression) { - return expression.contains("sin") || expression.contains("cos") || expression.contains("tan"); - } -} diff --git a/src/User.java b/src/User.java deleted file mode 100644 index 91094ca..0000000 --- a/src/User.java +++ /dev/null @@ -1,11 +0,0 @@ -public class User { - String username; - String password; - Level initialLevel; - - public User(String username, String password, Level initialLevel) { - this.username = username; - this.password = password; - this.initialLevel = initialLevel; - } -} diff --git a/src/out/production/src/.idea/.name b/src/out/production/src/.idea/.name deleted file mode 100644 index 730557c..0000000 --- a/src/out/production/src/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -Authenticator.java \ No newline at end of file diff --git a/src/out/production/src/AbstractQuestionGenerator.class b/src/out/production/src/AbstractQuestionGenerator.class deleted file mode 100644 index dc232d6..0000000 Binary files a/src/out/production/src/AbstractQuestionGenerator.class and /dev/null differ diff --git a/src/out/production/src/Authenticator.class b/src/out/production/src/Authenticator.class deleted file mode 100644 index 60bb52d..0000000 Binary files a/src/out/production/src/Authenticator.class and /dev/null differ diff --git a/src/out/production/src/ElementaryGenerator.class b/src/out/production/src/ElementaryGenerator.class deleted file mode 100644 index 3c735be..0000000 Binary files a/src/out/production/src/ElementaryGenerator.class and /dev/null differ diff --git a/src/out/production/src/HistoryManager.class b/src/out/production/src/HistoryManager.class deleted file mode 100644 index d60ba93..0000000 Binary files a/src/out/production/src/HistoryManager.class and /dev/null differ diff --git a/src/out/production/src/JuniorGenerator.class b/src/out/production/src/JuniorGenerator.class deleted file mode 100644 index 9624750..0000000 Binary files a/src/out/production/src/JuniorGenerator.class and /dev/null differ diff --git a/src/out/production/src/Level.class b/src/out/production/src/Level.class deleted file mode 100644 index 2527ddc..0000000 Binary files a/src/out/production/src/Level.class and /dev/null differ diff --git a/src/out/production/src/Main$1.class b/src/out/production/src/Main$1.class deleted file mode 100644 index e09058a..0000000 Binary files a/src/out/production/src/Main$1.class and /dev/null differ diff --git a/src/out/production/src/Main.class b/src/out/production/src/Main.class deleted file mode 100644 index 0213640..0000000 Binary files a/src/out/production/src/Main.class and /dev/null differ diff --git a/src/out/production/src/SeniorGenerator.class b/src/out/production/src/SeniorGenerator.class deleted file mode 100644 index 7b51092..0000000 Binary files a/src/out/production/src/SeniorGenerator.class and /dev/null differ diff --git a/src/out/production/src/User.class b/src/out/production/src/User.class deleted file mode 100644 index 2eaadcd..0000000 Binary files a/src/out/production/src/User.class and /dev/null differ diff --git a/src/out/production/src/张三1/2025-09-24-08-36-42.txt b/src/out/production/src/张三1/2025-09-24-08-36-42.txt deleted file mode 100644 index 0afa8ba..0000000 --- a/src/out/production/src/张三1/2025-09-24-08-36-42.txt +++ /dev/null @@ -1,20 +0,0 @@ -1. (64-2) = - -2. 62 = - -3. 13 = - -4. 78 = - -5. 72 = - -6. (53-(53/((38+98)*32))) = - -7. (57-52) = - -8. (57+14) = - -9. (((17*(6-21))*93)+63) = - -10. 15 = - diff --git a/src/out/production/src/张三1/2025-09-24-08-36-49.txt b/src/out/production/src/张三1/2025-09-24-08-36-49.txt deleted file mode 100644 index 591f5c6..0000000 --- a/src/out/production/src/张三1/2025-09-24-08-36-49.txt +++ /dev/null @@ -1,20 +0,0 @@ -1. 70 = - -2. 39 = - -3. 47 = - -4. (21*(64+80)) = - -5. (32-32) = - -6. (76-34) = - -7. (27/8) = - -8. (51*47) = - -9. 9 = - -10. 82 = - diff --git a/src/out/production/src/张三1/2025-09-24-08-36-54.txt b/src/out/production/src/张三1/2025-09-24-08-36-54.txt deleted file mode 100644 index 07b6774..0000000 --- a/src/out/production/src/张三1/2025-09-24-08-36-54.txt +++ /dev/null @@ -1,42 +0,0 @@ -1. (45-((1*75)*36)) = - -2. 4 = - -3. (((33+(69*44))-56)-76) = - -4. 66 = - -5. 27 = - -6. 84 = - -7. (6/77) = - -8. 1 = - -9. (79+27) = - -10. (68+(92*(20*(55/1)))) = - -11. 8 = - -12. (67+(((49/50)/87)/23)) = - -13. (18*((51-31)*48)) = - -14. ((19*42)*29) = - -15. 37 = - -16. 63 = - -17. (69*47) = - -18. (((24/(40*17))*31)/93) = - -19. 20 = - -20. 3 = - -21. 95 = - diff --git a/src/张三1/2025-09-24-08-36-42.txt b/src/张三1/2025-09-24-08-36-42.txt deleted file mode 100644 index 0afa8ba..0000000 --- a/src/张三1/2025-09-24-08-36-42.txt +++ /dev/null @@ -1,20 +0,0 @@ -1. (64-2) = - -2. 62 = - -3. 13 = - -4. 78 = - -5. 72 = - -6. (53-(53/((38+98)*32))) = - -7. (57-52) = - -8. (57+14) = - -9. (((17*(6-21))*93)+63) = - -10. 15 = - diff --git a/src/张三1/2025-09-24-08-36-49.txt b/src/张三1/2025-09-24-08-36-49.txt deleted file mode 100644 index 591f5c6..0000000 --- a/src/张三1/2025-09-24-08-36-49.txt +++ /dev/null @@ -1,20 +0,0 @@ -1. 70 = - -2. 39 = - -3. 47 = - -4. (21*(64+80)) = - -5. (32-32) = - -6. (76-34) = - -7. (27/8) = - -8. (51*47) = - -9. 9 = - -10. 82 = - diff --git a/src/张三1/2025-09-24-08-36-54.txt b/src/张三1/2025-09-24-08-36-54.txt deleted file mode 100644 index 07b6774..0000000 --- a/src/张三1/2025-09-24-08-36-54.txt +++ /dev/null @@ -1,42 +0,0 @@ -1. (45-((1*75)*36)) = - -2. 4 = - -3. (((33+(69*44))-56)-76) = - -4. 66 = - -5. 27 = - -6. 84 = - -7. (6/77) = - -8. 1 = - -9. (79+27) = - -10. (68+(92*(20*(55/1)))) = - -11. 8 = - -12. (67+(((49/50)/87)/23)) = - -13. (18*((51-31)*48)) = - -14. ((19*42)*29) = - -15. 37 = - -16. 63 = - -17. (69*47) = - -18. (((24/(40*17))*31)/93) = - -19. 20 = - -20. 3 = - -21. 95 = - diff --git a/src/张三1/2025-09-24-20-12-52.txt b/src/张三1/2025-09-24-20-12-52.txt deleted file mode 100644 index 023bc0e..0000000 --- a/src/张三1/2025-09-24-20-12-52.txt +++ /dev/null @@ -1,30 +0,0 @@ -1. 35 = - -2. 91 = - -3. 68 = - -4. 2 = - -5. 74 = - -6. 80 = - -7. (8/15) = - -8. 93 = - -9. (68/70) = - -10. 8 = - -11. (61-49) = - -12. (2-16) = - -13. (64-76) = - -14. 5 = - -15. 94 = - diff --git a/src/张三1/2025-09-24-20-22-13.txt b/src/张三1/2025-09-24-20-22-13.txt deleted file mode 100644 index 6394ae8..0000000 --- a/src/张三1/2025-09-24-20-22-13.txt +++ /dev/null @@ -1,60 +0,0 @@ -1. (100/((72/91)+(33*87))) = - -2. 84 = - -3. 72 = - -4. 34 = - -5. (70+55) = - -6. (35/14) = - -7. (((26/34)-77)/26) = - -8. 81 = - -9. (55+30) = - -10. (38*(((40*17)-44)-54)) = - -11. (90/39) = - -12. 15 = - -13. (28+22) = - -14. 3 = - -15. 33 = - -16. 46 = - -17. 68 = - -18. 38 = - -19. 48 = - -20. (36*53) = - -21. ((12-((34+98)-49))*13) = - -22. (6/(90*(42*(72/50)))) = - -23. (52+87) = - -24. 98 = - -25. 90 = - -26. ((86+43)-18) = - -27. 64 = - -28. 22 = - -29. 89 = - -30. 91 = - diff --git a/src/张三1/2025-09-24-20-22-19.txt b/src/张三1/2025-09-24-20-22-19.txt deleted file mode 100644 index c3c6ae7..0000000 --- a/src/张三1/2025-09-24-20-22-19.txt +++ /dev/null @@ -1,60 +0,0 @@ -1. 8 = - -2. ((76+92)/52) = - -3. 6 = - -4. 31 = - -5. (72+60) = - -6. 54 = - -7. ((58-93)*(66+34)) = - -8. 4 = - -9. 28 = - -10. 43 = - -11. 83 = - -12. ((11+(49/(89*57)))+7) = - -13. 75 = - -14. 77 = - -15. 9 = - -16. (28*89) = - -17. 74 = - -18. 60 = - -19. 56 = - -20. 47 = - -21. (22+(99-58)) = - -22. (28*30) = - -23. 67 = - -24. 14 = - -25. (10/(63*12)) = - -26. ((84*17)/31) = - -27. 70 = - -28. 93 = - -29. ((86-82)*(17/90)) = - -30. 27 = - diff --git a/src/张三1/2025-09-24-20-22-21.txt b/src/张三1/2025-09-24-20-22-21.txt deleted file mode 100644 index 68c3fd3..0000000 --- a/src/张三1/2025-09-24-20-22-21.txt +++ /dev/null @@ -1,60 +0,0 @@ -1. (8*37) = - -2. ((30/65)*85) = - -3. 59 = - -4. 79 = - -5. 40 = - -6. 45 = - -7. (91*11) = - -8. 65 = - -9. (12-(5/((80/23)/9))) = - -10. (28*(9+3)) = - -11. ((((73-99)/84)-45)+40) = - -12. 44 = - -13. 36 = - -14. ((48-(20-(39-74)))-22) = - -15. 24 = - -16. (54/32) = - -17. (61*(((62-96)+70)-21)) = - -18. 5 = - -19. (81*55) = - -20. ((9/(78*78))-44) = - -21. 78 = - -22. ((52+71)-66) = - -23. ((74*(64/(92-85)))-55) = - -24. 80 = - -25. (((92/(71*15))/92)/46) = - -26. 96 = - -27. ((65/66)*79) = - -28. (78-((68*(71+54))+19)) = - -29. 1 = - -30. (2-(27-(56/19))) = - diff --git a/src/张三1/2025-09-24-20-22-22.txt b/src/张三1/2025-09-24-20-22-22.txt deleted file mode 100644 index 2cdde78..0000000 --- a/src/张三1/2025-09-24-20-22-22.txt +++ /dev/null @@ -1,60 +0,0 @@ -1. 61 = - -2. 76 = - -3. 94 = - -4. (4-(((45/3)-70)*44)) = - -5. 35 = - -6. ((57-((44/68)*50))/11) = - -7. ((2+19)/(23/84)) = - -8. (((42+(30*27))*56)-10) = - -9. ((39*18)*(100+5)) = - -10. 12 = - -11. 58 = - -12. ((((64-28)/9)-20)+5) = - -13. ((38+((68+18)/71))*76) = - -14. (90*7) = - -15. 100 = - -16. ((15/(83+(29-77)))+90) = - -17. ((((57*7)-1)-8)/97) = - -18. 52 = - -19. (73-16) = - -20. (61+68) = - -21. ((83/29)/80) = - -22. 71 = - -23. ((67*58)*42) = - -24. 19 = - -25. 55 = - -26. (13/(53+(71*(82+2)))) = - -27. (11/((14-(13+66))/67)) = - -28. 69 = - -29. (62-61) = - -30. 51 = - diff --git a/src/张三1/2025-09-24-20-22-57.txt b/src/张三1/2025-09-24-20-22-57.txt deleted file mode 100644 index e5ad58c..0000000 --- a/src/张三1/2025-09-24-20-22-57.txt +++ /dev/null @@ -1,60 +0,0 @@ -1. 11 = - -2. ((((78/6)+4)*26)/81) = - -3. 26 = - -4. (19+(42/91)) = - -5. (7+58) = - -6. ((53+14)/26) = - -7. 17 = - -8. (56-(((81+82)+47)-52)) = - -9. (69-(36*(2-71))) = - -10. (95/(3/((98/43)-93))) = - -11. (39-84) = - -12. ((40+72)+(7*36)) = - -13. (90-70) = - -14. 23 = - -15. (31*38) = - -16. 92 = - -17. 73 = - -18. (61-((52/(96+31))+24)) = - -19. ((30/(35/85))*29) = - -20. 95 = - -21. ((49*28)+51) = - -22. 30 = - -23. ((71*70)*11) = - -24. 63 = - -25. (((93+(87*79))+50)/14) = - -26. (30/(40*14)) = - -27. 37 = - -28. 97 = - -29. 87 = - -30. (33*77) = - diff --git a/src/张三1/2025-09-24-20-22-59.txt b/src/张三1/2025-09-24-20-22-59.txt deleted file mode 100644 index f9788de..0000000 --- a/src/张三1/2025-09-24-20-22-59.txt +++ /dev/null @@ -1,60 +0,0 @@ -1. 41 = - -2. 99 = - -3. (70+(64*20)) = - -4. (63+97) = - -5. ((20-(29-(53/24)))/58) = - -6. (19-75) = - -7. 53 = - -8. ((70+53)+54) = - -9. 7 = - -10. (61/(87+((6-34)-69))) = - -11. (88-((27+(32+51))-83)) = - -12. (88-45) = - -13. (75+(81+51)) = - -14. (95*8) = - -15. (18*((49+(28+81))/100)) = - -16. (14+28) = - -17. ((43*(30-(26*47)))*84) = - -18. (87-95) = - -19. 42 = - -20. 29 = - -21. (25+(27+(27*71))) = - -22. 20 = - -23. (50/99) = - -24. 62 = - -25. 18 = - -26. ((61*(94/(65/16)))*48) = - -27. (100+28) = - -28. (13/8) = - -29. 57 = - -30. (((42-(93/8))+8)-27) = - diff --git a/src/张三1/2025-09-24-20-23-00.txt b/src/张三1/2025-09-24-20-23-00.txt deleted file mode 100644 index 7c49281..0000000 --- a/src/张三1/2025-09-24-20-23-00.txt +++ /dev/null @@ -1,60 +0,0 @@ -1. (56+41) = - -2. (29-36) = - -3. (99-((82/(91/13))-77)) = - -4. ((43/((59*32)/70))+14) = - -5. (57+(16*53)) = - -6. ((((90*33)*68)-60)*61) = - -7. (29/(96-(68+66))) = - -8. (37/39) = - -9. (28-24) = - -10. 25 = - -11. (70/44) = - -12. (79-((50+(10*15))-83)) = - -13. (57/45) = - -14. (91/3) = - -15. ((41+16)*65) = - -16. 10 = - -17. ((57-((29+82)*41))-33) = - -18. ((73/(19-(7*17)))+99) = - -19. 82 = - -20. 16 = - -21. ((96+(99+(17-37)))/9) = - -22. (64*(94+((57+25)*20))) = - -23. ((19*94)*38) = - -24. (77*((20-36)+16)) = - -25. ((((6/85)*34)/91)-13) = - -26. ((((8+84)/14)-74)*70) = - -27. (((78+(48-44))-21)*37) = - -28. (68-65) = - -29. ((13-33)*46) = - -30. ((11*76)*92) = - diff --git a/src/.idea/.gitignore b/个人项目/.idea/.gitignore similarity index 94% rename from src/.idea/.gitignore rename to 个人项目/.idea/.gitignore index 50d9d22..359bb53 100644 --- a/src/.idea/.gitignore +++ b/个人项目/.idea/.gitignore @@ -1,3 +1,3 @@ -# 默认忽略的文件 -/shelf/ -/workspace.xml +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/个人项目/.idea/.name b/个人项目/.idea/.name new file mode 100644 index 0000000..71d8bb9 --- /dev/null +++ b/个人项目/.idea/.name @@ -0,0 +1 @@ +AbstractQuestionGenerator.java \ No newline at end of file diff --git a/src/out/production/src/.idea/checkstyle-idea.xml b/个人项目/.idea/checkstyle-idea.xml similarity index 81% rename from src/out/production/src/.idea/checkstyle-idea.xml rename to 个人项目/.idea/checkstyle-idea.xml index c4b2624..93d2549 100644 --- a/src/out/production/src/.idea/checkstyle-idea.xml +++ b/个人项目/.idea/checkstyle-idea.xml @@ -1,16 +1,19 @@ - - - - 11.0.1 - JavaOnly - true - - + + + + 11.0.1 + JavaOnly + true + true + + + \ No newline at end of file diff --git a/个人项目/.idea/codeStyles/codeStyleConfig.xml b/个人项目/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..b9d18bf --- /dev/null +++ b/个人项目/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/out/production/src/.idea/misc.xml b/个人项目/.idea/misc.xml similarity index 65% rename from src/out/production/src/.idea/misc.xml rename to 个人项目/.idea/misc.xml index 84abf01..13c4cae 100644 --- a/src/out/production/src/.idea/misc.xml +++ b/个人项目/.idea/misc.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/src/.idea/modules.xml b/个人项目/.idea/modules.xml similarity index 93% rename from src/.idea/modules.xml rename to 个人项目/.idea/modules.xml index 7210df4..f669a0e 100644 --- a/src/.idea/modules.xml +++ b/个人项目/.idea/modules.xml @@ -1,8 +1,8 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/.idea/src.iml b/个人项目/.idea/src.iml similarity index 75% rename from src/.idea/src.iml rename to 个人项目/.idea/src.iml index 1de981c..97a00f8 100644 --- a/src/.idea/src.iml +++ b/个人项目/.idea/src.iml @@ -1,11 +1,14 @@ - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/src/.idea/vcs.xml b/个人项目/.idea/vcs.xml similarity index 92% rename from src/.idea/vcs.xml rename to 个人项目/.idea/vcs.xml index 2e3f692..6c0b863 100644 --- a/src/.idea/vcs.xml +++ b/个人项目/.idea/vcs.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/个人项目/doc/个人修改代码.docx b/个人项目/doc/个人修改代码.docx new file mode 100644 index 0000000..91e95b4 Binary files /dev/null and b/个人项目/doc/个人修改代码.docx differ diff --git a/src/out/production/src/.idea/.gitignore b/个人项目/out/production/src/.idea/.gitignore similarity index 94% rename from src/out/production/src/.idea/.gitignore rename to 个人项目/out/production/src/.idea/.gitignore index 50d9d22..359bb53 100644 --- a/src/out/production/src/.idea/.gitignore +++ b/个人项目/out/production/src/.idea/.gitignore @@ -1,3 +1,3 @@ -# 默认忽略的文件 -/shelf/ -/workspace.xml +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/个人项目/out/production/src/.idea/.name b/个人项目/out/production/src/.idea/.name new file mode 100644 index 0000000..71d8bb9 --- /dev/null +++ b/个人项目/out/production/src/.idea/.name @@ -0,0 +1 @@ +AbstractQuestionGenerator.java \ No newline at end of file diff --git a/src/.idea/checkstyle-idea.xml b/个人项目/out/production/src/.idea/checkstyle-idea.xml similarity index 81% rename from src/.idea/checkstyle-idea.xml rename to 个人项目/out/production/src/.idea/checkstyle-idea.xml index c4b2624..93d2549 100644 --- a/src/.idea/checkstyle-idea.xml +++ b/个人项目/out/production/src/.idea/checkstyle-idea.xml @@ -1,16 +1,19 @@ - - - - 11.0.1 - JavaOnly - true - - + + + + 11.0.1 + JavaOnly + true + true + + + \ No newline at end of file diff --git a/个人项目/out/production/src/.idea/codeStyles/codeStyleConfig.xml b/个人项目/out/production/src/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..b9d18bf --- /dev/null +++ b/个人项目/out/production/src/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/.idea/misc.xml b/个人项目/out/production/src/.idea/misc.xml similarity index 65% rename from src/.idea/misc.xml rename to 个人项目/out/production/src/.idea/misc.xml index 84abf01..13c4cae 100644 --- a/src/.idea/misc.xml +++ b/个人项目/out/production/src/.idea/misc.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/src/out/production/src/.idea/modules.xml b/个人项目/out/production/src/.idea/modules.xml similarity index 93% rename from src/out/production/src/.idea/modules.xml rename to 个人项目/out/production/src/.idea/modules.xml index 7210df4..f669a0e 100644 --- a/src/out/production/src/.idea/modules.xml +++ b/个人项目/out/production/src/.idea/modules.xml @@ -1,8 +1,8 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/out/production/src/.idea/src.iml b/个人项目/out/production/src/.idea/src.iml similarity index 75% rename from src/out/production/src/.idea/src.iml rename to 个人项目/out/production/src/.idea/src.iml index 1de981c..97a00f8 100644 --- a/src/out/production/src/.idea/src.iml +++ b/个人项目/out/production/src/.idea/src.iml @@ -1,11 +1,14 @@ - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/个人项目/out/production/src/.idea/vcs.xml b/个人项目/out/production/src/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/个人项目/out/production/src/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/个人项目/out/production/src/doc/个人修改代码.docx b/个人项目/out/production/src/doc/个人修改代码.docx new file mode 100644 index 0000000..91e95b4 Binary files /dev/null and b/个人项目/out/production/src/doc/个人修改代码.docx differ diff --git a/个人项目/out/production/src/src/.idea/workspace.xml b/个人项目/out/production/src/src/.idea/workspace.xml new file mode 100644 index 0000000..6d59146 --- /dev/null +++ b/个人项目/out/production/src/src/.idea/workspace.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1758972717869 + + + + \ No newline at end of file diff --git a/个人项目/out/production/src/src/auth/Authenticator.class b/个人项目/out/production/src/src/auth/Authenticator.class new file mode 100644 index 0000000..fccb73e Binary files /dev/null and b/个人项目/out/production/src/src/auth/Authenticator.class differ diff --git a/个人项目/out/production/src/src/history/HistoryManager.class b/个人项目/out/production/src/src/history/HistoryManager.class new file mode 100644 index 0000000..0809640 Binary files /dev/null and b/个人项目/out/production/src/src/history/HistoryManager.class differ diff --git a/个人项目/out/production/src/src/model/Level.class b/个人项目/out/production/src/src/model/Level.class new file mode 100644 index 0000000..95800f9 Binary files /dev/null and b/个人项目/out/production/src/src/model/Level.class differ diff --git a/个人项目/out/production/src/src/model/User.class b/个人项目/out/production/src/src/model/User.class new file mode 100644 index 0000000..f89fdb7 Binary files /dev/null and b/个人项目/out/production/src/src/model/User.class differ diff --git a/个人项目/out/production/src/src/question/AbstractQuestionGenerator.class b/个人项目/out/production/src/src/question/AbstractQuestionGenerator.class new file mode 100644 index 0000000..2888be9 Binary files /dev/null and b/个人项目/out/production/src/src/question/AbstractQuestionGenerator.class differ diff --git a/个人项目/out/production/src/src/question/ElementaryGenerator.class b/个人项目/out/production/src/src/question/ElementaryGenerator.class new file mode 100644 index 0000000..f450ce3 Binary files /dev/null and b/个人项目/out/production/src/src/question/ElementaryGenerator.class differ diff --git a/个人项目/out/production/src/src/question/JuniorGenerator.class b/个人项目/out/production/src/src/question/JuniorGenerator.class new file mode 100644 index 0000000..9b00f5e Binary files /dev/null and b/个人项目/out/production/src/src/question/JuniorGenerator.class differ diff --git a/个人项目/out/production/src/src/question/SeniorGenerator.class b/个人项目/out/production/src/src/question/SeniorGenerator.class new file mode 100644 index 0000000..3e09f30 Binary files /dev/null and b/个人项目/out/production/src/src/question/SeniorGenerator.class differ diff --git a/个人项目/out/production/src/src/start/Main.class b/个人项目/out/production/src/src/start/Main.class new file mode 100644 index 0000000..4c8a635 Binary files /dev/null and b/个人项目/out/production/src/src/start/Main.class differ diff --git a/个人项目/out/production/src/src/util/Auth.class b/个人项目/out/production/src/src/util/Auth.class new file mode 100644 index 0000000..8cf1518 Binary files /dev/null and b/个人项目/out/production/src/src/util/Auth.class differ diff --git a/个人项目/out/production/src/src/util/Question$1.class b/个人项目/out/production/src/src/util/Question$1.class new file mode 100644 index 0000000..4d2cba5 Binary files /dev/null and b/个人项目/out/production/src/src/util/Question$1.class differ diff --git a/个人项目/out/production/src/src/util/Question.class b/个人项目/out/production/src/src/util/Question.class new file mode 100644 index 0000000..9dcae3e Binary files /dev/null and b/个人项目/out/production/src/src/util/Question.class differ diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-01-58.txt b/个人项目/out/production/src/张三1/2025-09-27-19-01-58.txt new file mode 100644 index 0000000..7499eb1 --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-01-58.txt @@ -0,0 +1,40 @@ +1. (sqrt(sqrt(27 * 26)))^2 = + +2. (65 * ((58 * 28)^2 * 27)) = + +3. (((28)^2)^2 - (31)^2) = + +4. sqrt(sqrt(sqrt(28 * 97))) = + +5. sqrt(2) = + +6. sqrt(((68)^2)^2) = + +7. ((81)^2 / 29) = + +8. (21 - 69)^2 = + +9. (65 + (sqrt(58) * (sqrt(10) * 32))) = + +10. ((63 - 71)^2 * 4)^2 = + +11. sqrt(55 - 74) = + +12. (sqrt(sqrt(39)) + 84) = + +13. sqrt((85)^2 + 88) = + +14. ((sqrt(sqrt(37)))^2)^2 = + +15. (39)^2 = + +16. ((sqrt(82) - sqrt(35)) / (62 + 85)) = + +17. (sqrt(10) * 96) = + +18. sqrt((57)^2) = + +19. (((76 + 94)^2)^2)^2 = + +20. sqrt(91) = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-02-43.txt b/个人项目/out/production/src/张三1/2025-09-27-19-02-43.txt new file mode 100644 index 0000000..374245b --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-02-43.txt @@ -0,0 +1,60 @@ +1. (sin(9) * (2 * cos(3 * 29))) = + +2. (46 - sin(13)) = + +3. (cos(26 - sin(39)) / tan(47)) = + +4. (((56 / (79 * 71)) * 44) * sin(56)) = + +5. cos(tan(82 - 9) + ((27 - 84) + tan(6))) = + +6. tan(tan((80 / 80) - (25 - 58))) = + +7. cos(tan(sin(99 + 36))) = + +8. sin(tan(48)) = + +9. sin(sin(68)) = + +10. cos(63) = + +11. tan(34) = + +12. (79 * (12 + cos(sin(66)))) = + +13. tan(cos(55 - 43) * cos(18)) = + +14. sin(23) = + +15. cos(43) = + +16. (cos(cos(45)) / 20) = + +17. (tan(72) * tan(91)) = + +18. cos(sin(tan(tan(17)))) = + +19. (((sin(5) * tan(27)) * tan(tan(84))) - 48) = + +20. (sin(56) * 7) = + +21. (cos(cos(11 / 77)) * (sin(cos(37)) + tan(sin(8)))) = + +22. tan(49) = + +23. (cos(cos(31)) / (67 / sin(73 / 82))) = + +24. (57 / ((53 - (44 / 32)) * tan(cos(56)))) = + +25. sin(4) = + +26. sin(cos(38)) = + +27. sin(39) = + +28. tan(cos(sin(53))) = + +29. tan(87) = + +30. sin(86 * sin(27)) = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-03-08.txt b/个人项目/out/production/src/张三1/2025-09-27-19-03-08.txt new file mode 100644 index 0000000..a619089 --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-03-08.txt @@ -0,0 +1,60 @@ +1. (88 / 49) = + +2. ((70 - 95) - (25 + 91)) = + +3. (69 * 98) = + +4. (95 - (73 - (13 + (42 / 59)))) = + +5. (((73 - 71) / 59) - 65) = + +6. ((77 + 41) * 57) = + +7. (64 / (12 - (55 * (14 / 94)))) = + +8. (((21 / 80) + 78) / 23) = + +9. (5 - 10) = + +10. (92 / (64 / 86)) = + +11. ((7 - 31) - 34) = + +12. ((95 * 96) - 23) = + +13. ((32 * 31) / 10) = + +14. (51 + (48 * 9)) = + +15. (86 + (56 + 6)) = + +16. (87 * (51 + ((82 * 79) - 54))) = + +17. (15 - 59) = + +18. (9 * (43 * 47)) = + +19. ((78 + 98) / (85 + 38)) = + +20. (59 + (61 / 44)) = + +21. (7 - (36 / (22 * 22))) = + +22. (62 / 11) = + +23. ((69 * (60 * 65)) - (37 + 83)) = + +24. (59 + 8) = + +25. ((54 / (51 - (39 - 90))) / 13) = + +26. (83 + 94) = + +27. (31 * 93) = + +28. (((52 + 22) + (40 + 50)) / 63) = + +29. ((78 - ((74 / 60) - 41)) / 11) = + +30. (35 / 8) = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-29-03.txt b/个人项目/out/production/src/张三1/2025-09-27-19-29-03.txt new file mode 100644 index 0000000..ebc68af --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-29-03.txt @@ -0,0 +1,60 @@ +1. 56 - 45 = + +2. (65 - 9) * 30 = + +3. (80 / 88) * 61 = + +4. 41 * ((88 / 37) - 81) = + +5. 75 * (55 / (73 * (67 / 23))) = + +6. 63 - ((23 - 29) + 14) = + +7. 27 / (27 + 82) = + +8. 8 / 54 = + +9. 25 - (((41 - 51) - 13) / 91) = + +10. (67 / 53) - (2 - 62) = + +11. 82 + 8 = + +12. 74 / (21 - (77 - (95 + 3))) = + +13. 15 / (24 / 50) = + +14. 71 * (55 / (93 + (5 + 16))) = + +15. 27 * ((93 + (83 * 34)) - 22) = + +16. 85 + 95 = + +17. 72 / 47 = + +18. 74 + 1 = + +19. (10 * 81) - 22 = + +20. 84 / 89 = + +21. 51 * 43 = + +22. 67 / (34 * ((89 - 92) - 28)) = + +23. 8 + (((25 * 7) * 36) * 20) = + +24. 96 / 45 = + +25. 3 + (23 / 10) = + +26. (26 - (60 / 76)) / 92 = + +27. 37 * (61 - (42 * 2)) = + +28. 4 * 67 = + +29. 14 - 53 = + +30. 83 * (86 * 79) = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-29-06.txt b/个人项目/out/production/src/张三1/2025-09-27-19-29-06.txt new file mode 100644 index 0000000..2ff16b7 --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-29-06.txt @@ -0,0 +1,60 @@ +1. 72 + 22 = + +2. (29 / 23) + 77 = + +3. 22 * 57 = + +4. 36 - 91 = + +5. 38 / (((17 / 10) - 46) * 14) = + +6. 77 * (39 * ((42 + 86) / 64)) = + +7. (80 * (31 - (39 * 49))) - 39 = + +8. 21 / 94 = + +9. 56 + 11 = + +10. ((80 + (15 - 81)) - 65) / 69 = + +11. 37 * 51 = + +12. 35 / 77 = + +13. (57 * 88) * 15 = + +14. ((79 * (97 / 80)) - 99) / 32 = + +15. (71 / (34 - 25)) - 77 = + +16. 40 * ((98 - (2 - 42)) + 15) = + +17. 79 + (22 * (10 * 71)) = + +18. (9 + 53) * 90 = + +19. 50 / 4 = + +20. 28 * (28 * 19) = + +21. 57 + 60 = + +22. ((100 * (20 + 23)) - 33) - 7 = + +23. (42 + 92) / 51 = + +24. 20 * ((72 - (19 / 79)) - 76) = + +25. ((51 + (30 * 44)) * 72) * 49 = + +26. 26 + 74 = + +27. (51 / 94) / 48 = + +28. 38 * ((32 * 69) - (70 * 28)) = + +29. 5 * (22 - (21 / 9)) = + +30. 87 * 60 = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-35-42.txt b/个人项目/out/production/src/张三1/2025-09-27-19-35-42.txt new file mode 100644 index 0000000..893dfea --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-35-42.txt @@ -0,0 +1,60 @@ +1. 54 - 92 = + +2. 26 / ((9 / 36) / 88) = + +3. ((23 * (60 * 61)) * 50) + 91 = + +4. (15 / 12) / 48 = + +5. 17 * 45 = + +6. ((71 * 44) + 36) - (95 + 68) = + +7. (64 * 17) / 23 = + +8. 91 + (((84 * 4) - 48) - 58) = + +9. 3 * (76 + ((51 / 40) - 90)) = + +10. 76 / (((94 * 46) / 70) - 47) = + +11. 69 / ((78 + (96 + 35)) * 17) = + +12. 52 - 29 = + +13. 69 / 87 = + +14. 11 - 20 = + +15. (100 / 59) + 87 = + +16. 22 / (47 + 79) = + +17. 88 / (18 + (65 + 20)) = + +18. 79 / 20 = + +19. 45 - 75 = + +20. 22 + 82 = + +21. 30 - (28 * 36) = + +22. (42 * ((50 - 29) / 66)) * 22 = + +23. (85 + 48) + (6 * (57 / 6)) = + +24. 35 + 77 = + +25. 93 - 98 = + +26. 30 / ((60 - 16) * 24) = + +27. 56 - 32 = + +28. 66 * 82 = + +29. (5 - (51 - (31 * 82))) + 86 = + +30. 68 - 37 = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-35-57.txt b/个人项目/out/production/src/张三1/2025-09-27-19-35-57.txt new file mode 100644 index 0000000..88f5c8e --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-35-57.txt @@ -0,0 +1,60 @@ +1. 79 + 100 = + +2. (29 + (33 + (33 / 70))) + 87 = + +3. 88 / (((31 - 16) - 68) * 23) = + +4. 12 * 8 = + +5. 62 / (35 - 3) = + +6. (((83 - 14) - 62) / 43) - 60 = + +7. (91 * (52 * 50)) + 19 = + +8. 65 - (87 + 19) = + +9. 66 / 51 = + +10. 87 + 21 = + +11. (13 + 10) / 70 = + +12. 59 / 25 = + +13. (43 + 50) / (75 - (94 - 76)) = + +14. 44 + (73 * 43) = + +15. 90 + 66 = + +16. 15 + (54 * 25) = + +17. 71 / (51 + 93) = + +18. 84 / ((35 * 63) + (41 / 88)) = + +19. 88 - (26 / 61) = + +20. 3 / 94 = + +21. 44 - ((59 * 49) / 78) = + +22. 90 / 76 = + +23. 27 / 33 = + +24. 29 - 23 = + +25. (((68 * 95) - 88) / 33) + 2 = + +26. 77 - ((3 + 90) + 97) = + +27. 3 / 45 = + +28. 41 + (82 / ((3 + 40) * 60)) = + +29. 13 + 50 = + +30. (74 - (27 - 7)) / 14 = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-35-58.txt b/个人项目/out/production/src/张三1/2025-09-27-19-35-58.txt new file mode 100644 index 0000000..2c19246 --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-35-58.txt @@ -0,0 +1,60 @@ +1. (63 * 84) / 16 = + +2. ((74 / (100 / 13)) * 94) + 10 = + +3. 86 + 41 = + +4. 43 + (66 / (92 / 46)) = + +5. 56 * (((33 / 23) / 6) + 16) = + +6. 23 - 24 = + +7. 59 + 3 = + +8. 95 / 9 = + +9. 45 - 25 = + +10. (88 / 51) - 63 = + +11. 76 / ((71 + (68 / 14)) + 26) = + +12. 94 * 19 = + +13. (46 + 96) + 92 = + +14. 88 * (78 + 13) = + +15. (21 * 48) - (54 - 3) = + +16. (5 - 88) - 48 = + +17. 93 * (99 * ((78 + 28) / 58)) = + +18. 75 / ((13 - (87 + 47)) + 36) = + +19. (46 / 63) / 46 = + +20. 44 + (70 / 8) = + +21. 77 - (83 - 33) = + +22. 86 * (2 / 52) = + +23. (64 / 42) / (66 / 77) = + +24. 43 + 86 = + +25. 52 / (38 - 33) = + +26. 9 * 35 = + +27. 27 + (((74 - 22) * 23) * 25) = + +28. 85 - 19 = + +29. 2 + (((84 / 77) - 53) + 33) = + +30. 49 * (58 * 31) = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-36-05.txt b/个人项目/out/production/src/张三1/2025-09-27-19-36-05.txt new file mode 100644 index 0000000..9471e27 --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-36-05.txt @@ -0,0 +1,40 @@ +1. 70 + (sin(82) * (tan(45) * tan(92))) = + +2. sin(tan(69 / 44) / 62) = + +3. sin(tan(5 - 36)) = + +4. cos(87 + 21) + 53 = + +5. tan(34) = + +6. sin(tan(12)) = + +7. cos(10) = + +8. sin(57) = + +9. tan(1) = + +10. sin(tan(sin(76))) * (3 + 34) = + +11. sin((tan(94) * 80) * (62 / (10 / 14))) = + +12. 96 - sin(sin(26 - 64)) = + +13. (48 / 97) / cos(17) = + +14. tan(cos((89 + 11) - 57)) = + +15. sin(100) = + +16. cos(tan(63 / sin(91))) = + +17. tan(9) = + +18. cos((48 * 1) / cos(51)) - tan(68) = + +19. 99 * cos(37) = + +20. sin(sin(9) * 69) - (88 * (sin(57) - 95)) = + diff --git a/个人项目/out/production/src/张三1/2025-09-27-19-45-19.txt b/个人项目/out/production/src/张三1/2025-09-27-19-45-19.txt new file mode 100644 index 0000000..b35d86a --- /dev/null +++ b/个人项目/out/production/src/张三1/2025-09-27-19-45-19.txt @@ -0,0 +1,60 @@ +1. (74 - 30) + 1 = + +2. 86 * 73 = + +3. (64 + (80 / (5 * 24))) - 46 = + +4. 7 + 55 = + +5. (20 / 48) + 10 = + +6. 81 / 69 = + +7. 84 + (50 * 79) = + +8. (79 - 56) + 23 = + +9. 97 + 21 = + +10. 86 / 31 = + +11. 4 - 56 = + +12. 37 - 53 = + +13. 56 / 36 = + +14. 83 * (29 / 69) = + +15. 71 / 64 = + +16. 71 - 31 = + +17. 94 - (58 + 36) = + +18. (55 + 100) + (98 - (60 - 88)) = + +19. (27 + 61) * (72 - 19) = + +20. (69 / ((51 / 28) + 70)) - 66 = + +21. 48 - 4 = + +22. (69 + 77) * (31 / 73) = + +23. 22 - (28 - 79) = + +24. 41 - 14 = + +25. (16 / 8) - 36 = + +26. ((23 * 38) - 6) + 74 = + +27. (14 - 34) + 39 = + +28. 21 + 76 = + +29. (82 + (32 + 67)) * 93 = + +30. 61 + 82 = + diff --git a/个人项目/out/production/src/张三2/2025-09-26-11-46-26.txt b/个人项目/out/production/src/张三2/2025-09-26-11-46-26.txt new file mode 100644 index 0000000..24c73ca --- /dev/null +++ b/个人项目/out/production/src/张三2/2025-09-26-11-46-26.txt @@ -0,0 +1,20 @@ +1. 8 = + +2. (78*(77*(34-69))) = + +3. 11 = + +4. ((79+(91+7))+8) = + +5. 85 = + +6. ((78/76)*29) = + +7. 72 = + +8. 77 = + +9. 4 = + +10. 86 = + diff --git a/个人项目/out/production/src/张三2/2025-09-26-11-46-28.txt b/个人项目/out/production/src/张三2/2025-09-26-11-46-28.txt new file mode 100644 index 0000000..994affb --- /dev/null +++ b/个人项目/out/production/src/张三2/2025-09-26-11-46-28.txt @@ -0,0 +1,40 @@ +1. ((((94*51)*80)-70)+87) = + +2. 69 = + +3. (31-(((20-96)-1)+56)) = + +4. (29/(19*(70/(80/45)))) = + +5. 54 = + +6. (94+(((11*5)/30)/94)) = + +7. (95*81) = + +8. 62 = + +9. (78/(77+72)) = + +10. 31 = + +11. 46 = + +12. (22+(92*(45+(61+1)))) = + +13. (17+12) = + +14. (80*((60-(44/37))+31)) = + +15. (90-(56*65)) = + +16. 89 = + +17. (62*(95*32)) = + +18. (40-21) = + +19. 87 = + +20. (10-(98-58)) = + diff --git a/个人项目/out/production/src/张三2/2025-09-26-11-46-39.txt b/个人项目/out/production/src/张三2/2025-09-26-11-46-39.txt new file mode 100644 index 0000000..95e76ed --- /dev/null +++ b/个人项目/out/production/src/张三2/2025-09-26-11-46-39.txt @@ -0,0 +1,40 @@ +1. 85 = + +2. (88/68) = + +3. 42 = + +4. 97 = + +5. 5 = + +6. (48-(((92/15)+76)+78)) = + +7. (33*95) = + +8. 26 = + +9. (6-((49/(21*31))*77)) = + +10. (((53-(62+69))-43)*4) = + +11. 29 = + +12. 35 = + +13. 40 = + +14. 45 = + +15. (9/76) = + +16. ((57-(77/88))+34) = + +17. ((31+(85-82))+(75/67)) = + +18. (85+5) = + +19. 39 = + +20. 95 = + diff --git a/个人项目/out/production/src/张三2/2025-09-26-11-46-45.txt b/个人项目/out/production/src/张三2/2025-09-26-11-46-45.txt new file mode 100644 index 0000000..c5b3a08 --- /dev/null +++ b/个人项目/out/production/src/张三2/2025-09-26-11-46-45.txt @@ -0,0 +1,60 @@ +1. 14 = + +2. ((88/(69*(24+100)))+20) = + +3. (((12/(30/99))/98)+66) = + +4. (11*((47/(76*46))-75)) = + +5. 76 = + +6. 55 = + +7. 34 = + +8. 46 = + +9. 37 = + +10. 49 = + +11. 60 = + +12. 54 = + +13. 9 = + +14. ((85/77)/1) = + +15. 63 = + +16. (6*18) = + +17. (62*(58+29)) = + +18. 72 = + +19. ((16*((42+35)/2))/13) = + +20. 62 = + +21. 73 = + +22. (38+(56-44)) = + +23. ((58-6)+(32*3)) = + +24. ((9*(87/85))/(37+8)) = + +25. (71/((86-2)+62)) = + +26. 65 = + +27. 61 = + +28. 13 = + +29. ((42*75)*(84+82)) = + +30. (16+42) = + diff --git a/个人项目/out/production/src/李四1/2025-09-27-19-29-33.txt b/个人项目/out/production/src/李四1/2025-09-27-19-29-33.txt new file mode 100644 index 0000000..c6cda77 --- /dev/null +++ b/个人项目/out/production/src/李四1/2025-09-27-19-29-33.txt @@ -0,0 +1,60 @@ +1. sqrt((sqrt(70))^2) + (94 / 4)^2 = + +2. (71 * (sqrt(5))^2) - (14)^2 = + +3. (4)^2 * 87 = + +4. sqrt(66) = + +5. (99)^2 - 51 = + +6. sqrt((24)^2) = + +7. 90 - (74)^2 = + +8. sqrt(73) = + +9. ((sqrt(39))^2)^2 - 79 = + +10. (14 - (37)^2) * (12)^2 = + +11. (((89)^2)^2 * 45) + 89 = + +12. (49)^2 = + +13. ((47)^2)^2 = + +14. ((7)^2 + 32) / sqrt(8) = + +15. sqrt((88 + 48)^2) = + +16. (sqrt(69) + 4)^2 / sqrt(100) = + +17. (50)^2 = + +18. (57)^2 = + +19. (61 / (sqrt(78))^2)^2 = + +20. (78)^2 = + +21. sqrt(75) = + +22. sqrt(((92)^2 - (87 / 39))^2) = + +23. sqrt(6) = + +24. ((30)^2 - 61) / 2 = + +25. (sqrt(94 - sqrt(71)))^2 = + +26. sqrt(57) = + +27. (74)^2 = + +28. 56 + ((6)^2 / 55) = + +29. sqrt(sqrt(((79)^2)^2)) = + +30. sqrt((6)^2) = + diff --git a/个人项目/out/production/src/李四3/2025-09-27-19-29-45.txt b/个人项目/out/production/src/李四3/2025-09-27-19-29-45.txt new file mode 100644 index 0000000..31dfbda --- /dev/null +++ b/个人项目/out/production/src/李四3/2025-09-27-19-29-45.txt @@ -0,0 +1,60 @@ +1. (sqrt((11 + 76)^2))^2 = + +2. (64 + 54) - sqrt(sqrt(61)) = + +3. ((sqrt(9))^2)^2 / 26 = + +4. ((95 * 48) / 50)^2 = + +5. sqrt(74) = + +6. sqrt((sqrt(26) + 52) * (95 + 100)^2) = + +7. sqrt(sqrt(3) + 58) = + +8. sqrt(((21 * 21) * (52 / 38)) + 9) = + +9. sqrt((29)^2) = + +10. (sqrt(100))^2 = + +11. sqrt((46)^2 / 60) = + +12. sqrt(98) + (((2)^2 + 38) + 63) = + +13. sqrt(sqrt(64)) = + +14. 92 + (69)^2 = + +15. sqrt(61) = + +16. sqrt(42) = + +17. ((28)^2 / 39)^2 = + +18. sqrt(25) = + +19. (20)^2 - (68)^2 = + +20. (sqrt(86) / 5)^2 / 9 = + +21. (77)^2 - (52)^2 = + +22. sqrt(4 - sqrt(86 / 59)) = + +23. sqrt((sqrt(80) + 60) / (75 - 7)) = + +24. (88)^2 * 80 = + +25. sqrt(25) - sqrt(52) = + +26. (sqrt(73))^2 = + +27. (15)^2 = + +28. sqrt(((76)^2)^2) = + +29. sqrt(sqrt(sqrt(3) / (90)^2)) = + +30. sqrt(8) = + diff --git a/src/王五1/2025-09-24-20-13-46.txt b/个人项目/out/production/src/王五1/2025-09-24-20-13-46.txt similarity index 90% rename from src/王五1/2025-09-24-20-13-46.txt rename to 个人项目/out/production/src/王五1/2025-09-24-20-13-46.txt index 2b3bc3b..1f78b5d 100644 --- a/src/王五1/2025-09-24-20-13-46.txt +++ b/个人项目/out/production/src/王五1/2025-09-24-20-13-46.txt @@ -1,20 +1,20 @@ -1. (96/cos(76)) = - -2. sin(98) = - -3. cos(43) = - -4. tan(86) = - -5. sin(cos((sin(92)/(12+27)))) = - -6. cos(3) = - -7. cos(84) = - -8. tan(79) = - -9. tan(29) = - -10. cos(((98-51)/sin(35))) = - +1. (96/cos(76)) = + +2. sin(98) = + +3. cos(43) = + +4. tan(86) = + +5. sin(cos((sin(92)/(12+27)))) = + +6. cos(3) = + +7. cos(84) = + +8. tan(79) = + +9. tan(29) = + +10. cos(((98-51)/sin(35))) = + diff --git a/个人项目/src/auth/Authenticator.java b/个人项目/src/auth/Authenticator.java new file mode 100644 index 0000000..96710e2 --- /dev/null +++ b/个人项目/src/auth/Authenticator.java @@ -0,0 +1,60 @@ +package src.auth; + +import java.util.HashMap; +import java.util.Map; +import java.util.Scanner; +import src.model.Level; +import src.model.User; + +/** + * 用户认证和权限管理类. + * 负责用户登录验证和题目难度切换功能. + */ +public class Authenticator { + + private final Map users = new HashMap<>(); + + /** + * 构造函数,初始化用户数据. + * 预置了不同难度级别的测试用户账户. + */ + public Authenticator() { + users.put("张三1", new User("张三1", "123", Level.ELEMENTARY)); + users.put("张三2", new User("张三2", "123", Level.ELEMENTARY)); + users.put("张三3", new User("张三3", "123", Level.ELEMENTARY)); + users.put("李四1", new User("李四1", "123", Level.JUNIOR)); + users.put("李四2", new User("李四2", "123", Level.JUNIOR)); + users.put("李四3", new User("李四3", "123", Level.JUNIOR)); + users.put("王五1", new User("王五1", "123", Level.SENIOR)); + users.put("王五2", new User("王五2", "123", Level.SENIOR)); + users.put("王五3", new User("王五3", "123", Level.SENIOR)); + } + + /** + * 用户登录验证. + * 通过控制台输入获取用户名和密码进行验证. + * + * @return 登录成功的用户对象,登录失败返回null + */ + public User login() { + Scanner scanner = new Scanner(System.in); + System.out.print("请输入用户名和密码(空格隔开):"); + String inputLine = scanner.nextLine().trim(); + String[] input = inputLine.split("\\s+"); + + if (input.length != 2) { + System.out.println("请输入正确的用户名、密码"); + return null; + } + + User user = users.get(input[0]); + if (user != null && user.getPassword().equals(input[1])) { + return user; + } + + System.out.println("请输入正确的用户名、密码"); + return null; + } +} + + diff --git a/个人项目/src/history/HistoryManager.java b/个人项目/src/history/HistoryManager.java new file mode 100644 index 0000000..19a361e --- /dev/null +++ b/个人项目/src/history/HistoryManager.java @@ -0,0 +1,140 @@ +package src.history; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.PrintWriter; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import src.model.User; +import src.question.AbstractQuestionGenerator; +import src.util.Question; + +/** + * 历史记录管理器. + * 负责管理用户的题目历史记录,包括去重检查和文件保存功能. + */ +public class HistoryManager { + + private final Set existingQuestions = new HashSet<>(); + + /** + * 构造函数. + * 初始化历史记录管理器,读取用户已有的题目文件. + * + * @param username 用户名 + */ + public HistoryManager(String username) { + File folder = new File(username); + if (!folder.exists() && !folder.mkdir()) { + System.err.println("无法创建文件夹: " + username); + } + File[] files = folder.listFiles(); + if (files != null) { + for (File file : files) { + if (file.isFile() && file.getName().endsWith(".txt")) { + try (BufferedReader reader = new BufferedReader(new FileReader(file))) { + String line; + while ((line = reader.readLine()) != null) { + line = line.trim(); + if (line.matches("^\\d+\\..*")) { + int dotIndex = line.indexOf('.'); + String question = line.substring(dotIndex + 1).trim(); + if (question.endsWith("=")) { + question = question.substring(0, question.length() - 1).trim(); + } + existingQuestions.add(question); + } + } + } catch (IOException e) { + System.err.println("读取文件出错: " + file.getName()); + } + } + } + } + } + + /** + * 检查题目是否重复. + * + * @param question 要检查的题目 + * @return 如果题目已存在返回true,否则返回false + */ + public boolean isDuplicate(String question) { + return existingQuestions.contains(question); + } + + /** + * 添加题目到历史记录. + * + * @param question 要添加的题目 + */ + public void add(String question) { + existingQuestions.add(question); + } + + /** + * 生成不重复的历史题目列表. + * + * @param numQuestions 需要生成的题目数量 + * @param generator 题目生成器 + * @return 生成的题目列表 + */ + public List getQuestion(Integer numQuestions, + AbstractQuestionGenerator generator) { + List questions = new ArrayList<>(); + boolean failed = false; + for (int i = 0; i < numQuestions; i++) { + String question; + int attempts = 0; + final int maxAttempts = 100; + do { + question = Question.generateQuestion(generator); + attempts++; + if (attempts > maxAttempts) { + System.out.println("无法生成足够独特的题目"); + failed = true; + break; + } + } while (isDuplicate(question)); + + if (failed) { + break; + } + questions.add(question); + add(question); + } + return questions; + } + + /** + * 保存题目列表到文件. + * + * @param questions 题目列表 + * @param user 用户对象 + */ + public void saveFile(List questions, User user) { + if (questions.isEmpty()) { + return; + } + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); + String filename = sdf.format(now) + ".txt"; + File folder = new File(user.getUsername()); + File file = new File(folder, filename); + + try (PrintWriter writer = new PrintWriter(file)) { + for (int i = 0; i < questions.size(); i++) { + writer.println((i + 1) + ". " + questions.get(i)); + writer.println(); + } + } catch (IOException e) { + System.err.println("保存文件出错: " + e.getMessage()); + } + } +} diff --git a/个人项目/src/model/Level.java b/个人项目/src/model/Level.java new file mode 100644 index 0000000..8de5d7b --- /dev/null +++ b/个人项目/src/model/Level.java @@ -0,0 +1,47 @@ +package src.model; + +/** + * 题目难度级别枚举. + * 定义了小学、初中、高中三个难度级别. + */ +public enum Level { + + /** + * 小学难度级别. + */ + ELEMENTARY("小学"), + + /** + * 初中难度级别. + */ + JUNIOR("初中"), + + /** + * 高中难度级别. + */ + SENIOR("高中"); + + /** + * 难度级别的中文名称. + */ + private final String name; + + /** + * 枚举构造函数. + * + * @param name 难度级别的中文名称 + */ + Level(String name) { + this.name = name; + } + + /** + * 获取难度级别的中文名称. + * + * @return 难度级别的中文名称 + */ + public String getName() { + return name; + } +} + diff --git a/个人项目/src/model/User.java b/个人项目/src/model/User.java new file mode 100644 index 0000000..f56c518 --- /dev/null +++ b/个人项目/src/model/User.java @@ -0,0 +1,39 @@ +package src.model; + +/** + * 用户信息类. + * 封装用户的基本信息,包括用户名、密码和初始难度级别. + */ + +public class User { + + private final String username; + private final String password; + private final Level initialLevel; + + /** + * 构造函数. + * + * @param username 用户名 + * @param password 密码 + * @param initialLevel 初始难度级别 + */ + + public User(String username, String password, Level initialLevel) { + this.username = username; + this.password = password; + this.initialLevel = initialLevel; + } + + public String getPassword() { + return password; + } + + public String getUsername() { + return username; + } + + public Level getInitialLevel() { + return initialLevel; + } +} diff --git a/个人项目/src/question/AbstractQuestionGenerator.java b/个人项目/src/question/AbstractQuestionGenerator.java new file mode 100644 index 0000000..8ddffda --- /dev/null +++ b/个人项目/src/question/AbstractQuestionGenerator.java @@ -0,0 +1,57 @@ +package src.question; + +import java.util.Random; +import src.model.Level; + +/** + * 抽象类题目生成器类. + * 生成对应难度的题目. + */ +public abstract class AbstractQuestionGenerator { + + protected final Random random = new Random(); + protected final Level level; + + /** + * 构造函数. + * + * @param level 题目难度级别 + */ + public AbstractQuestionGenerator(Level level) { + this.level = level; + } + + /** + * 生成随机数字. + * + * @return 1-100之间的随机整数 + */ + protected int getRandomNumber() { + return random.nextInt(100) + 1; + } + + /** + * 获取随机二元运算符. + * + * @return 随机选择的运算符(+、-、*、/) + */ + protected String getRandomBinaryOp() { + String[] ops = {"+", "-", "*", "/"}; + return ops[random.nextInt(ops.length)]; + } + + /** + * 生成表达式. + * + * @return 生成的数学表达式字符串 + */ + public abstract String generateExpression(); + + /** + * 检查表达式是否符合当前难度级别的要求. + * + * @param expression 要检查的表达式 + * @return 如果表达式符合级别要求返回true,否则返回false + */ + public abstract boolean isValidForLevel(String expression); +} diff --git a/个人项目/src/question/ElementaryGenerator.java b/个人项目/src/question/ElementaryGenerator.java new file mode 100644 index 0000000..c74dc90 --- /dev/null +++ b/个人项目/src/question/ElementaryGenerator.java @@ -0,0 +1,58 @@ +package src.question; + +import src.model.Level; + +/** + * 小学级别题目生成器. + * 生成适合小学难度的数学表达式,包含基本四则运算. + */ +public class ElementaryGenerator extends AbstractQuestionGenerator { + + /** + * 构造函数. + * 初始化小学难度级别的题目生成器. + */ + public ElementaryGenerator() { + super(Level.ELEMENTARY); + } + + /** + * 生成小学难度的数学表达式. + * 使用递归方式生成包含括号的四则运算表达式. + * + * @return 生成的数学表达式字符串 + */ + @Override + public String generateExpression() { + return generateSub(4); + } + + /** + * 递归生成子表达式. + * 根据深度参数控制表达式复杂度,随机生成数字或二元运算. + * + * @param depth 当前递归深度 + * @return 生成的子表达式字符串 + */ + private String generateSub(int depth) { + if ((depth == 0 || random.nextDouble() < 0.4) && depth != 4) { + return String.valueOf(getRandomNumber()); + } + String left = generateSub(depth - 1); + String op = getRandomBinaryOp(); + String right = generateSub(depth - 1); + return "(" + left + " " + op + " " + right + ")"; + } + + /** + * 验证表达式是否符合小学难度要求. + * 小学级别对表达式没有特殊限制,始终返回true. + * + * @param expression 要验证的表达式 + * @return 总是返回true,表示表达式有效 + */ + @Override + public boolean isValidForLevel(String expression) { + return true; + } +} diff --git a/个人项目/src/question/JuniorGenerator.java b/个人项目/src/question/JuniorGenerator.java new file mode 100644 index 0000000..0cb29ac --- /dev/null +++ b/个人项目/src/question/JuniorGenerator.java @@ -0,0 +1,99 @@ +package src.question; + +import src.model.Level; + +/** + * 初中级别题目生成器. + * 生成适合初中难度的数学表达式,包含四则运算、平方根和平方运算. + */ +public class JuniorGenerator extends AbstractQuestionGenerator { + + /** + * 平方根生成概率阈值. + */ + private static final double SQRT_PROBABILITY = 0.75; + + /** + * 平方运算生成概率阈值. + */ + private static final double SQUARE_PROBABILITY = 0.5; + + /** + * 叶子节点生成概率. + */ + private static final double LEAF_PROBABILITY = 0.4; + + /** + * 最大递归深度. + */ + private static final int MAX_DEPTH = 4; + + /** + * 构造函数. + * 初始化初中难度级别的题目生成器. + */ + public JuniorGenerator() { + super(Level.JUNIOR); + } + + /** + * 生成初中难度的数学表达式. + * 使用递归方式生成包含平方根和平方运算的表达式. + * + * @return 生成的数学表达式字符串 + */ + @Override + public String generateExpression() { + return generateSub(MAX_DEPTH); + } + + /** + * 递归生成子表达式. + * 根据深度参数和随机概率生成数字、二元运算、平方根或平方运算. + * + * @param depth 当前递归深度 + * @return 生成的子表达式字符串 + */ + private String generateSub(int depth) { + if (depth == 0 || random.nextDouble() < LEAF_PROBABILITY) { + return String.valueOf(getRandomNumber()); + } + + double randomValue = random.nextDouble(); + if (randomValue < SQUARE_PROBABILITY) { + // 生成二元运算 + String left = generateSub(depth - 1); + String op = getRandomBinaryOp(); + String right = generateSub(depth - 1); + return "(" + left + " " + op + " " + right + ")"; + } else if (randomValue < SQRT_PROBABILITY) { + // 生成平方根运算 + String sub = generateSub(depth - 1); + if (sub.charAt(0) == '(' && sub.charAt(sub.length() - 1) == ')') { + return "sqrt" + sub; + } else { + return "sqrt(" + sub + ")"; + } + } else { + // 生成平方运算 + String sub = generateSub(depth - 1); + if (sub.charAt(0) == '(' && sub.charAt(sub.length() - 1) == ')') { + return sub + "^2"; + } else { + return "(" + sub + ")^2"; + } + } + } + + /** + * 验证表达式是否符合初中难度要求. + * 初中级别要求表达式必须包含平方根或平方运算. + * + * @param expression 要验证的表达式 + * @return 如果表达式包含平方根或平方运算返回true,否则返回false + */ + @Override + public boolean isValidForLevel(String expression) { + return expression.contains("sqrt") || expression.contains("^2"); + } +} \ No newline at end of file diff --git a/个人项目/src/question/SeniorGenerator.java b/个人项目/src/question/SeniorGenerator.java new file mode 100644 index 0000000..412ef39 --- /dev/null +++ b/个人项目/src/question/SeniorGenerator.java @@ -0,0 +1,92 @@ +package src.question; + +import src.model.Level; + +/** + * 高中级别题目生成器. + * 生成适合高中难度的数学表达式,包含四则运算和三角函数运算. + */ +public class SeniorGenerator extends AbstractQuestionGenerator { + + /** + * 二元运算生成概率阈值. + */ + private static final double BINARY_OP_PROBABILITY = 0.5; + + /** + * 叶子节点生成概率. + */ + private static final double LEAF_PROBABILITY = 0.4; + + /** + * 最大递归深度. + */ + private static final int MAX_DEPTH = 4; + + /** + * 支持的三角函数列表. + */ + private static final String[] TRIGONOMETRIC_FUNCTIONS = {"sin", "cos", "tan"}; + + /** + * 构造函数. + * 初始化高中难度级别的题目生成器. + */ + public SeniorGenerator() { + super(Level.SENIOR); + } + + /** + * 生成高中难度的数学表达式. + * 使用递归方式生成包含三角函数的表达式. + * + * @return 生成的数学表达式字符串 + */ + @Override + public String generateExpression() { + return generateSub(MAX_DEPTH); + } + + /** + * 递归生成子表达式. + * 根据深度参数和随机概率生成数字、二元运算或三角函数运算. + * + * @param depth 当前递归深度 + * @return 生成的子表达式字符串 + */ + private String generateSub(int depth) { + if (depth == 0 || random.nextDouble() < LEAF_PROBABILITY) { + return String.valueOf(getRandomNumber()); + } + + double randomValue = random.nextDouble(); + if (randomValue < BINARY_OP_PROBABILITY) { + // 生成二元运算 + String left = generateSub(depth - 1); + String op = getRandomBinaryOp(); + String right = generateSub(depth - 1); + return "(" + left + " " + op + " " + right + ")"; + } else { + // 生成三角函数运算 + String func = TRIGONOMETRIC_FUNCTIONS[random.nextInt(TRIGONOMETRIC_FUNCTIONS.length)]; + String sub = generateSub(depth - 1); + if (sub.charAt(0) == '(' && sub.charAt(sub.length() - 1) == ')') { + return func + sub; + } else { + return func + "(" + sub + ")"; + } + } + } + + /** + * 验证表达式是否符合高中难度要求. + * 高中级别要求表达式必须包含三角函数. + * + * @param expression 要验证的表达式 + * @return 如果表达式包含三角函数返回true,否则返回false + */ + @Override + public boolean isValidForLevel(String expression) { + return expression.contains("sin") || expression.contains("cos") || expression.contains("tan"); + } +} diff --git a/个人项目/src/start/Main.java b/个人项目/src/start/Main.java new file mode 100644 index 0000000..1d4bf5b --- /dev/null +++ b/个人项目/src/start/Main.java @@ -0,0 +1,61 @@ +package src.start; + +import java.util.List; +import java.util.Scanner; +import src.auth.Authenticator; +import src.history.HistoryManager; +import src.model.Level; +import src.model.User; +import src.question.AbstractQuestionGenerator; +import src.util.Auth; +import src.util.Question; + +/** + * 主程序类,负责用户交互和题目生成流程控制. + */ +public class Main { + + /** + * 主方法,程序入口点. + * 负责用户认证、难度级别选择和题目生成流程控制. + * + * @param args 命令行参数 + */ + public static void main(String[] args) { + Authenticator authenticator = new Authenticator(); + Scanner scanner = new Scanner(System.in); + while (true) { + User user = authenticator.login(); + if (user == null) { + continue; + } + Level currentLevel = user.getInitialLevel(); + while (true) { + System.out.println("当前选择为" + currentLevel.getName() + "出题"); + System.out.print("准备生成" + currentLevel.getName() + + "数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"); + String inputText = scanner.nextLine().trim(); + // 检查是否需要切换难度级别 + Level newLevel = Auth.getLevel(inputText, currentLevel); + if (newLevel != null) { + currentLevel = newLevel; + continue; + } + // 处理题目生成 + AbstractQuestionGenerator generator = Question.getGenerator(currentLevel); + Integer numQuestions = Question.getQuestionAmount(inputText); + if (numQuestions == -1) { + break; // 退出当前用户,重新登录 + } + if (numQuestions == 0) { + continue; // 输入无效,重新输入 + } + // 生成并保存题目 + HistoryManager historyManager = new HistoryManager(user.getUsername()); + List questions = historyManager.getQuestion(numQuestions, generator); + historyManager.saveFile(questions, user); + System.out.println("题目生成完成,已保存到用户文件夹。"); + } + } + } +} \ No newline at end of file diff --git a/个人项目/src/util/Auth.java b/个人项目/src/util/Auth.java new file mode 100644 index 0000000..a3ed7e2 --- /dev/null +++ b/个人项目/src/util/Auth.java @@ -0,0 +1,39 @@ +package src.util; + +import src.model.Level; + +/** + * 工具类. + * 存放题目水平和相关的方法. + */ + +public class Auth { + /** + * 处理题目水平切换请求. + * 解析用户输入的切换指令,返回对应的难度水平. + * + * @param inputText 用户输入的切换指令 + * @param currentLevel 当前题目水平 + * @return 新的题目水平,如果切换失败返回当前水平 + */ + public static Level getLevel(String inputText, Level currentLevel) { + if (inputText.startsWith("切换为")) { + String newLevelStr = inputText.substring("切换为".length()).trim(); + Level newLevel = switch (newLevelStr) { + case "小学" -> Level.ELEMENTARY; + case "初中" -> Level.JUNIOR; + case "高中" -> Level.SENIOR; + default -> null; + }; + + if (newLevel != null) { + return newLevel; + } else { + System.out.println("请输入小学、初中和高中三个选项中的一个"); + return currentLevel; + } + } + return null; + } + +} diff --git a/个人项目/src/util/Question.java b/个人项目/src/util/Question.java new file mode 100644 index 0000000..a196932 --- /dev/null +++ b/个人项目/src/util/Question.java @@ -0,0 +1,99 @@ +package src.util; + + +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import src.model.Level; +import src.question.AbstractQuestionGenerator; +import src.question.ElementaryGenerator; +import src.question.JuniorGenerator; +import src.question.SeniorGenerator; + +/** + * 工具类. + * 存放和题目相关的方法 + */ + +public class Question { + + /** + * 从输入文本中获取问题数量. + * + * @param inputText 用户输入的文本 + * @return 解析后的问题数量,0表示无效输入,-1表示特殊退出标志 + */ + public static Integer getQuestionAmount(String inputText) { + int numQuestions; + try { + numQuestions = Integer.parseInt(inputText); + } catch (NumberFormatException e) { + System.out.println("无效输入"); + return 0; + } + if (numQuestions == -1) { + return -1; + } + if (numQuestions < 10 || numQuestions > 30) { + System.out.println("数量应在10-30"); + return 0; + } + return numQuestions; + } + /** + * 根据难度级别获取对应的题目生成器. + * + * @param level 难度级别 + * @return 对应级别的题目生成器实例 + */ + + public static AbstractQuestionGenerator getGenerator(Level level) { + return switch (level) { + case ELEMENTARY -> new ElementaryGenerator(); + case JUNIOR -> new JuniorGenerator(); + case SENIOR -> new SeniorGenerator(); + }; + } + /** + * 删除最后表达式中的冗余括号. + * + * @param expression 数学表达式. + * @return 处理后的数学表达式. + */ + + public static String check(String expression) { + if (expression.charAt(0) == '(' && expression.charAt(expression.length() - 1) == ')') { + return expression.substring(1, expression.length() - 1); + } + return expression; + } + /** + * 计算表达式中操作数的数量. + * + * @param expression 数学表达式 + * @return 操作数的数量 + */ + + public static int countOperands(String expression) { + int count = 0; + Pattern pattern = Pattern.compile("\\d+"); + Matcher matcher = pattern.matcher(expression); + while (matcher.find()) { + count++; + } + return count; + } + + /** + * 生成问题. + * + * @return 格式化的数学问题字符串(包含等号) + */ + public static String generateQuestion(AbstractQuestionGenerator generator) { + String expression; + do { + expression = generator.generateExpression(); + } while (countOperands(expression) < 1 || countOperands(expression) > 5 + || !generator.isValidForLevel(expression)); + return check(expression) + " ="; + } +} diff --git a/个人项目/张三1/2025-09-27-19-01-58.txt b/个人项目/张三1/2025-09-27-19-01-58.txt new file mode 100644 index 0000000..7499eb1 --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-01-58.txt @@ -0,0 +1,40 @@ +1. (sqrt(sqrt(27 * 26)))^2 = + +2. (65 * ((58 * 28)^2 * 27)) = + +3. (((28)^2)^2 - (31)^2) = + +4. sqrt(sqrt(sqrt(28 * 97))) = + +5. sqrt(2) = + +6. sqrt(((68)^2)^2) = + +7. ((81)^2 / 29) = + +8. (21 - 69)^2 = + +9. (65 + (sqrt(58) * (sqrt(10) * 32))) = + +10. ((63 - 71)^2 * 4)^2 = + +11. sqrt(55 - 74) = + +12. (sqrt(sqrt(39)) + 84) = + +13. sqrt((85)^2 + 88) = + +14. ((sqrt(sqrt(37)))^2)^2 = + +15. (39)^2 = + +16. ((sqrt(82) - sqrt(35)) / (62 + 85)) = + +17. (sqrt(10) * 96) = + +18. sqrt((57)^2) = + +19. (((76 + 94)^2)^2)^2 = + +20. sqrt(91) = + diff --git a/个人项目/张三1/2025-09-27-19-02-43.txt b/个人项目/张三1/2025-09-27-19-02-43.txt new file mode 100644 index 0000000..374245b --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-02-43.txt @@ -0,0 +1,60 @@ +1. (sin(9) * (2 * cos(3 * 29))) = + +2. (46 - sin(13)) = + +3. (cos(26 - sin(39)) / tan(47)) = + +4. (((56 / (79 * 71)) * 44) * sin(56)) = + +5. cos(tan(82 - 9) + ((27 - 84) + tan(6))) = + +6. tan(tan((80 / 80) - (25 - 58))) = + +7. cos(tan(sin(99 + 36))) = + +8. sin(tan(48)) = + +9. sin(sin(68)) = + +10. cos(63) = + +11. tan(34) = + +12. (79 * (12 + cos(sin(66)))) = + +13. tan(cos(55 - 43) * cos(18)) = + +14. sin(23) = + +15. cos(43) = + +16. (cos(cos(45)) / 20) = + +17. (tan(72) * tan(91)) = + +18. cos(sin(tan(tan(17)))) = + +19. (((sin(5) * tan(27)) * tan(tan(84))) - 48) = + +20. (sin(56) * 7) = + +21. (cos(cos(11 / 77)) * (sin(cos(37)) + tan(sin(8)))) = + +22. tan(49) = + +23. (cos(cos(31)) / (67 / sin(73 / 82))) = + +24. (57 / ((53 - (44 / 32)) * tan(cos(56)))) = + +25. sin(4) = + +26. sin(cos(38)) = + +27. sin(39) = + +28. tan(cos(sin(53))) = + +29. tan(87) = + +30. sin(86 * sin(27)) = + diff --git a/个人项目/张三1/2025-09-27-19-03-08.txt b/个人项目/张三1/2025-09-27-19-03-08.txt new file mode 100644 index 0000000..a619089 --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-03-08.txt @@ -0,0 +1,60 @@ +1. (88 / 49) = + +2. ((70 - 95) - (25 + 91)) = + +3. (69 * 98) = + +4. (95 - (73 - (13 + (42 / 59)))) = + +5. (((73 - 71) / 59) - 65) = + +6. ((77 + 41) * 57) = + +7. (64 / (12 - (55 * (14 / 94)))) = + +8. (((21 / 80) + 78) / 23) = + +9. (5 - 10) = + +10. (92 / (64 / 86)) = + +11. ((7 - 31) - 34) = + +12. ((95 * 96) - 23) = + +13. ((32 * 31) / 10) = + +14. (51 + (48 * 9)) = + +15. (86 + (56 + 6)) = + +16. (87 * (51 + ((82 * 79) - 54))) = + +17. (15 - 59) = + +18. (9 * (43 * 47)) = + +19. ((78 + 98) / (85 + 38)) = + +20. (59 + (61 / 44)) = + +21. (7 - (36 / (22 * 22))) = + +22. (62 / 11) = + +23. ((69 * (60 * 65)) - (37 + 83)) = + +24. (59 + 8) = + +25. ((54 / (51 - (39 - 90))) / 13) = + +26. (83 + 94) = + +27. (31 * 93) = + +28. (((52 + 22) + (40 + 50)) / 63) = + +29. ((78 - ((74 / 60) - 41)) / 11) = + +30. (35 / 8) = + diff --git a/个人项目/张三1/2025-09-27-19-29-03.txt b/个人项目/张三1/2025-09-27-19-29-03.txt new file mode 100644 index 0000000..ebc68af --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-29-03.txt @@ -0,0 +1,60 @@ +1. 56 - 45 = + +2. (65 - 9) * 30 = + +3. (80 / 88) * 61 = + +4. 41 * ((88 / 37) - 81) = + +5. 75 * (55 / (73 * (67 / 23))) = + +6. 63 - ((23 - 29) + 14) = + +7. 27 / (27 + 82) = + +8. 8 / 54 = + +9. 25 - (((41 - 51) - 13) / 91) = + +10. (67 / 53) - (2 - 62) = + +11. 82 + 8 = + +12. 74 / (21 - (77 - (95 + 3))) = + +13. 15 / (24 / 50) = + +14. 71 * (55 / (93 + (5 + 16))) = + +15. 27 * ((93 + (83 * 34)) - 22) = + +16. 85 + 95 = + +17. 72 / 47 = + +18. 74 + 1 = + +19. (10 * 81) - 22 = + +20. 84 / 89 = + +21. 51 * 43 = + +22. 67 / (34 * ((89 - 92) - 28)) = + +23. 8 + (((25 * 7) * 36) * 20) = + +24. 96 / 45 = + +25. 3 + (23 / 10) = + +26. (26 - (60 / 76)) / 92 = + +27. 37 * (61 - (42 * 2)) = + +28. 4 * 67 = + +29. 14 - 53 = + +30. 83 * (86 * 79) = + diff --git a/个人项目/张三1/2025-09-27-19-29-06.txt b/个人项目/张三1/2025-09-27-19-29-06.txt new file mode 100644 index 0000000..2ff16b7 --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-29-06.txt @@ -0,0 +1,60 @@ +1. 72 + 22 = + +2. (29 / 23) + 77 = + +3. 22 * 57 = + +4. 36 - 91 = + +5. 38 / (((17 / 10) - 46) * 14) = + +6. 77 * (39 * ((42 + 86) / 64)) = + +7. (80 * (31 - (39 * 49))) - 39 = + +8. 21 / 94 = + +9. 56 + 11 = + +10. ((80 + (15 - 81)) - 65) / 69 = + +11. 37 * 51 = + +12. 35 / 77 = + +13. (57 * 88) * 15 = + +14. ((79 * (97 / 80)) - 99) / 32 = + +15. (71 / (34 - 25)) - 77 = + +16. 40 * ((98 - (2 - 42)) + 15) = + +17. 79 + (22 * (10 * 71)) = + +18. (9 + 53) * 90 = + +19. 50 / 4 = + +20. 28 * (28 * 19) = + +21. 57 + 60 = + +22. ((100 * (20 + 23)) - 33) - 7 = + +23. (42 + 92) / 51 = + +24. 20 * ((72 - (19 / 79)) - 76) = + +25. ((51 + (30 * 44)) * 72) * 49 = + +26. 26 + 74 = + +27. (51 / 94) / 48 = + +28. 38 * ((32 * 69) - (70 * 28)) = + +29. 5 * (22 - (21 / 9)) = + +30. 87 * 60 = + diff --git a/个人项目/张三1/2025-09-27-19-35-42.txt b/个人项目/张三1/2025-09-27-19-35-42.txt new file mode 100644 index 0000000..893dfea --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-35-42.txt @@ -0,0 +1,60 @@ +1. 54 - 92 = + +2. 26 / ((9 / 36) / 88) = + +3. ((23 * (60 * 61)) * 50) + 91 = + +4. (15 / 12) / 48 = + +5. 17 * 45 = + +6. ((71 * 44) + 36) - (95 + 68) = + +7. (64 * 17) / 23 = + +8. 91 + (((84 * 4) - 48) - 58) = + +9. 3 * (76 + ((51 / 40) - 90)) = + +10. 76 / (((94 * 46) / 70) - 47) = + +11. 69 / ((78 + (96 + 35)) * 17) = + +12. 52 - 29 = + +13. 69 / 87 = + +14. 11 - 20 = + +15. (100 / 59) + 87 = + +16. 22 / (47 + 79) = + +17. 88 / (18 + (65 + 20)) = + +18. 79 / 20 = + +19. 45 - 75 = + +20. 22 + 82 = + +21. 30 - (28 * 36) = + +22. (42 * ((50 - 29) / 66)) * 22 = + +23. (85 + 48) + (6 * (57 / 6)) = + +24. 35 + 77 = + +25. 93 - 98 = + +26. 30 / ((60 - 16) * 24) = + +27. 56 - 32 = + +28. 66 * 82 = + +29. (5 - (51 - (31 * 82))) + 86 = + +30. 68 - 37 = + diff --git a/个人项目/张三1/2025-09-27-19-35-57.txt b/个人项目/张三1/2025-09-27-19-35-57.txt new file mode 100644 index 0000000..88f5c8e --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-35-57.txt @@ -0,0 +1,60 @@ +1. 79 + 100 = + +2. (29 + (33 + (33 / 70))) + 87 = + +3. 88 / (((31 - 16) - 68) * 23) = + +4. 12 * 8 = + +5. 62 / (35 - 3) = + +6. (((83 - 14) - 62) / 43) - 60 = + +7. (91 * (52 * 50)) + 19 = + +8. 65 - (87 + 19) = + +9. 66 / 51 = + +10. 87 + 21 = + +11. (13 + 10) / 70 = + +12. 59 / 25 = + +13. (43 + 50) / (75 - (94 - 76)) = + +14. 44 + (73 * 43) = + +15. 90 + 66 = + +16. 15 + (54 * 25) = + +17. 71 / (51 + 93) = + +18. 84 / ((35 * 63) + (41 / 88)) = + +19. 88 - (26 / 61) = + +20. 3 / 94 = + +21. 44 - ((59 * 49) / 78) = + +22. 90 / 76 = + +23. 27 / 33 = + +24. 29 - 23 = + +25. (((68 * 95) - 88) / 33) + 2 = + +26. 77 - ((3 + 90) + 97) = + +27. 3 / 45 = + +28. 41 + (82 / ((3 + 40) * 60)) = + +29. 13 + 50 = + +30. (74 - (27 - 7)) / 14 = + diff --git a/个人项目/张三1/2025-09-27-19-35-58.txt b/个人项目/张三1/2025-09-27-19-35-58.txt new file mode 100644 index 0000000..2c19246 --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-35-58.txt @@ -0,0 +1,60 @@ +1. (63 * 84) / 16 = + +2. ((74 / (100 / 13)) * 94) + 10 = + +3. 86 + 41 = + +4. 43 + (66 / (92 / 46)) = + +5. 56 * (((33 / 23) / 6) + 16) = + +6. 23 - 24 = + +7. 59 + 3 = + +8. 95 / 9 = + +9. 45 - 25 = + +10. (88 / 51) - 63 = + +11. 76 / ((71 + (68 / 14)) + 26) = + +12. 94 * 19 = + +13. (46 + 96) + 92 = + +14. 88 * (78 + 13) = + +15. (21 * 48) - (54 - 3) = + +16. (5 - 88) - 48 = + +17. 93 * (99 * ((78 + 28) / 58)) = + +18. 75 / ((13 - (87 + 47)) + 36) = + +19. (46 / 63) / 46 = + +20. 44 + (70 / 8) = + +21. 77 - (83 - 33) = + +22. 86 * (2 / 52) = + +23. (64 / 42) / (66 / 77) = + +24. 43 + 86 = + +25. 52 / (38 - 33) = + +26. 9 * 35 = + +27. 27 + (((74 - 22) * 23) * 25) = + +28. 85 - 19 = + +29. 2 + (((84 / 77) - 53) + 33) = + +30. 49 * (58 * 31) = + diff --git a/个人项目/张三1/2025-09-27-19-36-05.txt b/个人项目/张三1/2025-09-27-19-36-05.txt new file mode 100644 index 0000000..9471e27 --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-36-05.txt @@ -0,0 +1,40 @@ +1. 70 + (sin(82) * (tan(45) * tan(92))) = + +2. sin(tan(69 / 44) / 62) = + +3. sin(tan(5 - 36)) = + +4. cos(87 + 21) + 53 = + +5. tan(34) = + +6. sin(tan(12)) = + +7. cos(10) = + +8. sin(57) = + +9. tan(1) = + +10. sin(tan(sin(76))) * (3 + 34) = + +11. sin((tan(94) * 80) * (62 / (10 / 14))) = + +12. 96 - sin(sin(26 - 64)) = + +13. (48 / 97) / cos(17) = + +14. tan(cos((89 + 11) - 57)) = + +15. sin(100) = + +16. cos(tan(63 / sin(91))) = + +17. tan(9) = + +18. cos((48 * 1) / cos(51)) - tan(68) = + +19. 99 * cos(37) = + +20. sin(sin(9) * 69) - (88 * (sin(57) - 95)) = + diff --git a/个人项目/张三1/2025-09-27-19-45-19.txt b/个人项目/张三1/2025-09-27-19-45-19.txt new file mode 100644 index 0000000..b35d86a --- /dev/null +++ b/个人项目/张三1/2025-09-27-19-45-19.txt @@ -0,0 +1,60 @@ +1. (74 - 30) + 1 = + +2. 86 * 73 = + +3. (64 + (80 / (5 * 24))) - 46 = + +4. 7 + 55 = + +5. (20 / 48) + 10 = + +6. 81 / 69 = + +7. 84 + (50 * 79) = + +8. (79 - 56) + 23 = + +9. 97 + 21 = + +10. 86 / 31 = + +11. 4 - 56 = + +12. 37 - 53 = + +13. 56 / 36 = + +14. 83 * (29 / 69) = + +15. 71 / 64 = + +16. 71 - 31 = + +17. 94 - (58 + 36) = + +18. (55 + 100) + (98 - (60 - 88)) = + +19. (27 + 61) * (72 - 19) = + +20. (69 / ((51 / 28) + 70)) - 66 = + +21. 48 - 4 = + +22. (69 + 77) * (31 / 73) = + +23. 22 - (28 - 79) = + +24. 41 - 14 = + +25. (16 / 8) - 36 = + +26. ((23 * 38) - 6) + 74 = + +27. (14 - 34) + 39 = + +28. 21 + 76 = + +29. (82 + (32 + 67)) * 93 = + +30. 61 + 82 = + diff --git a/个人项目/张三2/2025-09-26-11-46-26.txt b/个人项目/张三2/2025-09-26-11-46-26.txt new file mode 100644 index 0000000..24c73ca --- /dev/null +++ b/个人项目/张三2/2025-09-26-11-46-26.txt @@ -0,0 +1,20 @@ +1. 8 = + +2. (78*(77*(34-69))) = + +3. 11 = + +4. ((79+(91+7))+8) = + +5. 85 = + +6. ((78/76)*29) = + +7. 72 = + +8. 77 = + +9. 4 = + +10. 86 = + diff --git a/个人项目/张三2/2025-09-26-11-46-28.txt b/个人项目/张三2/2025-09-26-11-46-28.txt new file mode 100644 index 0000000..994affb --- /dev/null +++ b/个人项目/张三2/2025-09-26-11-46-28.txt @@ -0,0 +1,40 @@ +1. ((((94*51)*80)-70)+87) = + +2. 69 = + +3. (31-(((20-96)-1)+56)) = + +4. (29/(19*(70/(80/45)))) = + +5. 54 = + +6. (94+(((11*5)/30)/94)) = + +7. (95*81) = + +8. 62 = + +9. (78/(77+72)) = + +10. 31 = + +11. 46 = + +12. (22+(92*(45+(61+1)))) = + +13. (17+12) = + +14. (80*((60-(44/37))+31)) = + +15. (90-(56*65)) = + +16. 89 = + +17. (62*(95*32)) = + +18. (40-21) = + +19. 87 = + +20. (10-(98-58)) = + diff --git a/个人项目/张三2/2025-09-26-11-46-39.txt b/个人项目/张三2/2025-09-26-11-46-39.txt new file mode 100644 index 0000000..95e76ed --- /dev/null +++ b/个人项目/张三2/2025-09-26-11-46-39.txt @@ -0,0 +1,40 @@ +1. 85 = + +2. (88/68) = + +3. 42 = + +4. 97 = + +5. 5 = + +6. (48-(((92/15)+76)+78)) = + +7. (33*95) = + +8. 26 = + +9. (6-((49/(21*31))*77)) = + +10. (((53-(62+69))-43)*4) = + +11. 29 = + +12. 35 = + +13. 40 = + +14. 45 = + +15. (9/76) = + +16. ((57-(77/88))+34) = + +17. ((31+(85-82))+(75/67)) = + +18. (85+5) = + +19. 39 = + +20. 95 = + diff --git a/个人项目/张三2/2025-09-26-11-46-45.txt b/个人项目/张三2/2025-09-26-11-46-45.txt new file mode 100644 index 0000000..c5b3a08 --- /dev/null +++ b/个人项目/张三2/2025-09-26-11-46-45.txt @@ -0,0 +1,60 @@ +1. 14 = + +2. ((88/(69*(24+100)))+20) = + +3. (((12/(30/99))/98)+66) = + +4. (11*((47/(76*46))-75)) = + +5. 76 = + +6. 55 = + +7. 34 = + +8. 46 = + +9. 37 = + +10. 49 = + +11. 60 = + +12. 54 = + +13. 9 = + +14. ((85/77)/1) = + +15. 63 = + +16. (6*18) = + +17. (62*(58+29)) = + +18. 72 = + +19. ((16*((42+35)/2))/13) = + +20. 62 = + +21. 73 = + +22. (38+(56-44)) = + +23. ((58-6)+(32*3)) = + +24. ((9*(87/85))/(37+8)) = + +25. (71/((86-2)+62)) = + +26. 65 = + +27. 61 = + +28. 13 = + +29. ((42*75)*(84+82)) = + +30. (16+42) = + diff --git a/个人项目/李四1/2025-09-27-19-29-33.txt b/个人项目/李四1/2025-09-27-19-29-33.txt new file mode 100644 index 0000000..c6cda77 --- /dev/null +++ b/个人项目/李四1/2025-09-27-19-29-33.txt @@ -0,0 +1,60 @@ +1. sqrt((sqrt(70))^2) + (94 / 4)^2 = + +2. (71 * (sqrt(5))^2) - (14)^2 = + +3. (4)^2 * 87 = + +4. sqrt(66) = + +5. (99)^2 - 51 = + +6. sqrt((24)^2) = + +7. 90 - (74)^2 = + +8. sqrt(73) = + +9. ((sqrt(39))^2)^2 - 79 = + +10. (14 - (37)^2) * (12)^2 = + +11. (((89)^2)^2 * 45) + 89 = + +12. (49)^2 = + +13. ((47)^2)^2 = + +14. ((7)^2 + 32) / sqrt(8) = + +15. sqrt((88 + 48)^2) = + +16. (sqrt(69) + 4)^2 / sqrt(100) = + +17. (50)^2 = + +18. (57)^2 = + +19. (61 / (sqrt(78))^2)^2 = + +20. (78)^2 = + +21. sqrt(75) = + +22. sqrt(((92)^2 - (87 / 39))^2) = + +23. sqrt(6) = + +24. ((30)^2 - 61) / 2 = + +25. (sqrt(94 - sqrt(71)))^2 = + +26. sqrt(57) = + +27. (74)^2 = + +28. 56 + ((6)^2 / 55) = + +29. sqrt(sqrt(((79)^2)^2)) = + +30. sqrt((6)^2) = + diff --git a/个人项目/李四3/2025-09-27-19-29-45.txt b/个人项目/李四3/2025-09-27-19-29-45.txt new file mode 100644 index 0000000..31dfbda --- /dev/null +++ b/个人项目/李四3/2025-09-27-19-29-45.txt @@ -0,0 +1,60 @@ +1. (sqrt((11 + 76)^2))^2 = + +2. (64 + 54) - sqrt(sqrt(61)) = + +3. ((sqrt(9))^2)^2 / 26 = + +4. ((95 * 48) / 50)^2 = + +5. sqrt(74) = + +6. sqrt((sqrt(26) + 52) * (95 + 100)^2) = + +7. sqrt(sqrt(3) + 58) = + +8. sqrt(((21 * 21) * (52 / 38)) + 9) = + +9. sqrt((29)^2) = + +10. (sqrt(100))^2 = + +11. sqrt((46)^2 / 60) = + +12. sqrt(98) + (((2)^2 + 38) + 63) = + +13. sqrt(sqrt(64)) = + +14. 92 + (69)^2 = + +15. sqrt(61) = + +16. sqrt(42) = + +17. ((28)^2 / 39)^2 = + +18. sqrt(25) = + +19. (20)^2 - (68)^2 = + +20. (sqrt(86) / 5)^2 / 9 = + +21. (77)^2 - (52)^2 = + +22. sqrt(4 - sqrt(86 / 59)) = + +23. sqrt((sqrt(80) + 60) / (75 - 7)) = + +24. (88)^2 * 80 = + +25. sqrt(25) - sqrt(52) = + +26. (sqrt(73))^2 = + +27. (15)^2 = + +28. sqrt(((76)^2)^2) = + +29. sqrt(sqrt(sqrt(3) / (90)^2)) = + +30. sqrt(8) = + diff --git a/个人项目/李四3/2025-09-27-20-42-19.txt b/个人项目/李四3/2025-09-27-20-42-19.txt new file mode 100644 index 0000000..c15e0ef --- /dev/null +++ b/个人项目/李四3/2025-09-27-20-42-19.txt @@ -0,0 +1,60 @@ +1. (37)^2 = + +2. (sqrt(86) + (33 * 47)) + 13 = + +3. (100)^2 = + +4. sqrt(sqrt(93)) = + +5. sqrt(82) = + +6. sqrt(16) = + +7. (83 + (sqrt(34))^2) + 21 = + +8. (27)^2 = + +9. sqrt(sqrt(97)) * 69 = + +10. sqrt(((15 - 96) - 24) * 81) = + +11. (49)^2 = + +12. (74 / 97)^2 = + +13. sqrt(20) + sqrt(sqrt(89 * 60)) = + +14. sqrt(31) = + +15. (69)^2 = + +16. sqrt(sqrt(61)) = + +17. 65 / (28)^2 = + +18. sqrt((93)^2 * 39) + 34 = + +19. sqrt(43) = + +20. (41)^2 = + +21. sqrt(sqrt(14)) = + +22. sqrt(sqrt(10)) = + +23. (47)^2 = + +24. sqrt(45 + (22 + (22)^2)) = + +25. (93)^2 = + +26. (28 - (5)^2) + (58)^2 = + +27. sqrt(sqrt(sqrt(38) + (26)^2)) = + +28. ((sqrt(25) / 90)^2)^2 = + +29. (99 * sqrt(66 / 98)) / (12 - 14) = + +30. sqrt(98 + (28 + (3 + 87))) = + diff --git a/个人项目/李四3/2025-09-27-20-42-21.txt b/个人项目/李四3/2025-09-27-20-42-21.txt new file mode 100644 index 0000000..88ec1b2 --- /dev/null +++ b/个人项目/李四3/2025-09-27-20-42-21.txt @@ -0,0 +1,60 @@ +1. (sqrt(71))^2 = + +2. (87)^2 / 60 = + +3. sqrt(56) = + +4. (44)^2 = + +5. ((84)^2)^2 = + +6. (92 * sqrt(84))^2 + 58 = + +7. (sqrt((69 * 8) + 33))^2 = + +8. sqrt(sqrt(77)) * 90 = + +9. sqrt(98 + 64) = + +10. (43)^2 = + +11. sqrt((65 + 17)^2 * 84) = + +12. ((sqrt((35)^2))^2)^2 = + +13. 96 - (sqrt(97) / sqrt(90))^2 = + +14. sqrt(sqrt((99 * 55) - sqrt(50))) = + +15. (sqrt(63))^2 = + +16. (67)^2 = + +17. sqrt(28) / sqrt(59) = + +18. ((88)^2)^2 = + +19. ((21)^2)^2 = + +20. ((12)^2 - sqrt(95)) - 31 = + +21. (51)^2 = + +22. (34)^2 * (96 - 35) = + +23. sqrt(sqrt((18)^2) * (sqrt(59) - 29)) = + +24. (((71)^2 - 64) / 14)^2 = + +25. sqrt(36) = + +26. (((93)^2)^2)^2 = + +27. sqrt(sqrt(5 + 71) / 98) = + +28. ((71 - sqrt(59)) / sqrt(19))^2 = + +29. sqrt((38 / 83)^2) = + +30. sqrt(sqrt(16)) = + diff --git a/个人项目/王五1/2025-09-24-20-13-46.txt b/个人项目/王五1/2025-09-24-20-13-46.txt new file mode 100644 index 0000000..1f78b5d --- /dev/null +++ b/个人项目/王五1/2025-09-24-20-13-46.txt @@ -0,0 +1,20 @@ +1. (96/cos(76)) = + +2. sin(98) = + +3. cos(43) = + +4. tan(86) = + +5. sin(cos((sin(92)/(12+27)))) = + +6. cos(3) = + +7. cos(84) = + +8. tan(79) = + +9. tan(29) = + +10. cos(((98-51)/sin(35))) = +