Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Новая версия моего калькулятора. Если что опять не так, не смейтесь. Сделал после 5 дневного чтения книги.
- /*Класс Launcher. Используется для запуска программы,ввода данных для вычисления и вывода результата вычислений*/
- import java.io.*;
- public class Launcher
- {
- public static void main(String[] args) throws IOException, NumberFormatException{
- double secondInt=0;
- BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Калькулятор v.1.03");
- System.out.println("Введите первое число, затем знак действия, затем второе число(если необходимо)");
- double firstInt=Double.parseDouble(reader.readLine());
- String sign=reader.readLine();
- if(!(sign.equals("!")))
- { secondInt=Double.parseDouble(reader.readLine());}
- System.out.println("—————————————————————");
- AdditionalFunctional newAdds=new AdditionalFunctional();
- BaseFunctional base=new BaseFunctional();
- if(sign.equals("+"))
- base.addition(firstInt,secondInt);
- else if(sign.equals("/")||sign.equals("\\"))
- base.segmentation(firstInt,secondInt);
- else if(sign.equals("-"))
- base.subtraction(firstInt,secondInt);
- else if(sign.equals("*"))
- base.multiplication(firstInt,secondInt);
- else if(sign.equals("!"))
- newAdds.factorial(firstInt);
- else System.out.println("Error! Unknown sign!");
- }
- }
- /*Класс BaseFunctional. Используется для проведения основных вычислений*/
- import java.math.*;
- public class BaseFunctional
- {
- public void addition(double integer1,double integer2)
- {
- double result=integer1+integer2;
- BigDecimal x=new BigDecimal(result);
- System.out.println("= "+x.setScale(4,RoundingMode.HALF_UP));
- }
- public void subtraction(double integer1,double integer2)
- {
- double result=integer1-integer2;
- BigDecimal x=new BigDecimal(result);
- System.out.println("= "+x.setScale(4,RoundingMode.HALF_UP));
- }
- public void multiplication(double integer1,double integer2)
- {
- double result=integer1*integer2;
- BigDecimal x=new BigDecimal(result);
- System.out.println("= "+x.setScale(6,RoundingMode.HALF_UP));
- }
- public void segmentation(double integer1,double integer2)
- {
- double result=integer1/integer2;
- BigDecimal x=new BigDecimal(result);
- System.out.println("= "+x.setScale(6,RoundingMode.HALF_UP));
- }
- }
- /*Класс AdditionalFunctional. Используется для выполнения дополнительных вычислений.*/
- public class AdditionalFunctional
- {
- void factorial(double InputInt){
- long result=1;
- if(InputInt==0)
- {result=1;}
- int d=0;
- for(int a=0;a<InputInt;a++){
- result=result*++d;
- }
- if(result<0&&InputInt>0)
- System.out.println("Error! overflow");
- else
- System.out.println("= "+result);
- }
- }
- Полностью работоспособен. В будущем планирую добавить новые математические действия.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement