Advertisement
Guest User

Untitled

a guest
Aug 1st, 2014
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.10 KB | None | 0 0
  1. Новая версия моего калькулятора. Если что опять не так, не смейтесь. Сделал после 5 дневного чтения книги.
  2. /*Класс Launcher. Используется для запуска программы,ввода данных для вычисления и вывода результата вычислений*/
  3. import java.io.*;
  4. public class Launcher
  5. {
  6. public static void main(String[] args) throws IOException, NumberFormatException{
  7. double secondInt=0;
  8. BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
  9. System.out.println("Калькулятор v.1.03");
  10. System.out.println("Введите первое число, затем знак действия, затем второе число(если необходимо)");
  11. double firstInt=Double.parseDouble(reader.readLine());
  12. String sign=reader.readLine();
  13. if(!(sign.equals("!")))
  14. { secondInt=Double.parseDouble(reader.readLine());}
  15. System.out.println("—————————————————————");
  16. AdditionalFunctional newAdds=new AdditionalFunctional();
  17. BaseFunctional base=new BaseFunctional();
  18. if(sign.equals("+"))
  19. base.addition(firstInt,secondInt);
  20. else if(sign.equals("/")||sign.equals("\\"))
  21. base.segmentation(firstInt,secondInt);
  22. else if(sign.equals("-"))
  23. base.subtraction(firstInt,secondInt);
  24. else if(sign.equals("*"))
  25. base.multiplication(firstInt,secondInt);
  26. else if(sign.equals("!"))
  27. newAdds.factorial(firstInt);
  28. else System.out.println("Error! Unknown sign!");
  29. }
  30. }
  31.  
  32. /*Класс BaseFunctional. Используется для проведения основных вычислений*/
  33. import java.math.*;
  34. public class BaseFunctional
  35. {
  36.  
  37. public void addition(double integer1,double integer2)
  38. {
  39. double result=integer1+integer2;
  40. BigDecimal x=new BigDecimal(result);
  41. System.out.println("= "+x.setScale(4,RoundingMode.HALF_UP));
  42. }
  43. public void subtraction(double integer1,double integer2)
  44. {
  45. double result=integer1-integer2;
  46. BigDecimal x=new BigDecimal(result);
  47. System.out.println("= "+x.setScale(4,RoundingMode.HALF_UP));
  48. }
  49. public void multiplication(double integer1,double integer2)
  50. {
  51. double result=integer1*integer2;
  52. BigDecimal x=new BigDecimal(result);
  53. System.out.println("= "+x.setScale(6,RoundingMode.HALF_UP));
  54. }
  55.  
  56. public void segmentation(double integer1,double integer2)
  57. {
  58. double result=integer1/integer2;
  59. BigDecimal x=new BigDecimal(result);
  60. System.out.println("= "+x.setScale(6,RoundingMode.HALF_UP));
  61. }
  62. }
  63.  
  64. /*Класс AdditionalFunctional. Используется для выполнения дополнительных вычислений.*/
  65. public class AdditionalFunctional
  66. {
  67. void factorial(double InputInt){
  68. long result=1;
  69. if(InputInt==0)
  70. {result=1;}
  71. int d=0;
  72. for(int a=0;a<InputInt;a++){
  73. result=result*++d;
  74. }
  75. if(result<0&&InputInt>0)
  76. System.out.println("Error! overflow");
  77. else
  78. System.out.println("= "+result);
  79. }
  80. }
  81.  
  82. Полностью работоспособен. В будущем планирую добавить новые математические действия.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement