任务描述
一、语言和环境
- 实现语言
Java语言 - 环境要求及开发工具
JDK、Eclipse
二、程序整体要求
- 划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。
- 类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
- 要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释
- 程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求
- 作业完成后发表在自己的博客上
三、思路分析:
由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用):
- 部门类:
类型描述:能够描述部门编号、部门名称、员工数组、统计部门中的员工个数
要求:设定方法统计该部门员工个数
提示:部门类的属性有四个,分别是部门编号,部门名称,员工数组 和 统计变量 ,具体是市场部还是人事部,是通过部门类的对象来表示的,如果是市场部的对象,那么添加并统计的就是市场部的人数,同样如果是人事部的对象,添加并统计的就是人事部的人数 - 职务类:
类型描述:能够描述职务编号、职务名称 - 员工类:类型描述:能够描述员工姓名、工号、年龄、性别、所属部门、职务信息要求:
-
- 设定方法限定年龄只能是18--65之间,反之则设置默认为18岁
- 设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"
- 设定方法,实现员工自我介绍信息,将员工信息作为字符串返回
- 测试类:
类型描述:测试程序,并参照效果图输出结果
package com.staff_information;
public class Department {
private String DeptId;
private String DeptName;
private Staff[] staffs;
private int staffNum;
public String getDeptId() {
return DeptId;
}
public void setDeptId(String deptId) {
DeptId = deptId;
}
public String getDeptName() {
return DeptName;
}
public void setDeptName(String deptName) {
DeptName = deptName;
}
public Staff[] getStaffs() {
if(this.staffs == null){
this.staffs = new Staff[200];
}
return staffs;
}
public void setStaffs(Staff[] staffs) {
this.staffs = staffs;
}
public int getStaffNum() {
return staffNum;
}
public void setStaffNum(int staffNum) {
if (staffNum < 0 ) {
this.staffNum = 0;
return;
}
this.staffNum = staffNum;
}
public Department() {
}
public Department(String deptId, String deptName) {
super();
DeptId = deptId;
DeptName = deptName;
}
public String deptInfo(){
String str = "部门编号:" + this.getDeptId();
str += "\n部门名称:" + this.getDeptName();
return str;
}
public void addStaff (Staff sta){
int i;
for (i=0; i< this.getStaffs().length; i++){
if (this.getStaffs()[i] == null){
this.getStaffs()[i] = sta;
sta.setDept(this);
break;
}
}
this.setStaffNum(i+1);
}
}
package com.staff_information;
public class Job {
private String jobId;
private String jobName;
public String getJobId() {
return jobId;
}
public void setJobId(String jobId) {
this.jobId = jobId;
}
public String getJobName() {
return jobName;
}
public void setJobName(String jobName) {
this.jobName = jobName;
}
public Job(){
}
public Job(String jobId, String jobName) {
super();
this.jobId = jobId;
this.jobName = jobName;
}
public String jobInfo(){
String str = "职务编号:" + this.getJobId();
str += "\n职务名称:" + this.getJobName();
return str;
}
}
package com.staff_information;
public class Staff {
private String staffName;
private String staffId;
private int staffAge;
private String staffSex;
private String staffDept;
private String staffJob;
private Department dept;
private Job job;
public Job getJob() {
if (this.job == null){
this.job = new Job();
}
return job;
}
public void setJob(Job job) {
this.job = job;
}
public Department getDept() {
if (this.dept == null){
this.dept = new Department();
}
return dept;
}
public void setDept(Department dept) {
this.dept = dept;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public int getStaffAge() {
return staffAge;
}
public void setStaffAge(int staffAge) {
if(staffAge >= 18 && staffAge <= 65){
this.staffAge = staffAge;
} else {
this.staffAge = 18;
}
}
public String getStaffSex() {
return staffSex;
}
public void setStaffSex(String staffSex) {
if (staffSex.equals("男") || staffSex.equals("女")) {
this.staffSex = staffSex;
} else {
this.staffSex = "男";
}
}
public String getStaffDept() {
return staffDept;
}
public void setStaffDept(String staffDept) {
this.staffDept = staffDept;
}
public String getStaffJob() {
return staffJob;
}
public void setStaffJob(String staffJob) {
this.staffJob = staffJob;
}
public Staff(){
}
public Staff(String staffName, String staffId, String staffSex,int staffAge,String staffDept, String staffJob) {
super();
this.staffName = staffName;
this.staffId = staffId;
this.staffAge = staffAge;
this.staffSex = staffSex;
this.staffDept = staffDept;
this.staffJob = staffJob;
}
public Staff(String staffName, String staffId, String staffSex,int staffAge) {
super();
this.staffName = staffName;
this.staffId = staffId;
this.staffAge = staffAge;
this.staffSex = staffSex;
}
public String staffInfo(){
String str = "姓名:" + this.getStaffName();
str += "\n工号:" + this.getStaffId();
str += "\n年龄:" + this.getStaffAge();
str += "\n性别:" + this.getStaffSex();
str += "\n所在部门:" + this.getStaffDept();
str += "\n职务:" + this.getStaffJob();
return str;
}
public String staffInfo(Job job){
String str = "姓名:" + this.getStaffName();
str += "\n工号:" + this.getStaffId();
str += "\n性别:" + this.getStaffSex();
str += "\n年龄:" + this.getStaffAge();
str += "\n职务:" + this.dept.getDeptName() + job.getJobName();
return str;
}
}
package com.staff_information;
public class Test {
public static void main(String[] args) {
Department dept1 = new Department("D001","人事部");
Department dept2 = new Department("D002","市场部");
Job job1 = new Job("P001","经理");
Job job2 = new Job("P002","助理");
Job job3 = new Job("P003","职员");
Staff staff1 = new Staff("张铭","S001","男",29);
Staff staff2 = new Staff("李艾爱","S002","女",21);
Staff staff3 = new Staff("孙超","S003","男",29);
Staff staff4 = new Staff("张美美","S004","女",26);
Staff staff5 = new Staff("蓝迪","S005","男",37);
Staff staff6 = new Staff("米莉","S006","女",24);
dept1.addStaff(staff1);
dept1.addStaff(staff2);
dept1.addStaff(staff3);
dept2.addStaff(staff4);
dept2.addStaff(staff5);
dept2.addStaff(staff6);
System.out.println(staff1.staffInfo(job1));
System.out.println("===============================");
System.out.println(staff2.staffInfo(job2));
System.out.println("===============================");
System.out.println(staff3.staffInfo(job3));
System.out.println("===============================");
System.out.println(staff4.staffInfo(job3));
System.out.println("===============================");
System.out.println(staff5.staffInfo(job1));
System.out.println("===============================");
System.out.println(staff6.staffInfo(job3));
System.out.println("===============================");
System.out.println(dept1.getDeptName() + "总共有" + dept1.getStaffNum() + "名员工");
System.out.println(dept2.getDeptName() + "总共有" + dept2.getStaffNum() + "名员工");
}
}