Laboratoriya ishdan maqsad: Android Studioda arifmetik (+,-,*, /, ^) amallarni bajaruvchi oddiy kalkulator yaratish.
Ixtiyoriy turdagi ikki yoki bir nechta sonni o’zaro qo’shish mumkin bo’lsin.
Ixtiyoriy turdagi ikki yoki bir nechta sonni o’zaro ayirish mumkin bo’lsin.
Ixtiyoriy turdagi ikki yoki bir nechta sonni o’zaro ko’paytirish mumkin bo’lsin.
Ixtiyoriy turdagi ikki yoki bir nechta sonni o’zaro bo’lish mumkin bo’lsin.
Ixtiyoriy turdagi ikki sonni darajaga kotarish amallari bajarilsin.
Labaratoriya topshirig’ini bajarish tartibi: Android Studio’da beshta asosiy arifmetik amalni bajaradigan oddiy kalkulyator:
Bo'sh faoliyat bilan yangi Android Studio loyihasini yaratamiz.
Activity_main.xml faylida kirish va chiqishni ko'rsatish uchun vertikal yo'naltirilgan LinearLayout va bir nechta TextViews va EditTexts qo'shish.
MainActivity nomli yangi Java sinfini yaratamiz va quyidagi kodni kiritamiz:
1-qadam:
Ilova nomi bilan yangi Android dastur loyihasini yaratish: "Kalkulyator" va to'plam nomi: "Umarov Shoxrux".
2-qadam:
Ilova belgisi uchun har qanday PNG rasm faylini oling. (Minimal hajmi 256x256 piksel bo'lishi tavsiya etiladi). Ushbu belgi Google Play-da va Android qurilmalarining dasturlar menyusida namoyish qilish uchun ishlatiladi.
4-qadam:
Faollik_main.xml faylining tarkibini quyidagi kod bilan almashtiring. Ushbu kod TextView-ni kalkulyator raqamlari ekrani va ba'zi kerakli tugmalar sifatida yaratadi. Android-ning standart klaviatura yordamida foydalanuvchi tomonidan qo'lda kiritilishini oldini olish uchun EditText o'rniga TextView ishlatiladi.
case R.id.addButton:
calculate(input, "+");
break;
case R.id.subtractButton:
calculate(input, "-");
break;
case R.id.multiplyButton:
calculate(input, "*");
break;
case R.id.divideButton:
calculate(input, "/");
break;
case R.id.powerButton:
calculate(input, "^");
break;
case R.id.clearButton:
clear();
break;
case R.id.equalsButton:
if (!currentOperator.isEmpty()) {
BigDecimal operand = new BigDecimal(input);
calculate(operand, currentOperator);
}
break;
}
}
if (result.compareTo(BigDecimal.ZERO) == 0) {
result = operand;
} else {
switch (operator) {
case "+":
result = result.add(operand);
break;
case "-":
result = result.subtract(operand);
break;
case "*":
result = result.multiply(operand);
break;
case "/":
result = result.divide(operand, RoundingMode.HALF_UP);
break;
case "^":
result = result.pow(operand.intValue());
break;
}
}
inputEditText.setText("");
currentOperator = operator;
outputTextView.setText(result.toString());
}
private void clear() {
inputEditText.setText("");
currentOperator = "";
result = new BigDecimal(BigInteger.ZERO);
outputTextView.setText("");
}
}