首页 > 其他分享 >9.25

9.25

时间:2023-09-25 17:57:07浏览次数:40  
标签:9.25 int NUMBER private static result number2

今天完成软件构造作业,写一个自动出题程序。

package 软件构造;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

public class Test {
private static final int MIN_NUMBER = 1; // 最小数字范围
private static final int MAX_NUMBER = 100; // 最大数字范围

private static final int OPERATOR_ADD = 0; // 加法运算符
private static final int OPERATOR_SUBTRACT = 1; // 减法运算符
private static final int OPERATOR_MULTIPLY = 2; // 乘法运算符
private static final int OPERATOR_DIVIDE = 3; // 除法运算符

private static final String[] OPERATORS = {"+", "-", "*", "/"}; // 运算符数组

private Map<String, Integer> generatedProblems; // 存储已生成的题目

public Test() {
generatedProblems = new HashMap<>();
}

public String generateProblem() {
Random random = new Random();
String problem;
int result;

do {
int number1 = random.nextInt(MAX_NUMBER - MIN_NUMBER + 1) + MIN_NUMBER;
int number2 = random.nextInt(MAX_NUMBER - MIN_NUMBER + 1) + MIN_NUMBER;
int operatorIndex = random.nextInt(OPERATORS.length);
String operator = OPERATORS[operatorIndex];

problem = number1 + " " + operator + " " + number2;
result = calculateResult(number1, number2, operator);
} while (generatedProblems.containsKey(problem));

generatedProblems.put(problem, result);

return problem;
}

private int calculateResult(int number1, int number2, String operator) {
int result = 0;

switch (operator) {
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
}

return result;
}

public static void main(String[] args) {
Test generator = new Test();

for (int i = 1; i < 51; i++) {
String problem = generator.generateProblem();
System.out.println("题目"+ i+":"+problem+"=");
}
}
}

标签:9.25,int,NUMBER,private,static,result,number2
From: https://www.cnblogs.com/ljh1688/p/17728475.html

相关文章

  • 2023.9.25——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课,下午学习。我了解到的知识点:1.软件设计模式;2.做软件要根据客户需求;明日计划:1.上课;......
  • 9.25算法
    #include<bits/stdc++.h>usingnamespacestd;structListNode{  intval;  ListNode*next;  ListNode():val(0),next(nullptr){}  ListNode(intx):val(x),next(nullptr){}  ListNode(intx,ListNode*next):val(x),next(next){}};......
  • 9.25
    1、定义变量    ......
  • Visual Assist Cracked version:10.9.2500
    任何问题请反馈至邮箱:[email protected](随缘查看邮件)Anyporbs->[email protected]声明:本破解补丁仅供交流学习和研究使用,不可用于商业。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。Notice:thispatcherisforcommunication,learning......
  • Win11设置固定IP地址后,仍然以169.254.*.* 为首选IP的解决方法
    经过不断尝试,结合网上找到的范例,以管理员执行以下命令并重启可解决:netshwinsockresetcatalog解释:一般添加catalog意指winsock目录,但通常命令可不用加catalog参数,直接reset即可重置。netshintipresetreset.log解释:注意:如果您不想指定日志文件的目录路径,运行命令︰netshin......
  • 网络接口dhcp失败时会获得一个169.254.x.x的IP地址
    最开始发现这个现象是在windows上面,之前以为是dhcp失败后,会有个随机值作为IP地址,以为是个垃圾数据,是windows特有的行为。最近一个项目,基于buildroot构建,用到4G上网功能,在开发其他功能,一直没插SIM卡,总发现4G接口会拿到一个奇怪的IP地址169.254.118.160。测试把这个问题当作一个bug......
  • 【坚持每日一题9.25】LRU 缓存
    设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它......
  • 2022 ICPC 网络预选赛(9.25)
    真容易颓。E构造一个序列\(a_1\)已经确定使得\((a_i,a_{i-1})=1,a_i>1\)求整个序列最大值。容易知道\(a_2\)是与\(a_1\)互质的最小质数若是2接下填3,2,3,2,3即可.若......
  • 上周热点回顾(9.19-9.25)
    热点随笔:· 前端必读2.0:如何在React中使用SpreadJS导入和导出Excel文件 (葡萄城技术团队)· 前端必读:如何在JavaScript中使用SpreadJS导入和导出Excel文件 (葡......
  • 9.25 小记
    CF804D期望+树的直径+根号分治调完了一道题(手残\(sz->siz\)找半天)题解差分约束都在这里了废话早上五点多就醒了,然后在肯德基等早餐等了好久感觉周日很不安的样子......