题目要求:
某公司要开发内部的 “办公信息化管理系统”,请使用面向对象的思想描述以下员工信息。
程序运行参考效果图如下:
任务描述
一、语言和环境
实现语言
Java语言
环境要求及开发工具
JDK、Eclipse
二、程序整体要求
划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。
类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释
程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求
作业完成后发表在自己的博客上
三、思路分析:
由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用):
部门类:
类型描述:能够描述部门编号、部门名称、员工数组、统计部门中的员工个数
要求:设定方法统计该部门员工个数
提示:部门类的属性有四个,分别是部门编号,部门名称,员工数组 和 统计变量 ,具体是市场部还是人事部,是通过部门类的对象来表示的,如果是市场部的对象,那么添加并统计的就是市场部的人数,同样如果是人事部的对象,添加并统计的就是人事部的人数
职务类:
类型描述:能够描述职务编号、职务名称
员工类:
类型描述:能够描述员工姓名、工号、年龄、性别、所属部门、职务信息
要求:
设定方法限定年龄只能是18–65之间,反之则设置默认为18岁
设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"
设定方法,实现员工自我介绍信息,将员工信息作为字符串返回
测试类:
类型描述:测试程序,并参照效果图输出结果
PS:注意:可以在属性上添加适当的信息验证,提高信息的安全性
public class Department {
private String depNum;
private String depName;
private Person[] arr = new Person[10];
private int personNum;
public String getDepNum() {
return depNum;
}
public void setDepNum(String depNum) {
this.depNum = depNum;
}
public String getDepName() {
return depName;
}
public void setDepName(String depName) {
this.depName = depName;
}
public Person[] getArr() {
return arr;
}
public void setArr(Person[] arr) {
this.arr = arr;
}
public int getPersonNum() {
return personNum;
}
public void setPersonNum(int personNum) {
if(personNum < 0){
return;
}
this.personNum = personNum;
}
public void Department(){
}
public Department(String depNum, String depName) {
super();
this.setDepName(depName);
this.setDepNum(depNum);
}
public String infor(){
String str = "";
str = "部门编号:"+this.depNum;
str+= "\n部门名称:"+this.depName;
return str;
}
//统计部分人数,将员工放到对应的数组中去
public void addPerson(Person person){
int i;
for(i = 0; i < this.arr.length;i++){
if(arr[i] == null){
arr[i] = person;
break;
}
this.setPersonNum(i + 1);
}
}
public String intro(){
String str = "";
str = this.getDepName() +"总共有" +this.getPersonNum() +"名员工";
return str;
}
}
public class Person {
//姓名、工号、性别、年龄
private String name;
private String num;
private String sex;
private int age;
private Department department;
private Post post;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
if(! sex.equals("男") && ! sex.equals("女")){
this.sex = "保密";
}else {
this.sex = sex;
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public Post getPost() {
return post;
}
public void setPost(Post post) {
this.post = post;
}
public void person(){
}
/**
*
* @param name
* @param num
* @param sex
* @param age
* @param department
* @param post
*/
public Person(String name, String num, String sex, int age, Department department, Post post) {
super();
this.setName(name);
this.setNum(num);
this.setAge(age);
this.setSex(sex);
this.setPost(post);
this.setDepartment(department);
}
public String info(){
String str = "";
str = "姓名:"+this.name;
str+= "\n工号:"+this.num;
str+= "\n性别:"+this.sex;
str+="\n年龄:"+this.age;
str+= "\n 职务:"+this.getDepartment().getDepName() + this.getPost().getPosName();
return str;
}
}
public class Post {
private String postNum;
private String posName;
public String getPostNum() {
return postNum;
}
public void setPostNum(String postNum) {
this.postNum = postNum;
}
public String getPosName() {
return posName;
}
public void setPosName(String posName) {
this.posName = posName;
}
public void Post(){
}
public Post(String postNum, String posName) {
super();
this.setPosName(posName);
this.setPostNum(postNum);
}
public String infora(){
String str = "";
str = "职务编号:"+this.postNum;
str+= "\n部门名称:"+this.posName;
return str;
}
}
public class Test {
public static void main(String[] args) {
//职务
Post post1 = new Post("P001","经理");
Post post2 = new Post("P002","助理");
Post post3 = new Post("P003","职员");
//部门
Department dep1 = new Department("D001","人事部");
Department dep2 = new Department("D002","市场部");
//员工
Person person1 = new Person("张铭", "S001", "男", 29,dep1,post1);
System.out.println(person1.info());
System.out.println("===========================");
Person person2 = new Person("李艾爱", "S002", "女", 21,dep1,post2);
System.out.println(person2.info());
System.out.println("===========================");
Person person3 = new Person("孙超", "S003", "男", 29,dep1,post3);
System.out.println(person3.info());
System.out.println("===========================");
Person person4 = new Person("张美美", "S004", "女", 26,dep2,post3);
System.out.println(person4.info());
System.out.println("===========================");
Person person5 = new Person("蓝迪", "S005", "男", 37,dep2,post1);
System.out.println(person5.info());
System.out.println("===========================");
Person person6 = new Person("米莉", "S006", "女", 24,dep2,post3);
System.out.println(person6.info());
System.out.println("===========================");
dep1.addPerson(person1);
dep1.addPerson(person2);
dep1.addPerson(person3);
dep2.addPerson(person4);
dep2.addPerson(person5);
dep2.addPerson(person6);
System.out.println(dep1.intro());
System.out.println(dep2.intro());
}
}