实验1:20210620 1+X 初级实操考试(id:2499)

 (用于学习笔记)

【5 分】步骤 1:项目准备

照着步骤一给出的指令复制粘贴即可

 【10 分】步骤 2:完成类 User

    /**
     * User类的构造方法
     * @param type
     * @param name
     * @param pwd
     */
    public User(int type,String name,String pwd){
        // 缺失代码
    }

答案

	public User(int type,String name,String pwd) {
		// 缺失代码
		this.type = type;
		this.name = name;
		this.pwd = pwd;
	}

补充user的有参构造函数

 【10 分】步骤 3:完成实体类 Book

    // 缺失代码:请补全以下方法,要求书籍数量的范围在:0<=num<=100 之间
    // 当参数在规定范围外时,不做任何动作
    public void setNum(int num) {


    }

答案

	public void setNum(int num) {
		if(num >= 0 && num <= 100){
			this.num = num;
		}

	}

在判断区间赋值即可

 【15 分】步骤 4:完成数据操作类 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);
        
        //设置书籍数量,请补全代码
        
    }

答案


		//参考如下代码,初始化用户数据(必须和上述需求一致),请补全代码
    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

    /**
     * 打印输出所有书籍的信息
     *
     * 需求:
     * 按照以下格式输出所有书籍,属性之间用短杠(-)分隔,每输出一本书籍信息后换行:
     *
     * 书籍名称1-书籍作者1-书籍价格1-书籍数量1
     * 书籍名称2-书籍作者2-书籍价格2-书籍数量2
     *
     * 样例:
     * 西游记-吴承恩-19-6
     * 三国演义-罗贯中-20-9
     */
    public void showAll() {
        // 补全代码
        // 注意1:数据来自Db.books
        // 注意2:是直接输出打印到控制台

    }

答案

		// 书籍的名称 name;
		// 书籍的作者 author;
		// 书籍的价钱 price;
		// 书籍的数量 num;
		for(int i = 0; i < Db.booksLength; i++){
			System.out.println(Db.books[i].getName() + "-" + Db.books[i].getAuthor() + "-" + Db.books[i].getPrice() + "-" + Db.books[i].getNum());
		}
	}

可以直接用多条System挨个打印,也可以循环输出,注意给出的格式中的 -

 【15 分】步骤 6:继续完善书籍服务类 BookService

    /**
     * 根据书籍的名称来查询书籍信息
     *
     * 需求:
     * 如果书籍存在则返回书籍对象,不存在则返回null
     *
     * @param name 书籍名称
     * @return 返回对象
     */
    public Book find(String name){
        // 补全代码
        // 注意:数据来自Db.books

        return null;
    }

答案

// 补全代码
		// 注意:数据来自Db.books
		for(int i = 0; i < Db.booksLength; i++){
			if(Db.books[i].getName().equals(name)){
				return Db.books[i];
			}
		}
		return null;

equals用来判断字符串是否匹配

 【15 分】步骤 7:完成服务类 UserService

    /**
     * 根据用户名称、旧密码、新密码来更新密码
     *
     * 需求:
     * 如果用户名称和旧密码不正确,则不更新
     * 如果用户名称和旧密码正确,则更新
     *
     * @param name 姓名
     * @param oldPwd 旧密码
     * @param newPwd 新密码
     */
    public static void changePwd(String name,String oldPwd,String newPwd) {
        // 补全代码:
        // 注意:数据来自Db.users

    }

答案

        // 注意:数据来自Db.users
        for(int i = 0; i < Db.usersLength; i++){
            if(Db.users[i].getName().equals(name) && Db.users[i].getPwd().equals(oldPwd)){
                Db.users[i].setPwd(newPwd);
            }
        }

需要判断姓名和旧密码是否满足给定的值,满足的话把密码设置成newPwd

 【15 分】步骤 8:继续完善服务类 UserService

    /**
     * 根据用户名称删除用户
     *
     * 需求:
     * 如果用户不存在,则返回fasle,如果存在则删除,并返回true
     *
     * @param name 姓名
     */
    public static boolean delete(String name) {
        // 补全代码
        // 注意:数据来自Db.users
        // 删除用户后,后面的用户在数组中的位置要前移,且用户数量要减1
        boolean f = false; //用来记录用户是否存在,true表示存在,false表示不存在


        return f;
    }

答案

	public static boolean delete(String name) {
        // 补全代码
        // 注意:数据来自Db.users
        // 删除用户后,后面的用户在数组中的位置要前移,且用户数量要减1
        boolean f = false; //用来记录用户是否存在,true表示存在,false表示不存在
        for(int i = 0; i < Db.usersLength; i++){
            if(Db.users[i].getName().equals(name)){
                f = true; //打开删除
                //其他的数据向前移动
                for(int j = i; j < Db.usersLength - i; j++){
                    Db.users[j] = Db.users[j+1];
                }
                Db.usersLength--;
            }
        }

        return f;
	}

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长风沛雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值