描述员工信息的简易办公信息化管理系统

要求:
某公司要开发内部的 “办公信息化管理系统”,请使用面向对象的思想描述以下员工信息
那么我们来实现以下该要求。

首先看看运行效果
姓名:张铭
工号:S001
性别:男
年龄:18
职务:人事部经理
==================================
姓名:张艾爱
工号:S002
性别:女
年龄:18
职务:人事部助理
==================================
姓名:孙超
工号:S004
性别:男
年龄:18
职务:人事部职员
==================================
姓名:孙美美
工号:S005
性别:女
年龄:18
职务:市场部职员
==================================
姓名:蓝迪
工号:S006
性别:男
年龄:18
职务:市场部经理
==================================
姓名:米莉
工号:S007
性别:女
年龄:18
职务:市场部职员
==================================
人事部总共有3名员工
市场部总共有3名员工

1.员工类实现
public class Staff {


	/**
	 * Staff  员工
	 * @param args
	 */
	//员工的属性:姓名、性别、工号、年龄
	private String name;
	private String sex;
	private String num;
	private int age;
	private String zhiwu;
	
	//对全部属性进行赋值
	public Staff(String name, String sex, String num, int age,String zhiwu) {
		this.setName(name);
		this.setSex(sex);
		this.setNum(num);
		this.setAge(age);
		this.setZhiwu(zhiwu);
	}
	//get/set
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	//限定性别只能为男或者女,否则强制赋值为男
	public void setSex(String sex) {
		if(!sex.equals("男")&&!sex.equals("女"))
			this.sex = "男";
		else
			this.sex = sex;
		
	}
	public String getNum() {
		return num;
	}
	public void setNum(String num) {
		this.num = num;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		if(this.age>18 && this.age<65)
			this.age = age;
		else
			this.age = 18;
		
	}
	
	public String getZhiwu() {
		return zhiwu;
	}
	public void setZhiwu(String zhiwu) {
		this.zhiwu = zhiwu;
	}
	
	
	/**
	 * 员工介绍信息方法
	 * @return 返回的是员工的信息字符串
	 */
	public String introduce(Department dp,Post ps){
		String str="姓名:"+this.getName()+"\n工号:"+this.getNum()+"\n性别:"+this.getSex()+"\n年龄:"+this.getAge()+"\n职务:"+dp.getName()+ps.getName();
		return str;
	}
}
2.职务类实现
public class Post {

	/**
	 * post 职务
	 * @param args
	 */
	//成员属性:职务编号、职务名称
	private int num;
	private String name;
	
	
	//对属性赋值包括职务编号、职务名称
	public Post(int num, String name) {
		this.setNum(num);
		this.setName(name);
	}
	
	// get/set
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	public String info(){
		String str="职务:"+this.getName();
		return str;
	}
	
}

3.接下来就是部门类的实现了。
public class Department {
	/**
	 * Department  部门
	 * @param args
	 */


	//部门属性:部门编号、部门名称、该部门员工信息
	private int num;
	private String name;
	private Staff [] st;
	private int size;
	
	//对成员属性进行赋值:包括部门编号、部门名称、该部门员工信息
		public Department(int num, String name) {
			this.setNum(num);
			this.setName(name);
			this.setSt(st);
			this.setSize(size);
		}
	
	
	//对成员属性进行赋值:包括部门编号、部门名称、该部门员工信息
	public Department(int num, String name, Staff[] st, int size) {
		this.setNum(num);
		this.setName(name);
		this.setSt(st);
		this.setSize(size);
	}
	
	//get /set
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Staff[] getSt() {
		if(st==null)
			this.st = new Staff[200];
		return st;
	}
	
	//如果存放该部门人员信息数组为空,那么初始化分配空间,以免运行出现空指针异常
	public void setSt(Staff[] st) {
		if(st==null)
			st = new Staff[50];
		else
			this.st = st;
	}
	public int getSize() {
		return size;
	}
	public void setSize(int size) {
		
		this.size = size;
	}
	
	
	public String sign(){
		String str="部门属性:"+"\n部门编号:"+this.getNum()+"\n部门名称:"+this.getName();
		return str;
	}
	/**
	 * 方法是添加员工信息到部门里面。利用st数组下标的增加来实现。
	 * @param sf
	 * @return
	 */
	public void addStudent(Staff sf){
		/**
		 * 1.将员工保存到数组中
		 * 2.将员工个数保存到Size中
		 */
		//1.将员工保存到数组中
		for(int i=0;i<this.getSt().length;i++){
			if(this.getSt()[i]==null){
				this.getSt()[i]=sf;
				//2.将员工个数保存到Size中
				this.size = i+1;
				return;
			}
		}
	}
	
}

4.我们新建一个test类测试



public class Test {


	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//实例化部门类 并且赋值
		Department dc1 = new Department(1, "人事部");
		Department dc2 = new Department(2, "市场部");
		//实例化职务类 并且赋值
		Post po1 = new Post(1, "职员");
		Post po2 = new Post(2, "经理");
		Post po3 = new Post(3, "助理");
		//实例化员工类 并且赋值
		Staff sf1 = new Staff("张铭", "yier", "S001", 29,"人事部");
		System.out.println(sf1.introduce(dc1, po2));
		System.out.println("==================================");
		Staff sf2 = new Staff("张艾爱", "女", "S002", 21,"人事部");
		System.out.println(sf2.introduce(dc1,po3));
		System.out.println("==================================");
		Staff sf3 = new Staff("孙超", "男", "S004", 29,"人事部");
		System.out.println(sf3.introduce(dc1,po1));
		System.out.println("==================================");
		Staff sf4 = new Staff("孙美美", "女", "S005", 26,"市场部");
		System.out.println(sf4.introduce(dc2,po1));
		System.out.println("==================================");
		Staff sf5 = new Staff("蓝迪", "男", "S006", 37,"市场部");
		System.out.println(sf5.introduce(dc2,po2));
		System.out.println("==================================");
		Staff sf6 = new Staff("米莉", "女", "S007", 24,"市场部");
		System.out.println(sf6.introduce(dc2,po1));
		System.out.println("==================================");
		//将市场部/人事部的人员加入到数组中,并统计人数
		dc1.addStudent(sf1);
		dc1.addStudent(sf2);
		dc1.addStudent(sf3);
		dc2.addStudent(sf4);
		dc2.addStudent(sf5);
		dc2.addStudent(sf6);
		System.out.println(dc1.getName()+"总共有"+dc1.getSize()+"名员工");
		System.out.println(dc2.getName()+"总共有"+dc2.getSize()+"名员工");
	}


}


运行即可。
以上是我在学习过程中写的,也算是笔记类的东西,有什么不对之处希望各位指出。谢谢。源代码见下面


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值