특정 과목의 성적을 입력하는 프로그램과 n개의 과목의 성적을 입력하는 프로그램.
성적, 이름, 연산, 메인 class를 각각 나누며 연산 class에서 성적과 이름 처리 class를 호출하며 연산된 결과를 메인 class에서 실행한다.
public class Gname {
//field
private String name;
public Gname() {
name = "";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Gvalue {
//field
private int kor;
private int eng;
private int mat;
//constructor
public Gvalue() {
kor = 0;
eng=0;
mat=0;
}
//method
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 int getTotal() {
return kor+eng+mat;
}
public float getAvg() {
return getTotal()/3.f;
}
}
import java.util.Scanner;
public class Gman {
private Gname name1;
private Gvalue value1;
public Gman() {
name1 = new Gname();
value1 = new Gvalue();
}
public void setEvery() {
Scanner sc = new Scanner(System.in);
name1.setName(sc.next());
value1.setKor(sc.nextInt());
value1.setEng(sc.nextInt());
value1.setMat(sc.nextInt());
}
public void dispEvery() {
System.out.println("국어\t영어\t수학\t총점\t평군");
System.out.print(value1.getKor()+"\t");
System.out.print(value1.getEng()+"\t");
System.out.print(value1.getMat()+"\t");
System.out.print(value1.getTotal()+"\t");
System.out.print(value1.getAvg()+"\t");
}
}
import java.util.Scanner;
public class Gmain {
private Gman man;
public Gmain() {
man = new Gman();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Gman gm = new Gman();
Gmain ga = new Gmain();
System.out.println("이름 국어 영어 수학 성적을 입력하세요");
gm.setEvery();
gm.dispEvery();
}
}
국어 영어 수학 성적에 대한 입력만 가능한 프로그램
import java.util.Scanner;
public class Gmain {
private Gman2 manage;
public void getManage(int i) {
manage.dispEvery(i);
}
public void setManage(int i) {
manage.setEvery(i);
}
public Gmain(int i) {
manage = new Gman2(i);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("성적을 입력할 과목 수를 입력하세요");
int i = sc.nextInt();
Gmain ga = new Gmain(i);
ga.setManage(i);
ga.getManage(i);
}
}
public class Gvalue2 {
//field
private int[] value;
private float total;
private float avg;
//constructor
public Gvalue2(int i) {
this.value = new int [i];
}
//method
public int getVal(int i) {
return value[i];
}
public void setVal(int i, int val) {
this.value[i] = val;
}
public float getTotal(int i) {
for(int j= 0; j<i;j++) {
total += value[j];
}
return total;
}
public float getAvg() {
avg = total/3.f;
return avg;
}
}
import java.util.Scanner;
public class Gman2 {
private Gname name1;
private Gvalue2 value2;
public Gman2(int i) {
name1 = new Gname();
value2 = new Gvalue2(i);
}
public void setEvery(int i) {
System.out.println("이름과 "+i+"개의 성적을 입력하세요");
Scanner sc2 = new Scanner(System.in);
name1.setName(sc2.next());
for(int j=0; j<i; j++) {
value2.setVal(j, sc2.nextInt());
}
}
public void dispEvery(int j) {
System.out.println("이름 : " + name1.getName());
System.out.println("성적");
for(int i=0; i<j; i++) {
System.out.print((i+1) +"번째 성적 : "+value2.getVal(i)+"\t");
}
System.out.print("총점 : "+value2.getTotal(j)+"\t");
System.out.print("평균 : "+value2.getAvg()+"\n");
}
}
이름을 처리하는 class는 앞서 사용한 것과 같다. 하지만 n개의 과목을 처리하는 class를 value2로 만들었으며 이들을 연산하는 class를 Gman2, main class도 수정하였다.
'빅데이터교육과정 > JAVA' 카테고리의 다른 글
급여 관리 프로그램 (0) | 2021.02.12 |
---|---|
DAY 6. 상속(is~A) / Override (0) | 2021.02.04 |
DAY 5. Class : has~a (0) | 2021.02.04 |
DAY4. Class. (0) | 2021.02.02 |
DAY 3. 배열, 함수 응용 과제(성적입력) (0) | 2021.02.01 |