2차원 배열 예제

김지원·2022년 5월 27일
0

Java

목록 보기
16/38
//나이키
//강남점, 홍대점, 명동점
//성인,키즈
//강남점k, 홍대점k, 명동점k
//강남점a, 홍대점a, 명동점a
//키즈 총매출액
//성인 총매출액
//전체 매출액, 전체 평균
	int [][] arrIncome =  new int[2][3]; //2행 3열
	//총합담는 배열
	int [] arASum = new int[2]; //연령별 a,k
	int [] arBSum = new int[3]; //지점별
	int sum = 0;
	
	double [] aAvg = new double[2];  
	//평균도 총합이 두개니깐 평균도 2개 그래서 배열로 만듬
	double [] bAvg = new double[3];
	double avg = 0.0;  //total
	int rLength = arrIncome.length;
	int cLength = arrIncome[0].length;
	
	String result = "-----------------------\n";
	String [][] arrName = {
			{"강남점A", "홍대점A", "명동점A"},
			{"강남점K", "홍대점K", "명동점K"}
	};
	//성인 키즈 매출액 따로
	String [] arAName = {"성인","키즈"};
	//arAName을 사용해서 i번재 방에 넣어주며 성인 키즈 나온다.
	String [] arBName = {"강남점","홍대점","명동점"};
	
	//무슨지점의 매출액인지 알려주고 싶어서arrName 사용
	//이름과 매출액을 함께 출력하기 위함.
	//=>규칙성이 없는 값들을 배열에 담고
	//규칙을 만들어서 반복문안에서 순서대로 쓰자.
	//arrName은 규칙성이 없는 상수값이기 때문에 변화를 주기 위해서 2차원배열로 넣었다.
	String inputMsg = "매출액을 입력해 주세요";
	
	for(int i =0; i<rLength; i++) { //0.1 반복 //arrIncome.length 행의 길이
		for(int j =0; j<cLength; j++) { //0.1.2반복 //arrIncome[0].length 열이 길이 
			//[0] 한번접근한다음 배열의 길이
			arrIncome[i][j] = Integer.parseInt(JOptionPane.showInputDialog(arrName[i][j]+""+inputMsg));
			//문자열 -> 정수
			//연령별 총합
			arASum[i] += arrIncome[i][j];
					//i 0번째 반복일때 arrIncome이 3번 돈다.
			//위에서 0번째 강잠점a의 매출액을 입력받았고 (arrIncome에 담기게 된다.) 그입력받은
			//값이 asASum에 3번쌓여서 더하지게 된다.
			//0번째 방에는 adult 총합 1번쨰 반복은 kids총합
			
			//지점별 총합
			arBSum[j] += arrIncome[i][j];
			//i=0-> j=0 강남점 0번째방 j=1 홍대점 j=2는 명동점
			//그런다음 i=1 j=0 강남점.....
			sum += arrIncome[i][j]; //총매출액
			
		}
	}
	//for문 첫번째 돌때 0행0열 -> 강남점 A
	//..... 총 6번
	
	//2칸 = 연령별 매출액 3칸 = 지점별 매출액
	//배열 2개만들어야함(2칸 3칸) 거기에 총합을 담자.
	
	//연령별 평균
	
	
	// adult매장 평균매출액
	//평균내기 위해 2번돌리는 for문 작성
	for(int i =0; i < aAvg.length; i++) {
		aAvg[i] = Double.parseDouble(String.format("%.2f",(double)arASum[i] / arBSum.length));
		//정수와 정수의 연산이니 String.format
		//문자열 형태니깐 double로 형변환 
	}
	
	
	for(int i =0; i < bAvg.length; i++) {
		bAvg[i] = Double.parseDouble(String.format("%.2f",(double)arBSum[i] / arASum.length));
	}
	
	//값을 저장공간에 누적해서 담아준다. 6번반복되는 값들을 
	
	avg = Double.parseDouble(String.format("%.2f", (double)sum / (rLength*cLength)));
	
	for(int i = 0; i<rLength; i++) {
		for(int j =0; j<cLength; j++) {
			result += arrName[i][j] + "매출액 : " + arrIncome[i][j] + "만원\n";
			//성인매장
		}
		//연령별 매출액
		result += arAName[i] + "총 매출액 : " + arASum[i] + "만원\n";
		result += arAName[i] +"평균 매출액 : " + aAvg[i] + "만원\n";
		result += "-----------------------\n";
	}
	//지점별 매출액
	for(int i =0; i<arBSum.length; i++) {
		result += arBName[i] + "총 매출액 :" + arBSum[i] + "만원\n";
		result += arBName[i] + "평균 매출액 :" + bAvg[i] + "만원\n"; 
		result += "-----------------------\n";
		//강남점 총,평균 매출액이 한 쌍이 되어서 3번 반복이 된다
		
	}
	result += "총 매출액 : " + sum + "만원\n";
	result += "평균 매출액 : " + avg + "만원\n";
	
	result += "-----------------------\n";
	
	JOptionPane.showMessageDialog(null, result);

0개의 댓글

관련 채용 정보