综合案例

题目要求:
某公司要开发内部的 “办公信息化管理系统”,请使用面向对象的思想描述以下员工信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序运行参考效果图如下:
在这里插入图片描述
任务描述
一、语言和环境

实现语言
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());
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值