### : 목차 구분 기호
--- : 목차 내에 항목 구분 기호

목차
1. 이론 및 정보
2. 설정 및 그 밖에
3. 소스코드
4. 과제

###################################
1. 이론 및 정보
-----------------------------------

Collection(java.util)
변수 -> 배열 -> 클래스 -> 컬렉션(클래스 + 연결리스트 알고리즘)

Collection
          Set
               - 정렬 순서가 없다
               - 데이터 중복 X, 기존 데이터와 비교해서 낭비를 줄임
               - HashSet, LinkedHashSet

                 SortedSet(정렬이 됨)
                         - TreeSet
          List
               - 정렬 순서가 있다.
               - 중복될 수 있다.
               - ArrayList, Vector, LinkedList


Map(키,값 두가지를 묶음으로 저장해서, 키 값으로 값을 찾아감 , 검색 용이)
          - HashMap, HashTable

Vector 는 동기화 가능
          - 동시에 접근해서 사용할 수 없음

----------------------------------- 
JAVA 문법의 5.0(1.5) 버전이 큰 변화가 있었음
----------------------------------- 
Generic(c++ Template 기능)

1. 특정타입(객체형)을 미리 검사
          - 사전에 잘못된 데이터 타입을 미리 체크

2. Template(붕어빵틀?)

3. 문법
          1) 클래스나 메서드에 적용가능
          2) 사용 문법
                    클래스명<객체타입> 변수 = new 클래스<객체타입>();

----------------------------------- 
----------------------------------- 
----------------------------------- 

###################################
2. 설정 및 그 밖에
-----------------------------------
----------------------------------- 
----------------------------------- 
###################################
3. 소스코드
-----------------------------------
/day11/src/day11/UtilTest2.java

package day11;
import java.util.StringTokenizer;
public class UtilTest2 {
    public static void main(String[] args) {
        // TODO StringTokenizer와 split
        String str1 = "홍길동, 임꺽정, 이순신, 김홍도";
        String str2 = "홍길동, 임꺽정- 이순신/ 김홍도= 신윤복";
        String names[] = str1.split(",");
        //split 은 하나의 기준만 가지고 구분 가능
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i].trim());
        }
        System.out.println("--------------------------------------");
        StringTokenizer token = new StringTokenizer(str1, ",");
        while (token.hasMoreTokens()) {
            System.out.println(token.nextToken().trim());
        }
        System.out.println("--------------------------------------");
        StringTokenizer token1 = new StringTokenizer(str2, ",-/=");
        while (token1.hasMoreTokens()) {
            System.out.println(token1.nextToken().trim());
        }
        System.out.println("--------------------------------------");
        //과제, str3을 주석과 같이 출력되게 StringTokenizer를 사용해서 출력하라
        String str3 = "JavaTM 언어 사양 제2판:James Gosling, Bill Join, Gilad Bracha:무라카미 미사키: 피어슨 에듀케이션:2000:5500";
        //책제목 : JavaTM 언어 사양 제2판
        //저자 : James Gosling
        //         Bill Join
        //         Gilad Bracha
        //번역자 : 무라카미 미사키
        //출판사 : 피어슨 에듀케이션
        //출판년도 : 2000
        //가격 : 5500
        StringTokenizer token2 = new StringTokenizer(str3, ":");
        while (token2.hasMoreTokens()) {
            System.out.println(token2.nextToken().trim());
        }
    }
}

----------------------------------- 
/day11/src/day11/UtilTest3.java

package day11;
public class UtilTest3 {
    public static void main(String[] args) {
        // TODO System.currentTimeMillis()
        long start = System.currentTimeMillis() / 1000// 초단위
        int sum = 0;
        //for (int i = 2147483646; i < 3000000000L; i++) {
        for (double i = 0; i < 3000000000L; i++) {
            sum += i;
            System.out.println(i);
        }
        long end = System.currentTimeMillis() / 1000;
        System.out.println("결과 : " + (end - start));
    }
}
----------------------------------- 
/day11/src/day11/UtilTest4.java

package day11;
import java.util.Random;
public class UtilTest4 {
    public static void main(String[] args) {
        // TODO Random
        // random.nextInt(10) 는 0 ~ 9
        // random.nextInt(10) + 1 은 1 ~ 10
        // 공식 = (최대값 - 최소값 + 1) + 최소값
        // random.nextInt(10 - 1 + 1) + 1
        Random random = new Random();
        for (int i = 1; i < 1000; i++) {
            System.out.print(random.nextInt(10)+1+"\t");
            if(i % 10 == 0)
                System.out.println();
        }
        /*--------------------------------------------------------
         * 1. 간단한 로또 추첨기 만들기
         * 임의의 숫자 1부터 46까지의 숫자 중 6개를 골라 출력하자.
         *--------------------------------------------------------
         * 2. 가위, 바위, 보 게임을 만들자
         * 0:주먹 1:가위 2:보
         * 컴퓨터 : 1(난수)
         * 입력 : 2(입력)(x를 입력하면 종료)
         * 결과 : 컴퓨터 승!
         * 전적 : 2전 2패
         * --------------------------------------------------------
         */
    }
}

----------------------------------- 
/day11/src/day11/UtilTest5.java

package day11;
public class UtilTest5 {
    public static void main(String[] args) {
        // TODO 래퍼 클래스(Wrapper Class)
        // 클래스가 아닌 것들을 클래스로 감싸준다.
        // 값을 저장 + 클래스 메서드를 쓸 수 있음
        /* int -> Integer
         * double -> Double
         * long -> Long
         * short -> Short
         */
        Integer i = 10;
        String s = "10";
        int iValue = Integer.parseInt(s);
        System.out.println(iValue);
        s = "3.14";
        double dValue = Double.parseDouble(s);
        System.out.println(dValue);
        System.out.println(Integer.toBinaryString(15));
        /*
         * 다음과 같은 문자열을 입력받았다고 가정하자
         * String str = "2.5, 10, 9, 7, 3.14, 11"
         * 이것들의 합계를 구하시오.
         */
    }
}

----------------------------------- 
/day11/src/day11/UtilTest6.java
아래 코드로 디버깅 모드 테스트 해봄

package day11;
public class UtilTest6 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int sum = 0;
        for (int i = 0; i < 5; i++) {
            sum += i;
        }
        System.out.println("결과 : " + sum);
    }
}

----------------------------------- 
/day11/src/day11/SetTest.java

package day11;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
public class SetTest {
    public static void main(String[] args) {
        // TODO Set계열의 클래스
        HashSet set = new HashSet();
        set.add("carrie");
        set.add("kabbin");
        set.add("kairo");
        set.add("kairo");
        set.add("kariss");
        System.out.println("데이터 갯수 : "+set.size());
        System.out.println(set.toString());
 
        //알파벳 순서를 가짐
        TreeSet tSet = new TreeSet();
        tSet.add("julite");
        tSet.add("terry");
        tSet.add("kabbin");
        tSet.add("terry");
        tSet.add("carrie");
        System.out.println("데이터 갯수 : "+tSet.size());
        System.out.println(tSet);
        Iterator it = tSet.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}

----------------------------------- 
/day11/src/day11/ListTest.java

package day11;
import java.util.ArrayList;
import java.util.Vector;
public class ListTest {
    public static void main(String[] args) {
        // TODO List 계열의 클래스들
        ArrayList list = new ArrayList();
        list.add("carrie");
        list.add("kairo");
        list.add("kabbin");
        list.add("kairo");
        list.add("terry");
        System.out.println(list.size());
        //입력 받은 순서대로 저장
        System.out.println(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        if(list.contains("kairo")){
            System.out.println("데이터를 찾았다.");
            System.out.println(list.indexOf("kairo")+1+"번째 있다.");
        }else{
            System.out.println("데이터를 못찾았다.");
        }
 
        //데이터의 추가 삭제 기능
        list.add(2,"홍길동");
        list.add("위치를 지정하지 않으면 마지막에 저장됨");
        System.out.println(list);
        list.remove(3);
        System.out.println(list);
 
        //vector
        Vector v = new Vector();
        v.add("홍길동");
        v.add(10);
        v.add(3.14);
        v.add(true);
        System.out.println(v);
        System.out.println(v.size());
        //데이터를 저장할 수 있는 용량, 갯수
        System.out.println(v.capacity());
        //공간을 데이터 갯수 만큼으로 줄임
        v.trimToSize();
        System.out.println(v.capacity());
    }
}
----------------------------------- 
/day11/src/day11/MapTest.java

package day11;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapTest {
    public static void main(String[] args) {
        // TODO Map계열의 클래스
        HashMap map = new HashMap();
        map.put("key01","홍길동");
        map.put("key02","김유신");
        map.put("key03","신돌석");
        map.put("key04","임꺽정");
        map.put("key05","권율");
        System.out.println(map.size());
        System.out.println(map);
        System.out.println(map.get("key02"));
        System.out.println();
        //맵에 저장된 데이터를 반복문으로 어떻게 출력할까?
        for (int i = 0; i < map.size(); i++) {
            System.out.println(map.get("key0"+String.valueOf(i+1)));
        }
        System.out.println();
        // keySet() key 값만 뽑아서 set 계열로 바꿔주는 메서드
        Set set = map.keySet();
        Iterator it = set.iterator();
        while(it.hasNext()){
            System.out.println(map.get(it.next()));
        }
    }
}

----------------------------------- 
/day11/src/day11/BaseBall.java

package day11;
import java.util.Random;
/*
게임 방식
pc 369
user 123    1 ball
user 456    1 ball
user 468     1 strike
user 389    2 strike
user 124    out
어떤 숫자가 맞는 지 확인해서
숫자가 있는데 위치까지 맞으면 스트라이크
숫자는 있는데 위치가 맞지 않으면 볼
하나도 맞는게 없으면 아웃
*/
/*
 * 1. 임의의 숫자를 3개 만들어 놓는다.
 * 2. 1부터 9까지의 단자리 숫자중에서 정한다.
 * 3. 중복된 숫자는 제거 
 */
 
// 아래 프로그램에 큰 실수가 있음 찾아보아라!
public class BaseBall {
    public static void main(String[] args) {
        // TODO 숫자 야구 게임
        int com[] = new int[3];
        Random r = new Random();
        for (int i = 0; i < com.length; i++) {
            com[i] = r.nextInt(9)+1;
            for (int j = 0; j < i; j++) {
                if(com[j] == com[i]){
                    i--;
                    break;
                }                    
            }
        }
        System.out.println("컴퓨터가 생성한 숫자 : "+com[0]+","+com[1]+","+com[2]);        
        int user[] = new int[3];
        int strike=0,ball=0;
        java.util.Scanner scan = new java.util.Scanner(System.in);
        int num = 0;
        for(;;){
            System.out.println("숫자 3개 입력 : ");
            num = scan.nextInt();//3자리 숫자가 들어옴
            //100으로 나눈 수로 하든지
            //string으로 받아서 파싱 하든지            
            user[0= num / 100;
            user[1= (num / 10) % 10;
            user[2= num % 10;
            for (int i = 0; i < user.length; i++) {                
                if(com[i]==user[i]){
                    strike++;
                }
            }            
            //반복문으로 바꿔라, 볼 체크
            /*
            if(com[0] == user[1] || com[0] == user[2])
                ball++;
            if(com[1] == user[0] || com[1] == user[2])
                ball++;
            if(com[2] == user[0] || com[2] == user[1])
                ball++;
            */
            for (int i = 0; i < user.length; i++) {
                for (int j = 0; j < user.length; j++) {
                    if(i != j){
                        if(com[i]==user[j])
                            ball++;
                    }                        
                }
            }                
            if( strike == 3 ){
                System.out.println("축하합니다.");
                break;
            }else if(strike == 0 && ball == 0){
                System.out.println("아웃 입니다. 입력하신 값 : "+num);
            }else{
                System.out.println("스트라이크 : "+strike+"\t볼 : "+ball + "\t입력하신 값 : "+num);
            }
            strike=0;
            ball=0;
        }        
    }
}

----------------------------------- 
/day11/src/day11/GenericTest1.java

package day11;
import java.util.ArrayList;
public class GenericTest1 {
    public static void main(String[] args) {
        // TODO Generic : 특정타입을 미리 검사
        /*
        //문자열을 저장하기 위한 용도로 만듬
        ArrayList list = new ArrayList();
        list.add("hello");
        list.add("홍길동");
        list.add("world");
        //문자열을 넣을 목적으로 만들었는데, 
        //다른 것을 넣을 수도 있음, 까먹어서
        list.add(100);
        //나중에 예기치 않은 에러가 나올 수 있음
        //....
        //....
        String str = null;
        for (int i = 0; i < list.size(); i++) {
            //문자열일꺼라 예상을 하고 아래와 같은 코드를 넣음
            //어디에서 틀렸는지 찾기 힘듬
            str = (String)list.get(i);
            System.out.println(str);
        }
        */
        
        ArrayList<String> list = new ArrayList<String>();
        list.add("hello");
        list.add("홍길동");
        list.add("world");
        //list.add(100);
        
        //배열이나 Collection에서만 쓰이는 반복문
        // for(변수 : 보따리(배열,컬렉션))   -> 반복 횟수 지정할 필요 없음
        // 보따리에서 꺼내서 변수에 담음, 보따리 내용 수 만큼
        for(String str : list){
            System.out.println(str);
        }        
    }
}

----------------------------------- 
/day11/src/day11/GenericTest2.java

package day11;
/*
class GenericDemo{
    private int value;
    public GenericDemo(int value) {
        this.value = value;
    }
    int getValue() {
        return value;
    }
}
*/
/* 위 클래스가 int형 인스턴스 변수만 가지고 있는데
 * 혹시나 String이나 double을 쓰고 싶은 경우가 있음
 * 이럴경우 고치기 위해서 시간, 비용이 듬
 * 그래서 이럴 경우 Generic을 사용
 * 실행 중에 정해지지 않은 데이터 타입을 정할 수 있도록
 * 할 수 있음
 */
class GenericDemo<T>{
    private T value;
    public GenericDemo(T value) {
        this.value = value;
    }
    T getValue() {
        return value;
    }
}
/*
 * Generic 클래스를 만들지 않았으면
 * 변수 값들을 더 넣던가, 클래스를 더 만들어야 하는데
 * 이렇게 간단하게 생성 가능
 */
public class GenericTest2 {
    public static void main(String[] args) {
        // TODO Generic : Template의 기능
        // <>안에 객체 넣어서 표시해주는 것은 기본적으로 해줘야 하는데
        // 아래는 생략이 가능해서 안넣음
        GenericDemo<Integer> gd1 = new GenericDemo<Integer>(100);
        System.out.println(gd1.getValue());
        GenericDemo<String> gd2 = new GenericDemo<String>("String");
        System.out.println(gd2.getValue());
        GenericDemo<Double> gd3 = new GenericDemo<Double>(3.14);
        System.out.println(gd3.getValue());
        GenericDemo gd4 = new GenericDemo(true);
        System.out.println(gd4.getValue());
        GenericDemo gd5 = new GenericDemo(-0.39999999999999999999999999);
        System.out.println(gd5.getValue());
        
        //Generic은 Generic으로 만든 것만 사용 가능
        //Document를 보고 확인해서 해당 기능이 지원 되는 것만 가능
    }
}

-----------------------------------
-----------------------------------
-----------------------------------
###################################
4. 과제
-----------------------------------
4-1
/day11/src/day11/UtilTest2.java

//과제, str3을 주석과 같이 출력되게 StringTokenizer를 사용해서 출력하라
String str3 = "JavaTM 언어 사양 제2판:James Gosling, Bill Join, Gilad Bracha:무라카미 미사키: 피어슨 에듀케이션:2000:5500";
//책제목 : JavaTM 언어 사양 제2판
//저자 : James Gosling
//          Bill Join
//          Gilad Bracha
//번역자 : 무라카미 미사키
//출판사 : 피어슨 에듀케이션
//출판년도 : 2000
//가격 : 5500
-----------------------------------
4-2, 4-3
/day11/src/day11/UtilTest4.java

/*
* 1. 간단한 로또 추첨기 만들기
* 임의의 숫자 1부터 46까지의 숫자 중 6개를 골라 출력하자.
*
* 2. 가위, 바위, 보 게임을 만들자
* 0:주먹 1:가위 2:보
* 컴퓨터 : 1(난수)
* 입력 : 2(입력)(x를 입력하면 종료)
* 결과 : 컴퓨터 승!
* 전적 : 2전 2패
*/
-----------------------------------
4-4
/day11/src/day11/UtilTest5.java

/*
* 다음과 같은 문자열을 입력받았다고 가정하자
* String str = "2.5, 10, 9, 7, 3.14, 11"
* 이것들의 합계를 구하시오.
*/
----------------------------------- 
4-5
/day11/src/day11/BaseBall.java

/*
게임 방식
pc 369
user 123     1 ball
user 456     1 ball
user 468     1 strike
user 389     2 strike
user 124     out

어떤 숫자가 맞는 지 확인해서
숫자가 있는데 위치까지 맞으면 스트라이크
숫자는 있는데 위치가 맞지 않으면 볼
하나도 맞는게 없으면 아웃
*/
/*
* 1. 임의의 숫자를 3개 만들어 놓는다.
* 2. 1부터 9까지의 단자리 숫자중에서 정한다.
* 3. 중복된 숫자는 제거
*
* 아래의 기능들 추가 가능
* 시도 횟수
* 걸린 시간 측정
* 레벨 조정 : 어렵게 만들기 -> 숫자 4개 , 5개 가능
* 최고 점수
* 순위리스트
* ...
*/
-----------------------------------
4-6 
성적표 버전 업
ArrayList
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------

###################################
5. 과제 해결
-----------------------------------
import java.util.StringTokenizer;
public class Problem {
     public static void main(String[] args) {
          // TODO StringTokenizer와 split
          //과제, str3을 주석과 같이 출력되게 StringTokenizer를 사용해서 출력하라
          String str3 = "JavaTM 언어 사양 제2판:James Gosling, Bill Join, Gilad Bracha:무라카미 미사키: 피어슨 에듀케이션:2000:5500";
          //책제목 : JavaTM 언어 사양 제2판
          //저자 : James Gosling
          //          Bill Join
          //          Gilad Bracha
          //번역자 : 무라카미 미사키
          //출판사 : 피어슨 에듀케이션
          //출판년도 : 2000
          //가격 : 5500
          StringTokenizer token2 = new StringTokenizer(str3, ":");
          int count = 0;
          while (token2.hasMoreTokens()) {
               count++;
               if (1 == count)
                    System.out.println("책제목 : "+token2.nextToken().trim());
               else if( 2 == count ){
                    StringTokenizer token3 = new StringTokenizer(token2.nextToken().trim(), ",");
                    System.out.print("저자 : ");
                    while (token3.hasMoreElements()) {
                         System.out.println("\t"+token3.nextToken().trim());
                    }
               }else if( 3 == count )
                    System.out.println("번역자 : "+token2.nextToken().trim());
               else if( 4 == count )
                    System.out.println("출판사 : "+token2.nextToken().trim());
               else if( 5 == count )
                    System.out.println("출판년도 : "+token2.nextToken().trim());
               else if( 6 == count )
                    System.out.println("가격 : "+token2.nextToken().trim());
          }
     }
}
-----------------------------------
import java.util.HashSet;
import java.util.Random;
public class Problem {
     public static void main(String[] args) {
          /*
          * 1. 간단한 로또 추첨기 만들기
          * 임의의 숫자 1부터 46까지의 숫자 중 6개를 골라 출력하자.
          */
          Random random = new Random();
          HashSet set = new HashSet();
          System.out.println("로또 추첨기");
          while( 6 != set.size()){
               set.add(random.nextInt(45) + 1);
          }
          System.out.println(set);    
          System.out.println("다른방식");
          int num[] = new int[6];
          for (int i = 0; i < num.length; i++) {
               num[i] = random.nextInt(45) + 1;
               for (int j = 0; j < i; j++) {
                    if(num[i]==num[j]){
                         i--;
                         break;
                    }    
               }
          }
          for (int i = 0; i < num.length; i++) {
               System.out.print(num[i]+"\t");              
          }
     }
}
-----------------------------------
import java.util.Random;
/*
* 가위, 바위, 보 게임을 만들자
* 0:주먹 1:가위 2:보
* 컴퓨터 : 1(난수)
* 입력 : 2(입력)(x를 입력하면 종료)
* 결과 : 컴퓨터 승!
* 전적 : 2전 2패
*/
public class Problem {
     public static void main(String[] args) {
          Random random = new Random();
          int count = 0;
          int win = 0;
          int lose = 0;
          int draw = 0;
          int pc_random = 0;
          System.out.println("가위 바위 보 게임");
          for(;;){
               System.out.println("0:가위 1:바위 2:보 9:종료");
               java.util.Scanner scan = new java.util.Scanner(System.in);
               System.out.println("컴퓨터는 정했습니다.");
               pc_random = random.nextInt(3);
               System.out.println("\t"+pc_random);
               System.out.print("입력 :");
               int input = scan.nextInt();
               for(;;){
                    if( 0 == input || 1 == input || 2 == input || 9 == input )
                         break;
                    else
                         System.out.println("다시 입력하세요.");
               }
               if( 9 == input )
                    break;
              
               if(input == pc_random){
                    draw++;
                    System.out.println("비겼습니다.");
               }else if ((1 != input) && (1 != pc_random)) {
                    if(0 == input ){
                         win++;
                         System.out.println("이겼습니다.");
                    }else if(0 == pc_random){
                         lose++;
                         System.out.println("졌습니다.");
                    }
               }else if(input > pc_random){
                    win++;
                    System.out.println("이겼습니다.");
               }else if(input < pc_random){
                    lose++;
                    System.out.println("졌습니다.");
               }              
               count++;
          }
          System.out.println(count+"전 "+win+"승 "+lose+"패");
     }
}
-----------------------------------
/*
* 다음과 같은 문자열을 입력받았다고 가정하자
* String str = "2.5, 10, 9, 7, 3.14, 11"
* 이것들의 합계를 구하시오.
*/
import java.util.StringTokenizer;
public class Problem {
     public static void main(String[] args) {
          String str = "2.5, 10, 9, 7, 3.14, 11";
          StringTokenizer token = new StringTokenizer(str, ",");
          double sum = 0.0;
          while (token.hasMoreTokens())
               sum +=Double.parseDouble(token.nextToken().trim());         
          System.out.println(sum);
     }
}
-----------------------------------
package day11;
import java.util.Random;
/*
게임 방식
pc 369
user 123     1 ball
user 456     1 ball
user 468      1 strike
user 389     2 strike
user 124     out

어떤 숫자가 맞는 지 확인해서
숫자가 있는데 위치까지 맞으면 스트라이크
숫자는 있는데 위치가 맞지 않으면 볼
하나도 맞는게 없으면 아웃
*/
/*
* 1. 임의의 숫자를 3개 만들어 놓는다.
* 2. 1부터 9까지의 단자리 숫자중에서 정한다.
* 3. 중복된 숫자는 제거
*
* 아래의 기능들 추가 가능
* 시도 횟수
* 걸린 시간 측정
* 레벨 조정 : 어렵게 만들기 -> 숫자 4개 , 5개 가능
* 최고 점수
* 순위리스트
* ...
*/
public class BaseBall {
     public static void main(String[] args) {
          // TODO 숫자 야구 게임
          int com[] = new int[3];
          int count = 0;
          Random r = new Random();
          for (int i = 0; i < com.length; i++) {
               com[i] = r.nextInt(9)+1;
               for (int j = 0; j < i; j++) {
                    if(com[j] == com[i]){
                         i--;
                         break;
                    }                        
               }
          }
          System.out.println("컴퓨터가 생성한 숫자 : "+com[0]+","+com[1]+","+com[2]);         
          int user[] = new int[3];
          int strike=0,ball=0;
          java.util.Scanner scan = new java.util.Scanner(System.in);
          int num = 0;
          long start = System.currentTimeMillis() / 1000;
          for(;;){              
               for(;;){
                    System.out.print("숫자 3개 입력 : ");
                    count++;
                    num = scan.nextInt();    
                    user[0] = num / 100;
                    user[1] = (num / 10) % 10;
                    user[2] = num % 10;
                    boolean isfalse = false;
                    for (int i = 0; i < user.length; i++) {
                         for (int j = i+1; j < user.length; j++) {
                              if(user[i]==user[j]){
                                   isfalse = true;
                              }
                         }
                    }
                    if(isfalse)
                         System.out.println("다시 입력하시오");
                    else
                         break;
               }
              
               for (int i = 0; i < user.length; i++) {                   
                    if(com[i]==user[i]){
                         strike++;
                    }
               }

               for (int i = 0; i < user.length; i++) {
                    for (int j = 0; j < user.length; j++) {
                         if(i != j){
                              if(com[i]==user[j])
                                   ball++;
                         }                             
                    }
               }                   
               if( strike == 3 ){
                    System.out.println("축하합니다.");
                    System.out.println("시도 횟수 : "+count);
                    long end = System.currentTimeMillis() / 1000;
                    System.out.println("걸린시간 : " + (end - start));
                    break;
               }else if(strike == 0 && ball == 0){
                    System.out.println("아웃 입니다. 입력하신 값 : "+num);
               }else{
                    System.out.println("스트라이크 : "+strike+"\t볼 : "+ball + "\t입력하신 값 : "+num);
               }
               strike=0;
               ball=0;
          }         
     }
}
-----------------------------------
// 성적표v4
import java.util.ArrayList;

class Sungjuk {
     String name;
     int no;
     int kor;
     int eng;
     int math;
     int tot;
     int avg;
     char hak;
     int rank;
}

public class Problem {
     public static void main(String[] args) {
          // TODO 성적표v4
          ArrayList list = new ArrayList();
          java.util.Scanner scan = new java.util.Scanner(System.in);
          System.out.println("성적을 입력프로그램!!!!!!!");
          int flag = 0;         
          for (int i = 0; ; i++) {
               list.add(new Sungjuk());
               ((Sungjuk)(list.get(i))).no = i+1;
               ((Sungjuk)(list.get(i))).rank = 1;
               System.out.print("이름을 입력하세요 : ");
               ((Sungjuk)(list.get(i))).name = scan.next();
               System.out.print("국어성적을 입력하세요 : ");
               ((Sungjuk)(list.get(i))).kor = scan.nextInt();
               System.out.print("영어성적을 입력하세요 : ");
               ((Sungjuk)(list.get(i))).eng = scan.nextInt();
               System.out.print("수학성적을 입력하세요 : ");
               ((Sungjuk)(list.get(i))).math = scan.nextInt();
               System.out.print("계속 입력하시겠습니까?(0 or 1 입력 , 0 : 그만 입력, 1 : 다음 입력) : ");
               flag = scan.nextInt();              
               if (flag == 0)
                    break;              
          }
          for (int i = 0; i < list.size(); i++) {
               ((Sungjuk)(list.get(i))).tot = ((Sungjuk)(list.get(i))).kor + ((Sungjuk)(list.get(i))).eng + ((Sungjuk)(list.get(i))).math;
               ((Sungjuk)(list.get(i))).avg = ((Sungjuk)(list.get(i))).tot / 3;
               if (((Sungjuk)(list.get(i))).avg >= 90)
                    ((Sungjuk)(list.get(i))).hak = 'A';
               else if (((Sungjuk)(list.get(i))).avg >= 80)
                    ((Sungjuk)(list.get(i))).hak = 'B';
               else if (((Sungjuk)(list.get(i))).avg >= 70)
                    ((Sungjuk)(list.get(i))).hak = 'C';
               else if (((Sungjuk)(list.get(i))).avg >= 60)
                    ((Sungjuk)(list.get(i))).hak = 'D';
               else
                    ((Sungjuk)(list.get(i))).hak = 'F';
          }
          for (int i = 0; i < list.size(); i++) {
               for (int j = 0; j < list.size(); j++) {
                    if (((Sungjuk)(list.get(i))).tot > ((Sungjuk)(list.get(j))).tot)
                         ((Sungjuk)(list.get(j))).rank++;
               }
          }
          System.out.println("                     성적표");
          System.out.println("---------------------------------------------------------------------");
          System.out.println("학번\t이름\t국어\t영어\t수학\t총점\t평균\t학점\t등수");
          System.out.println("---------------------------------------------------------------------");
          for (int i = 0; i < list.size(); i++) {
               System.out.println(((Sungjuk)(list.get(i))).no + "\t" + ((Sungjuk)(list.get(i))).name + "\t" + ((Sungjuk)(list.get(i))).kor
                         + "\t" + ((Sungjuk)(list.get(i))).eng + "\t" + ((Sungjuk)(list.get(i))).math + "\t" + ((Sungjuk)(list.get(i))).tot
                         + "\t" + ((Sungjuk)(list.get(i))).avg + "\t" + ((Sungjuk)(list.get(i))).hak + "\t" + ((Sungjuk)(list.get(i))).rank);
          }         
          System.out.println();
          System.out.println("-----------------------정렬 후---------------------------------------");         
          for (int i = 0; i < list.size() - 1; i++) {
               for (int j = i + 1; j < list.size(); j++) {
                    if (((Sungjuk)(list.get(i))).tot < ((Sungjuk)(list.get(j))).tot) {
                         int avg = ((Sungjuk)(list.get(i))).avg;
                         ((Sungjuk)(list.get(i))).avg = ((Sungjuk)(list.get(j))).avg;
                         ((Sungjuk)(list.get(j))).avg = avg;
                        
                         String name = ((Sungjuk)(list.get(i))).name;
                         ((Sungjuk)(list.get(i))).name = ((Sungjuk)(list.get(j))).name;
                         ((Sungjuk)(list.get(j))).name = name;
                        
                         int no = ((Sungjuk)(list.get(i))).no;                        
                         ((Sungjuk)(list.get(i))).no = ((Sungjuk)(list.get(j))).no;
                         ((Sungjuk)(list.get(j))).no = no;
                        
                         int kor = ((Sungjuk)(list.get(i))).kor;                        
                         ((Sungjuk)(list.get(i))).kor = ((Sungjuk)(list.get(j))).kor;
                         ((Sungjuk)(list.get(j))).kor = kor;
                        
                         int eng = ((Sungjuk)(list.get(i))).eng;
                         ((Sungjuk)(list.get(i))).eng = ((Sungjuk)(list.get(j))).eng;
                         ((Sungjuk)(list.get(j))).eng = eng;
                        
                         int math = ((Sungjuk)(list.get(i))).math;
                         ((Sungjuk)(list.get(i))).math = ((Sungjuk)(list.get(j))).math;
                         ((Sungjuk)(list.get(j))).math = math;
                        
                         int tot = ((Sungjuk)(list.get(i))).tot;
                         ((Sungjuk)(list.get(i))).tot = ((Sungjuk)(list.get(j))).tot;
                         ((Sungjuk)(list.get(j))).tot = tot;
                        
                         char hak = ((Sungjuk)(list.get(i))).hak;
                         ((Sungjuk)(list.get(i))).hak = ((Sungjuk)(list.get(j))).hak;
                         ((Sungjuk)(list.get(j))).hak = hak;
                        
                         int rank = ((Sungjuk)(list.get(i))).rank;                        
                         ((Sungjuk)(list.get(i))).rank = ((Sungjuk)(list.get(j))).rank;
                         ((Sungjuk)(list.get(j))).rank = rank;                         
                    }
               }
          }         
          System.out.println();
          System.out.println("                     성적표");
          System.out.println("---------------------------------------------------------------------");
          System.out.println("학번\t이름\t국어\t영어\t수학\t총점\t평균\t학점\t등수");
          System.out.println("---------------------------------------------------------------------");

          for (int i = 0; i < list.size(); i++) {
               System.out.println(((Sungjuk)(list.get(i))).no + "\t" + ((Sungjuk)(list.get(i))).name + "\t" + ((Sungjuk)(list.get(i))).kor
                         + "\t" + ((Sungjuk)(list.get(i))).eng + "\t" + ((Sungjuk)(list.get(i))).math + "\t" + ((Sungjuk)(list.get(i))).tot
                         + "\t" + ((Sungjuk)(list.get(i))).avg + "\t" + ((Sungjuk)(list.get(i))).hak + "\t" + ((Sungjuk)(list.get(i))).rank);
          }

     }
}
-----------------------------------


'OpenFrameWork' 카테고리의 다른 글

오픈프레임워크_Day14  (0) 2015.04.20
오픈프레임워크_Day13  (0) 2015.04.20
오픈프레임워크_Day11  (0) 2015.04.20
오픈프레임워크_Day10  (0) 2015.04.20
오픈프레임워크_Day09  (0) 2015.04.20
,