ClassEx

JK·2022년 12월 20일
0

JAVA

목록 보기
10/28
post-thumbnail

성적표 출력하기

  • 다음과 같이 출력되도록 프로그래밍 해보자.
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
			성적표
	--------------------------------------------------
	이름	국어	영어	수학	총점	평균
	--------------------------------------------------
	정우성	90	90	90	270	90.0
	김하늘	90	90	91	271	90.3
	황정민	80	80	80	240	80.0
	강동원	80	80	81	241	80.3
	유아인	70	70	70	210	70.0
	--------------------------------------------------
	총점	410	410	412	1232	410
	평균	82.0	82.0	82.4	246.4	82.0
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

1. student

  • 데이터 : 이름, 국어, 영어, 수학, 총점, 평균
  • 메소드 : infoString()
  • 평균은 실수일 수도 있으니 double 사용. 그러므로 tot/3이 아닌 tot/3.0
package com.lec.ex1_student;

public class Student {
	private String name;
	private int kor;
	private int eng;
	private int mat;
	private int tot;         
	private double avg;		  //private 변수 선언  	
    public Student() {}		 //매개변수 없는 생성자
	public Student(String name, int kor, int eng, int mat) {
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
		this.tot = kor+eng+mat;
		this.avg = tot/3.0;
	}
	public String infoString() {
	return String.format("\t%s\t%d\t%d\t%d\t%d\t%.1f\n", name, kor, eng, mat, tot, avg);	
	}
	//s.infoPrint();
	public void infoPrint() {
		System.out.printf(String.format("\t%s\t%d\t%d\t%d\t%d\t%.1f\n", name, kor, eng, tot, avg));
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKor() {
		return kor;
	}
	public void setKor(int kor) {
		this.kor = kor;
	}
	public int getEng() {
		return eng;
	}
	public void setEng(int eng) {
		this.eng = eng;
	}
	public int getMat() {
		return mat;
	}
	public void setMat(int mat) {
		this.mat = mat;
	}
	public void setTot(int tot) {
		this.tot = tot;
	}
	public void setAvg(double avg) {
		this.avg = avg;
	}
	public int getTot() {
		return tot;
	}
	public double getAvg() {
		return avg;
	}
}

2. StudentMain

public class StudentMain {
	public static void main(String[] args) {
		Student s1 = new Student("정우성", 90, 90, 90);
		Student s2 = new Student("김하늘", 90, 90, 91);
		Student s3 = new Student("황정민", 80, 80, 80);
		Student s4 = new Student("강동원", 80, 80, 81);
		Student s5 = new Student("유아인", 70, 70, 70);	//데이터 입력
		Student[] students = {s1, s2, s3, s4, s5};		//배열 선언
		String[] title = {"이름", "국어", "영어","수학", "총점", "평균"};
		int [] total = new int[5]; 	//0번 idx:국어, 1번 idx:영어 ...
		line();
		System.out.println("\t\t\t성적표");
		line('-');
		for(String t : title) {			//확장 for문으로 타이틀 뿌리기
			System.out.print("\t"+t); 
		}
		System.out.println();
		line('-');
		for(Student student : students) {    //학생 데이터 뿌리기
			System.out.print(student.infoString());
			//총점 변수 (국 영 수 총 평)누적     //getter 이용
			total[0] += student.getKor();
			total[1] += student.getEng();
			total[2] += student.getMat();
			total[3] += student.getTot();
			total[4] += student.getAvg();		
		}
		line('-');
		System.out.print("\t총점");
		for(int t : total) {
			System.out.print("\t"+t);
		}
		System.out.print("\n\t평균");
		for(int t : total) {
			System.out.printf("\t%.1f", (double)t/students.length);
		}
		System.out.println();
		line();
	}

	private static void line(char c) {
		System.out.print("\t");
		for(int i=0 ; i<50 ; i++) {
			System.out.print("-");
		}
		System.out.println();
	}

	private static void line() {
		for(int i=0 ; i<65 ; i++) {
			System.out.print("■");
		}
		System.out.println();
	}
}

Parking 시스템

  • 입출차 시스템
  • 차량 번호, 입차시간, 출차시간, 주차요금
★출력값★
111루1111님 어서오세요
 입차시간 :6시
111루1111님 안녕히 가세요
 입차시간 :6시
 출차시간:8시
 주차요금 :4000원

222루2222님 어서오세요
 입차시간 :8시
222루2222님 안녕히 가세요
 입차시간 :8시
 출차시간:9시
 주차요금 :2000원

333루3333님 어서오세요
 입차시간 :9시
333루3333님 안녕히 가세요
 입차시간 :9시
 출차시간:11시
 주차요금 :4000원

1. Parking

package com.lec.ex2_parking;

import com.lec.constant.Constant;

public class Parking {
	private String no;
	private int inTime;
	private int outTime;
	private int fee;
//	private final int HOURLYPARKINGRATE = 2000; //final 변수로 변경 불가능한 변수 지정
	public Parking() {}
	public Parking(String no, int inTime) {  //입차
		this.no = no;
		this.inTime = inTime;
	}
	public Parking(String no, int inTime, int outTime, int fee) {  //출차
		this.no = no;
		this.inTime = inTime;
		this.outTime = outTime;
		this.fee = (outTime-inTime)*1000;
	}
	public String inTimeString() {
		return String.format("%s님 어서오세요\n 입차시간 :%d시", no, inTime);
	}
	public String outTimeString() {
		return String.format("%s님 안녕히 가세요\n 입차시간 :%d시\n 출차시간:%d시\n 주차요금 :%d원\n", no, inTime, outTime, (outTime-inTime)*Constant.HOURLYPARKINGRATE);     
        //HOURLYPARKINGRATE(시간당 요금) : Constant class에 미리 상수 선언을 해두었다
	}
	public String getNo() {
		return no;
	}
	public void setNo(String no) {
		this.no = no;
	}
	public int getInTime() {
		return inTime;
	}
	public void setInTime(int inTime) {
		this.inTime = inTime;
	}
	public int getOutTime() {
		return outTime;
	}
	public void setOutTime(int outTime) {
		this.outTime = outTime;
	}
	public int getFee() {
		return fee;
	}
	public void setFee(int fee) {
		this.fee = fee;
	}
}

2. ParkingMain

package com.lec.ex2_parking;

public class ParkingMain {
	public static void main(String[] args) {
		Parking car1 = new Parking("111루1111", 6);    //차량번호, 시간 
		Parking car2 = new Parking("222루2222", 8);
		car1.setOutTime(8);
		car2.setOutTime(9);
		System.out.println(car1.inTimeString());
		System.out.println(car1.outTimeString());
		System.out.println(car2.inTimeString());
		System.out.println(car2.outTimeString());

		Parking car3 = new Parking("333루3333", 9);
		car3.setOutTime(11);
		System.out.println(car3.inTimeString());
		System.out.println(car3.outTimeString());
	}
}
profile
씨앗 개발자

0개의 댓글