간단한 자바문제 class

it/Java 2015. 1. 6. 18:14 Posted by 하얀나다

1. 한 명의 학생 정보를 관리하는 Student 클래스를 이용한다. 콘솔창을 통해 5명의 학생에 대한정보 중 학번, 이름, 국어, 영어, 수학 정보를 입력 받아 ArrayList에 저장하고 학번, 이름, 총점, 평균을 출력하는 프로그램을 작성하시오.

 

 

2. 한 명의 학생 정보를 관리하는 Student 클래스를 이용한다. 콘솔창을 통해 5명의 학생에 대한정보 중 학번, 이름, 국어, 영어, 수학 정보를 입력 받아 TreeSet에 저장하고 학번, 이름, 총점, 평균을 출력하는 프로그램을 작성하시오. 제네릭스 TreeSet<Stduent>을 이용하시오.

<참고> Student 클래스는 Comparable 인터페이스를 구현하여야 한다.

 

 

 

3. 한 명의 학생 정보를 관리하는 Student 클래스를 이용한다. 콘솔창을 통해 5명의 학생에 대한정보 중 학번, 이름, 국어, 영어, 수학 정보를 입력 받아 Hashtable에 저장하는데, 학번을 키로 지정하여 학생의 정보를 검색할 수 있도록 한다. 제네릭스 Hashtable <String, Student>를 이용하시오.

 

 

 

 

 

 

 

-------------------------------------------------------답------------------------------------------------------------

 

 

 

1. 한 명의 학생 정보를 관리하는 Student 클래스를 이용한다. 콘솔창을 통해 5명의 학생에 대한정보 중 학번, 이름, 국어, 영어, 수학 정보를 입력 받아 ArrayList에 저장하고 학번, 이름, 총점, 평균을 출력하는 프로그램을 작성하시오.

package ex;

import java.util.ArrayList;
import java.util.Scanner;

public class ex01 {
final static int haksang = 5;

public static void main(String[] args) {
ArrayList data = method();
System.out.println("학번\t이름\t총점\t평균");
int j = 0;
for (int i = 0; i < data.size(); i++) {

if (j <1) {
System.out.print(data.get(i) + "\t");
} else {
j = 0;
System.out.println();
System.out.print(data.get(i) + "\t");
}j++;

}
}

static ArrayList method() {
Scanner sc = new Scanner(System.in);
String name;
int kor, eng, math, hakbun;
ArrayList data = new ArrayList(haksang);
Student1 st = new Student1();

for (int i = 0; i < haksang; i++) {
System.out.println("학번을 입력하시오");
hakbun = sc.nextInt();
System.out.println("이름을 입력하시오");
name = sc.next();
System.out.println("국어점수을 입력하시오");
kor = sc.nextInt();
System.out.println("영어점수을 입력하시오");
eng = sc.nextInt();
System.out.println("수학점수을 입력하시오");
math = sc.nextInt();

st = new Student1(hakbun, name, kor, eng, math);
st.total();
data.add(st);

}

return data;

}

}

class Student1 {
String name;
int kor, eng, math, hakbun;
int sum;
double avg;

Student1() {

}

Student1(int hakbun, String name, int kor, int eng, int math) {
this.hakbun = hakbun;
this.name = name;
this.kor = kor;
this.eng = eng;
this.math = math;
}

void total() {
sum = kor + eng + math;
avg = sum / 3;
}

public String toString() {
return hakbun + "\t" + name + "\t" + sum + "\t" + avg;
}
}

 

2. 한 명의 학생 정보를 관리하는 Student 클래스를 이용한다. 콘솔창을 통해 5명의 학생에 대한정보 중 학번, 이름, 국어, 영어, 수학 정보를 입력 받아 TreeSet에 저장하고 학번, 이름, 총점, 평균을 출력하는 프로그램을 작성하시오. 제네릭스 TreeSet<Stduent>을 이용하시오.

<참고> Student 클래스는 Comparable 인터페이스를 구현하여야 한다.

package ex;

import java.util.Scanner;
import java.util.TreeSet;

public class ex02 {
final static int haksang = 5;

public static void main(String[] args) {
String name;
int kor, eng, math, hakbun;
Scanner sc = new Scanner(System.in);
Student students = new Student();
TreeSet<Student> tree = new TreeSet();

for (int i = 0; i < haksang; i++) {
System.out.println("학번을 입력하시오");
hakbun = sc.nextInt();
System.out.println("이름을 입력하시오");
name = sc.next();
System.out.println("국어점수을 입력하시오");
kor = sc.nextInt();
System.out.println("영어점수을 입력하시오");
eng = sc.nextInt();
System.out.println("수학점수을 입력하시오");
math = sc.nextInt();

students = new Student(hakbun, name, kor, eng, math);
students.total();
tree.add(students);
}
System.out.println("학번\t이름\t총점\t평균");
int j = 0;
for (Student s : tree) {
Student sd = s;
if (j < 1) {
System.out.print(sd.gethakbun() + "\t" + sd.getname() + "\t"
+ sd.getsum() + "\t" + sd.getavg());
} else {
j=0;
System.out.println();
System.out.print(sd.gethakbun() + "\t" + sd.getname() + "\t"
+ sd.getsum() + "\t" + sd.getavg());
}
j++;
}
}
}

class Student implements Comparable {// Comparable이라고 자바내장된 것이 있다.
private String name;
private int kor, eng, math, hakbun;
int sum;
double avg;

Student() {

}

public Student(int hakbun, String name, int kor, int eng, int math) {
this.name = name;
this.hakbun = hakbun;
this.kor = kor;
this.eng = eng;
this.math = math;

}

void total() {
sum = kor + eng + math;
avg = sum / 3;
}

public int getsum() {
return sum;
}

public double getavg() {
return avg;
}

public String getname() {
return name;
}

public int gethakbun() {
return hakbun;
}

public int getkor() {
return kor;
}

public int geteng() {
return eng;
}

public int getmath() {
return math;
}

public String toString() {
return hakbun + "\t" + name + "\t" + sum + "\t" + avg;
}

public int compareTo(Object obj) {
Student st = (Student) obj;
if (hakbun < st.hakbun)
return -1;
else if (hakbun > st.hakbun)
return 1;
else
return 0;
}
}

 

3. 한 명의 학생 정보를 관리하는 Student 클래스를 이용한다. 콘솔창을 통해 5명의 학생에 대한정보 중 학번, 이름, 국어, 영어, 수학 정보를 입력 받아 Hashtable에 저장하는데, 학번을 키로 지정하여 학생의 정보를 검색할 수 있도록 한다. 제네릭스 Hashtable <String, Student>를 이용하시오.

//정렬...

 

package ex;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class ex03 {
final static int haksang = 5;
final static int lasthakbun = 100000;

public static void main(String[] args) {
String name;
int kor, eng, math, hakbun;

Students st = new Students();
HashMap map = new HashMap();
Scanner sc = new Scanner(System.in);

for (int i = 0; i < haksang; i++) {
System.out.println("학번을 입력하시오 (1~100000)");
hakbun = sc.nextInt();
System.out.println("이름을 입력하시오");
name = sc.next();
System.out.println("국어점수을 입력하시오");
kor = sc.nextInt();
System.out.println("영어점수을 입력하시오");
eng = sc.nextInt();
System.out.println("수학점수을 입력하시오");
math = sc.nextInt();

st = new Students(hakbun, name, kor, eng, math);
st.total();
map.put(hakbun, st);

}

System.out.println("학번\t이름\t총점\t평균");

int j = 0;
int i = 0;
while (true) {

if (i < lasthakbun) {
if (map.get(i) != null) {
if (j < 1) {
System.out.print(map.get(i) + "\t");
} else {
j = 0;
System.out.println();
System.out.print(map.get(i) + "\t");
}
j++;
}
i++;

} else
break;
}

}
}

class Students {
String name;
int kor, eng, math, hakbun;
int sum;
double avg;

Students() {

}

Students(int hakbun, String name, int kor, int eng, int math) {
this.hakbun = hakbun;
this.name = name;
this.kor = kor;
this.eng = eng;
this.math = math;
}

void total() {
sum = kor + eng + math;
avg = sum / 3;
}

public String toString() {
return hakbun + "\t" + name + "\t" + sum + "\t" + avg;
}
}