通過JAVA編寫一個簡單的僱員管理系統小專案
阿新 • • 發佈:2019-02-16
程式碼註釋比較詳細,應該能幫助初學者很輕鬆的看懂;程式碼如下:(詳細說明請看程式碼註解)
/* * 專案:公司職員薪水管理系統 * 作者:zyj0813 * 專案需求: * 1、新增新員工 * 2、根據員工號顯示該員工資訊 * 3、顯示所有員工資訊 * 4、刪除員工資訊 * 5、統計公司的平均薪水 * 6、修改員工的薪水 * 7、退出系統 */ package com.demo; import java.io.*; import java.io.InputStreamReader; import java.util.*; public class Test2 { public static void main(String[] args) throws Exception { //這裡直接是用了個throws丟擲了異常,沒有用try catch來拋 //建立一個僱員管理類EmpManage的物件 EmpManage em=new EmpManage(); //引入Buffer流來操作資料 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //做出一個簡易選單 while(true) { System.out.println("請選擇你要進行的操作:"); System.out.println("1:表示新增一個僱員"); System.out.println("2:表示查詢一個僱員"); System.out.println("3:表示修改一個僱員工資"); System.out.println("4:表示刪除一個僱員"); System.out.println("5:退出系統"); System.out.println("6:顯示所有僱員資訊"); System.out.println("7:表示求僱員薪水平均值"); String operType=br.readLine(); if(operType.equals("1")) { System.out.println("請輸入編號\n"); String empNo=br.readLine(); System.out.println("請輸入名字\n"); String name=br.readLine(); System.out.println("請輸入工資\n"); float sal=Float.parseFloat(br.readLine()); Emp emp=new Emp(empNo,name,sal); em.addEmp(emp); } else if(operType.equals("2")) { System.out.println("請輸入編號:"); String empNo=br.readLine(); em.showInfo(empNo); } else if(operType.equals("3")) { System.out.println("請輸入編號:"); String empNo=br.readLine(); float newsal=Float.parseFloat(br.readLine()); em.updateSal(empNo, newsal); } else if(operType.equals("4")) { System.out.println("請輸入編號:"); String empNo=br.readLine(); em.delEmp(empNo); } else if(operType.equals("5")) { System.exit(0); }else if(operType.equals("6")) { em.showEmp(); }else if(operType.equals("7")) { em.equalSal(); } } } } //建立僱員管理類 class EmpManage { //定義集合型別 private ArrayList<Emp> al=null; //建構函式 public EmpManage() { al=new ArrayList<Emp>(); } //加入員工 public void addEmp(Emp emp) { al.add(emp); } //根據員工號顯示員工的資訊 public void showInfo(String empNo) { //這個需要遍歷整個ArrayList陣列,來找到和輸入的員工號相同的員工 for(int i=0;i<al.size();i++) { //每一次都要取出emp物件 Emp emp=al.get(i); //判斷相同的員工號的條件,注意java裡的判斷相等不是==,而是用的equal; if(emp.getEmpNo().equals(empNo)) { //滿足條件,輸出該員工資訊 System.out.print("找到該員工,資訊為:"); System.out.print(" 名字: "+emp.getName()); System.out.print(" 編號: "+emp.getEmpNo()); System.out.println(" 薪水: "+emp.getSal()); } } } //顯示所有員工資訊 public void showEmp() { //遍歷陣列 for(int i=0;i<al.size();i++) { Emp emp=al.get(i); System.out.print("第"+(i+1)+"位員工資訊如下:"); System.out.print(" 名字: "+emp.getName()); System.out.print(" 編號: "+emp.getEmpNo()); System.out.println(" 薪水: "+emp.getSal()); } } //修改員工薪水 public void updateSal(String empNo,float newsal) { //遍歷 for(int i=0;i<al.size();i++) { Emp emp=al.get(i); if(emp.getEmpNo().equals(empNo)) { emp.setSal(newsal); } } } //刪除員工 public void delEmp(String empNo) { //遍歷 for(int i=0;i<al.size();i++) { Emp emp=al.get(i); if(emp.getEmpNo().equals(empNo)) { al.remove(i); } } } //統計員工的平均工資 public void equalSal() { float equalSal=0f; float tt=0f; for(int i=0;i<al.size();i++) { Emp emp=al.get(i); tt+=emp.getSal(); } equalSal=tt/al.size(); //列印 System.out.println("平均工資="+equalSal); } } //建立一個員工類 class Emp { private String empNo;//定義員工號 private String name;//姓名 private float sal;//薪水 //建構函式 public Emp(String name,String empNo,float sal) { this.sal=sal; this.empNo=empNo; this.name=name; } //生成get/set方法 public String getEmpNo() { return empNo; } public void setEmpNo(String empNo) { this.empNo = empNo; } public String getName() { return name; } public void setName(String name) { this.name = name; } public float getSal() { return sal; } public void setSal(float sal) { this.sal = sal; } }