某公司要开发内部的 “办公信息化管理系统”,请使用面向对象的思想描述以下员工信息。  程序运行参考效果图如下:  任务描述 一、语言和环境 - 实现语言 Java语言 - 环境要求及开发工具 JDK、Eclipse 二、程序整体要求 1. 划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。 2. 类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。 3. 要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释 4. 程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求 5. 将作业项目形成压缩文件并提交 三、思路分析: 由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用): - 部门类: 类型描述:能够描述部门编号、部门名称、获取所有该部门员工信息 要求:设定方法统计该部门员工个数 - 职务类: 类型描述:能够描述职务编号、职务名称 - 员工类: 类型描述:能够描述员工姓名、工号、年龄、性别、所属部门、职务信息 要求: 1、 设定方法限定年龄只能是18--65之间,反之则设置默认为18岁 2、 设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男" 3、 设定方法,实现员工自我介绍信息,将员工信息作为字符串返回 - 测试类: 类型描述:测试程序,并参照效果图输出结果 注意:可以在属性上添加适当的信息验证,提高信息的安全性 ```java package me.feihong.office; public class Staff { // 成员属性:员工姓名、工号、年龄、性别 private String staffName; private String staffNo; private int staffAge; private String staffSex; // 无参构造方法 public Staff() { } // 多参构造方法,实现对全部属性的赋值 public Staff(String staffName, String staffNo, int staffAge, String staffSex) { this.setStaffName(staffName); this.setStaffNo(staffNo); this.setStaffAge(staffAge); this.setStaffSex(staffSex); } public String getStaffName() { return staffName; } public void setStaffName(String staffName) { this.staffName = staffName; } public String getStaffNo() { return staffNo; } public void setStaffNo(String staffNo) { this.staffNo = staffNo; } public int getStaffAge() { return staffAge; } /** * 限定年龄只能是18-65之间,反之则设置默认为18岁 * * @param staffAge */ public void setStaffAge(int staffAge) { if (staffAge < 18 | staffAge > 65) this.staffAge = 18; else this.staffAge = staffAge; } public String getStaffSex() { return staffSex; } /** * 对员工性别进行限制,“男”或者“女”,否则默认为“男” * * @param staffSex */ public void setStaffSex(String staffSex) { if (this.staffSex=="男" || this.staffSex=="女") this.staffSex = staffSex; else this.staffSex = "男"; } /** * 员工自我介绍方法 * @return 自我介绍的信息,包括姓名、工号、性别、年龄 */ public String introduction() { String str = "员工信息如下:\n姓名:" + this.getStaffName() + "\n工号:" + this.getStaffNo() + "\n性别:" + this.getStaffSex() + "\n年龄:" + this.getStaffAge(); return str; } /** * 员工自我介绍方法 * @param myDepartment * @param myJob * @return 自我介绍信息,包括姓名、工号、性别、年龄、所在部门、职务 */ public String introduction(Department myDepartment,Job myJob) { String str = "员工信息如下:\n姓名:" + this.getStaffName() + "\n工号:" + this.getStaffNo() + "\n性别:" + this.getStaffSex() + "\n年龄:" + this.getStaffAge()+"\n职务:"+myDepartment.getDepartmentName()+myJob.getJobName(); return str; } } ``` ```java package me.feihong.office; public class Job { // 职务:职务编号、职务名称 private String jobNo; private String jobName; // 无参构造方法 public Job() { } // 带参构造方法,赋值给全部属性; public Job(String jobNo, String jobName) { this.setJobName(jobName); this.setJobNo(jobNo); } public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } public String getJobNo() { return jobNo; } public void setJobNo(String jobNo) { this.jobNo = jobNo; } } ``` ```java package me.feihong.office; public class Department { // 部门编号、部门名称、员工数组、统计变量 private String departmentNo; private String departmentName; private Staff[] myStaffs; private int staffNum; // 无参构造方法 public Department() { } // 带参构造方法,赋值给部门编号、部门名称 public Department(String departmentNo, String departName) { this.setDepartmentName(departName); this.setDepartmentNo(departmentNo); } public String getDepartmentName() { return departmentName; } public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } public String getDepartmentNo() { return departmentNo; } public void setDepartmentNo(String departmentNo) { this.departmentNo = departmentNo; } public Staff[] getMyStaffs() { if(this.myStaffs==null) this.myStaffs=new Staff[200]; return myStaffs; } public void setMyStaffs(Staff[] myStaffs) { this.myStaffs = myStaffs; } public int getStaffNum() { return staffNum; } public void setStaffNum(int staffNum) { this.staffNum = staffNum; } /** * 部门员工个数统计方法 * @param sta */ public void addStaff(Staff sta) { for(int i=0;i Loading... 某公司要开发内部的 “办公信息化管理系统”,请使用面向对象的思想描述以下员工信息。  程序运行参考效果图如下:  任务描述 一、语言和环境 - 实现语言 Java语言 - 环境要求及开发工具 JDK、Eclipse 二、程序整体要求 1. 划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。 2. 类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。 3. 要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释 4. 程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求 5. 将作业项目形成压缩文件并提交 三、思路分析: 由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用): - 部门类: 类型描述:能够描述部门编号、部门名称、获取所有该部门员工信息 要求:设定方法统计该部门员工个数 - 职务类: 类型描述:能够描述职务编号、职务名称 - 员工类: 类型描述:能够描述员工姓名、工号、年龄、性别、所属部门、职务信息 要求: 1、 设定方法限定年龄只能是18--65之间,反之则设置默认为18岁 2、 设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男" 3、 设定方法,实现员工自我介绍信息,将员工信息作为字符串返回 - 测试类: 类型描述:测试程序,并参照效果图输出结果 注意:可以在属性上添加适当的信息验证,提高信息的安全性 ```java package me.feihong.office; public class Staff { // 成员属性:员工姓名、工号、年龄、性别 private String staffName; private String staffNo; private int staffAge; private String staffSex; // 无参构造方法 public Staff() { } // 多参构造方法,实现对全部属性的赋值 public Staff(String staffName, String staffNo, int staffAge, String staffSex) { this.setStaffName(staffName); this.setStaffNo(staffNo); this.setStaffAge(staffAge); this.setStaffSex(staffSex); } public String getStaffName() { return staffName; } public void setStaffName(String staffName) { this.staffName = staffName; } public String getStaffNo() { return staffNo; } public void setStaffNo(String staffNo) { this.staffNo = staffNo; } public int getStaffAge() { return staffAge; } /** * 限定年龄只能是18-65之间,反之则设置默认为18岁 * * @param staffAge */ public void setStaffAge(int staffAge) { if (staffAge < 18 | staffAge > 65) this.staffAge = 18; else this.staffAge = staffAge; } public String getStaffSex() { return staffSex; } /** * 对员工性别进行限制,“男”或者“女”,否则默认为“男” * * @param staffSex */ public void setStaffSex(String staffSex) { if (this.staffSex=="男" || this.staffSex=="女") this.staffSex = staffSex; else this.staffSex = "男"; } /** * 员工自我介绍方法 * @return 自我介绍的信息,包括姓名、工号、性别、年龄 */ public String introduction() { String str = "员工信息如下:\n姓名:" + this.getStaffName() + "\n工号:" + this.getStaffNo() + "\n性别:" + this.getStaffSex() + "\n年龄:" + this.getStaffAge(); return str; } /** * 员工自我介绍方法 * @param myDepartment * @param myJob * @return 自我介绍信息,包括姓名、工号、性别、年龄、所在部门、职务 */ public String introduction(Department myDepartment,Job myJob) { String str = "员工信息如下:\n姓名:" + this.getStaffName() + "\n工号:" + this.getStaffNo() + "\n性别:" + this.getStaffSex() + "\n年龄:" + this.getStaffAge()+"\n职务:"+myDepartment.getDepartmentName()+myJob.getJobName(); return str; } } ``` ```java package me.feihong.office; public class Job { // 职务:职务编号、职务名称 private String jobNo; private String jobName; // 无参构造方法 public Job() { } // 带参构造方法,赋值给全部属性; public Job(String jobNo, String jobName) { this.setJobName(jobName); this.setJobNo(jobNo); } public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } public String getJobNo() { return jobNo; } public void setJobNo(String jobNo) { this.jobNo = jobNo; } } ``` ```java package me.feihong.office; public class Department { // 部门编号、部门名称、员工数组、统计变量 private String departmentNo; private String departmentName; private Staff[] myStaffs; private int staffNum; // 无参构造方法 public Department() { } // 带参构造方法,赋值给部门编号、部门名称 public Department(String departmentNo, String departName) { this.setDepartmentName(departName); this.setDepartmentNo(departmentNo); } public String getDepartmentName() { return departmentName; } public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } public String getDepartmentNo() { return departmentNo; } public void setDepartmentNo(String departmentNo) { this.departmentNo = departmentNo; } public Staff[] getMyStaffs() { if(this.myStaffs==null) this.myStaffs=new Staff[200]; return myStaffs; } public void setMyStaffs(Staff[] myStaffs) { this.myStaffs = myStaffs; } public int getStaffNum() { return staffNum; } public void setStaffNum(int staffNum) { this.staffNum = staffNum; } /** * 部门员工个数统计方法 * @param sta */ public void addStaff(Staff sta) { for(int i=0;i<this.getMyStaffs().length;i++) { if(this.getMyStaffs()[i]==null) { this.getMyStaffs()[i]=sta; this.staffNum=i+1; return; } } } } ``` ```java package me.feihong.test; import me.feihong.office.*; public class OfficeTest { public static void main(String[] args) { Department dep1=new Department("D001","人事部"); Department dep2=new Department("D002","市场部"); Job job1=new Job("J001","经理"); Job job2=new Job("J002","助理"); Job job3=new Job("J003","职员"); Staff sta1=new Staff("张铭","S001",29,"男"); Staff sta2=new Staff("李艾爱","S002",21,"女"); Staff sta3=new Staff("孙超","S004",29,"男"); Staff sta4=new Staff("张美美","S005",26,"女"); Staff sta5=new Staff("蓝迪","S006",37,"男"); Staff sta6=new Staff("米莉","S007",24,"女"); System.out.println(sta1.introduction(dep1,job1)); System.out.println("=============================="); System.out.println(sta2.introduction(dep1,job2)); System.out.println("=============================="); System.out.println(sta3.introduction(dep1,job3)); System.out.println("=============================="); System.out.println(sta4.introduction(dep2,job3)); System.out.println("=============================="); System.out.println(sta5.introduction(dep2,job1)); System.out.println("=============================="); System.out.println(sta6.introduction(dep2,job3)); System.out.println("=============================="); dep1.addStaff(sta1); dep1.addStaff(sta2); dep1.addStaff(sta3); dep2.addStaff(sta4); dep2.addStaff(sta5); dep2.addStaff(sta6); System.out.println(dep1.getDepartmentName()+"总共有"+dep1.getStaffNum()+"名员工"); System.out.println(dep2.getDepartmentName()+"总共有"+dep2.getStaffNum()+"名员工"); } } ``` 最后修改:2019 年 12 月 31 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏