티스토리 뷰
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