20211127 1+X 初级实操考试

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

20211219 1+X 初级实操考试的试题与本次题目完全相同,所以20211219 1+X 初级实操考试不再重复发布题解。

有一题不太一样题解放这里:

【15 分】步骤 5:完成会员服务类 MemberService

字符串的翻转使用 StringBuffer 中的 reverse 方法即可。

	public void showAll() {
		// 补全代码
		// 注意1:数据来自Db.members
		// 注意2:是直接输出打印到控制台
		for (int i = 0; i < Db.members.length; i++) {
			if (Db.members[i] != null) {
				String name = Db.members[i].getName();
				StringBuffer dwp = new StringBuffer(Db.members[i].getPwd()).reverse();
				System.out.println(name + "-" + dwp);
			}
		}

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

目标说明

超市管理系统涉及到会员 Member 管理,我们需要完成类 Member 的编写。

项目源代码下方的 org.lanqiao.bean.Member 是一个类,请根据代码中的注释要求,补全空缺的代码。

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

    }

 构造方法代码不多,可以直接手写。也可以把代码复制粘贴到 Eclipse 中,自动生成构造函数:

右键——>Source——>Generate Constructor using Fields...

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

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

目标说明

org.lanqiao.bean.Goods 是一个实体类,表示的是商品,请根据注释要求,补全空缺的代码。

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

使用 if 判断即可。  

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

【10 分】步骤 4:继续完成实体类 Goods

目标说明

org.lanqiao.bean.Goods 是一个实体类,表示的是商品,请根据注释要求,补全空缺的代码。

    // 请修改该方法,以保证打印对象时输出格式如下:(name=辣条;price=10;num=80;type=零食)
    @Override
    public String toString() {
        return "";
    }

代码不多可以直接手打,也可以直接将代码复制粘贴到 Eclipse 中自动生成 toString 方法:

右键——>Source——>Generate toString()...

	@Override
	public String toString() {
		return "("+"name="+name+";price="+price+";num="+num+";type="+type+")";
	}

【10 分】步骤 5:完成数据操作类 Db 

目标说明

系统需要在内存中将会员和商品信息存储起来,我们使用 org.lanqiao.db.Db 类来实现,请根据注释要求,补全空缺的代码。

    /**
     * 需求:
     *
     * 下面请在 static 静态块中初始化这 2 个数组的数据
     * 在 members 中添加 3 个会员:
     *
     *     会员名称    会员密码    会员积分
     *     zs            123            10    
     *     ls            456            20
     *     ww            123456        30
     *
     *     在 goods 中添加 4 个商品:
     *     商品名称    商品单价    商品数量    商量类别
     *     辣条        10            30            零食
     *     可乐        5            40            饮料
     *     面包        8            50            主食
     *    牙膏        12            10            日用
     */

    static{
        //参考如下代码,初始化会员数据(必须和上述需求一致),请补全代码
        members[0] = new Member("zs","123",10);
        members[1] = new Member("ls","456",20);


        //设置会员人数,请补全代码


        //参考如下代码,初始化商品数据(必须和上述需求一致),请补全代码
        goods[0] = new Goods("辣条",10,30,"零食");
        goods[1] = new Goods("可乐",5,40,"饮料");


        //设置书籍数量,请补全代码


    }

根据注释和给出的样例代码照样子写即可。 

static{
		//参考如下代码,初始化会员数据(必须和上述需求一致),请补全代码
    	members[0] = new Member("zs","123",10);
		members[1] = new Member("ls","456",20);
		members[2] = new Member("ww","123456",30);
		
		//设置会员人数,请补全代码
		membersLength=3;

		//参考如下代码,初始化商品数据(必须和上述需求一致),请补全代码
		goods[0] = new Goods("辣条",10,30,"零食");
		goods[1] = new Goods("可乐",5,40,"饮料");
		goods[2] = new Goods("面包",8,50,"主食");
		goods[3] = new Goods("牙膏",12,10,"日用");
		
		//设置商品数量,请补全代码
		goodsLength=4;

	}

【10 分】步骤 6:完成会员服务类 MemberService

目标说明

对会员的一系列操作,被封装在 org.lanqiao.service.MemberService 类中,请根据注释要求,补全空缺的代码。

    /**
     * 打印输出所有会员的信息
     *
     * 需求:
     * 按照以下格式输出所有会员,属性之间用短杠(-)分隔,每输出一个会员信息后换行:
     *
     * 会员名称1-会员密码1-会员积分1
     * 会员名称2-会员密码2-会员积分2
     *
     * 样例:
     * 猪八戒-123-10
     * 沙僧-456-20
     */
    public void showAll() {
        // 补全代码
        // 注意1:数据来自Db.members
        // 注意2:是直接输出打印到控制台

        
    }
    

根据题目要求输出即可。记住一定要判断是否为空(null),因为 members[i] 的长度是100,而数组中只有3条数据。null 对象调用 get 方法会报错。

public void showAll() {
		// 补全代码
		// 注意1:数据来自Db.members
		// 注意2:是直接输出打印到控制台
		for(int i =0;i<Db.members.length;i++){
			if(Db.members[i]!=null){
				System.out.println(Db.members[i].getName()
				+"-"+Db.members[i].getPwd()
				+"-"+Db.members[i].getScore());
			}
		}
	}

【15 分】步骤 7:继续完善会员服务类 MemberService

目标说明

请根据注释要求,完善MemberServicefind方法。

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

记住一定要判断是否为空(null),使用 equals 进行字符串的值比较即可。  

	public Member find(String name){
		// 补全代码
		// 注意:数据来自Db.members
		for(int i =0;i<Db.members.length;i++){
			if(Db.members[i]!=null&&Db.members[i].getName().equals(name)){
				return Db.members[i];
			}
		}
		return null;
	}

【15 分】步骤 8:完成服务类 GoodsService

目标说明

org.lanqiao.service.GoodsService 是商品服务类,关于商品的系列操作都封装在其中,请根据注释要求,补全空缺的代码。

    /**
     * 打印每个商品的总价值(单价X数量)
     *
     * 需求:
     * 按照以下格式输出信息,属性之间用短杠(-)分隔,每输出一个信息后换行:
     *
     * 商品名称1-商品1总价值
     * 商品名称2-商品2总价值
     *
     * 样例:
     * 辣条-300
     * 可乐-200
     */
    public static void printInfo() {
        // 补全代码:
        // 注意:数据来自Db.goods

        
    }

 记住一定要判断是否为空(null)。

    public void printInfo() {
        // 补全代码:
        // 注意:数据来自Db.goods
        for (int i = 0; i < Db.goods.length; i++) {
            if(Db.goods[i]!=null){
                System.out.println(Db.goods[i].getName()
                +"-"+Db.goods[i].getNum()*Db.goods[i].getPrice());
            }
        }
    }

【15 分】步骤 9:继续完善服务类 GoodsService

目标说明

org.lanqiao.service.GoodsService 还有一个删除商品的功能未完成:

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

        return f;
    }
    

这道题和我的这篇文章的最后一题几乎一模一样详细题解就不再重复,不懂得可以去看看。20210610 1+X 初级实操项目_疯狂的格式化的博客-CSDN博客

	public boolean delete(String name) {
        // 补全代码
        // 注意:数据来自Db.goods
        // 删除商品后,后面的商品在数组中的位置要前移,且商品个数要减1
        boolean f = false; //用来记录商品是否存在,true表示存在,false表示不存在
        int i;
        for(i = 0;i<Db.goods.length;i++){
            if(Db.goods[i]!=null
            &&Db.goods[i].getName().equals(name)){
                f = true;
                Db.goodsLength--;
                break;
            }
        }
        if(f){
            for(int j = i;j<Db.goods.length-1;j++){
                Db.goods[j]=Db.goods[j+1];
            }
        }
        return f;
	}
  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值