리스트 예제 : 학생 정보 검색 프로그램

 






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
//학생 이름 >> 그만

댓글

이 블로그의 인기 게시물

substring 예제: 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라

단체 채팅 구현