본문 바로가기
JAVA/예제

[JAVA] ArrayList를 활용한 학생관리

by JJH0100 2022. 10. 26.
728x90
반응형

Student.class

package Ex01;

public class Student {
	private String name;
	   private String department;
	   private String id;
	   private double avg;

	   public Student(String name, String department, String id, double avg) {
	      this.name = name;
	      this.department = department;
	      this.id = id;
	      this.avg = avg;
	   }

	   public String getName() {
	      return name;
	   }

	   public void setName(String name) {
	      this.name = name;
	   }

	   public String getDepartment() {
	      return department;
	   }

	   public void setDepartment(String department) {
	      this.department = department;
	   }

	   public String getId() {
	      return id;
	   }

	   public void setId(String id) {
	      this.id = id;
	   }

	   public double getAvg() {
	      return avg;
	   }

	   public void setAvg(double avg) {
	      this.avg = avg;
	   }
}

 

 

StudentManager.class

package Ex01;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
import java.util.StringTokenizer;

public class StudentManager {
	private Scanner sc = new Scanner(System.in);
	private ArrayList<Student> dept = new ArrayList<>();
	public void read() {
		System.out.println("학생 이름, 학과, 학번, 학점평균 입력하세요.");
		for(int i=0; i<4; i++) {
			System.out.print(">>");
			String text = sc.nextLine(); //한줄 단위로 입력
			StringTokenizer st = new StringTokenizer(text, ",");
			String name = st.nextToken().trim(); //공백제거된 이름
			String department = st.nextToken().trim(); 
			String id = st.nextToken().trim(); 
			double avg = Double.parseDouble(st.nextToken().trim()); //double로 형변환
			Student student = new Student(name, department, id, avg);
			dept.add(student);
		}
	}
	private void printAll() {
		Iterator<Student> it = dept.iterator();
		while(it.hasNext()) {
			Student student = it.next();
			System.out.println("-------------------");
			System.out.println("이름 : " + student.getName());
			System.out.println("학과 : " + student.getDepartment());
			System.out.println("학번 : " + student.getId());
			System.out.println("학점평균 : " + student.getAvg());
			System.out.println("-------------------");
		}
	}
	public void processQuery() {
		while(true) {
			System.out.println("학생 이름 >> ");
			String name = sc.nextLine();
			if(name.equals("그만")) {
				return;
			}
			for(int i=0; i<dept.size(); i++) {
				Student student = dept.get(i);
				if(student.getName().equals(name)) {
					System.out.print(student.getName() + ", ");
					System.out.print(student.getDepartment() + ", ");
					System.out.print(student.getId() + ", ");
					System.out.print(student.getAvg());
					break;
				}
			}
		}
	}
	public void run() {
		read();
		printAll();
		processQuery();
	}
	public static void main(String[] args) {
		StudentManager man = new StudentManager();
		man.run();
	}
}

728x90
반응형

댓글