이 예는 참조를 위해 직원 관리 시스템을 구현하는 특정 Java의 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
이 시스템에서 주로 실시되는 관련 내용 :
1. 프로세스 제어 진술
2. 수업, 대상
3. 캡슐화, 상속, 다형성
4. 방법의 과부하 및 재 작성
5. 액세스 수정 자
6. 정적
요구 사항 설명 :
Basic information of employee information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---------------------
속성 : 직원 번호, 직원 이름, 직원 위치, 휴가 일, 기본 급여, 일반 직원 급여 :
기본 급여를 기준으로, 근무 식사를 10%, 50% 직무 보조금, 200 위안 주택 보조금 기본 급여 + 기본 급여 * 0.1 + 기본 급여 * 0.5 + 200 증가
---------관리자----------
속성 : 직원 번호, 직원 이름, 직원 위치, 휴가 일, 기본 급여 관리자 급여 :
기본 급여, 20% 근무 식사, 50% 직무 보조금, 500 위안 주택 보조금 기본 급여 + 기본 급여 * 0.2 + 기본 급여 * 0.5 + 500
-----------감독----------
속성 : 직원 번호, 직원 이름, 직원 직책, 휴가 일, 기본 급여, 이사 급여 :
기본 급여, 8% 근무 식사, 30% 직무 보조금, 2,000 위안 주택 보조금, 3,000 위안 투자 보조금 기본 급여 + 기본 급여 * 0.08 + 기본 급여 * 0.3 + 2,000 + 3,000
----------다른-----------
급여 공제 후 모든 직원은 휴가를받지 않습니다. 모든 기본 급여는 지불됩니다. 휴가가있는 경우 평균 일일 급여는 휴가 일 수가 공제됩니다.
일반 디자인 아이디어 :
직원의 부모 학급, 평범한 직원 1 명, 관리자 1 명 및 하위 클래스 1 명이 있으며 부모 학급의 급여 방법은 각각 다시 작성됩니다. 마지막 테스트 클래스.
구현 후 인터페이스가 그림에 표시됩니다.
부모 클래스 서브 클래스를 작성하는 데 아무런 문제가 없습니다. 가능한 한 캡슐화에주의하십시오. 특성을 수정하기 위해 개인을 사용하는 것이 가장 좋습니다. 편집자는 게으르고 주로 테스트 수업을 작성하는 데 주로 시간을 보냅니다.
참고 :이 시스템은 객체 만 객체 배열에 저장하므로 배열을 초기화 할 때 고정 길이가 100으로 설정되며 시스템은 각 배열 요소를 자동으로 초기화합니다. 따라서 테스트 방법을 작성할 때는 Traversal 할당에 NULL 포인터 오류를 작성하는 데주의를 기울여야합니다. 편집자는 바보이기 때문에 나는 그것을 쓸 때 시간을 보냈다 (_)
또한 직원의 정보를 변경하면 직원의 위치가 변경되면해야 할 일에주의를 기울이십시오. 결국, 대상이 바뀌었고 급여 처리 방법은 다릅니다.
다음 코드가 게시됩니다.
먼저 부모 학급 직원
// 프리미엄 클래스 공개 클래스 직원 {문자열 ID; 문자열 이름; 문자열 위치; int 휴가; 이중 급여; Public Employee () {} public void sumsalary () {} public void display () {System.out.println ( "id :"+id+", 이름 :"+name+", 위치 :"+position+", 휴가 수 :"+holiday+", Senary :"+Salary); }}세 가지 하위 범주 :
공공 클래스 Common Employee Extends Employee {@override public void sumsalary () {super.salary = super.salary+super.salary*0.1+super.salary*0.5+200-super.holiday*(Super.salary/30); }} 공개 클래스 관리자는 직원을 확장합니다 {@override public void sumsalary () {super.salary = super.salary+super.salary*0.2+super.salary*0.5+200-super.holiday*(super.salary/30); }} 공공 클래스 디렉터 확장 직원 {@override public void sumsalary () {super.salary = super.salary+Salary*0.08+super.salary*0.3+2000+3000-super.holiday*(super.salary/30); }}다음은 주요 테스트 클래스입니다. 여기에 추가, 삭제, 수정 및 검색을 완료하기에는 너무 많습니다.
public class redademd {static scanner sc = new Scanner (System.In); 정적 직원 [] EM = 새로운 직원 [100]; public static void caozuo () { System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 수정하다 ---"); System.out.println ( "--- 4 쿼리 ---"); System.out.println ( "--- 0 종료 ---"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. 업데이트는 "4"; System.println 일 : "); int holiday = sc.nextint (); system.out.print ("기본 급여 : "); 이중 급여 = Sc.nextDouble (); 스위치 (위치) {case"일반 직원 ": new Common Employee (); a.id = id; a.name = name; i = 0; i < 100; i++) { if (em[i] == null) { em[i] = a; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; case "Manager": Employee b = new Manager(); b.ID = id; b.name = name; b.position = "Manager"; b.holiday = holiday; b.sumsalary (int i = 0) {em [i] = b; c.name = name; c.position = "Chairman"; c.holiday = holiday; c.salary = salary; c.sumSalary(); for (int i = 0; i < 100; i++) { if (em[i] == null) { em[i] = c; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; 기본값 : "이 위치는 존재하지 않습니다!"; System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ String n = sc.next(); for (int i = 0; i ++) {if [i]! = null) {system.out.println ( "삭제하려는 것은" sc.next (s.equals ( "Y") {emult.out.println; Caozuo () {system.out.println은 틀 렸습니다 99) {system.out.println (계속 된 계정이 존재하지 않습니다!}}}; System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.println (I); sc.next.out.print (int holiday); "기본 급여 :"; [I] 직원 "; a.holiday = holiday; a.salary = 급여; a.sumsalary (); for (int j = 0; (em]. em]. Em은 null; [J]. System. {em] (Interubledexection e) {// caozuo () {i! = 99) {system.out.println; out} else {system.out.println (입력 한 직원이 존재하지 않습니다!); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ TODO가 생성 된 캐치 블록 E.PrintStackTrace ()} public static void main (string [] args) {// todo 자동 생성 메소드 stub reademd.caozuo (}};프로그램 작성을 마치 자마자 게시하러 왔습니다. 간단한 테스트에는 아무런 문제가 없었습니다. 잘못된 것이 있으면 저를 수정 해주세요. 감사합니다.
더 많은 학습 자료는 특별한 주제 "관리 시스템 개발"에주의를 기울이십시오.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.