리스트 예제 : 학생 정보 검색 프로그램
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Blog {
public static void main(String[] args) {
new Byul();
}
}
class Student {
String name;
String program;
String ID;
double avgGrade;
Student(String name, String program, String ID, double avgGrade) {
this.name = name;
this.program = program;
this.ID = ID;
this.avgGrade = avgGrade;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("이름: " + name);
sb.append("\n학과: " + program);
sb.append("\n학번: " + ID);
sb.append("\n학점평균: " + avgGrade);
sb.append("\n----------------------------------");
return sb.toString();
}
}
class Byul {
Scanner sc;
List<Student> list;
StringTokenizer st;
Byul() {
sc = new Scanner(System.in);
list = new ArrayList<>();
main();
sc.close();
}
void main() {
String input;
String[] tokens = new String[4];
System.out.println("학생 이름, 학과, 학번, 학점평균 입력하세요.");
while (list.size() < 4) {
System.out.print(">> ");
st = new StringTokenizer(sc.nextLine(), ", ");
if (st.countTokens() != 4) continue;
int i = 0;
while (st.hasMoreTokens()) {
tokens[i++] = st.nextToken();
}
if (isNum(tokens[0])) {
continue;
}
if (isNum(tokens[1])) {
continue;
}
if (!isNum(tokens[2])) {
continue;
}
if (!isNum(tokens[3])) {
continue;
}
list.add(new Student(tokens[0], tokens[1], tokens[2], Double.parseDouble(tokens[3])));
}
System.out.println("----------------------------------");
for (Student s : list) {
System.out.println(s);
}
while (true) {
System.out.print("학생 이름 >>");
String s = sc.nextLine();
if (s.contains("그만")) break;
boolean nunse = false;
for (Student st : list) {
if (st.name.equals(s)) {
System.out.println(st.name + ", " + st.program + ", " + st.ID + ", " + st.avgGrade);
if (!nunse) nunse = true;
break;
}
}
if (!nunse) System.out.println("없는 이름입니다.");
}
}
boolean isNum(String s) {
try {
Double.parseDouble(s);
return true;
} catch (Exception e) {
return false;
}
}
}
//학생마다 Student 객체를 생성하고 4명의 학생 정보를 ArrayList<Student> 컬렉션에 저장한 후에,
//ArrayList<Student>의 모든 학생(4명) 정보를 출력하고
//학생 이름을 입력 받아 해당 학생의 학점 평균을 출력하는 프로그램을 작성하라.
//
//
//
//학생 이름, 학과, 학번, 학점평균 입력하세요.
//>> 황기태, 모바일, 1, 4.1
//>> 이재문, 안드로이드, 2, 3.9
//>> 김남윤, 웹공학, 3, 3.5
//>> 최찬미, 빅데이터, 4, 4.25
//----------------------------------
//이름: 황기태
//학과: 모바일
//학번: 1
//학점평균: 4.1
//----------------------------------
//이름: 이재문
//학과: 안드로이드
//학번: 2
//학점평균: 3.9
//----------------------------------
//이름: 김남윤
//학과: 웹공학
//학번: 3
//학점평균: 3.5
//----------------------------------
//이름: 최찬미
//학과: 빅데이터
//학번: 4
//학점평균: 4.25
//----------------------------------
//학생 이름 >> 최찬미
//최찬미, 빅데이터, 4, 4.25
//학생 이름 >> 이재문
//이재문, 안드로이드, 2, 3.9
//학생 이름 >> 그만
댓글
댓글 쓰기