项目作业:部门员工管理
项目作业 6940
等559人参与

       小伙伴们,掌握了Java语言中最关键的思想 — 面向对象程序设计思想,熟悉了Java类与对象的相关操作后,现在让我们运用所学知识完成下图所示的Java程序开发。

题目要求:

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

//img1.sycdn.imooc.com//climg/5db41290299225cb05001000.jpg

//img1.sycdn.imooc.com//climg/5db41044295e60f705001000.jpg

//img1.sycdn.imooc.com//climg/5ecb6477296e1ee005001000.jpg

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

//img1.sycdn.imooc.com//climg/5ec22c4b29142dda05001000.jpg

作业描述

一、语言和环境

  • 实现语言

       Java语言

  • 环境要求及开发工具

       JDK、Eclipse

 

二、程序整体要求

  1. 划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。

  2. 类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。

  3. 要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释

  4. 程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求

  5.  将作业项目形成压缩文件并提交

 

三、思路分析:

      由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用):

  • 部门类:

       类型描述:能够描述部门编号、部门名称、员工数组、统计部门中的员工个数

       要求:设定方法统计该部门员工个数

       提示:部门类的属性有四个,分别是部门编号,部门名称,员工数组 和 统计变量 ,

                 具体是市场部还是人事部,是通过部门类的对象来表示的,如果是市场部的对象,

                 那么添加并统计的就是市场部的人数,同样如果是人事部的对象,

                 添加并统计的就是人事部的人数

 

  • 职务类:

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

 

  • 员工类:

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

       要求:

        1、 设定方法限定年龄只能是18--65之间,反之则设置默认为18岁

        2、 设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"

        3、 设定方法,实现员工自我介绍信息,将员工信息作为字符串返回

 

  • 测试类:

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

 

注意:可以在属性上添加适当的信息验证,提高信息的安全性



评分标准是什么?

规范【10分】   

  • 每个类都封装在自己独立的 ".java"文件中;

  • 文件、class、成员变量命名规范;                   

  • 代码结构要层次分明;  

  • Java代码规范及添加适量注释。


程序整体运行效果【10分】 

  • 程序正常运行效果,且满足效果图要求。信息间分隔符“=”号数量不做统一要求


部门类【22分】

  • 能够描述部门编号、部门名称、获取所有该部门员工信息;设定方法,完成统计该部门员工个数的功能


职务类【6分】

  • 能够描述职务编号、职务名称


员工类【34分】

  • 能够描述员工姓名、工号、年龄、性别、所属部门、职务信息;

  • 设定方法来约束年龄的范围;

  • 设定方法来限定性别的选择;

  • 设定方法,实现员工自我介绍信息,将员工信息作为字符串返回


测试类【18分】

  • 测试程序,将题目中的员工信息传入到程序中,参照效果图输出结果


项目作业上传说明
第1步:上传你的作业压缩包
第2步:等待讲师一对一批复
第3步:查看讲师点评
上传作业

登录后查看更多作业,立即

批复案例

部门类
1、部门类中员工属性无需定义成List类型
图片描述
因为此处还没有学习List,建议根据作业要求定义成数组类型
图片描述
为员工数组编写相应的set和get方法,在员工数组的get方法中,判断如果该数组为null则初始化一个合理长度的数组,在if条件语句外使用return语句返回一个数组。如果数组已经初始化,则直接返回即可。
修改后的代码如下:
图片描述
2、如下图所示,同学分别定义了部门类和市场类的对象,虽然这种方式可以实现存储,但是如果有多个部门,这样的方式会比较繁琐。
图片描述

建议单独写一个添加员工并进行数据统计的方法,与打印输出信息的内容分开完成,实现思路如下:
写一个添加员工的方法,参数是员工类,方法内写一个for循环,for循环中的条件是int i = 0 ;i <getEmployee().length ; i ++ ,循环内写一个if语句,判断如果 this.getEmployee()[i]为null,把传递过来的员工对象赋值给this.getEmployee()[i]。并且把员工数加一,return。此过程是把员工添加到数组中,并且计数。
修改后的代码如下:
图片描述
员工类
1、关于属性中职务和部门类型的设置
员工类型中在描述所属部门类型及职务时,建议通过部门类和职务类进行设置,而不是采用String类型,通过对象化设置以便于在后续更好地获取部门及职务的相关信息。例如:
图片描述
2、重写toString()方法时可以按照如下方式完成
图片描述
测试类
测试类可按照如下思路完成
1、先创建2个部门类对象,分别为市场部和人事部。例如:
Department dep1 = new Department(“1”, “人事部”);
2、创建3个职务类对象。分别为经理,助理,职员。例如:
Position post1 = new Position(“1”,“经理”);
3、创建6个员工对象,例如:
Employee employee1= new Employee(“米莉”, “S006”, “女”, 24, dep1, post1);
4、调用员工的介绍方法,展示一下员工信息。当然toString()方法不写也可以,会自动调用。
System.out.println(employee1.toString());

5、最后,各个部门对象通过调用添加员工的方法,把对应的员工对象传递进去。
例如:employee1是人事部的员工,则:
dep1.addEmployee(employee1);
6、最后打印输出dep1和dep2的staffNums,展示一下员工数。
System.out.println(“人事部总共有”+dep1.getNumber()+“名员工”);
请同学再重新看一下《综合案例:学生信息管理》课程的视频,跟着写代码,然后再做作业,会让你对作业的理解更加清晰。

评论
展开评论
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师