Cute Happy Ghost
본문 바로가기
JAVA/Java

20201019_18 영업실적프로그램

by JENN_tech7 2020. 10. 19.
728x90
SMALL

 

 

 

 

 

  • salesman클래스
package ex;

public class Salesman {
	String name;
	int amount ;
	public Salesman() {
		amount = 0;
	}
}

 

 

 

 

  • SalesReport클래스
package ex;

import java.util.Scanner;

public class SalesReport {
	int num ; //판매원들의 수
	Salesman[] sales = new Salesman[3];//판매원 배열
	int max;
	double avg, sum;
	Scanner in = new Scanner(System.in);

	public SalesReport() { //초기화
		max = 0;
		avg = 0;
		sum = 0;
		
		run();
	}
	public void run() {
		input();
		output();
	}
	public void input() {
		for (int i = 0; i < sales.length; i++) {
			System.out.print((i+1) +". 사원이름 : ");
			sales[i] = new Salesman();
			sales[i].name = in.next();
			System.out.print(sales[i].name  +"님의 판매액 : ");
			sales[i].amount = in.nextInt();
			sum += sales[i].amount;
			avg = sum/sales.length;
			if (sales[i].amount>max) {
				max = sales[i].amount;
			}
		}
	}
	public void output() {
		System.out.println("평균액 : " + avg);
		System.out.println("최대액 : " + max);
		for (int i = 0; i < sales.length; i++) {
			if (sales[i].amount == max) {
				System.out.println("-----------------------");
				System.out.println("<이달의 영업왕>");
				System.out.println("이름 :" + sales[i].name);
				System.out.println("액수 :" + sales[i].amount);
				System.out.println(sales[i].name +"님 축하드립니다!!");
				System.out.println("-----------------------");
			}
		}

	}
}
1. 사원이름 : 김재현
김재현님의 판매액 : 200
2. 사원이름 : 박오오
박오오님의 판매액 : 400
3. 사원이름 : 유유유
유유유님의 판매액 : 500
평균액 : 366.6666666666667
최대액 : 500
-----------------------
<이달의 영업왕>
이름 :유유유
액수 :500
유유유님 축하드립니다!!
-----------------------

 

 

 

  • SalesDriver클래스
package ex;

public class SalesDriver {
	
	public static void main(String[] args) {
		new SalesReport();
	}
}

 

 

 

나 이제..... 메소드랑..... 클래스배열은 느낌이 와....

으아아아앙아 유ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

힘들었다

 

중요한 것은 클래스초기화해주는거 

sales[i] = new Salesman();

이거 빼먹어서 또 오류났는데 다행히 저번에 해서그런지 쉽게 알아챘다

왜 쌤이 처음부터 강조했는지알겠다

이것저것 많으니까 헷갈리는거임 ㅠㅠ

 


나 드디어 알았어

get set쓸 때 스캐너로 입력받는법,...!

 

 

 

sales[i].setName(in.next());

된다잉!!!!
이렇게해도되나...?

아 진짜 난리쳤는데도 안되가지고 엉엉....

이거저거해보니까됨....

 

 

System.out.println("이름 :" + sales[i].getName());

얻을떄는 이렇게

 

 

 

다시그것만 수정해주면

  • SalesReport클래스
package ex;

import java.util.Scanner;

public class SalesReport {
	int num ; //판매원들의 수
	Salesman[] sales = new Salesman[3];//판매원 배열
	int max;
	double avg, sum;
	Scanner in = new Scanner(System.in);

	public SalesReport() { //초기화
		max = 0;
		avg = 0;
		sum = 0;
		
		run();
	}
	public void run() {
		input();
		output();
	}
	public void input() {
		for (int i = 0; i < sales.length; i++) {
			System.out.print((i+1) +". 사원이름 : ");
			sales[i] = new Salesman(); //초기화
			
			//sales[i].name = in.next();
			sales[i].setName(in.next());
			
			System.out.print(sales[i].name  +"님의 판매액 : ");
			//sales[i].amount = in.nextInt();
			sales[i].setAmount(in.nextInt());;

			sum += sales[i].amount;
			avg = sum/sales.length;
			if (sales[i].amount>max) {
				max = sales[i].amount;
			}
		}
	}
	public void output() {
		System.out.println("평균액 : " + avg);
		System.out.println("최대액 : " + max);
		for (int i = 0; i < sales.length; i++) {
			if (sales[i].amount == max) {
				System.out.println("-----------------------");
				System.out.println("<이달의 영업왕>");
				System.out.println("이름 :" + sales[i].getName());
				System.out.println("액수 :" + sales[i].getAmount());
				System.out.println(sales[i].name +"님 축하드립니다!!");
				System.out.println("-----------------------");
			}
		}
	}
}

 

 

 

  • Salesman클래스
package ex;

public class Salesman {
	String name;
	int amount ;
	public Salesman() {
		amount = 0;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAmount() {
		return amount;
	}
	public void setAmount(int amount) {
		this.amount = amount;
	}
}

뭔가 있어보이는군...

 

 

 

쌤한테 물어봤는데 새로운 방법을 알아냈다!!

	public void input() {
		for (int i = 0; i < sales.length; i++) {
			System.out.print((i+1) +". 사원이름 : ");
			sales[i] = new Salesman(); //초기화
			
			String s1 = in.next();
			sales[i].setName(s1);
			
			System.out.print(sales[i].name  +"님의 판매액 : ");
			int s2 = in.nextInt();
			sales[i].setAmount(s2);;

			sum += sales[i].amount;
			avg = sum/sales.length;
			if (sales[i].amount>max) {
				max = sales[i].amount;
			}
		}
	}

약간 이런느낌?

괄호에 in.next를 넣는 대신 변수를 하나선언해서 in.next라고 하고 그 변수를 괄호에 넣어주는거

훨씬 깔끔하긴 하군...

변수 오조오억개..

 

 

 

재밌다...

재밌어어엉어!!!!!!!!!!

728x90
LIST

'JAVA > Java' 카테고리의 다른 글

20201020_19 2차원배열  (0) 2020.10.20
20201020_19 제네릭, static  (0) 2020.10.20
20201019_18  (0) 2020.10.19
20201016_17 네트워크  (0) 2020.10.16
20201016_17 arraylist, map, 상속  (0) 2020.10.16

댓글