1. 程式人生 > >Java 面向物件習題:員工資訊錄入提取

Java 面向物件習題:員工資訊錄入提取

package com.neusoft.employee;
/**
 * Java Bean----實體類
 * @author zhuzidexter
 *
 */
public class Employee {
	private String eid;
	private String ename;
	private int age;
	private double salary;
	public String getEid() {
		return eid;
	}
	public void setEid(String eid) {
		this.eid = eid;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	
}
package com.neusoft.employee;

import java.util.Scanner;

import javax.naming.ldap.ManageReferralControl;

/**
 * 測試類
 * 
 * @author zhuzidexter
 *
 */
public class TestEmployee {
	public static void main(String[] args) {
		//要求從控制檯輸入5條員工的資訊,每錄入一條員工資訊,我們就將這條資訊儲存到陣列容器中
		//呼叫新增的方法,這某一條陣列儲存到陣列容器中
		Scanner input = new Scanner(System.in);
		
		//定義一個數組容器,作用是用來儲存員工資訊
//		Employee[] employees = new Employee[5];定義在管理裡
		EmployeeManager manager = new EmployeeManager();
		for (int i = 0; i<5; i++) {
			Employee employee = new Employee();
			
			//將物件的屬性寫入
			System.out.println("please input No."+(i+1)+" eid");
			String eid = input.next();
			employee.setEid(eid);
			System.out.println("pleas input No."+(i+1)+" ename");
			String ename = input.next();
			employee.setEname(ename);
			System.out.println("please input No."+(i+1)+" age");
			int age = input.nextInt();
			employee.setAge(age);
			System.out.println("please input No."+(i+1)+" salary");
			double salary = input.nextDouble();
			employee.setSalary(salary);
			
//			employees[i] = employee; 在管理裡將每次輸入的emp資訊存入陣列
			//呼叫此方法完成新增的操作
			manager.addEmployee(employee);
		}
//		for(int i = 0; i<employees.length;i++) {
//			Employee employee = employees[i];
//			System.out.println(employee.getEid()+"\t"+employee.getEname()+"\t"+
                                            employee.getAge()+"\t"+employee.getSalary());
//		}
		
		//查詢某一名員工的資訊;
		Employee employee = manager.getById("200");
		System.out.println(employee.getEid()+"\t"+employee.getEname()+"\t"+
                                    employee.getAge()+"\t"+employee.getSalary());
		
		//查詢所有員工資訊;
		Employee[] employees = manager.getQueryAll();
		for(int i = 0; i<employees.length; i++) {
			Employee employee1 = employees[i];
			System.out.println(employee1.getEid()+"\t"+employee1.getEname()+"\t"+
                                            employee1.getAge()+"\t"+employee1.getSalary());
		}
		
	}
}

package com.neusoft.employee;
/**
 * 員工管理類
 * @author zhuzidexter
 *
 */

public class EmployeeManager {
	//1.宣告一個數組容器
	private Employee[] employees;
	int count = 0 ;
	
	//2.通過構造器初始化陣列
	public EmployeeManager(){
		employees = new Employee[5];
	}
	
	//3.定義一個新增員工資訊的方法:每輸入一次employee資訊,儲存一次
	public void addEmployee(Employee employee) {
		if(count<5) {
			employees[count] = employee;
			count++;
			System.out.println("add success ... ");
		}else {
			System.out.println("add error ... ");
		}
	}
	// 4.要從當前的陣列容器employees中根據員工的編號查詢某一個員工的資訊
	// 分析這個方法如何定義:是否有返回值:Employee 是否有引數:ID
	// 如何實現這個方法?
	// 1.遍歷employees陣列
	// 2.每遍歷一次就會從employees陣列獲取一個物件,判斷引數中的ID是否與獲取到物件的ID相等,
	// 		如果相等就找到的這個物件賦值給一個新的變數,跳出迴圈
	public Employee getById(String eid) {
		Employee employee = null;
		for(int i = 0; i<count; i++) {
			if(employees[i] != null) {
				if(eid.equals(employees[i].getEid())){
				 employee = employees[i];
				 break;
				}
			}
		}
		return employee;
	}
	//查詢所有員工資訊:重新定義一個數組儲存所有員工資訊,輸出
	public Employee[] getQueryAll() {
		Employee[] employees1 = new Employee[5];
		for(int i = 0; i<employees.length; i++) {
			employees1[i] = employees[i];
		}
		return employees1;
	}
}