JAVA1

나의 앱 만들기 1

강의소개

배웠으면 사용해야 합니다. 배우기만하고 사용하지 않으면 우리의 뇌는 억울해합니다. 서둘러서 배운 것을 활용해 나의 문제를 해결해봅시다. 

 

 

 

강의1

 

 

 

강의2

소스코드

변경사항

public class AccountingApp {

    public static void main(String[] args) {

		double valueOfSupply = 10000.0;
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueOfSupply * vatRate;
		double total = valueOfSupply + vat;
		double expense = valueOfSupply * expenseRate;
		double income = valueOfSupply - expense;
		double dividend1 = income * 0.5;
		double dividend2 = income * 0.3;
		double dividend3 = income * 0.2;

		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + vat);
		System.out.println("Total : " + total);
		System.out.println("Expense : " + expense);
		System.out.println("Income : " + income);
		System.out.println("Dividend 1 : " + dividend1);
		System.out.println("Dividend 2 : " + dividend2);
		System.out.println("Dividend 3 : " + dividend3);

	}

}

 

 

 

강의3

 

 

 

강의4

소스코드

변경사항

public class AccountingApp {

    public static void main(String[] args) {

		double valueOfSupply = Double.parseDouble(args[0]);
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueOfSupply * vatRate;
		double total = valueOfSupply + vat;
		double expense = valueOfSupply * expenseRate;
		double income = valueOfSupply - expense;
		double dividend1 = income * 0.5;
		double dividend2 = income * 0.3;
		double dividend3 = income * 0.2;

		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + vat);
		System.out.println("Total : " + total);
		System.out.println("Expense : " + expense);
		System.out.println("Income : " + income);
		System.out.println("Dividend 1 : " + dividend1);
		System.out.println("Dividend 2 : " + dividend2);
		System.out.println("Dividend 3 : " + dividend3);

	}

}

 

댓글

댓글 본문
  1. import javax.swing.JOptionPane;

    public class AppApp {

    public static void main(String[] args) {
    String 유통가=JOptionPane.showInputDialog("유통가를 입력하세요");
    System.out.println("유통가 / " +유통가);

    String 세율=JOptionPane.showInputDialog("세율(%)을 입력하세요");
    double Tpercent=Double.parseDouble(세율)/100;

    double VAT=Double.parseDouble(유통가)*Tpercent;
    System.out.println("VAT / " +VAT);

    double 소비가=Double.parseDouble(유통가)+VAT;
    System.out.println("소비가 / " +소비가);

    double 비용=Double.parseDouble(유통가)*3/10;
    System.out.println("비용 -> / " +비용);

    double 이익= Double.parseDouble(유통가)- 비용;
    System.out.println("이익 -> / " +이익);

    String Da=JOptionPane.showInputDialog("A의 배당률(%)을 입력하세요");
    String Db=JOptionPane.showInputDialog("B의 배당률(%)을 입력하세요");
    String Dc=JOptionPane.showInputDialog("C의 배당률(%)을 입력하세요");

    double 배당A= 이익*Double.parseDouble(Da)/100;
    double 배당B= 이익*Double.parseDouble(Db)/100;
    double 배당C= 이익*Double.parseDouble(Dc)/100;
    System.out.println("배당 -> / A: "+배당A+" / B: "+배당B+" / C: "+배당C+" /");


    }

    }
    2일찬데 어렵네요
  2. 집게사장
    2023.11.07 수강완료
  3. 2023.08.04
  4. 솜사탕
    2023.08.02 완료
  5. 히마
    razorbacks님 아래 댓글 참조해서 코딩

    import javax.swing.JOptionPane;

    public class aa {

    public static void main(String[] args) {

    String input = JOptionPane.showInputDialog("금액을 입력하세요.");
    double value = Double.parseDouble(input);
    double valueOfSupply = value;

    double vatRate = 0.1;
    double expenseRate = 0.3;
    double vat = valueOfSupply * vatRate;
    double total = valueOfSupply + vat;
    double expense = valueOfSupply * expenseRate;
    double income = valueOfSupply - expense;
    double dividend1 = income * 0.5;
    double dividend2 = income * 0.3;
    double dividend3 = income * 0.2;


    System.out.println("Value of supply: " + valueOfSupply);
    System.out.println("VAT: " + vat);
    System.out.println("Total: " + total);
    System.out.println("Expense: " + expense);
    System.out.println("Income: " + income);
    System.out.println("Dividend 1: " + dividend1);
    System.out.println("Dividend 2: " + dividend2);
    System.out.println("Dividend 3: " + dividend3);
    }
    }
  6. razorbacks
    :: 나의 앱 만들기 1
    - Fedora 38 리눅스, VScode, Adoptium Temurin 17.0.7 JDK 사용.

    지금까지 공부한 내용은 90% 이해.
    지금까지 배운 것을 토대로 이 프로그램을 개선하기로 했다.

    나의 앱 만들기에서 배운 AccoungtingApp 을 실습하고, '그렇다면, 인수가 변경될때마다 새로 컴파일하거나, 실행을 할 때마다, 인수를 실행 명령과 동시에 입력을 해주어야 한다.' 는 것이 불편한 것에서 생각하고

    프로그램이 실행되면, 직접 사용자가 입력할 수 있도록 바꾸기로 했다.

    ---- 생활코딩에서 배운 Java 레퍼런스를 검색하고 참조하는 방법
    import java.util.Scanner;

    Scanner inputValue = new Scanner(System.in);
    System.out.println("금액을 입력하세요.");
    double Value = inputValue.nextDouble();

    double ValueOfSupply = Value;
    ~~~~~
    inputvalue.close();
    를 통해서 프로그램 실행 후 사용자가 직접 입력하는 방식으로 변경.

    변경 후 GUI 화면으로 입력했으면 좋겠다는 생각으로 업그레이드.

    -- 생활코딩에서 배운 Programming DimmingLights 참조
    import javax.swing.JOptionPane;

    String inputValue = JOptionPane.showInputDialog("금액을 입력하세요.");
    double Value = Double.parseDouble(inputvalue);
    // String 을 입력 받고, String을 Double 로 전환

    로 개선함으로써 사용자가 조금 더 쉽게 쓸 수 있는 방향으로 개선.

    확실히 어느정도 이해하고 나면 확장 가능성을 고민하게 된다.
  7. 완료!
  8. ::나의 앱 만들기 1::
    []접근법
    1. 현실의 분석하여 문제 특정
    2. 특정된 문제에 대응하는 결과 도출
    3. 결과를 도출하기 위한 코드 작성
    4. 코드는 조작하기 쉽도록 작성할 것: 코딩의 패러다임: 최소한의 작업으로 결과 도출하기(중간 과정의 자동화)

    []변수를 이용한 앱 만들기
    refactor키를 이용하여 code 상의 반복되는 data를 variable로 지정 가능

    []입력값을 도입하는 앱 만들기
    목적: eclipse를 실행하지 않고도 컴퓨터 상에서 프로그램을 실행하는 법
    1. windows키 + r -> cmd
    2. cd + '(space)' + 경로
    3. java + 파일명
    4. java + 파일명 + 값
  9. 화려하게간다
    오호라.... 굿굿!
  10. 당당
    2023.04.10
  11. 밍구밍구
    완료!
  12. 비전공자의반란
    23-01-12 완
  13. didit
    23.01.08
  14. Min Jupiter
    22.12.08
  15. 화난 흰둥이
    221130
  16. 서우
    221020
  17. 보통사람 박코딩
    할수있다
  18. 꾸준히가답이다
    // cmd 명령어로 이클립스 없이 실행을 하기 위해서는, 이클리스 앱의 경로를 복사한 후
    cmd에서 cd(change directory) 경로 주소 를 입력 해서 지정을 해준뒤
    // DIR을 통해서 디렉토리에 있는 파일들을 확인 후, class 파일이 없다면
    javac AccountingApp 을 통해서 class로 컴파일 해주어서 생성을 시킨다.

    // 이렇게 기본적인 셋팅이 되었다면, java AccountingApp 30000.0등과 같이 input 값을
    넣게 되면 class 로 컴파일 시켜서 args 변수 값으로 받게되어 구동된다.

    // 다른 컴퓨터에서도 이 어플리케이션을 실행을 시키게 하고자 하면 class파일만 있어도 되지만
    다만, 조건은 해당 컴퓨터에 java virtual machine이 꼭 있어야만 하는 조건이 있어야 한다.
    그것이 아니라면 class 파일 뿐만이 아닌, java도 같이 있어야만 한다 .

    없을 경우에는 launch4j와 같은 솔루션도 내장을 시켜서 만들어 내야한다.
    이런 솔루션 프로그램을 만드는 기업을 solution 업체라고 부르나 보다..?
  19. 자바자바
    java popup input text swing을 사용해보면 어떨까요?
    대화보기
    • 후토마끼
      22.10.07
    • 코딩드림
      22.10.03
    • 가능해
      22.09.16
    • 일억개
      가보자아!!!!!!
    • Asanagi
      20220810
    • Lee Soyon
      사용자한테 직접 공급가를 입력받을 수 있으면 더 좋겠어요.
    • economin
      수강완료
    • happybeom
      7.16
    • edit->find&replace : 중복되는값을 한번에 원하는다른 값으로 변경가능 (crtl+f)
      마우스우클릭->refactor->extract local variable : 어떤값을 이클립스가 자동으로 변수에 데이터타입을 선언해줌 (Art+shift+L)
    • Osign
      22.07.03 시청 완료
    • 은평구핵주먹곽두팔
      22.06.30 완
    • 육도
      2022.05.01 완료
    • 가나다라
      2022.03.26 완료
    • thom
      220320 입력 값 도입 및 cmd로 앱실행 완료
    • yeri_
      혹시 해당 에러가 나시는 분이 있을까 하여 공유합니다. (class 파일도 확인후 6:06분 쯤 33333.0 입력할때 해당 되는 에러입니다.

      Error: A JNI error has occurred, please check your installation and try again
      Exception in thread "main" java.lang.UnsupportedClassVersionError: AccountingApp has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 52.0

      방법 : Myapp 폴더 오른쪽 클릭 > alt +enter(프라펄티) > 왼쪽 메뉴 중간 쯤 Java Compiler > compiler compliance level: 1.8로 변경(다른버전은 안해봤는데 1.8이 일반적이라고 하여 하였습니다) Apply and close 누르고 하시면 됩니다.

      또한, 예전 강의에서 arguments를 "10000.0" "20000.0" 이런식으로 두개 만드시는 분도 존재할텐데 이건 정확한 이유는 모르겠지만 args[0];으로 하면 잘 작동하나 [1]로 되면 cmd에서 33333.0을 넣을때 작동하지 않더라구요. 0으로 넣으시면 됩니다.
    • thom
      220318 따라하기 완료
    • 윤원
      220216
      찾기/바꾸기 기능
      Edit -> Find/Replace (ctrl+f)

      한번에 변수화시키는 방법 (alt+shift+L)
      Refactor -> extract local variable

      parse : 분석하다

      명령프롬프트에서 만든 클래스로 실행하는법
      .class 파일의 경로를 복사후
      명령프롬ㅁ프트 첫줄에 cd 띄고 붙여넣기
      그후 dir을 치면 클래스파일 보이는것 확인

      Run configurations -> arguments -> 값을 입력하고 apply -> run
      편집하려면 duplicate
    • MUK_
      2022.02.08 완료

      윈도우 기준
      cmd 에서 실행이 안되거나 에러가 떴을때 bin 파일 또는 src파일을 확인해보면 .class 또는 .java 파일이 있습니다.
      경로 복사후 cd 경로 + \bin 또는 \src를 추가로 입력해주시면 정상적으로 작동합니다.
    • 열정jk
      220206 감사합니다
    • 나연
      2022년 2월 4일 (목) 완료

      Right-click > `Refactor` > `Extract Local Variable`

      ```bash
      # Windows
      $ dir
      ```
      ``` bash
      # Mac or Linux
      $ ls - l
      ```

      ```bash
      $ java AccountingApp 33333.0
      ```

      다른 컴퓨터에서 실행하고 싶을 경우:
      - `.class` 파일 공유하고 그 컴퓨터에서 JVM 설치 여부 확인 후 파일 실행
      - JVM조차 설치 안 되어 있는 컴퓨터에서 실행하고 싶을 경우: Launch4j
      -- 프로그램에 JVM 내장
    • 카멜리안_최유리
      20220129 완료
    • BrightenTheWorld
      단축키: Shift + Alt + L = Extract Local Variable
      복잡한 변수를 간단한 변수로 변환

      public class AccountingApp {

      public static void main(String[] args) {

      System.out.println("Value of supply : "+(10000.0));
      System.out.println("VAT : "+ (10000*0.1));
      System.out.println("Total : "+ (10000.0+10000.0*0.1));
      System.out.println("Expense : "+ (10000.0*0.3));
      System.out.println("Income : "+ (10000.0 - 10000.0*0.3));
      System.out.println("dividend : "+(7000*5/10));
      System.out.println("dividend : "+(7000*3/10));
      System.out.println("dividend : "+(7000*2/10));
      }

      }

      위 코드는 변수 설정이 되지 않은 일회성의 코드, 한번 쓸 때는 좋지만 값을 변경해 줘야 할 때에는 소스코드를 변경해줘야 하는 번거로움이 있음

      public class AccountingApp {

      public static void main(String[] args) {

      double Value_Of_Supply = Double.parseDouble(args[0]);
      double VAT_Rate = Double.parseDouble(args[1]);
      double Expense_Rate = Double.parseDouble(args[2]);
      double Dividend_Rate_1 = Double.parseDouble(args[3]);
      double Dividend_Rate_2 = Double.parseDouble(args[4]);
      double Dividend_Rate_3 = Double.parseDouble(args[5]);

      double VAT = (Value_Of_Supply*VAT_Rate);
      double Total = (Value_Of_Supply+Value_Of_Supply*VAT_Rate);
      double Expense = (Value_Of_Supply*Expense_Rate);
      double Income = (Value_Of_Supply - Expense);
      double Sum_Dividend = Dividend_Rate_1+Dividend_Rate_2+Dividend_Rate_3;
      double dividend1 = (Income)*Dividend_Rate_1/Sum_Dividend;
      double dividend2 = (Income)*Dividend_Rate_2/Sum_Dividend;
      double dividend3 = (Income)*Dividend_Rate_3/Sum_Dividend;

      System.out.println("Value of supply : "+Value_Of_Supply);
      System.out.println("VAT : "+VAT);
      System.out.println("Total : "+ Total);
      System.out.println("Expense : "+ Expense);
      System.out.println("Income : "+ Income);
      System.out.println("dividend1 : "+dividend1);
      System.out.println("dividend2 : "+dividend2);
      System.out.println("dividend3 : "+dividend3);
      }

      }

      명령 프롬프트 창(cmd)에서 java AccountingApp 10000.0 0.1 0.3 5 3 2
      이제 소스코드를 변경하지 않고 매개변수인 공급가, 부가가치세율, 비용율, 배당율1, 배당율2, 배당율3 을 입력하여 부가가치세, 물건 가격, 비용, 소득, 배당가격을 구할 수 있다! Awesome!

      이제 class파일만 있으면 다른 컴퓨터에서도 실행이 가능하다. 단! java가 깔려있어야함
      java 없이도 파일을 실행하고싶다? Lunch4j사이트를 이용하자.
    • 김나루
      2022. 01. 01
      강의(실습x) - (2)
      2022. 01. 03
      강의(실습x) - (4)

      2022. 01. 04
      실습 - (2)
      실습 - (4)
    • 초보자바
      2021-12-05 실습0
      어제 본 것을 토대로 나의 흐름에 따라 단계별로 print부터 변수로 정리까지 해봤다.
      프로그램으로 할 수 없는 환경이므로 구름ide를 이용하여 Arguments나 popup기능을 못쓰는것은 아쉽지만 구상까진 해봤다
    • 초보자바
      2021-12-04 실습x 강의0
      내일 실습까지 완료하고 복습 텍스트 업로드!
    • 김휘철
      잘 봤습니다~
    • chalieya
      cmd 창에서 dir을 해보면 AccountingApp.java 가 있는데 왜 실행이 안되는지 모르겠네요.. 아래 댓글로 있는데로 해봐도 안되는 이유는 뭘까요? ? ? javac가 실행이 안되어서 class 파일이 안만들어지고 실행이 안되는거 같기는 한데... javac는 왜 안되는 걸까요??? 구글링해보니 javac 하게 만드는 방법도 따라 해봤는데 안되네요.. ㅠㅠ
      한 참 후 ... 다시 검색해보니.. cmd 창을 닫고 다시 켜서 해보니 제대로 작동하는 걸 확인했습니다.
      src 폴더로 들어가서 class파일이 생성된걸 확인했다면 프롬프트에 java AccountingApp 30000 이라고 입력하니 실행이 되네요.. 하하하 신난다. ^^
    • syh712
      2021-11-22
      1. 기본회계앱 만들기
      2. 변수값도입, 출력값 입력.. 마지막에 cmd에서 실행이 안됨 ㅠㅠ.
      3. Lunch4j
    • 나자바바라
      2021. 11. 08.
    • 워메
      경로에 오셨으면 java AccountingApp.java
      .java를 붙이셔야 하고 이래도 안되면
      java -cp "." AccountingApp.java 라고 해보세요. 값입력하셔야하구요.
      그리고 강의 보실때 잘안되시면 동영상 댓글을 보세요 비슷한 문제인분들 많으셔서요 ^^
      또 단축키팁같은거도 얻어가요
      대화보기
      • 윈도우로 cmd로 실행하고 있는데, 'C드라이브의 볼륨에는 이름이 없습니다.' 라고 뜨는 게 맞나요...?
        그리고 그 다음 Java AccountingApp 치고 들어갔는데 Error: Could not find or load main class AccountApp(생략)
        이런 에러가 나오네요..
        윈도우로 하려면 어떻게 해야 하는지, 뭐가 잘못되었는지 고수님들... 알려주세요!
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기