본문 바로가기

실시간 운영체제

[실시간 운영체제] 연산 확인 작업 (pt.2)

사칙연산 계산해주는 코드입니다.

높은 우선수위부터 계산될 수 있도록 작성하였습니다.

 

 

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);
            }
        }
    }
}