사칙연산 계산해주는 코드입니다.
높은 우선수위부터 계산될 수 있도록 작성하였습니다.

package com.example.arithmetic_test_advanced;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private EditText Answer;
private TextView Example, Comment;
final Random myRandom = new Random();
int Correct_answer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Answer = (EditText) findViewById(R.id.answer_1);
Example = (TextView) findViewById(R.id.example_1);
Comment = (TextView) findViewById(R.id.comment);
}
public void click_generate(View view)
{
Answer.setText("");
Comment.setText("");
int Random_number_1 = myRandom.nextInt(10);
int Random_number_2 = myRandom.nextInt(10);
int Random_number_3 = myRandom.nextInt(10);
int Random_operator_1 = myRandom.nextInt(3);
int Random_operator_2 = myRandom.nextInt(3);
int bracket = myRandom.nextInt(2);
if (bracket == 0) {
if (Random_operator_1 == 0 && Random_operator_2 == 0) {
Example.setText(String.valueOf(Random_number_1) + "+" + (Random_number_2) +"+" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 + Random_number_2+Random_number_3;
}else if (Random_operator_1 == 0 && Random_operator_2 == 1) {
Example.setText(String.valueOf(Random_number_1) + "+"+ (Random_number_2) +"-" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 + Random_number_2-Random_number_3;
} else if (Random_operator_1 ==0 && Random_operator_2 == 2) {
Example.setText(String.valueOf(Random_number_1) + "+" + (Random_number_2) +"*" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 + Random_number_2*Random_number_3;
}
else if (Random_operator_1 == 1 && Random_operator_2 == 0) {
Example.setText(String.valueOf(Random_number_1) + "-" + (Random_number_2) +"+" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 - Random_number_2+Random_number_3;
}else if (Random_operator_1 == 1 && Random_operator_2 == 1) {
Example.setText(String.valueOf(Random_number_1) + "-"+ (Random_number_2) +"-" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 - Random_number_2-Random_number_3;
} else if (Random_operator_1 ==1 && Random_operator_2 == 2) {
Example.setText(String.valueOf(Random_number_1) + "-" + (Random_number_2) +"*" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 - Random_number_2*Random_number_3;
}
else if (Random_operator_1 == 2 && Random_operator_2 == 0) {
Example.setText(String.valueOf(Random_number_1) + "*" + (Random_number_2) +"+" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 * Random_number_2+Random_number_3;
}else if (Random_operator_1 == 2 && Random_operator_2 == 1) {
Example.setText(String.valueOf(Random_number_1) + "*" + (Random_number_2) +"-" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 * Random_number_2-Random_number_3;
} else if (Random_operator_1 == 2 && Random_operator_2 == 2) {
Example.setText(String.valueOf(Random_number_1) + "*" + (Random_number_2) +"*" + String.valueOf(Random_number_3));
Correct_answer = Random_number_1 * Random_number_2*Random_number_3;
}
}
else if (bracket == 1) {
int bracket_case = myRandom.nextInt(2);
if (bracket_case == 0) {
Example.setText("("+String.valueOf(Random_number_1) + "+" + (Random_number_2) +")*" + String.valueOf(Random_number_3));
Correct_answer = (Random_number_1 + Random_number_2)*Random_number_3;
}
else{
Example.setText("("+String.valueOf(Random_number_1) + "-" + (Random_number_2) +")*" + String.valueOf(Random_number_3));
Correct_answer = (Random_number_1 - Random_number_2)*Random_number_3;
}
}
else if (bracket == 2){
int bracket_case = myRandom.nextInt(2);
if (bracket_case == 0) {
Example.setText(String.valueOf(Random_number_1) + "*(" + (Random_number_2) +"+" + String.valueOf(Random_number_3)+")");
Correct_answer = Random_number_1 *(Random_number_2+Random_number_3);
}
else if (bracket_case == 1){
Example.setText(String.valueOf(Random_number_1) + "*(" + (Random_number_2) +"-" + String.valueOf(Random_number_3)+")");
Correct_answer = Random_number_1 *(Random_number_2-Random_number_3);
}
}
}
public void click_check(View view) {
String user_answer_string = Answer.getText().toString();
if (user_answer_string.length() !=0) {
int User_answer = Integer.parseInt(user_answer_string);
if (User_answer == Correct_answer) {
Comment.setText("Correect");
} else {
Comment.setText("Wrong, " + Correct_answer);
}
}
}
}'실시간 운영체제' 카테고리의 다른 글
| [실시간 운영체제] Open GL primitives (0) | 2023.06.14 |
|---|---|
| [실시간 운영체제] 버블정렬 (0) | 2023.05.04 |
| [실시간 운영체제] 계산기 (0) | 2023.04.27 |
| [실시간 운영체제] 환율 계산기 (0) | 2023.04.27 |
| [실시간 운영체제] 연산 확인 작업 (pt.1) (0) | 2023.04.27 |