综合练习 信息管理

1 b
2 ad

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序运行参考效果图如下:
在这里插入图片描述

任务描述
一、语言和环境

实现语言
Java语言
环境要求及开发工具
JDK、Eclipse
二、程序整体要求

划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。
类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释
程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求
作业完成后发表在自己的博客上
三、思路分析:
由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用):

部门类:
类型描述:能够描述部门编号、部门名称、员工数组、统计部门中的员工个数
要求:设定方法统计该部门员工个数
提示:部门类的属性有四个,分别是部门编号,部门名称,员工数组 和 统计变量 ,具体是市场部还是人事部,是通过部门类的对象来表示的,如果是市场部的对象,那么添加并统计的就是市场部的人数,同样如果是人事部的对象,添加并统计的就是人事部的人数

职务类:
类型描述:能够描述职务编号、职务名称

员工类:
类型描述:能够描述员工姓名、工号、年龄、性别、所属部门、职务信息
要求:

设定方法限定年龄只能是18–65之间,反之则设置默认为18岁
设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"
设定方法,实现员工自我介绍信息,将员工信息作为字符串返回
测试类:
类型描述:测试程序,并参照效果图输出结果

职务类

package 员工信息;

/**
 * 职务类
 * @author Administrator
 *
 */
public class Post {
	private String postNo;//职务编号
	
	private String postName;//职务名称

	public String getPostNo() {
		return postNo;
	}

	public void setPostNo(String postNo) {
		this.postNo = postNo;
	}

	public String getPostName() {
		return postName;
	}

	public void setPostName(String postName) {
		this.postName = postName;
	}
	
	
	//无参构造器
	public Post() {
	
	}
	
	//有参构造器
	public Post(String postNo, String postName) {
		super();
		this.setPostName(postName);
		this.setPostNo(postNo);
	}
}

部门类

package 员工信息;

/**
* 部门类
* @author Administrator
* 通过部门类实例化两种对象-市场部对象,人事部对象
* 市场部员工要通过市场部对象中的数组存储并统计
* 人事部员工要通过市场部对象中的数组存储并统计
*/

public class Department {
	private String departmentNo;
	
	private String departmentName;
	
	private Staff[] staffs;//员工数组
	
	private int staffNum;//员工数量

	public String getDepartmentNo() {
		return departmentNo;
	}

	public void setDepartmentNo(String departmentNo) {
		this.departmentNo = departmentNo;
	}

	public String getDepartmentName() {
		return departmentName;
	}

	public void setDepartmentName(String departmentName) {
		this.departmentName = departmentName;
	}

	public Staff[] getStaffs() {
		if(this.staffs == null) {
			this.staffs = new Staff[6];
		}
		return staffs;
	}

	public void setStaffs(Staff[] staffs) {
		this.staffs = staffs;
	}

	public int getStaffNum() {
		return staffNum;
	}

	public void setStaffNum(int staffNum) {
		this.staffNum = staffNum;
	}

	public Department() {
		super();
	}

	public Department(String departmentNo, String departmentName) {
		super();
		this.departmentNo = departmentNo;
		this.departmentName = departmentName;
	}
	
	
	/**
	 * 统计员工个数
	 * 先添加,在统计
	 */
	public void statistic(Staff staff) {
		int i;
		for(i = 0; i < this.getStaffs().length; i++) {
			if(this.getStaffs()[i] == null) {
				this.getStaffs()[i] = staff;
				break;
			}
		}
		this.staffNum = i + 1;
	}
}

员工类

package 员工信息;

public class Staff {
	private String name;
	
	private String no;
	
	private int age;
	
	private String sex;
	
	private Department department;
	
	private Post post;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getNo() {
		return no;
	}

	public void setNo(String no) {
		this.no = no;
	}

	public int getAge() {
		return age;
	}
	
	/**
	 * 限定年龄只能是18
	 * @param age
	 */
	public void setAge(int age) {
		if(age > 65 || age < 18) {
			this.age = 18;
			return;
		}
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		if(sex.equals("男") || sex.equals("女")) {
			this.sex = sex;
		} else{
			this.sex = "男";
		}
	}

	public Department getDepartment() {
		if(this.department == null) {
			this.department = new Department();
		}
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}

	public Post getPost() {
		if(this.post == null) {
			this.post = new Post();
		}
		return post;
	}

	public void setPost(Post post) {
		this.post = post;
	}

	public Staff() {
		super();
	}

	public Staff(String name, String no, int age, String sex, Department department, Post post) {
		super();
		this.name = name;
		this.no = no;
		this.age = age;
		this.sex = sex;
		this.department = department;
		this.post = post;
	}

	public String introduction() {
		String str = "";
		str = "姓名:" + this.getName() + "\n" + "工号:" + this.getNo() + "\n";
		str += "性别:" + this.getSex() + "\n" + "年龄:" + this.getAge() + "\n";
		str += "职务:" + this.getDepartment().getDepartmentName() + this.getPost().getPostName(); 
		return str;
	}
}

测试类

package 员工信息;



public class Test {
	public static void main(String[] args) {
		Department depR = new Department("D001","人事部");
		Department depS = new Department("D002","市场部");
		Post psjl = new Post("P001","经理");
		Post pszl = new Post("P002","助理");
		Post pszy = new Post("P003","职员");
		Staff one = new Staff("张铭","S001",29,"男",depR,psjl);
		Staff two = new Staff("李艾爱","S002",21,"女",depR,pszl);
		Staff three = new Staff("孙超","S003",29,"男",depR,pszy);
		Staff four = new Staff("张美美","S004",26,"女",depS,pszy);
		Staff five = new Staff("蓝迪","S005",37,"男",depS,psjl);
		Staff six = new Staff("米莉","S006",24,"女",depS,pszy);
		System.out.println(one.introduction());
		System.out.println("========================");
		System.out.println(two.introduction());
		System.out.println("========================");
		System.out.println(three.introduction());
		System.out.println("========================");
		System.out.println(four.introduction());
		System.out.println("========================");
		System.out.println(five.introduction());
		System.out.println("========================");
		System.out.println(six.introduction());
		System.out.println("========================");
		
		depR.statistic(one);
		depR.statistic(two);
		depR.statistic(three);
		System.out.println("人事部共有" + depR.getStaffNum() + "名员工");
		depS.statistic(four);
		depS.statistic(five);
		depS.statistic(six);
		System.out.println("市场部共有" + depS.getStaffNum() + "名员工");
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值