티스토리 뷰

add_member 클래스

 

package main;

import java.util.Scanner;

public class add_member 
{
   int index = 0;
   void add()
   {
      //System.out.println("멤버 추가 함수 입장");
      //변수 생성 및 초기화
      int memno;
      String name;
      int holiday = 15;
      int age;
      String position;
      
      //값을 입력받기 위해 Scanner 클래스의 참조변수 선언 및 초기화
      Scanner input = new Scanner(System.in);
      Scanner input2 = new Scanner(System.in);
      
      System.out.println("사원번호를 입력해주세요");
      memno = input.nextInt();
      System.out.println("이름을 입력해주세요");
      name = input2.nextLine();
      System.out.println("나이를 입력해주세요");
      age = input.nextInt();
      System.out.println("부서를 입력해주세요");
      position = input2.nextLine();
      
      //member 클래스 인스턴스 생성, 위에서 입력받은 값 대입
      member mb = new member();
      mb.memno = memno; //참조변수 mb에 저장된 member 클래스의 인스턴스의 memno(mb.memno)에 입력받은 memno값 대입 
      mb.name = name;
      mb.holiday = holiday;
      mb.age = age;
      mb.position = position;
      
      //프로그램이 다시 돌아가면 값을 새로 입력받고 mb.memno 등을 덮어씀
      //덮어써지면 이전 인스턴스 주소가 사라지기 때문에 대입된 mb.데이터 주소를 bank에 저장
      bank.allmember[index]=mb; //bank 클래스의 allmember 배열의 index번째 공간에 member 클래스 참조변수인 mb의 값(member의 주소) 저장
      //allmember 변수가 배열이기 때문에 [번호]로 접근
      index++; //index +1
   }//add 함수


   void modi(int no) 
   {
      for(int i = 0; i<bank.allmember.length; i++)//printer 클래스의 one_printer() 함수를 가져옴
      {
         member mb = bank.allmember[i];
         if(mb==null) {
               System.out.println("비었음");
               break;
            }
         if(mb.memno == no)
         {
            System.out.println("-----사원 정보------"); 
            System.out.println("사원 번호: "+mb.memno);
            System.out.println("사원 이름: "+mb.name);
            System.out.println("연차 수: "+mb.holiday);
            System.out.println("직원 나이: "+mb.age);
            System.out.println("소속 부서: "+mb.position);
         
            //여기까지 one_printer()
            System.out.println("-----------"); 
            System.out.println("수정할 정보를 입력해주세요"); 
            System.out.println("1. 이름"); 
            System.out.println("2. 연차 수"); 
            System.out.println("3. 직원 부서"); 
   
            Scanner input = new Scanner(System.in);
            Scanner input2 = new Scanner(System.in);
            int choice = input.nextInt();
            switch(choice)
            {
            case 1: 
               System.out.println("이름을 입력해주세요");
               mb.name = input2.nextLine();
               break;
            case 2:
               System.out.println("사용된 연차 수를 입력해주세요");
               int minus = input.nextInt(); 
               mb.holiday = mb.holiday - minus; //저장되어있는 연차 수에서 사용된 연차 수 차감
               break;
            case 3:
               System.out.println("부서를 입력해주세요");
               mb.position = input2.nextLine();
               break;
            default:
               System.out.println("잘못된 입력입니다.");   
            }//switch 종료
         }//if 종료
      }//for 종료

   }//modi 종료
}//class

 

 

 

 

 

bank 클래스

package main;

public class bank {
   //클래스변수/데이터타입이 member의 참조변수이며 배열
                   //변수 이름/=/인스턴스 생성[배열 길이]
   static member[] allmember = new member[100]; //member의 주소만 받을 수 있는 배열
   //저장소는 사용자별로 따로가 아니라 하나만>static
}

 

 

member 클래스

package main;

public class member {
   int memno;
   String name;
   int holiday = 0;
   int age;
   String position;

}//값을 저장할 인스턴스를 생성하기 위한 클래스

 

 

 

 

 

printer 클래스

package main;

public class printer {
   int len = bank.allmember.length;
   void all_printer()
   {
      System.out.println("뱅크의 길이: "+len);//뱅크의 길이 확인
      for(int i = 0; i<len; i++)
      {
         member mb = bank.allmember[i]; //bank 안의 allmember 변수 안의 i번을 mb에 대입
         if(mb==null) {
               System.out.println("비었음");
               break;
            }
         System.out.println("-----사원 정보------"); //
         System.out.println("사원 번호: "+mb.memno); //mb에 대입된 주소의 클래스 안의 memno
         System.out.println("사원 이름: "+mb.name);
         System.out.println("연차 수: "+mb.holiday);
         System.out.println("직원 나이: "+mb.age);
         System.out.println("소속 부서: "+mb.position);
      }//for 종료
   }
   void one_printer(int no)
   {
      for(int i = 0; i<len; i++) //all_printer에 사용된 for문 거의 그대로
      {
         member mb = bank.allmember[i];
         if(mb==null) {
               System.out.println("비었음");
               break;
            }
          //all_printer에서 if문만 추가됨
         if(mb.memno == no) //mb.memno가 입력된 no와 같을 경우 해당 정보만 출력(검색 프로그램의 원리)
         {
            System.out.println("-----사원 정보------"); 
            System.out.println("사원 번호: "+mb.memno);
            System.out.println("사원 이름: "+mb.name);
            System.out.println("연차 수: "+mb.holiday);
            System.out.println("직원 나이: "+mb.age);
            System.out.println("소속 부서: "+mb.position);
         }
         
      }//for 종료
      
   }
   

}

 

 

 

 

 

 

start 클래스(main 함수)

 

package main;

import java.util.Scanner;

public class start {

   public static void main(String[] args) {
      //변수 선언 및 초기화
      add_member member = new add_member(); //add_member 클래스 참조변수 member,  인스턴스 생성
      printer pt = new printer(); //printer 클래스 참조변수 pt,  인스턴스 생성
      int choice; //int 변수 choice 생성
      Scanner input; //Scanner 클래스 참조변수 input 생성
      input = new Scanner(System.in); //Scanner 클래스 인스턴스 생성
      
      while(true) 
      {
         System.out.println("인사관리 프로그램");
         System.out.println("0. 프로그램 종료");
         System.out.println("1. 사원 추가");
         System.out.println("2. 사원 출력");
         System.out.println("3. 사원 검색");
         System.out.println("4. 사원 수정");
         System.out.println("");
         
         //변수 선언 및 초기화
         
         System.out.println("실행할 프로그램을 선택해주십시오(1, 2, 3, 4)");
         choice = input.nextInt();

         
         //제어문
         if(choice==1)
         {
            member.add(); //member 참조변수에 저장된 add_member 클래스의 add() 함수 실행
         }//1번
         else if(choice==2)
         {
            pt.all_printer(); //참조변수 pt에 저장된 printer 클래스의 all_printer() 함수 실행
         }//2번
         else if(choice==3)
         {//한 명 검색 후 출력
            System.out.println("검색을 위해 사원번호를 입력해주세요");
            int number = input.nextInt();
            pt.one_printer(number); //참조변수 pt에 저장된 printer 클래스의 one_printer() 함수 실행
         }//3번
         else if(choice==4)
         {
            System.out.println("수정할 사원의 사원번호를 입력해주세요");
            int number = input.nextInt();
            member.modi(number); //참조변수 member에 저장된 add_member 클래스의 modi() 함수 실행
         }//4번
         else if(choice==0)
         {
            System.out.println("프로그램 종료");
            break;
         }//0번
         else
         {
            System.out.println("잘못된 입력입니다.");
         }//아닐 때
      }//while 종료

   }

}

 

'코딩 > 노트' 카테고리의 다른 글

[JAVA] 파라미터 와 매개변수의 차이점  (1) 2023.10.29
import 사용방법  (0) 2023.10.28
클래스 변수, 인스턴스 변수  (0) 2023.10.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday