结对作业

这个作业属于哪个课程 软工4班
这个给作业要求在哪里 作业的要求

姓名:党威龙
学号:3122004474
姓名:陈焕豪
学号:3122004472
GitHub地址链接

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 46
-Estimate -估计这个任务需要多少时间 10 10
Development 开发 500 524
-Analysis -需求分析 (包括学习新技术) 100 156
-Design Spec -生成设计文档 20 15
-Design Review -设计复审 10 10
-Coding Standard -代码规范 (为目前的开发制定合适的规范) 5 5
-Design -具体设计 60 55
-Coding -具体编码 150 140
-Code Review -代码复审 20 20
-Test -测试(自我测试,修改代码,提交修改) 20 30
Reporting 报告 30 30
-Test Repor -测试报告 15 15
-Size Measurement -计算工作量 10 15
-Postmortem & Process Improvement Plan -事后总结, 并提出过程改进计划 10 10
All 合计 1020 1081

测试运行

范例1


范例2


范例3


范例4


范例5

代码说明

  • main(String[] args): 主函数,程序的入口。从用户处获取题目数量和范围,然后生成题目及答案并写入文件。
点击查看代码
public static void main(String[] args) {`

            int numberOfExercises = getNumberOfExercisesFromUser(); // 从用户输入获取题目数量

            int range = getRangeFromUser(); // 从用户输入获取范围

            // 获取文件夹路径
            String directory = "C:\\Users\\Administrator\\IdeaProjects\\_4ze_timu_shengcheng\\ceshiyongli"; // 修改为你想要存储文件的路径

            // 获取文件名
            String exerciseFileName = "Exercises";
            String answerFileName = "Answers";

            int fileIndex = 1;
            String exerciseFile;
            String answerFile;

            do {
                exerciseFile = directory + File.separator + exerciseFileName + fileIndex + ".txt";
                answerFile = directory + File.separator + answerFileName + fileIndex + ".txt";
                fileIndex++;
            } while (fileExists(exerciseFile) || fileExists(answerFile));

            // 生成题目并写入文件
            generateExercisesAndAnswers(numberOfExercises, range, exerciseFile, answerFile);

            System.out.println("Exercises and answers generated successfully.");
        }
  • getNumberOfExercisesFromUser(): 从用户处获取题目数量。
点击查看代码
 private static int getNumberOfExercisesFromUser() {
            System.out.println("Enter the number of exercises:");
            return scanner.nextInt();
        }
  • getRangeFromUser(): 从用户处获取题目范围。
点击查看代码
private static int getRangeFromUser() {
            System.out.println("Enter the range:");
            return scanner.nextInt();
        }
  • generateExercisesAndAnswers(): 根据给定的数量和范围,生成指定数量的四则运算题目并写入文件中,并同时生成答案并写入另一个文件中。
点击查看代码
private static void generateExercisesAndAnswers(int numberOfExercises, int range, String exerciseFileName, String answerFileName) {
            try (PrintWriter exerciseWriter = new PrintWriter(new FileWriter(exerciseFileName));
                 PrintWriter answerWriter = new PrintWriter(new FileWriter(answerFileName))) {

                for (int i = 1; i <= numberOfExercises; i++) {
                    String expression = generateExpression(range);
                    String answer = calculateAnswer(expression);

                    exerciseWriter.println("四则运算题目" + i + ": " + expression);
                    answerWriter.println("答案" + i + ": " + answer);
                }

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
  • generateExpression(int range): 根据指定的范围生成一个四则运算表达式,其中包含两个操作数和一个操作符。
点击查看代码
private static String generateExpression(int range) {
            int num1 = RANDOM.nextInt(range) + 1;
            int num2 = RANDOM.nextInt(range) + 1;
            char operator = OPERATORS[RANDOM.nextInt(OPERATORS.length)];
            // 避免产生负数
            if (operator == '-' && num1 < num2) {
                int temp = num1;
                num1 = num2;
                num2 = temp;
            }
            // 避免产生除不尽的情况
            if (operator == '÷') {
                num2 = RANDOM.nextInt(Math.min(range, num1 - 1)) + 1;
            }
            return num1 + " " + operator + " " + num2;
        }
  • calculateAnswer(String expression): 根据给定的四则运算表达式计算出其结果。
点击查看代码
private static String calculateAnswer(String expression) {
            String[] tokens = expression.split(" ");
            int num1 = Integer.parseInt(tokens[0]);
            int num2 = Integer.parseInt(tokens[2]);
            char operator = tokens[1].charAt(0);

            int result = 0;
            switch (operator) {
                case '+':
                    result = num1 + num2;
                    break;
                case '-':
                    result = num1 - num2;
                    break;
                case '×':
                    result = num1 * num2;
                    break;
                case '÷':
                    result = num1 / num2;
                    break;
            }
            return String.valueOf(result);
        }
  • fileExists(String filePath): 检查给定路径的文件是否存在
点击查看代码
private static boolean fileExists(String filePath) {
            File file = new File(filePath);
            return file.exists();
        }

项目小结

第一次做此类型的合作项目,面临前所未有的挑战,但也收获颇多,很多方面存在不足,希望吸取这次受到的教训,下次要做的更好

posted @ 2024-03-25 19:44  浓农侬脓  阅读(25)  评论(0编辑  收藏  举报