Compare commits

..

2 Commits

Author SHA1 Message Date
ZHW cfa7231591 2.0
5 months ago
ZHW d469dadb78 1.0
5 months ago

@ -1,2 +0,0 @@
# SJ0

@ -0,0 +1,175 @@
个人项目说明文档
项目基本信息
项目名称软1_张红卫_个人项目
项目类型:中小学数学卷子自动生成程序
开发语言Java
开发环境JDK 8+
项目结构
text
软1_张红卫_个人项目/
├── src/ # 源代码目录
│ └── Main.java # 主程序入口文件
├── doc/ # 项目文档目录
│ └── README.md # 项目说明文档(本文档)
├── exams/ # 生成的题目文件目录(运行时自动创建)
│ ├── 张三1/
│ ├── 李四1/
│ └── 王五1/
└── README.md # 项目根目录说明文档
功能规格说明
核心功能模块
1. 用户认证系统
预设账号小学、初中、高中教师各3个账号
认证方式:命令行用户名密码验证
会话管理:登录状态保持,支持多次操作
2. 题目生成引擎
难度分级:小学、初中、高中三个难度级别
题目特征:
小学:基础四则运算(+、-、×、÷)
初中:包含平方(^2和开根号sqrt())运算
高中包含三角函数sin、cos、tan运算
题目数量10-30题范围限制
3. 文件管理系统
存储结构:按用户名分文件夹存储
文件命名:年-月-日-时-分-秒.txt格式
文件格式:每题有题号,题目间空一行
4. 交互功能
难度切换:支持登录状态下切换出题难度
输入验证:完善的错误处理和输入验证
退出机制:支持正常退出和重新登录
核心类说明
1. 用户管理模块
User用户实体类存储用户名、密码、用户类型
UserAuthenticator用户认证管理验证登录信息
UserType用户类型枚举小学、初中、高中
2. 题目生成模块
Question题目实体类包含题号和内容
QuestionGenerator题目生成器接口
具体实现类:分别实现小学、初中、高中题目生成逻辑
3. 系统管理模块
SessionManager会话管理维护用户登录状态
FileManager文件操作管理负责题目保存
使用指南
环境要求
Java版本JDK 8 或更高版本
操作系统支持UTF-8编码的系统
内存要求最低512MB可用内存
编译运行步骤
bash
# 1. 编译程序
javac -encoding UTF-8 Main.java
# 2. 运行程序
java Main
操作流程示例
text
=== 中小学数学卷子自动生成程序 ===
请输入用户名张三1
请输入密码123
当前选择为小学出题
准备生成小学数学题目,请输入题目数量(10-30)或命令15
题目已保存到exams/张三1/2025-09-27-14-30-25.txt
准备生成小学数学题目,请输入题目数量(10-30)或命令:切换为初中
准备生成初中数学题目请输入生成题目数量20
题目已保存到exams/张三1/2025-09-27-14-31-10.txt
测试方案
功能测试用例
测试场景 输入数据 预期结果 实际结果
正确登录 张三1, 123 登录成功,显示小学出题
错误登录 张三1, 错误密码 提示登录失败
生成题目 输入15 生成15道题目并保存
切换难度 切换为初中 显示初中出题模式
边界测试 输入9或31 提示数量范围错误
性能测试
响应时间:题目生成<1
内存占用:运行期<100MB
文件生成30题文件大小<5KB
代码结构
单一职责:每个类只负责特定功能
接口隔离:通过接口定义题目生成契约
异常处理完善的try-catch异常处理机制
项目特点
技术亮点
多态应用:通过接口实现不同难度的题目生成策略
文件管理:自动创建目录结构,时间戳文件命名
编码处理统一UTF-8编码解决中文显示问题
输入验证:完善的用户输入验证和错误提示
用户体验
操作简便:清晰的命令行交互界面
提示友好:详细的中文操作提示
容错性强:完善的异常处理和输入验证
功能完整:覆盖需求文档所有核心功能
版本信息
版本历史
v1.0 (2025-09-25):初始框架
v1.1 (2025-09-26):初始版本,完成基本功能
v1.2 (2026-09-27): 修复编码问题,优化用户体验
依赖信息
Java版本JDK 8+
外部库无第三方依赖纯Java实现
开发日志
关键节点
2025-09-25项目初始化完成基础架构设计
2025-09-26实现用户认证和题目生成核心功能
2025-09-26完成文件保存和交互功能
2025-09-27优化编码问题完善错误处理
注意事项
运行提示
首次运行会自动创建exams目录结构
生成的文件使用UTF-8编码确保文本编辑器支持

@ -0,0 +1,3 @@
# 默认忽略的文件
/shelf/
/workspace.xml

@ -0,0 +1,10 @@
<component name="ArtifactManager">
<artifact type="jar" name="src:jar">
<output-path>$PROJECT_DIR$/out/artifacts/src_jar</output-path>
<root id="archive" name="src.jar">
<element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/META-INF/MANIFEST.MF" />
</element>
</root>
</artifact>
</component>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="23" project-jdk-type="JavaSDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/src.iml" filepath="$PROJECT_DIR$/.idea/src.iml" />
</modules>
</component>
</project>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: jdk.jpackage.main.Main

@ -0,0 +1,400 @@
import java.util.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
// 用户类型枚举
enum UserType {
ELEMENTARY("小学"),
JUNIOR("初中"),
SENIOR("高中");
private final String displayName;
UserType(String displayName) {
this.displayName = displayName;
}
public String getDisplayName() {
return displayName;
}
public static UserType fromString(String type) {
for (UserType userType : values()) {
if (userType.getDisplayName().equals(type)) {
return userType;
}
}
return null;
}
}
// 用户类
class User {
private String username;
private String password;
private UserType userType;
public User(String username, String password, UserType userType) {
this.username = username;
this.password = password;
this.userType = userType;
}
public String getUsername() { return username; }
public String getPassword() { return password; }
public UserType getUserType() { return userType; }
}
// 用户认证器
class UserAuthenticator {
private static final Map<String, User> users = new HashMap<>();
static {
// 使用英文用户名避免中文编码问题
users.put("张三1", new User("张三1", "123", UserType.ELEMENTARY));
users.put("张三2", new User("张三2", "123", UserType.ELEMENTARY));
users.put("张三3", new User("张三3", "123", UserType.ELEMENTARY));
users.put("李四1", new User("李四1", "123", UserType.JUNIOR));
users.put("李四2", new User("李四2”", "123", UserType.JUNIOR));
users.put("李四3", new User("李四3", "123", UserType.JUNIOR));
users.put("王五1", new User("王五1", "123", UserType.SENIOR));
users.put("王五2", new User("王五2", "123", UserType.SENIOR));
users.put("王五3", new User("王五3", "123", UserType.SENIOR));
}
public User authenticate(String username, String password) {
User user = users.get(username);
if (user != null && user.getPassword().equals(password)) {
return user;
}
return null;
}
}
// 题目类
class Question {
private int number;
private String content;
public Question(int number, String content) {
this.number = number;
this.content = content;
}
public int getNumber() { return number; }
public String getContent() { return content; }
@Override
public String toString() {
return number + ". " + content;
}
}
// 题目生成器接口
interface QuestionGenerator {
List<Question> generateQuestions(int count);
boolean isValidQuestionCount(int count);
}
// 小学题目生成器
class ElementaryQuestionGenerator implements QuestionGenerator {
private Random random = new Random();
private String[] operators = {"+", "-", "×", "÷"};
@Override
public List<Question> generateQuestions(int count) {
List<Question> questions = new ArrayList<>();
for (int i = 1; i <= count; i++) {
questions.add(new Question(i, generateQuestion()));
}
return questions;
}
private String generateQuestion() {
int operandCount = random.nextInt(3) + 2; // 2-4个操作数
StringBuilder question = new StringBuilder();
for (int i = 0; i < operandCount; i++) {
int num = random.nextInt(100) + 1;
question.append(num);
if (i < operandCount - 1) {
String op = operators[random.nextInt(operators.length)];
question.append(" ").append(op).append(" ");
}
}
return question.toString();
}
@Override
public boolean isValidQuestionCount(int count) {
return count >= 10 && count <= 30 || count == -1;
}
}
// 初中题目生成器
class JuniorQuestionGenerator implements QuestionGenerator {
private Random random = new Random();
private String[] operators = {"+", "-", "×", "÷"};
@Override
public List<Question> generateQuestions(int count) {
List<Question> questions = new ArrayList<>();
for (int i = 1; i <= count; i++) {
questions.add(new Question(i, generateQuestion()));
}
return questions;
}
private String generateQuestion() {
int operandCount = random.nextInt(3) + 2;
StringBuilder question = new StringBuilder();
// 先添加普通运算
for (int i = 0; i < operandCount - 1; i++) {
int num = random.nextInt(100) + 1;
question.append(num);
if (i < operandCount - 2) {
String op = operators[random.nextInt(operators.length)];
question.append(" ").append(op).append(" ");
}
}
// 添加平方或开根号
int specialNum = random.nextInt(20) + 1;
if (random.nextBoolean()) {
question.append(" × ").append(specialNum).append("^2");
} else {
question.append(" × √").append(specialNum); // 使用数学符号
}
return question.toString();
}
@Override
public boolean isValidQuestionCount(int count) {
return count >= 10 && count <= 30 || count == -1;
}
}
// 高中题目生成器
class SeniorQuestionGenerator implements QuestionGenerator {
private Random random = new Random();
private String[] operators = {"+", "-", "×", "÷"};
private String[] trigFunctions = {"sin", "cos", "tan"};
@Override
public List<Question> generateQuestions(int count) {
List<Question> questions = new ArrayList<>();
for (int i = 1; i <= count; i++) {
questions.add(new Question(i, generateQuestion()));
}
return questions;
}
private String generateQuestion() {
int operandCount = random.nextInt(3) + 2;
StringBuilder question = new StringBuilder();
// 先添加普通运算
for (int i = 0; i < operandCount - 1; i++) {
int num = random.nextInt(100) + 1;
question.append(num);
if (i < operandCount - 2) {
String op = operators[random.nextInt(operators.length)];
question.append(" ").append(op).append(" ");
}
}
// 添加三角函数
String trig = trigFunctions[random.nextInt(trigFunctions.length)];
int angle = random.nextInt(360);
question.append(" × ").append(trig).append("(").append(angle).append("°)");
return question.toString();
}
@Override
public boolean isValidQuestionCount(int count) {
return count >= 10 && count <= 30 || count == -1;
}
}
// 文件管理器
class FileManager {
private static final String BASE_DIR = "exams/";
public String saveQuestions(String username, List<Question> questions) throws IOException {
String userDir = BASE_DIR + username + "/";
File dir = new File(userDir);
if (!dir.exists()) {
dir.mkdirs();
}
String timestamp = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date());
String filename = userDir + timestamp + ".txt";
try (FileWriter writer = new FileWriter(filename)) {
for (int i = 0; i < questions.size(); i++) {
writer.write(questions.get(i).toString());
if (i < questions.size() - 1) {
writer.write("\n\n");
}
}
}
return filename;
}
}
// 会话管理器
class SessionManager {
private User currentUser;
private UserType currentType;
private QuestionGenerator currentGenerator;
public SessionManager() {}
public void login(User user) {
this.currentUser = user;
this.currentType = user.getUserType();
updateGenerator();
System.out.println("当前选择为" + currentType.getDisplayName() + "出题");
}
public void switchType(UserType newType) {
this.currentType = newType;
updateGenerator();
System.out.println("准备生成" + currentType.getDisplayName() + "数学题目,请输入生成题目数量");
}
private void updateGenerator() {
switch (currentType) {
case ELEMENTARY:
currentGenerator = new ElementaryQuestionGenerator();
break;
case JUNIOR:
currentGenerator = new JuniorQuestionGenerator();
break;
case SENIOR:
currentGenerator = new SeniorQuestionGenerator();
break;
}
}
public User getCurrentUser() { return currentUser; }
public UserType getCurrentType() { return currentType; }
public QuestionGenerator getCurrentGenerator() { return currentGenerator; }
public boolean isLoggedIn() { return currentUser != null; }
public void logout() {
currentUser = null;
currentType = null;
currentGenerator = null;
}
}
// 主程序
public class Main {
private static UserAuthenticator authenticator = new UserAuthenticator();
private static SessionManager sessionManager = new SessionManager();
private static FileManager fileManager = new FileManager();
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("=== 中小学数学卷子自动生成程序 ===");
System.out.println("请正确输入账号与密码:");
System.out.println();
while (true) {
if (!sessionManager.isLoggedIn()) {
handleLogin();
} else {
handleLoggedInSession();
}
}
}
private static void handleLogin() {
System.out.print("请输入用户名: ");
String username = scanner.nextLine().trim();
if (username.equalsIgnoreCase("exit")) {
System.exit(0);
}
System.out.print("请输入密码: ");
String password = scanner.nextLine().trim();
User user = authenticator.authenticate(username, password);
if (user == null) {
System.out.println("登录失败!请重新输入。");
System.out.println("------------------------------");
return;
}
sessionManager.login(user);
}
private static void handleLoggedInSession() {
System.out.print("准备生成" + sessionManager.getCurrentType().getDisplayName() +
"数学题目,请输入题目数量(10-30)或命令(切换为小学/初中/高中): ");
String input = scanner.nextLine().trim();
if (input.startsWith("切换为")) {
handleSwitchType(input);
return;
}
if (input.equalsIgnoreCase("退出")) {
sessionManager.logout();
System.out.println("已退出当前用户");
return;
}
try {
int questionCount = Integer.parseInt(input);
if (questionCount == -1) {
sessionManager.logout();
System.out.println("已退出当前用户");
return;
}
if (questionCount < 10 || questionCount > 30) {
System.out.println("题目数量应在10-30之间");
return;
}
System.out.println("正在生成" + questionCount + "道题目...");
List<Question> questions = sessionManager.getCurrentGenerator().generateQuestions(questionCount);
String filename = fileManager.saveQuestions(
sessionManager.getCurrentUser().getUsername(), questions);
System.out.println("题目已保存到: " + filename);
} catch (NumberFormatException e) {
System.out.println("请输入有效的数字");
} catch (Exception e) {
System.out.println("错误: " + e.getMessage());
}
}
private static void handleSwitchType(String input) {
String typeStr = input.substring(3).trim();
UserType newType = UserType.fromString(typeStr);
if (newType == null) {
System.out.println("请输入小学、初中或高中");
return;
}
sessionManager.switchType(newType);
}
}

@ -0,0 +1,21 @@
1. 60 / 30
2. 68 * 69
3. 88 + 14
4. 6 - 31
5. 86 + 100
6. 75 / 69
7. 85 + 82
8. 23 - 52
9. 28 * 10
10. 98 + 68
11. 63 - 16

@ -0,0 +1,39 @@
1. 76 - 22 + 4^2
2. 92 * 62 / 4^2
3. 57 + 72 - sqrt(3)
4. 51 / 100 - 10^2
5. 52 / 69 - sqrt(3)
6. 72 + 12 * sqrt(1)
7. 82 / 6 - 4^2
8. 51 / 12 * 10^2
9. 96 * 73 * 7^2
10. 33 * 75 * 1^2
11. 92 - 15 * 3^2
12. 23 + 50 + sqrt(4)
13. 91 + 62 / 1^2
14. 27 * 22 + 2^2
15. 5 * 71 - sqrt(6)
16. 20 * 51 * sqrt(9)
17. 94 + 8 - 1^2
18. 14 + 7 - sqrt(4)
19. 46 + 21 / 9^2
20. 24 * 71 / 2^2

@ -0,0 +1,29 @@
1. 70 * 2 * tan(222)
2. 41 * 57 * sin(142)
3. 75 * 89 * sin(68)
4. 32 + 6 + sin(273)
5. 76 * 80 * sin(117)
6. 56 / 10 / sin(259)
7. 22 + 58 + cos(216)
8. 64 - 39 - cos(99)
9. 56 - 57 - tan(36)
10. 84 + 73 + sin(273)
11. 14 * 54 * tan(323)
12. 70 - 77 - tan(296)
13. 38 + 29 + cos(65)
14. 96 * 50 * sin(228)
15. 21 - 25 - sin(70)

@ -0,0 +1,29 @@
1. 14 - 59 × 66
2. 80 + 51 - 61
3. 25 ÷ 91 × 8
4. 39 - 98 ÷ 31
5. 92 × 24 × 29
6. 58 - 99
7. 77 + 63
8. 79 × 15 - 45
9. 83 ÷ 15
10. 74 + 72 ÷ 87
11. 1 ÷ 48 ÷ 58
12. 50 + 19 × 95 ÷ 62
13. 14 + 75 + 73 - 56
14. 12 - 59 + 37 + 53
15. 52 - 14

@ -0,0 +1,39 @@
1. 43 - 63 × 36 - 16
2. 79 + 32 - 46 + 26
3. 82 - 42 - 48
4. 93 + 90 + 26
5. 29 × 17 × 28
6. 62 + 87
7. 8 × 78 × 8
8. 44 + 90
9. 48 + 98 × 75 ÷ 88
10. 24 - 82
11. 62 ÷ 83
12. 52 - 17 - 27
13. 55 + 92 ÷ 81 + 92
14. 22 - 82
15. 61 × 49
16. 76 + 8 + 53
17. 39 × 18
18. 66 × 33 ÷ 8 - 13
19. 62 + 36
20. 71 × 30

@ -0,0 +1,39 @@
1. 38 + 24
2. 66 + 40 ÷ 99
3. 91 + 41 ÷ 7 ÷ 45
4. 15 ÷ 18 + 26 × 14
5. 15 ÷ 4 × 88 + 29
6. 41 + 9
7. 54 - 80
8. 21 - 87
9. 43 - 70
10. 81 + 95 - 55
11. 68 ÷ 68
12. 5 ÷ 10
13. 2 ÷ 17 - 25
14. 19 ÷ 49 + 68
15. 34 ÷ 67 + 7
16. 37 × 34 ÷ 56 + 59
17. 89 ÷ 14 × 93
18. 72 ÷ 30 + 77 + 30
19. 40 ÷ 56
20. 34 - 62 - 44

@ -0,0 +1,39 @@
1. 46 × √13
2. 70 × 17?
3. 24 + 81 + 62 × √9
4. 97 ÷ 98 × 15?
5. 71 ÷ 75 × 5?
6. 47 × √4
7. 34 × √9
8. 80 × √7
9. 43 - 98 × 90 × 8?
10. 33 + 42 × √13
11. 39 × √6
12. 33 × 15?
13. 90 × √17
14. 34 ÷ 62 + 25 × √10
15. 99 × 5 × 1?
16. 24 ÷ 85 - 25 × 4?
17. 82 × 63 ÷ 43 × 7?
18. 16 + 74 × 10?
19. 6 - 99 × √4
20. 97 + 53 × √1

@ -0,0 +1,21 @@
1. 96 + 23 + 59 × √12
2. 91 × 15?
3. 16 ÷ 39 ÷ 93 × √11
4. 87 × 1?
5. 53 × 5?
6. 55 + 9 × 15?
7. 80 - 21 × √4
8. 99 × 61 × 2?
9. 52 - 15 × 13?
10. 51 - 33 × 5?
11. 57 × 19?

@ -0,0 +1,39 @@
1. 62 × 6?
2. 80 - 62 ÷ 88 × 15?
3. 60 ÷ 17 × 16?
4. 51 - 48 × 63 × √20
5. 76 - 19 × 12?
6. 82 × √17
7. 97 ÷ 45 × 8?
8. 79 × 80 + 37 × √11
9. 10 × √2
10. 91 × √10
11. 50 ÷ 27 × √6
12. 4 × 18?
13. 76 ÷ 47 - 14 × √8
14. 12 ÷ 25 × √20
15. 72 - 26 + 37 × 16?
16. 71 + 78 × √5
17. 61 + 31 × 5?
18. 85 × √13
19. 71 + 45 × √9
20. 11 ÷ 13 × √20

@ -0,0 +1,39 @@
1. 79 × 43 - 36 × √19
2. 79 × 69 × 1?
3. 2 × 6?
4. 24 × √6
5. 21 × √1
6. 87 + 69 × √9
7. 97 × √13
8. 91 ÷ 60 + 64 × 18?
9. 81 × √16
10. 19 + 69 × 8 × 3?
11. 19 ÷ 76 × √9
12. 16 + 76 × 12?
13. 13 + 6 × 17?
14. 11 + 19 - 16 × √15
15. 38 × √7
16. 20 × 30 × √7
17. 77 + 22 × 26 × √13
18. 26 + 6 - 87 × √9
19. 80 × √2
20. 85 × √18

@ -0,0 +1,39 @@
1. 80 + 33 × 9?
2. 91 × √6
3. 32 × 25 ÷ 86 × 6?
4. 98 + 59 × 2?
5. 44 × 61 × 75 × √13
6. 93 + 50 × √19
7. 14 × 2?
8. 55 × 5?
9. 89 × 70 - 82 × 3?
10. 36 - 98 + 73 × 6?
11. 43 + 27 × 4?
12. 77 × √13
13. 24 × 6?
14. 91 - 8 + 85 × 16?
15. 18 ÷ 84 × 24 × 9?
16. 51 × √12
17. 22 + 37 + 14 × √4
18. 74 - 70 + 28 × 14?
19. 51 × 42 × 28 × 18?
20. 55 × 26 × 100 × √1

@ -0,0 +1,39 @@
1. 55 - 22 + 75 × √9
2. 6 × 47 × 6?
3. 74 × √16
4. 52 ÷ 14 + 17 × 19?
5. 4 - 8 × √20
6. 53 × √17
7. 1 - 68 × √8
8. 62 × √8
9. 55 × 20?
10. 70 × 66 × 4?
11. 73 × 63 × 14?
12. 37 + 26 × 15?
13. 24 × √2
14. 88 × √15
15. 52 × 93 × 12?
16. 46 × 89 × 1?
17. 42 + 15 × √8
18. 67 + 18 × 67 × √1
19. 33 × 53 × √6
20. 41 - 31 × √12

@ -0,0 +1,39 @@
1. 55 + 68 × √20
2. 16 ÷ 49 - 68 × √17
3. 28 ÷ 31 × 16?
4. 68 × √17
5. 16 × 5?
6. 54 × √1
7. 25 × √17
8. 29 × 23 + 22 × √11
9. 45 × 13 × 5?
10. 74 + 77 × 64 × 2?
11. 87 × √3
12. 47 - 83 × 14?
13. 66 + 55 × √8
14. 73 + 18 × √11
15. 16 + 32 × √17
16. 61 × √10
17. 90 + 21 + 31 × √4
18. 33 × 10?
19. 64 × 12?
20. 76 × 2?

@ -0,0 +1,39 @@
1. 35 - 70 × √19
2. 12 × √16
3. 45 × 16?
4. 16 × √11
5. 96 × 15?
6. 39 ÷ 85 × 47 × 4?
7. 42 + 90 × 17?
8. 27 - 67 × 15?
9. 3 × √18
10. 44 × 59 × 13?
11. 57 ÷ 67 × √11
12. 55 + 8 × 1?
13. 39 × √4
14. 26 × 4?
15. 100 × 90 + 100 × 19?
16. 67 ÷ 32 ÷ 34 × √11
17. 49 × 18 - 74 × √19
18. 58 - 40 × 4?
19. 21 ÷ 75 ÷ 98 × 6?
20. 34 × 50 - 22 × 4?

@ -0,0 +1,39 @@
1. 23 - 53 ÷ 82 × 19?
2. 68 + 75 × 4?
3. 52 ÷ 22 × √6
4. 13 × √11
5. 37 + 33 × 69 × √8
6. 86 × 17 × 89 × √2
7. 35 - 15 × 14?
8. 44 × 3?
9. 29 × 4?
10. 84 × 6 × 10?
11. 44 - 21 × √3
12. 2 + 94 × √9
13. 21 × √19
14. 65 × 28 × 8 × 7?
15. 42 + 99 ÷ 11 × √19
16. 18 × √12
17. 57 × 20?
18. 67 + 31 × √4
19. 65 × 5?
20. 60 × 34 × 4?

@ -0,0 +1,39 @@
1. 9 × 8^2
2. 93 × 40 + 25 × √18
3. 18 × √11
4. 48 + 36 × √4
5. 57 × 87 × 37 × √17
6. 93 × 70 × √12
7. 65 × 20^2
8. 29 - 91 × 7^2
9. 61 × 29 × 9^2
10. 81 × √1
11. 17 × 62 ÷ 46 × √3
12. 75 ÷ 32 × 17 × √6
13. 35 - 3 × 81 × 11^2
14. 76 × 4^2
15. 14 × √15
16. 36 ÷ 49 × 46 × √19
17. 34 × 10^2
18. 13 × 64 × 3^2
19. 43 + 82 × 61 × √6
20. 72 - 5 × 18^2

@ -0,0 +1,31 @@
1. 34 + 55 × 49 × cos(114°)
2. 4 × tan(101°)
3. 73 - 22 - 71 × cos(269°)
4. 22 - 12 ÷ 3 × sin(179°)
5. 32 ÷ 38 + 41 × tan(116°)
6. 34 × cos(219°)
7. 49 ÷ 58 ÷ 30 × sin(233°)
8. 87 - 28 × tan(225°)
9. 47 - 91 - 71 × tan(87°)
10. 66 ÷ 43 ÷ 68 × tan(90°)
11. 1 ÷ 57 - 45 × sin(5°)
12. 82 - 47 × cos(152°)
13. 2 + 47 × tan(268°)
14. 22 × tan(39°)
15. 1 × sin(306°)
16. 72 × sin(293°)
Loading…
Cancel
Save