본문 바로가기

Java/Java1 - 수익금 계산기 프로젝트

수익금 계산기 update

728x90
반응형

그동안 자바를 더 배우고 나서 고쳐야지 못해먹겠다고 생각하고

손 놓고 있던 수익금 계산기를 다시 건드리고 있다. 

 

 

일단 대충 완성했었는데 다시 손보는 이유는 

console에서 사용자가 직접 변수를 입력해서 받아오게 만드는 법을 배웠기 때문이다. 

그건 Scanner 라는 java 문법을 이용하는건데, 관련 정리는 블로그 다른 포스팅에서 이미 했기 때문에 링크만 첨부하겠다. 

 

https://angehende-ingenieur.tistory.com/61

 

국비 교육 2일차

근데 뭐 2일차인게 중요한것도 아니고 다음부터는 배운 내용을 제목으로 해야겠다. 일단 오늘은 배운 내용을 정리해보자면 데이터 형과 변수에 대해서 배웠다. 당연히 다 아는 내용일거라 생각

angehende-ingenieur.tistory.com

 

여튼 그래서 포타 판매부수를 입력을 하면 수익금을 계산해주는 방식으로 프로그램을 다시 짰다. 

근데 거의 뭐 대박이다. 

 

 

import java.util.Scanner;


	
public class MonthlyEarning2 {
		public static void main(String[] args) {
			
			Scanner scanner = new Scanner(System.in);
		
			
			int valueOfText = 500; 
			System.out.print("판매 부수 : ");
			int numberOfSell = scanner.nextInt();
			System.out.println("수익 : "+ (valueOfText*numberOfSell));
			
			double adjustmentRate = 0.1;
			System.out.println("정산 수수료 : "+(valueOfText*numberOfSell*adjustmentRate));
			
			double taxRate = adjustmentRate*0.1;
			System.out.printf("부가가치세 :" + "%.1f\n",(valueOfText*numberOfSell*adjustmentRate)*taxRate);
			
			
			System.out.printf("최종 지급 금액 :"+ "%.1f",(valueOfText*numberOfSell)-(valueOfText*numberOfSell*adjustmentRate)-(valueOfText*numberOfSell*adjustmentRate)*taxRate);
			
			
		}
	}
	


	

 

 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

입력값 받아오는걸 업데이트하고 그 외의 모든 것들이 다시 원시적으로 돌아갔네용 ^^

 

나도 간지나게 바로 뚝딱뚝딱 바꾸고 싶었는데,

일단 코드가 돌아가게 짜는거에 급급해서 한 번에 효율적인 코드를 못만들겠다....

(아직은)

 

 

함수를 써서 저 복잡하고 아름답지 않은 계산식들을 어서 정리해줘야겠다...

 

 

 

 

import java.util.Scanner;

class PostypeAccounting2 {
	
	public static double valueOfText;
	public static double AdjustmentRate;
	
	static void print () {		
		System.out.print("판매 부수 : ");
		System.out.println("수익 : "+ getEarning());
		System.out.println("정산 수수료 :" + getAdjustment());
		System.out.println("부가가치세 :" + getTax());
		System.out.println("최종 지급 금액 :" + getFinalEarning());
	}
	
	
	private static double getFinalEarning() {
		double FinalEarning = getEarning()-getAdjustment()-getTax();
		return FinalEarning;
	}
	
	private static double getTax() {
		double Tax = getEarning()*getTaxRate();
		return Tax;
	}
	
	private static double getAdjustment() {
		double Adjustment = getEarning()*AdjustmentRate;
		return Adjustment;
	}
	
	private static double getTaxRate() {
		double TaxRate = AdjustmentRate*0.1;
		return TaxRate;
	}
	
	private static double getEarning() {
		double Earning = valueOfText*numberOfSell;
		return Earning;
	}
	
}


	
public class MonthlyEarning2 {
		public static void main(String[] args) {
			
			PostypeAccounting2.valueOfText= 500;
			static Scanner scanner = new Scanner(System.in);
			PostypeAccounting2.numberOfSell = scanner.nextInt();
			PostypeAccounting2.AdjustmentRate = 0.1;
			
			PostypeAccounting2.print();
			
		}

	}
	

 

눈물이 흐르는 오류 있는 코드.... 

 

 

:(

 

 

일단 함수를 써서 계산식들을 다 따로 처리해주긴 했는데

문제가

 

Scanner System.in 으로 받은 변수 numberOfSell을 PostypeAccounting class에서 사용할 수 없다는 점이다..........

왜일까나.....?

 

 

 

 

이것만 어떻게 해결되면 뚝딱 나올것같은데 

눈물이 흐른다......

아니야 슬플때 웃는자가 일류랬어 :)

 

 

 

eclipse가 하라는대로 고쳤더니 뚝딱 완성됐다

 

import java.util.Scanner;

class PostypeAccounting2 {
	
	public static double valueOfText;
	public static double AdjustmentRate;
	public static int numberOfSell;
	
	static void print () {		
		
		System.out.println("수익 : "+ getEarning());
		System.out.println("정산 수수료 :" + getAdjustment());
		System.out.println("부가가치세 :" + getTax());
		System.out.println("최종 지급 금액 :" + getFinalEarning());
	}
	
	
	private static double getFinalEarning() {
		double FinalEarning = getEarning()-getAdjustment()-getTax();
		return FinalEarning;
	}
	
	private static double getTax() {
		double Tax = getEarning()*getTaxRate();
		return Tax;
	}
	
	private static double getAdjustment() {
		double Adjustment = getEarning()*AdjustmentRate;
		return Adjustment;
	}
	
	private static double getTaxRate() {
		double TaxRate = AdjustmentRate*0.1;
		return TaxRate;
	}
	
	private static double getEarning() {
		double Earning = valueOfText*numberOfSell;
		return Earning;
	}
	
}


	
public class MonthlyEarning2 {
		public static void main(String[] args) {
			
			PostypeAccounting2.valueOfText= 500;
			Scanner scanner = new Scanner(System.in);
			System.out.print("판매 부수 : ");
			PostypeAccounting2.numberOfSell = scanner.nextInt();
			PostypeAccounting2.AdjustmentRate = 0.1;
			
			PostypeAccounting2.print();
			
		}

	}
	

 

 

 

문제는 Scanner scanner 앞에 붙은 static에 있었다. 

저걸 지워주니까 걍 작동한다

 

그때 static이 지정된 class 안에서만 사용된다고 했었던거 같은데 그래서 안먹었나보다.

이거 다시 확인해봐야겠다.

 

여튼 드디어!!!!

포스타입 정산기 완료했다 

아이 신나 

 

 

 

 

 

***

 

그때 static이 지정된 class 안에서만 사용된다고 했었던거 같은데 그래서 안먹었나보다.

이거 다시 확인해봐야겠다.

-> 와 이거 진심 미쳤다. 

 

 

angehende-ingenieur.tistory.com/34?category=959688

 

망했다 static

저번 static 강의를 졸면서 봤더니 이번 강의가 무슨 말인지 이해가 안간다. 이 그림을 이해하는 것을 포스팅의 최종목표로 하고 다시 이전 static 강의부터 다시 들어야겠다. 다시 한 번 static - class

angehende-ingenieur.tistory.com

 

이 포스팅에서 엄청나게 장황하게 써놨는데 다시 읽어보니 뭔 말인지 알 수가 없다. 

망했다 static 해놓고 진짜 망했네

 

되게 다 이해한 것 처럼 써놨는데

고새 다 까먹었나보다...

 

 

이거 S.O.S

저부분 생활코딩 다시 들어야겠다. 

 

 

 

 

할 일이 쌓여가는구나...^^...

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'Java > Java1 - 수익금 계산기 프로젝트' 카테고리의 다른 글

step 2 - method 사용  (0) 2020.11.22
step 1  (0) 2020.11.22