Java實現(xiàn)部門員工管理
本文實例為大家分享了Java實現(xiàn)部門員工管理的具體代碼,供大家參考,具體內容如下
項目作業(yè):部門員工管理
題目要求:
某公司要開發(fā)內部的 “辦公信息化管理系統(tǒng)”,請使用面向對象的思想描述以下員工信息。
程序運行參考效果圖如下:
任務描述
一、程序整體要求
劃分功能模塊,根據(jù)題目要求設置不同的包和類,在類中實現(xiàn)相應功能的管理。
類的標識要清楚易懂,代碼結構要層次分明,代碼編輯思路要清晰、整潔。
要求Java代碼書寫、命名符合規(guī)范,屬性所屬數(shù)據(jù)類型要準確合理,在代碼中添加必要的注釋,程序運行效果與提供的頁面效果圖、結構保持一致,信息間分隔符“=”號數(shù)量不做統(tǒng)一要求,文字大小、顏色也不做統(tǒng)一要求,將作業(yè)項目形成壓縮文件并提交。
二、思路分析
由場景和運行效果,可以分析出項目中可以抽取如下類(要求編碼時注意面向對象思想及封裝特性的應用):
1、部門類:
類型描述:能夠描述部門編號、部門名稱、員工數(shù)組、統(tǒng)計部門中的員工個數(shù)
要求:設定方法統(tǒng)計該部門員工個數(shù)
提示:部門類的屬性有四個,分別是部門編號,部門名稱,員工數(shù)組 和 統(tǒng)計變量 ,具體是市場部還是人事部,是通過部門類的對象來表示的,如果是市場部的對象,那么添加并統(tǒng)計的就是市場部的人數(shù),同樣如果是人事部的對象,添加并統(tǒng)計的就是人事部的人數(shù)。
2、職務類:
類型描述:能夠描述職務編號、職務名稱。
3、員工類:
類型描述:能夠描述員工姓名、工號、年齡、性別、所屬部門、職務信息
要求:
1、 設定方法限定年齡只能是18--65之間,反之則設置默認為18歲
2、 設定方法限定性別只能是“男”或者“女”,反之則設置默認為"男"(使用字符串的equals()方法)
3、 設定方法,實現(xiàn)員工自我介紹信息,將員工信息作為字符串返回
4、測試類:
類型描述:測試程序,并參照效果圖輸出結果
注意:可以在屬性上添加適當?shù)男畔Ⅱ炞C,提高信息的安全性
評分標準:
1、規(guī)范【10分】
每個類都封裝在自己獨立的 ".java"文件中;
文件、class、成員變量命名規(guī)范;
代碼結構要層次分明;
Java代碼規(guī)范及添加適量注釋。
2、程序整體運行效果【10分】
程序正常運行效果,且滿足效果圖要求。信息間分隔符“=”號數(shù)量不做統(tǒng)一要求
3、部門類【22分】
能夠描述部門編號、部門名稱、獲取所有該部門員工信息;設定方法,完成統(tǒng)計該部門員工個數(shù)的功能
4、職務類【6分】
能夠描述職務編號、職務名稱
5、員工類【34分】
能夠描述員工姓名、工號、年齡、性別、所屬部門、職務信息;
設定方法來約束年齡的范圍;
設定方法來限定性別的選擇;
設定方法,實現(xiàn)員工自我介紹信息,將員工信息作為字符串返回
6、測試類【18分】
測試程序,將題目中的員工信息傳入到程序中,參照效果圖輸出結果
package com.staff; ? //部門類 public class Department{ ? private String DNumber; ? ?//部門編號 ? private String DName; ? ? ?//部門名稱 ? private Staff[] Staff=new Staff[10]; ?//定義一個Staff類的員工數(shù)組 ? private int StaffNum; ? ? ?//員工人數(shù) ? public void setDNumber(String DNumber) ? { ? ? ? this.DNumber=DNumber; ? } ? public String getNumb0er() ? { ? ? ? return DNumber; ? } ? public void setDName(String DName) ? { ? ? ? this.DName=DName; ? ? } ? public String getDName(){ ? ? ? return DName; ? } ? public ?void setStaff(Staff Staff[]) ? { ? ? ? this.Staff=Staff; ? ? } ? public Staff[] getStaff() ? { ? ? ? return Staff; ? ? } ? public void setStaffNum(int StaffNum) ? { ? ? ? this.StaffNum=StaffNum; ? ? } ? public int getStaffNum() ? { ? ? ? return StaffNum; ? ? } ? //定義構造方法,獲得DNumber和DName的值 ? public Department(String DNumber,String DName){ ? ? ? this.setDNumber(DNumber); ? ? ? this.setDName(DName); ? } ? /*將員工保存到數(shù)組中*/ ? public void togetherStaff(Staff Sta){ ? ? ? for (int i=0;i<this.getStaff().length;i++){ ? ? ? ? ? if(this.getStaff()[i]==null){ ? ? ? ? ? ? ? this.getStaff()[i]=Sta; ? ? ? ? ? ? ? this.StaffNum=i+1; ? ? ? ? ? ? ? return; ? ? ? ? ? } ? ? ? } ? } }
package com.staff; ? //職務類 public class Office{ ? private String ONumber; ? //職務編號 ? private String OName; ? ? //職務名稱 ? public void setONumber(String ONumber) ? { ? ? ? this.ONumber=ONumber; ? ? } ? public String getONumber(){ ? ? ? ? return ONumber; ? } ? public void setOName(String OName){ ? ? ? ? this.OName=OName; ? } ? public String getOName() ? { ? ? ? return OName; ? ? } ? //定義構造方法,獲得ONumber和OName的值 ? public Office(String ONumber,String OName){ ? ? ? this.setONumber(ONumber); ? ? ? this.setOName(OName); ? } }
package com.staff; ? //員工類 public class Staff{ ? private String Name; ? ? //員工姓名 ? private String Number; ? //員工工號 ? private int Age; ? ? ? ? //員工年齡 ? private String Sex; ? ? ?//員工性別 ? private Department department; ?//員工所屬部門 ? private Office officeInfo; ? ? ?//員工職務信息 ? ? public void setName(String name){ ? ? ? ? this.Name=name; ? } ? public String getName(){ ? ? ? ? return Name; ? } ? public void setNumber(String Number){ ? ? ? ? this.Number=Number; ? } ? public String getNumber(){ ? ? ? ? return Number; ? } ? public void setAge(int Age){ ? ? ? if (Age<18||Age>65){ ? ? ? ? ? System.out.println("年齡只能在18~65歲之間,如果不在,則默認為18歲"); ? ? ? ? ? this.Age=18; ? ? ? } ? ? ? else ? ? ? ? ? this.Age=Age; ? } ? public int getAge(){ ? ? ? ? return Age; ? } ? public void setSex(String Sex){ ? ? ? if(!Sex.equals("男") && !Sex.equals("女")){ ? ? ? ? ? System.out.println("輸入性別有誤,默認值為男"); ? ? ? ? ? this.Sex="男"; ? ? ? } ? ? ? else ? ? ? ? ? this.Sex=Sex; ? } ? public String getSex(){ ? ? ? ? return Sex; ? } ? ? public void setDepartment(Department department) { ? ? ? ? this.department=department; ? } ? public Department getDepartment(){ ? ? ? ? return department; ? } ? ? public void setOfficeInfo(Office officeInfo) { ? ? ? ? this.officeInfo = officeInfo; ? } ? public Office getOfficeInfo(){ ? ? ? ? return officeInfo; ? } ? //定義構造方法,分別獲得員工姓名,員工工號,員工性別,員工姓名,員工所屬部門,員工職務信息 ? public Staff(String Name,String Number,String Sex,int Age,Department department,Office officeInfo){ ? ? ? this.setName(Name); ? ? ? this.setNumber(Number); ? ? ? this.setSex(Sex); ? ? ? this.setAge(Age); ? ? ? this.setDepartment(department); ? ? ? this.setOfficeInfo(officeInfo); ? } ? //定義普通方法,返回員工所有基本信息 ? public String staffIntroduction(){ ? ? ? return "姓名:"+ this.getName()+"\n工號:"+ this.getNumber()+"\n年齡:"+ this.getAge()+"\n性別:"+ this.getSex()+"\n職務:"+ this.getDepartment().getDName()+ this.getOfficeInfo().getOName(); ? } }
package com.staff; ? //員工類 public class Staff{ ? private String Name; ? ? //員工姓名 ? private String Number; ? //員工工號 ? private int Age; ? ? ? ? //員工年齡 ? private String Sex; ? ? ?//員工性別 ? private Department department; ?//員工所屬部門 ? private Office officeInfo; ? ? ?//員工職務信息 ? ? public void setName(String name){ ? ? ? ? this.Name=name; ? } ? public String getName(){ ? ? ? ? return Name; ? } ? public void setNumber(String Number){ ? ? ? ? this.Number=Number; ? } ? public String getNumber(){ ? ? ? ? return Number; ? } ? public void setAge(int Age){ ? ? ? if (Age<18||Age>65){ ? ? ? ? ? System.out.println("年齡只能在18~65歲之間,如果不在,則默認為18歲"); ? ? ? ? ? this.Age=18; ? ? ? } ? ? ? else ? ? ? ? ? this.Age=Age; ? } ? public int getAge(){ ? ? ? ? return Age; ? } ? public void setSex(String Sex){ ? ? ? if(!Sex.equals("男") && !Sex.equals("女")){ ? ? ? ? ? System.out.println("輸入性別有誤,默認值為男"); ? ? ? ? ? this.Sex="男"; ? ? ? } ? ? ? else ? ? ? ? ? this.Sex=Sex; ? } ? public String getSex(){ ? ? ? ? return Sex; ? } ? ? public void setDepartment(Department department) { ? ? ? ? this.department=department; ? } ? public Department getDepartment(){ ? ? ? ? return department; ? } ? ? public void setOfficeInfo(Office officeInfo) { ? ? ? ? this.officeInfo = officeInfo; ? } ? public Office getOfficeInfo(){ ? ? ? ? return officeInfo; ? } ? //定義構造方法,分別獲得員工姓名,員工工號,員工性別,員工姓名,員工所屬部門,員工職務信息 ? public Staff(String Name,String Number,String Sex,int Age,Department department,Office officeInfo){ ? ? ? this.setName(Name); ? ? ? this.setNumber(Number); ? ? ? this.setSex(Sex); ? ? ? this.setAge(Age); ? ? ? this.setDepartment(department); ? ? ? this.setOfficeInfo(officeInfo); ? } ? //定義普通方法,返回員工所有基本信息 ? public String staffIntroduction(){ ? ? ? return "姓名:"+ this.getName()+"\n工號:"+ this.getNumber()+"\n年齡:"+ this.getAge()+"\n性別:"+ this.getSex()+"\n職務:"+ this.getDepartment().getDName()+ this.getOfficeInfo().getOName(); ? } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
一文搞懂Spring中@Autowired和@Resource的區(qū)別
@Autowired?和?@Resource?都是?Spring/Spring?Boot?項目中,用來進行依賴注入的注解。它們都提供了將依賴對象注入到當前對象的功能,但二者卻有眾多不同,并且這也是常見的面試題之一,所以我們今天就來盤它2022-08-08springboot~nexus項目打包要注意的地方示例代碼詳解
這篇文章主要介紹了springboot~nexus項目打包要注意的地方,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07spring使用RedisTemplate的操作類訪問Redis
本篇文章主要介紹了spring使用RedisTemplate的操作類訪問Redis,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05MyBatis實現(xiàn)插入大量數(shù)據(jù)方法詳解
最近在公司項目開發(fā)中遇到批量數(shù)據(jù)插入或者更新,下面這篇文章主要給大家介紹了關于MyBatis實現(xiàn)批量插入的相關資料,需要的朋友可以參考下2022-11-11SpringBoot如何讀取配置文件參數(shù)并全局使用
這篇文章主要介紹了SpringBoot如何讀取配置文件參數(shù)并全局使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12