实操考试题其他系列请移步专栏:JAVA实操题_疯狂的格式化的博客-CSDN博客【10 分】步骤 2:完成类 User
目标说明
图书管理系统涉及到的用户有学生和管理员,我们需要完成类 User 的编写。
项目源代码下方的 org.lanqiao.bean.User 是一个用户类,请根据代码中的注释要求,补全空缺的代码。
public User(int type,String name,String pwd){
// 缺失代码
}
构造方法代码不多,可以直接手写。也可以把代码复制粘贴到 Eclipse 中,自动生成构造函数
右键——>Source——>Generate Constructor using Fields...
public User(int type,String name,String pwd) {
// 缺失代码
this.type=type;
this.name=name;
this.pwd=pwd;
}
【10 分】步骤 3:完成实体类 Book
目标说明
org.lanqiao.bean.Book 是一个实体类,表示的是书籍,请根据注释要求,补全空缺的代码。
// 缺失代码:请补全以下方法,要求书籍数量的范围在:0<=num<=100 之间
// 当参数在规定范围外时,不做任何动作
public void setNum(int num) {
}
使用 if 判断即可。
public void setNum(int num) {
if(num>=0&&num<=100){
this.num=num;
}
}
【15 分】步骤 4:完成数据操作类 Db
目标说明
系统需要在内存中将用户和书记信息存储起来,我们使用 org.lanqiao.db.Db 类来实现,请根据注释要求,补全空缺的代码。
static{
//参考如下代码,初始化用户数据(必须和上述需求一致),请补全代码
users[0] = new User(User.ADMIN,"zs","123");
users[1] = new User(User.STUDENT,"ls","456");
//设置用户人数,请补全代码
//参考如下代码,初始化书籍数据(必须和上述需求一致),请补全代码
books[0] = new Book("西游记","吴承恩",21,5);
books[1] = new Book("水浒传","施耐庵",25,3);
//设置书籍数量,请补全代码
}
根据注释和给出的样例代码,照样子写即可。
static{
//参考如下代码,初始化用户数据(必须和上述需求一致),请补全代码
users[0] = new User(User.ADMIN,"zs","123");
users[1] = new User(User.STUDENT,"ls","456");
users[2] = new User(User.STUDENT,"ww","123456");
//设置用户人数,请补全代码
usersLength=3;
//参考如下代码,初始化书籍数据(必须和上述需求一致),请补全代码
books[0] = new Book("西游记","吴承恩",21,5);
books[1] = new Book("水浒传","施耐庵",25,3);
books[2] = new Book("红楼梦","曹雪芹",30,6);
books[3] = new Book("三国演义","罗贯中",40,10);
//设置书籍数量,请补全代码
booksLength=4;
}
【15 分】步骤 5:完成书籍服务类 BookService
目标说明
对书籍的一系列操作,被封装在 org.lanqiao.service.BookService 类中,请根据注释要求,补全空缺的代码。
public void showAll() {
// 补全代码
// 注意1:数据来自Db.books
// 注意2:是直接输出打印到控制台
}
根据题目要求输出即可。记住一定要判断是否为空(null),因为 books[i] 的长度是100,而数组中只有4条数据。null 对象调用 get 方法会报错。
public void showAll() {
// 补全代码
// 注意1:数据来自Db.books
// 注意2:是直接输出打印到控制台
for(int i =0;i
【15 分】步骤 6:继续完善书籍服务类 BookService
目标说明
请根据注释要求,完善BookService的find方法。
public Book find(String name){
// 补全代码
// 注意:数据来自Db.books
return null;
}
记住一定要判断是否为空(null),使用 equals 进行字符串的值比较即可。
public Book find(String name){
// 补全代码
// 注意:数据来自Db.books
for(int i =0;i
【15 分】步骤 7:完成服务类 UserService
目标说明
org.lanqiao.service.UserService 是用户服务类,关于用户的系列操作都封装在其中,请根据注释要求,补全空缺的代码。
public static void changePwd(String name,String oldPwd,String newPwd) {
// 补全代码:
// 注意:数据来自Db.users
}
记住一定要判断是否为空(null),调用 get 和 set 方法获取和修改数据。
public static void changePwd(String name,String oldPwd,String newPwd) {
// 补全代码:
// 注意:数据来自Db.users
for(int i = 0;i
【15 分】步骤 8:继续完善服务类 UserService
目标说明
org.lanqiao.service.UserService 还有一个删除用户的功能未完成:
public static boolean delete(String name) {
// 补全代码
// 注意:数据来自Db.users
// 删除用户后,后面的用户在数组中的位置要前移,且用户数量要减1
boolean f = false; //用来记录用户是否存在,true表示存在,false表示不存在
return f;
}
把 i 定义在 for 的外面话很重要,因为删除数据后将后面的数据前移时要从被删除的那个数据的下标开始前移,所以下标 i 在数据前移时须要用到,只有 i 定义在 for 的外面才可以。第一个 for 循环中一定要加上 break ,在找到用户后就要马上退出循环,否则 i 就永远是 Db.users.length-1。还有只有 f 为 true 时才进行数据前移操作。
public static boolean delete(String name) {
// 补全代码
// 注意:数据来自Db.users
// 删除用户后,后面的用户在数组中的位置要前移,且用户数量要减1
boolean f = false; //用来记录用户是否存在,true表示存在,false表示不存在
int i;
for(i = 0;i 


