一、选择

执行下面代码后,哪几个结论是正确的 B

java ddd 案例 java案例题_System


A. f[0]

B. f[0] = 0.0

C. 编译失败

D. 在运行时抛出异常

执行下面代码后,哪几个结论是正确的(多选)A、D

String[ ] s = new String[10];

A. s[9]为null

B. s[10]的内容为空字符串

C. 没有s[0]

D. s.length=10

二、编程题

题目要求:

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

java ddd 案例 java案例题_java_02

java ddd 案例 java案例题_java ddd 案例_03


java ddd 案例 java案例题_java ddd 案例_04


程序运行参考效果图如下:

java ddd 案例 java案例题_构造方法_05

任务描述
一、语言和环境

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

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

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

public class Department {
	//成员属性:部门编号、部门名称、员工数组 和 部门中的员工人数
	private String departmentName;
	private String departmentNo;
	private Staffs[] myStaffs=new Staffs[10];
	private int postNum;
	
	//无参构造方法
	public Department() {
	}
	
	//多参构造方法,实现对部门编号、部门名称、员工数组、部门人数的赋值
	public Department(String departmentName, String departmentNo, Staffs[] myStaffs, int postNum) {
		super();
		this.setDepartmentName(departmentName);
		this.setDepartmentNo(departmentNo);
		this.setMyStaffs(myStaffs);
		this.setPostNum(postNum);
	}

	public String getDepartmentName() {
		return departmentName;
	}

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

	public String getDepartmentNo() {
		return departmentNo;
	}

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

	public Staffs[] getMyStaffs() {
		return myStaffs;
	}

	public void setMyStaffs(Staffs[] myStaffs) {
		this.myStaffs = myStaffs;
	}
	
	public int getPostNum() {
		return postNum;
	}

	public void setPostNum(int postNum) {
		this.postNum = postNum;
	}


	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	
	public void addStaffs(Staffs sta) {
		  /* 如何添加学生信息到数组中去
		   * 需要将学生数组进行遍历,依次判读数组中保存的元素是否为null
		   * 如果为null就可以用学生信息(学生对象)替代 
		   */
		  int i;
		  for(i = 0; i < this.getMyStaffs().length; i++) {
		    if(this.getMyStaffs()[i] == null) {
		      sta.setStaffsDepartment(this);
		      this.getMyStaffs()[i] = sta;
		      break;
		    }
		  }
		  //将个数保存到个数统计中去
		  this.setPostNum(i + 1); 
		  //对于该方法中的两步操作,还可以怎么写?
		}

}

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

public class Post {
	//成员属性:职务编号、职务名称
	private String postName;
	private String postNo;
	
	//无参构造方法
	public Post() {
		super();
	}
	//多参构造方法,实现对部门编号、部门名称的赋值
	public Post(String postName, String postNo) {
		super();
		this.setPostName(postName);
		this.setPostNo(postNo);
	}
	public String getPostName() {
		return postName;
	}


	public void setPostName(String postName) {
		this.postName = postName;
	}


	public String getPostNo() {
		return postNo;
	}


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



	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

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

设定方法限定年龄只能是18–65之间,反之则设置默认为18岁
设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"
设定方法,实现员工自我介绍信息,将员工信息作为字符串返回

public class Staffs {
	//成员属性:姓名、工号、年龄、性别、部门、职务
	private String staffsName;
	private String staffsNo;
	private int staffsAge;
	private String staffsSex;
	private Department staffsDepartment;
	private Post stassfPost;
	
	//无参构造方法
	public Staffs() {
		super();
	}
	//多参构造方法,实现对员工姓名、工号、年龄、性别、部门、职务的赋值
	public Staffs(String staffsName, String staffsNo, int staffsAge, String staffsSex, Department staffsDepartment,
			Post stassfPost) {
		super();
		this.setStaffsName(staffsName);
		this.setStaffsNo(staffsNo);
		this.setStaffsAge(staffsAge);
		this.setStaffsSex(staffsSex);
		this.setStaffsDepartment(staffsDepartment);
		this.setStassfPost(stassfPost);
	}




	public String getStaffsName() {
		return staffsName;
	}



	public void setStaffsName(String staffsName) {
		this.staffsName = staffsName;
	}



	public String getStaffsNo() {
		return staffsNo;
	}



	public void setStaffsNo(String staffsNo) {
		this.staffsNo = staffsNo;
	}



	public int getStaffsAge() {
		return staffsAge;
	}



	public void setStaffsAge(int staffsAge) {
		if(staffsAge<18||staffsAge>65){
			this.staffsAge = 18;
		}
		this.staffsAge = staffsAge;
	}



	public String getStaffsSex() {
		return staffsSex;
	}



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



	public Department getStaffsDepartment() {
		return staffsDepartment;
	}



	public void setStaffsDepartment(Department staffsDepartment) {
		this.staffsDepartment = staffsDepartment;
	}



	public Post getStassfPost() {
		return stassfPost;
	}



	public void setStassfPost(Post stassfPost) {
		this.stassfPost = stassfPost;
	}
	
	public String info(){
		String str = "姓名:" + this.getStaffsName() + "\n工号:" + this.getStaffsNo() + "\n性别:" + this.getStaffsSex()
				+ "\n年龄:" + this.getStaffsAge() + "\n职务:" + this.getStaffsDepartment().getDepartmentName()
				+ this.getStassfPost().getPostName();
		return str;
	}



	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

测试类:
类型描述:测试程序,并参照效果图输出结果

public class Test {
	public static void main(String[] args) {
		//测试Department
		Department dp1=new Department();
		dp1.setDepartmentName("人事部");
		dp1.setDepartmentNo("D001");
		Department dp2=new Department();
		dp2.setDepartmentName("市场部");
		dp2.setDepartmentNo("D002");
		//测试Post
		Post p1 =new Post("经理","p001");
		Post p2 =new Post("助理","p002");
		Post p3 =new Post("职员","p003");
		//添加员工
		Staffs sta1=new Staffs("张铭","S001",29,"男",dp1,p1);
		Staffs sta2=new Staffs("李艾爱","S002",21,"女",dp1,p2);
		Staffs sta3=new Staffs("孙超","S003",27,"男",dp1,p3);
		Staffs sta4=new Staffs("张美美","S004",26,"女",dp2,p3);
		Staffs sta5=new Staffs("张三","S005",36,"男",dp2,p1);
		Staffs sta6=new Staffs("米莉","S006",28,"女",dp2,p2);
		//测试名部门有多少员工
		dp1.addStaffs(sta1);
		dp1.addStaffs(sta2);
		dp1.addStaffs(sta3);
		dp2.addStaffs(sta4);
		dp2.addStaffs(sta5);
		dp2.addStaffs(sta6);
		System.out.println(sta1.info());
		System.out.println("=================================");
		System.out.println(sta2.info());
		System.out.println("=================================");
		System.out.println(sta3.info());
		System.out.println("=================================");
		System.out.println(sta4.info());
		System.out.println("=================================");
		System.out.println(sta5.info());
		System.out.println("=================================");
		System.out.println(sta6.info());
		System.out.println("=================================");
		System.out.println(dp1.getDepartmentName()+"总共有"+dp1.getPostNum()+"名员工");
		System.out.println(dp2.getDepartmentName()+"总共有"+dp2.getPostNum()+"名员工");

	}

}