Advertisement
Rementai

kalkulator

Nov 7th, 2022
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.38 KB | None | 0 0
  1. package com.example.lab04;
  2.  
  3. import static java.lang.Math.abs;
  4. import static java.lang.Math.log10;
  5. import static java.lang.Math.pow;
  6. import static java.lang.Math.sqrt;
  7.  
  8. import androidx.appcompat.app.AppCompatActivity;
  9.  
  10. import android.annotation.SuppressLint;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.TextView;
  15.  
  16. import org.w3c.dom.Text;
  17.  
  18. public class MainActivity extends AppCompatActivity {
  19.  
  20.     boolean isNewOperator = true;
  21.     TextView ResultTV;
  22.     TextView WorkingsTV;
  23.     String operator = "";
  24.     String workings = "";
  25.  
  26.     @Override
  27.     protected void onCreate(Bundle savedInstanceState) {
  28.         super.onCreate(savedInstanceState);
  29.         setContentView(R.layout.activity_main);
  30.         WorkingsTV = findViewById(R.id.workings);
  31.         ResultTV = findViewById(R.id.result);
  32.     }
  33.  
  34.     public void clickNumber(View view) {
  35.  
  36.         if (isNewOperator) {
  37.             WorkingsTV.setText("");
  38.         }
  39.         isNewOperator = false;
  40.  
  41.         String number = WorkingsTV.getText().toString();
  42.  
  43.         switch (view.getId()) {
  44.             case R.id.oneButton:
  45.                 number += "1";
  46.                 break;
  47.             case R.id.twoButton:
  48.                 number += "2";
  49.                 break;
  50.             case R.id.threeButton:
  51.                 number += "3";
  52.                 break;
  53.             case R.id.fourButton:
  54.                 number += "4";
  55.                 break;
  56.             case R.id.fiveButton:
  57.                 number += "5";
  58.                 break;
  59.             case R.id.sixButton:
  60.                 number += "6";
  61.                 break;
  62.             case R.id.sevenButton:
  63.                 number += "7";
  64.                 break;
  65.             case R.id.eightButton:
  66.                 number += "8";
  67.                 break;
  68.             case R.id.nineButton:
  69.                 number += "9";
  70.                 break;
  71.             case R.id.zeroButton:
  72.                 number += "0";
  73.                 break;
  74.             case R.id.minusButton:
  75.                 if(Double.parseDouble(number) > 0.0) {
  76.                     number = "-" + number;
  77.                     break;
  78.                 } else {
  79.                     number = String.valueOf(abs(Double.parseDouble(number)));
  80.                     break;
  81.                 }
  82.  
  83.             case R.id.commaButton:
  84.                 number += ".";
  85.                 break;
  86.         }
  87.         WorkingsTV.setText(number);
  88.     }
  89.  
  90.     public void clickOperator(View view) {
  91.         isNewOperator = true;
  92.         workings = WorkingsTV.getText().toString();
  93.  
  94.         switch (view.getId()) {
  95.             case R.id.sumButton:
  96.                 operator = "+";
  97.                 break;
  98.             case R.id.subButton:
  99.                 operator = "-";
  100.                 break;
  101.             case R.id.mulButton:
  102.                 operator = "x";
  103.                 break;
  104.             case R.id.divButton:
  105.                 operator = "/";
  106.                 break;
  107.             case R.id.logButton:
  108.                 operator = "log10";
  109.                 break;
  110.             case R.id.sqrtButton:
  111.                 operator = "SQRT";
  112.                 break;
  113.             case R.id.cuberootButton:
  114.                 operator = "^3";
  115.                 break;
  116.             case R.id.squarerootButton:
  117.                 operator = "^2";
  118.                 break;
  119.             case R.id.factorialButton:
  120.                 operator = "x!";
  121.                 break;
  122.  
  123.         }
  124.         WorkingsTV.setText(operator);
  125.     }
  126.  
  127.     public void showResult(View view) {
  128.         String value = WorkingsTV.getText().toString();
  129.         double result = 0.0;
  130.  
  131.         switch (operator) {
  132.             case "+":
  133.                 result = Double.parseDouble(workings) + Double.parseDouble(value);
  134.                 break;
  135.             case "-":
  136.                 result = Double.parseDouble(workings) - Double.parseDouble(value);
  137.                 break;
  138.             case "x":
  139.                 result = Double.parseDouble(workings) * Double.parseDouble(value);
  140.                 break;
  141.             case "/":
  142.                 result = Double.parseDouble(workings) / Double.parseDouble(value);
  143.                 break;
  144.             case "SQRT":
  145.                 result = sqrt(Double.parseDouble(workings));
  146.                 break;
  147.             case "^3":
  148.                 result = pow(Double.parseDouble(workings),3);
  149.                 break;
  150.             case "^2":
  151.                 result = pow(Double.parseDouble(workings),2);
  152.                 break;
  153.             case "log10":
  154.                 result = log10(Double.parseDouble(workings));
  155.                 break;
  156.             case "x!":
  157.                 result = factorial(Double.parseDouble(workings));
  158.                 break;
  159.         }
  160.         ResultTV.setText(result + "");
  161.         WorkingsTV.setText("");
  162.         workings = "";
  163.     }
  164.  
  165.     public double factorial(double num){
  166.         double fact = 1;
  167.         for(int i = 1; i <= num; i++) {
  168.             fact *= i;
  169.         }
  170.         return fact;
  171.     }
  172.  
  173.  
  174.     public void allClear(View view) {
  175.         WorkingsTV.setText("");
  176.         ResultTV.setText("0");
  177.         isNewOperator = true;
  178.     }
  179.  
  180.     public void countPerc(View view) {
  181.         double result = Double.parseDouble(WorkingsTV.getText().toString()) / 100;
  182.         WorkingsTV.setText("%");
  183.         ResultTV.setText(result + "");
  184.         isNewOperator = true;
  185.     }
  186.  
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement