20210529 1+X 初级实操考试

实操考试题其他系列请移步专栏:JAVA实操题_疯狂的格式化的博客-CSDN博客

步骤2(10分):完成基类 User

目标说明

系统中涉及到的用户有老板和员工,我们先创建基类 User,部分代码已经提供,请完成该类的设计。

org.lanqiao.bean.User 是一个基类,请根据注释要求,补全空缺的 set 和 get 方法的代码。

    /**
     *完成属性type、name以及pwd的set和get方法
     */
    //getName方法
    public String getName() {
        return name;
    }
    

把 User 中的代码复制到 Eclipse 中,直接使用 Eclipse 自动生成 set 和 get 方法。

右键——>Source——>Generate Getters and Setters

public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public String getName() {
		return name;
	}

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

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

步骤3(10分):完成实体类 Boss

目标说明

我们使用 Boss 类来代表老板,请你完成该实体类的设计。

org.lanqiao.bean.Boss 是一个实体类,表示的是老板,请根据注释要求,补全缺失的构造方法。

public class Boss extends User {

    /**
     * 注意:Boss类从父类继承的属性中,type属性的值固定为1
     * ###请补全两个参数的构造方法
     * @param name
     * @param pwd
     *
     * 提示:可以使用super关键字直接调用父类的构造方法实现
     */
    public Boss(String name,String pwd){

    }
}

根据提示使用super关键字直接调用父类的构造方法实现

public Boss(String name,String pwd){
	super(1, name, pwd);
}

步骤4(10分):完成实体类 Employee 

目标说明

我们使用 Employee 类来代表员工,请你完成该实体类的设计。

org.lanqiao.bean.Employee 是一个实体类,表示的是员工,请根据注释要求,补全缺失的构造方法。

    /**
     * Employee类的构造方法,type属性的值固定为2
     * @param name
     * @param pwd
     * @param sex
     * @param salary
     * @param department
     *
     * 提示:可以使用super调用父类的构造方法先设置type、name及pwd的属性值
     */
     public Employee(String name, String pwd, String sex, double salary, String department) {

    }

 根据提示使用super调用父类的构造方法先设置type、name及pwd的属性值

public Employee(String name, String pwd, String sex, double salary, String department) {
		super(2, name, pwd);
		this.sex=sex;
		this.salary=salary;
		this.department=department;
	}

步骤5(10分):完成配置类 Config

 目标说明

系统中存在很多的提示信息,以及需要用到一些全局的操作,我们把他们封装在 Config 类中,有一部分功能没有实现,请你实现它。

org.lanqiao.config.Config 是一个配置类,定义了很多的系统配置,请根据注释要求,补全空缺的代码。

    /**
     * 根据用户输入,判断是否继续
     * @return 用户输入y,返回true;用户输入n,返回false,输入错误(例如:Y或者N或者其他)返回false
     */
    public static boolean goon(){
        
        return false;
    } 

根据注释的信息使用 if 语句完成本题 

public static boolean goon(){
		if(input.next().equals("y")){
			return true;
		}
		return false;
	}

步骤6(10分):完成服务类 BossService 

目标说明

我们把老板的部分业务封装在 BossService 类中,请你完成其中的缺失功能。

org.lanqiao.db.BossService 是一个服务类,请根据注释要求,完成 find 方法。

public class BossService {

    /**
     * 根据输入的name和pass查找用户是否存在
     * @param name 姓名
     * @param pwd 密码
     * @return 如果用户存在,返回当前用户,否则返回null
     */
    public Boss find(String name, String pwd) {
        //遍历所有的Boss对象,遍历出来的每个Boss对象为如下代码中的boss
        for(Boss boss:Db.bosses){
            //补充完成代码:根据name和pwd判断用户是否存在,如果存在则返回该用户

        }
        return null;
        
    }
}

调用 get 方法获取 boss 的 name 和 pwd,使用 equals 方法判定字符串是否相等,不要使用 == 符号

public Boss find(String name, String pwd) {
		//遍历所有的Boss对象,遍历出来的每个Boss对象为如下代码中的boss
		for(Boss boss:Db.bosses){
			//补充完成代码:根据name和pwd判断用户是否存在,如果存在则返回该用户
			if(name.equals(boss.getName())&&pwd.equals(boss.getPwd())){
				return boss;
			}
		}
		return null;
	}

步骤7(10分):完成服务类 LoginService 

目标说明

系统中的登录服务我们封装在了 LoginService 类中,请帮忙完成。

org.lanqiao.service.LoginService 是登录服务类,请根据注释要求,完成注销登录方法。

    /**
     * 注销登录
     * 设置loginUser值为空,并且设置是否登录标记(logined)的值为假
     */
    public static void logOut(){

    }

这道题很简单,直接复制 LoginService 类的前两行代码即可 

public static void logOut(){		
	 logined = false;
	 loginUser = null;
}

步骤8(15分):完成菜单类 BossMenu 

目标说明

当服务、配置及实体类设计完成后,我们需要提供相关的菜单操作,例如 BossMenu 类中为老板提供了相关菜单操作,请你帮忙完成没有实现的功能。

org.lanqiao.menu.BossMenu 是老板菜单类,请根据注释要求,完成 select 方法。

    /**
     * 假设所有员工的姓名不重复
     * 要求用户输入的姓名并接收,根据姓名的完全匹配,返回该员工的部门。
     * @return 查找的员工的部门名称,员工不存在返回null
     */
    public static String select() {
        
        System.out.println("请输入员工姓名:");
        //补充完成代码,接收用户的输入。
        String name="####";

        //遍历所有的Employee
        for(int i=0;i<Db.employees.size();i++) {
            //遍历出来的每个Employee对象
            Employee employee = Db.employees.get(i);
            //####补充完成代码,根据姓名查找员工的部门名称

        }
        return null;//员工不存在返回null
    }

根据注释的提示,补全代码

public static String select() {
		
		System.out.println("请输入员工姓名:");
		//补充完成代码,接收用户的输入。
		String name=Config.input.next();

		//遍历所有的Employee
		for(int i=0;i<Db.employees.size();i++) {
			//遍历出来的每个Employee对象
			Employee employee = Db.employees.get(i);
			//补充完成代码,根据姓名查找员工的部门名称
			if(employee.getName().equals(name)){
				return employee.getDepartment();
			}
		}
		return null;//员工不存在返回null
	}

步骤9(20分):完成菜单类 EmployeeMenu

目标说明

BossMenu 类中为老板提供了相关菜单操作,EmployeeMenu 为员工提供了相关菜单操作,请你帮忙完成没有实现的功能。

org.lanqiao.menu.EmployeeMenu 是员工菜单类,请根据注释要求,完成 changePwd 方法,该方法的作用是:修改当前登录的用户的密码。

    /**
     * 任务:修改当前登录的用户的密码
     *
     * 提示:
     * LoginService中的loginUser为当前登录的用户,可以通过LoginService.loginUser获取
     *
     * 修改密码,逻辑如下
     * 1、要求用户输入原密码
     * 2、验证当前登录的用户的原始密码是否正确
     * 3、如果验证正确,要求用户输入新密码并修改当前登录用户的密码为新密码
     * 4、如果验证失败,则不执行任何操作
     */
    public static void changePwd() {
        //输入原密码
        System.out.print(Config.SCHANGE1);
        //接受用户输入的原始密码
        String oldpwd = "###";
        //验证是否进行密码修改,请补充完成代码


    }

根据提示获取当前登录的用户,然后调用 get 和 set 方法获取和设置密码

public static void changePwd() {
		//输入原密码
		System.out.print(Config.SCHANGE1);
		//接受用户输入的原始密码
		String oldpwd = Config.input.next();
		//验证是否进行密码修改,请补充完成代码
		if(LoginService.loginUser.getPwd().equals(oldpwd)){
			LoginService.loginUser.setPwd(Config.input.next());
		}

	}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值