Java部门员工管理
四维空间中的未知点 人气:0项目作业:部门员工管理
题目要求:
某公司要开发内部的 “办公信息化管理系统”,请使用面向对象的思想描述以下员工信息。
程序运行参考效果图如下:
任务描述
一、程序整体要求
划分功能模块,根据题目要求设置不同的包和类,在类中实现相应功能的管理。
类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释,程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求,将作业项目形成压缩文件并提交。
二、思路分析
由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用):
1、部门类:
类型描述:能够描述部门编号、部门名称、员工数组、统计部门中的员工个数
要求:设定方法统计该部门员工个数
提示:部门类的属性有四个,分别是部门编号,部门名称,员工数组 和 统计变量 ,具体是市场部还是人事部,是通过部门类的对象来表示的,如果是市场部的对象,那么添加并统计的就是市场部的人数,同样如果是人事部的对象,添加并统计的就是人事部的人数。
2、职务类:
类型描述:能够描述职务编号、职务名称。
3、员工类:
类型描述:能够描述员工姓名、工号、年龄、性别、所属部门、职务信息
要求:
1、 设定方法限定年龄只能是18--65之间,反之则设置默认为18岁
2、 设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"(使用字符串的equals()方法)
3、 设定方法,实现员工自我介绍信息,将员工信息作为字符串返回
4、测试类:
类型描述:测试程序,并参照效果图输出结果
注意:可以在属性上添加适当的信息验证,提高信息的安全性
评分标准:
1、规范【10分】
每个类都封装在自己独立的 ".java"文件中;
文件、class、成员变量命名规范;
代码结构要层次分明;
Java代码规范及添加适量注释。
2、程序整体运行效果【10分】
程序正常运行效果,且满足效果图要求。信息间分隔符“=”号数量不做统一要求
3、部门类【22分】
能够描述部门编号、部门名称、获取所有该部门员工信息;设定方法,完成统计该部门员工个数的功能
4、职务类【6分】
能够描述职务编号、职务名称
5、员工类【34分】
能够描述员工姓名、工号、年龄、性别、所属部门、职务信息;
设定方法来约束年龄的范围;
设定方法来限定性别的选择;
设定方法,实现员工自我介绍信息,将员工信息作为字符串返回
6、测试类【18分】
测试程序,将题目中的员工信息传入到程序中,参照效果图输出结果
package com.staff; //部门类 public class Department{ private String DNumber; //部门编号 private String DName; //部门名称 private Staff[] Staff=new Staff[10]; //定义一个Staff类的员工数组 private int StaffNum; //员工人数 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); } /*将员工保存到数组中*/ 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(); } }
加载全部内容