实操考试题其他系列请移步专栏: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());
}
}