实现Staff类的汇报工作功能
2018-03-20 17:55
211 查看
解决方案:
1创建汇报类Reportpublic class Report {
//汇报类
private int reportId;
private int reporterId;
private String content;
public int getReportId() {
return reportId;
}
public void setReportId(int reportId) {
this.reportId = reportId;
}
public int getReporterId() {
return reporterId;
}
public void setReporterId(int reporterId) {
this.reporterId = reporterId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
2,创建Data数据初始化类public class Data {
//保存当前登录的员工
public static Employee currentEmployee;
//角色值为1普通员工 2经理 3 管理员
//部门值1表示市场部 2表示开发部 3信息部
//实例普通员工
public static Staff staff=new Staff(1,"DH001","Staff","Staff",2,1,3000.5);
//部门经理
public static Manager manager=new Manager(2,"DH002","Manager","Manager",2,2,5000.5);
//实例管理员
public static Admin admin=new Admin(3,"DH003","Admin","Admin",2,3,4000.5);
public static Report[] reports=new Report[1000];
//初始化数据
public static void init(){
for(int i=0;i<reports.length;i++){
reports[i]=new Report();
}
}
}
3,创建业务逻辑类hrhelperpublic class HrHelper {
//登录检测
public Employee login(String name,String password){
if(name.equals(Data.staff .getUserName())&& password.equals(Data.staff.getPassword())){
Data.currentEmployee=Data.staff ;
}else if(name.equals(Data.manager.getUserName())&& password.equals(Data.manager.getPassword())){
Data.currentEmployee=Data.manager ;
}else if(name.equals(Data.admin.getUserName())&& password.equals(Data.admin.getPassword())){
Data.currentEmployee=Data.admin;
}
return Data.currentEmployee;
}
public int getReportsCount(){
int count=0;
//如果遍历完现有汇报
for(Report item:Data.reports){
if(item.getReportId()<=0)
break;
count++;
}
//返回现有汇报数量
return count;
}
//通过员工id返回员工对象
public Employee getEmployeeByUserId(int userId){
if(Data.staff.getUserId()==userId)
return Data.staff;
if(Data.manager.getUserId()==userId)
return Data.manager;
if(Data.admin.getUserId()==userId)
return Data.admin;
return null;
}
//显示所有汇报
public void displayReports(){
System.out.println("汇报如下");
System.out.println("*****************************");
for(int i=0;i<Data.reports.length;i++){
//如果遍历完现有汇报
if(Data.reports[i]==null)
break;
//得到汇报人信息
Employee employee=getEmployeeByUserId(Data.reports[i].getReporterId());
if(employee!=null)
System.out.println("编号"+Data.reports[i].getReporterId()+"\t汇报人:"+employee.getUserName()+employee.getUserName()+"\t汇报内容:"+Data.reports[i].getContent());
}
}
//添加汇报
public void addReport(Report report){
//得到当前汇报的数量
int count =getReportsCount();
if(count>=Data.reports.length){
System.out.println("汇报日志已满");
return;
}else{
//将汇报存储到report数组
Data.reports[count]=report;
System.out.println("汇报成功");
}
}
/**
*修改员工角色
*@param empNo 员工编号
*@param roleName 角色名称
*
*/
public void modifyEmployeeRole(String empNo,String roleName){
int roleId=0;
switch(roleName){
case "Staff":
roleId=1;
break;
case "Manager":
roleId=2;
break;
case "Admin":
roleId=3;
break;
default:
System.out.println("输入的角色不存在!");;
break;
}
if(empNo.equals(Data.staff.getEmpNo())){
Data.staff.setRoleId(roleId);
}else if(empNo.equals(Data.manager.getRoleId())){
Data.manager.setRoleId(roleId);
}else if(empNo.equals(Data.admin.getRoleId())){
Data.admin.setRoleId(roleId);
}else{
System.out.println("不存在此员工!");
}
}
}
4 修改Staff类public class Staff extends Employee{
public Staff(){
super();
}
public Staff(int userId,String empNo,String userName,String password,int departId,int roleId,double salary){
super(userId,empNo,userName,password,departId,roleId,salary);
}
HrHelper helper=new HrHelper();
public void addReport(){
System.out.println("请输入汇报信息\n");
Scanner input=new Scanner(System.in);
String content=input.next();
//实例化report对象
Report report =new Report();
//汇报id,每一次在上一次的基础上加一
report.setReporterId(helper.getReportsCount()+1);
report.setContent(content);
//设置汇报人id
report.setReporterId(Data.currentEmployee.getUserId());
//加入汇报数组
helper.addReport(report);
}
}
相关文章推荐
- 工作积累(五)——使用spring@Value注解实现常量功能
- 工作积累(五)——使用spring@Value注解实现常量功能
- 今天开始做游戏统一建模工作UML和功能实现
- 4程序员小飞原计划三天完成某个任务,现在是第三天的下午,他马上就可以做完。但是在实现功能的过程中,他越来越意识到自己原来设计中的弱点,他应该采取另一个办法,才能避免后面集成阶段的额外工作。但是他如果现在就改弦更张,那势必要影响自己原来估计的准确性,并且会花费额外的时间,这样他的老板、同事也许会因此看不起他。如果他按部就班地按既定设计完成,还要花更多时间在后续集成上,但那就不是他个人的问题了,怎么办
- 实现工作汇报
- 第一个工作项目(7)- 业务功能实现
- 工作中遇到的一些小功能的实现(持续更新中)
- 实现推送功能APP端需要完成的工作
- 工作笔记之加载更多功能实现
- 10月22日工作日志 RSS完善 paypal实现基本功能
- ROS下工作空间、功能包的建立,以及创建节点,实现节点之间的通信!
- PHPExcel实现表格导出功能示例【带有多个工作sheet】
- 爱思华宝邮件服务器协同工作服务 功能介绍及其实现方法
- 工作日志记录:模仿头条的评论功能输入框控制输入法并完整实现软键盘的在此环境下的UE控制
- java中三大框架struts/Hibernate/Spring,具体是怎样合作工作的?各自实现什么功能?
- 工作积累(二)——使用java.util.ResourceBundle和java.util.Properties实现常量功能
- 基于微信的域名交易系统(进度汇报之功能实现现状)
- 简单版SVN项目基本功能全部实现(差后续收尾工作)
- 2014.02.14 实现修改功能的一点准备工作
- .NET 第六章 上机二 实现工作汇报