· 접근제한자 

 - 클래스 내의 메멉에 접근을 제한하기 위한 예약어



· 접근 제한자의 종류

 - private : 하나의 클래스 내에서만 사용 가능한 멤버를 지정할 때 사용하는 제한자

 - package : 동일 파일 + 동일 폴더

 - protected : 동일 파일 + 동일 폴더 + 상속

 - public : 객체를 가진 모든 영역

import java.io.*;
public class Room_mgmt_2 {
   public static void main(String[] args) throws IOEception {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


      boolean status = true, stat = true;
      int numoffloor = 0;
      int menu = 0;
      int fn = 0;
      System.out.println("================================");
      System.out.println("\thotel management");
      System.out.println("================================");
      System.out.println("Number of floors = ");
      numoffloor = Integer.parseInt(in.readLine());
      System.out.println();
      int[] numofroom = new int[numoffloor];
      String[][] roomname = new String[numoffloor][];
      String[][] guestname = new String[numoffloor][];
      int[][] numofparty = new int[numoffloor][];
      int[][] charge = new int[numoffloor][];
      int[][] days = new int[numoffloor][];
      for(int i=0;i<numoffloor;i++) {
           System.out.print("Number of rooms of floor " + (i+1) + "=");
           numofroom[i] = Integer.parseInt(in.readLine());
           System.out.println();
           roomname[i] = new String[numofroom[i]];
           guestname[i] = new String[numofroom[i]];
           numofparty[i] = new int[numofroom[i]];
           charge[i] = new int[numofroom[i]];
           days[i] = new int[numofroom[i]];
           System.out.println("Basic Data floor #" + (i+1) + ":");
           for(int j=0;j<numofroom[i];j++) {
                System.out.println("  Basic Data for Room #" + (j+1) + " : ");
                System.out.println("    Room name = ");
                roomname[i][j] = in.readLine();
                System.out.print("      Charge for 1 day = ");
                charge[i][j] = Intger.parseint(in.readLine());
           }
      }


      do {     
          System.out.println(" 1 : Check in / 2 : Check out / 3 : Room Information / 0 : Exit");
          System.out.print("Type Menu (0~3) = ");
          menu = Integer.parseInt(in.readLine());
          System.out.println();


          stat = true;


          switch (menu) {
              case 0:
                  status = false;
                  break;
              case 1:
                  do {
                      stat = false;
                      System.out.print(" Check in Floor = ");
                      fn = Integer.parseInt(in.readLine());
                      if(fn <= 0 || numofloor < fn) stat=true;
                  } while (stat);
                  fn--;
                  stat=true;
                  System.out.println();
                  System.out.println("\tFloor = " + (fn + 1));
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                      System.out.println("\tRoom #\t Room Name\t Charge/day\t Guest\t Num of party");
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                  for(int i=0;i<numofroom[fn];i++)
                      System.out.println("\t" + (i+1) + "\t " + roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                  do {
                      System.out.print(" Check in Room Number ( 0 = cancel ) = ");
                      int rn = Integer.parseInt(in.readLine());
                      if(rn == ) break;
                      --rn;
                      if(0<=rn && rn < numofroom[fn] && guestname[fn][fn] == null) {
                          stat = false;
                          System.out.print(" Guest name = ");
                          guestname[fn][fn] = in.readLine();
                          System.out.print(" Number of party = ");
                          numofparty[fn][fn] = Integer.parseInt(in.readLine());
                          System.out.print(" Number of day = ");
                          days[fn][rn] = Integer.parseInt(in.readLine());
                      }
                   } while (stat);
                   break;
             case 2:
                 do {
                     stat = false;
                     System.out.print(" Check out Floor = ");
                     fn = Integer.parseInt(in.readLine());
                     if(fn <= 0 || numofloor < fn) stat=true;
                 } while(stat);
                 fn--;


                 stat = true;
                 System.out.println();
                 System.out.println("\tFloor = " + (fn + 1));
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println("\tRoom #\t Room Name\t Charge/day\t Guest\t Num of party");
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                 for(int i=0; i<numofroom[fn]; i++)
                         System.out.println("\t" + (i+1) + "\t " + roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                 do {
                     System.out.print(" Check out Room Number ( 0 = cancel ) = ");
                     int rn = Integer.parseInt(in.readLine());
                     if(rn == ) break;


                     --rn;
                     if( 0 <= rn && rn < numofroom[fn] && guestname[fn][fn] != null) {
                           stat = false;
                                   System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                                   System.out.println("\t" + (rn+1) + "\t " + roomname[fn][fn] + "\t " + charge[fn][rn] + "/day");
                                   System.out.println("\t\t  " + guestname[fn][rn] + " (" + numofparty[fn][rn] + ")\t \" + days[fn][rn] * charge[fn][rn] + "/" + days[fn][rn] + " days");
                                   System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                                   guestname[fn][rn] = null;
                                   numofparty[fn[prn] = 0;
                                   days[fn][rn] = 0;
                                }
                              } while (stat);
                              break;
             case 3:           
                for (fn = 0; fn < numoffloor; fn++) {
                     // System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println();
                     System.out.println("\tFloor = " + (fn + 1));
                      System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println("\tRoom #\t  Room Name\t Charge/day\t Guest\t Num of party");
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     for (int i = 0; i < numofroom[fn]; i++)
                          System.out.println("\t" + (i+1) + "\t "+ roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                          System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                }
                break;
             default:
                 System.out.println("illegal menu1");
          } 
        } while (status);
        System.out.println("Good Luck! Bye");
     }
}



 

 import java.io.*;
public class Grade_of_school {
   public static void main (String args[]) throws IOException {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      int numofclass = 0, numofcture = 0;
      System.out.println("================================");
      System.out.println("\tAll of My School");
      System.out.println("================================");
      System.out.println("Number of classes = ");
      numofclass = Integer.parseInt(in.readLine());
      System.out.println();
      int[][] studentdata = new int[numofclass][][];
      int[] numofstudent = new int[numofclass];
      String[][] studentname = new String[newofclass][];
      float[][] studentavg = new float[numofclass][];
      System.out.println("Number of lectures = ");
      numoflecture = Integer.parseInt(in.readLine());
      System.out.println();
      System.out.println("======================================");
      System.out.println("\tInput Data!");
      System.out.println("======================================");
      for(int i=0;i<numofclass;i++) {
           System.out.print("Number of students in clas " + (i + 1) + "=");
           numofstudent[i] = Integer.parseInt(in.readLine());
           System.out.println();
           studentdata[i] = new int[numofstudent[i][numoflecture+3];
           studentname[i] = new String[numofstudent[i]];
           studentavg[i] = new float[numofstudent][i];
           System.out.println((i+1) + "th Class Data :");
           for(int j=0;j<numofstudent[i];j++){
                System.out.println("     " + (j+1)+"th Student Data : ");
                System.out.print("          Name : ");
                studentname[i][j] = in.readLine();
                for(int k=0;k<numoflecture;k++) {
                    int score = 0;
                    do {
                        System.out.print("    " + (k+1) + "th lecutre score (0~100): ");
                        score = Integer.parseInt(in.readLine());
                    } while ( score < 0 || 100 < score);
                    studentdata[i][j][k+3] = score;
                    studentdata[i][j][2] += score;
                }
                studentavg[i][j] = (float)studentdata[i][j][2] / numoflecture;
                studentdata[i][j][0] = 1;
                studentdata[i][j][1] = 1;
            }
            System.out.println();
            for(int j=0;j<numofstudent[i];j++)
                for(int k=0;k<numofstudent[i];k++)
                    if(studentdata[i][j][2] < studentdata[i][k][2])
                         studentdata[i][j][1]++;
      }
      for (int i=0li<numofclass;i++)
           for(int j=0;j<numofstudent[i];j++)
              for(int m=0;m<numofclass;m++)
                  for(int n=0;n<numofstudent[m];n++)
                      if(studentdata[i][j][2] < studentdata[m][n][2])
                           studentdata[i][j][0]++;
      System.out.println("==================================");
      System.out.println("\tStudent Informations");
      System.out.println("==================================");
      for(int a=0;a<numofclass;++a) {
           System.out.print("Class\tNum\tName\tT_grade\tC_grade\tSum\tAvg);
           for(int k=0;k<numoflecture;k++)
               System.out.print("\tLect " + (k + 1));
           System.out.println();
           for(int b=0;b<numofstudent[a];++b){
                System.out.print((a+1) + "\t" + (b+1) + "\t" + studentname[a][b] + "\t");
                for(int i=0;i<3;++i)
                     System.out.print(studentdata[a][b][i] + "\t");
                System.out.printf("%.2f\t", studentavg[a][b]);
                for(int i=0;i<numoflecture;++i) {
                     System.out.printf(studentdata[a][b][i+3] + "\t");
                }
                System.out.println();
           }
           System.out.println();
      }
      System.out.println();
      System.out.println("Good Luck! Bye~");
   }
}           

 

 

# While 문은 미리 반복 횟수를 알 수 없고 조건에 따라 반복하는 경우에 사용한다.

   조건이 만족되면 반복을 계속하는 구조!

 

# 무한 루프는 조건식으로 true를 적으면 된다.

 

static으로 선언된 변수, 클래스 변수라고 한다.


그 이유인즉, static으로 선언된 변수는

변수가 선언된 클래스의 모든 인스턴스(객체)가 공유할 수 있는 변수이기 때문이다.


의문을 갖다고 생각해보면

우리 네트워크로 연결되어있는 컴퓨터의 폴더를 공유를 하면

다른 사람들도 볼 수 있고, 권한도 부여해주면 다른 사람이 수정도 가능하다.


그럼 어떻게 할까?

마지막에 수정한 파일만이 존재한다.


※ 수정 권한을 주지 않을 때는 final로 선언하면 되겠다.



Total
Today
Yesterday