A sentimental robot

Map을 이용한 성적관리 본문

Java

Map을 이용한 성적관리

GOD03219 2017. 12. 29. 14:21

import java.util.TreeMap;

import java.util.Iterator;
import java.util.Scanner;
import java.util.*;

public class Test02 {

 

 public static void main(String[] args) {


  Pro tt = new Pro();


  Scanner sc = new Scanner(System.in);


  do {
   System.out.println("====성적처리관리프로그램입니다.====");
   System.out.println("1.성적입력\n2.성적 전체 출력\n3.학번 검색 출력\n종료하시려면 -1을 입력");
   int i;
   i = sc.nextInt();


   if (i == -1) {
    break;
   }

 

   switch (i) {

   case 1:
    tt.add();
    break;
   case 2:
    tt.printall();
    break;
   case 3:
    tt.keyprint();
    break;

   default:
    System.out.println("잘못된 입력입니다."); break;

 

 

  }
  } while (true);

 }
}

 

class Pro {


 Scanner sc = new Scanner(System.in);
 private TreeMap1 tm = new TreeMap1();

 

 public void add() {
  int i;
  do {

   System.out.print("학번입력: ");

   int key = sc.nextInt();

   System.out.print("이름입력: ");
   String name = sc.next();
   System.out.print("국어입력: ");
   int korea = sc.nextInt();
   System.out.print("영어입력: ");
   int eng = sc.nextInt();
   System.out.print("수학입력: ");
   int mat = sc.nextInt();

 

   Infopro dto = new Infopro();

   dto.setName(name);

   dto.setKor(korea);

   dto.setEng(eng);

   dto.setMat(mat);

 

   if (tm.containsKey(key)) {

    System.out.println("이미 입력된 학번입니다.");

   } else {

    tm.add(key, dto);

   }


   System.out.println("계속 입력하시려면 1 입력");

   i = sc.nextInt();

  } while (i == 1);

 }

 

 public void printall() {
  System.out.println("-----------------------------");

  System.out.println("학번|이름|국어| 영어| 수학| 총점| 평균");

  System.out.println("-----------------------------");

 

  TreeMap<Integer, Infopro> t1 = tm.getTm();

  Iterator<Integer> it = t1.keySet().iterator();

 

  while (it.hasNext()) {

   int key = it.next();

   System.out.printf("%d %s %d %d %d %d %.1f \n"

     , key

     , t1.get(key).getName()

     , t1.get(key).getkor()

     , t1.get(key).geteng()

     , t1.get(key).getmat()

     , t1.get(key).getTotal()

     , t1.get(key).getavg());

  }

 

  System.out.println("-----------------------------");

 }

 

 public void keyprint() {
  System.out.print("학번 검색");

  int key = sc.nextInt();

  System.out.println("-----------------------------");

  System.out.println("학번 이름 국어 영어 수학 총점 평균");

  System.out.println("-----------------------------");

  Infopro dto = tm.getTm(key);

 

  if (dto == null) {

   System.out.println("검색 결과 없습니다.");

  } else {

   System.out.printf("%d %s %d %d %d %d %.1f %n"

     , key

     , dto.getName()

     , dto.getkor()

     , dto.geteng()

     , dto.getmat()

     , dto.getTotal()

     , dto.getavg());

  }

  System.out.println("-----------------------------");

 }

 

}

 

class Infopro {     // 자료 처리 전용 클래스

 

 private String name;

 private int korea;

 private int eng;

 private int math;

 private int total;

 private float avg;

 

 public void setKor(int korea) {

  this.korea = korea;

 }

 public int getkor() {
  return korea;
 }

 public int geteng() {
  return eng;
 }

 public void setEng(int eng) {

  this.eng = eng;

 }

 public int getmat() {


  return math;
 }

 public void setMat(int math) {

  this.math = math;

 }

 public float getavg() {
  return avg;
 }

 public void setAvg() {

  this.avg = total / 3;

 }

 public int getTotal() {

  return total;

 }

 public void setTotal() {

  this.total = getkor() + geteng() + getmat();

 }

 public String getName() {

  return name;

 }

 public void setName(String name) {

  this.name = name;

 }

 public String toString() {

  return "이름 : " + name + "\t국어 : " + korea + "\t영어 : " + eng + "\t수학 : " + math + "\t총점 : " + total + "\t평균 : "+ avg + "\n";

 }
}

 

class TreeMap1 {

 private TreeMap<Integer, Infopro> tm= new TreeMap<Integer, Infopro>();

 

 public void add(int key, Infopro dto) {

  tm.put(key, dto);

 }

 public boolean containsKey(int key) {

  return tm.containsKey(key);

 }

 public TreeMap<Integer, Infopro> getTm() {

  return tm;

 }

 public Infopro getTm(int key) {

  return tm.get(key);

 }

}

'Java' 카테고리의 다른 글

Reference's reference  (0) 2017.12.29
InetAddress Class  (0) 2017.12.29
Map  (0) 2017.12.29
Exception Handling  (0) 2017.12.29
Thread Synchronization  (0) 2017.12.29