一、选择
执行下面代码后,哪几个结论是正确的 B
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语言
环境要求及开发工具
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()+"名员工");
}
}