성적표 출력하기
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
성적표
--------------------------------------------------
이름 국어 영어 수학 총점 평균
--------------------------------------------------
정우성 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());
}
}