当前位置: 代码迷 >> 综合 >> NEFU JAVA实验二7191(最后一题)
  详细解决方案

NEFU JAVA实验二7191(最后一题)

热度:99   发布时间:2023-12-01 00:44:16.0

编写一个模拟超市购物程序。购物时,如果购物者要购买的商品在超市中有,则提示“购物者买到了某商品”;如果没有所需的商品,则提示“购物者所需某商品无货”。该程序涉及商品、超市、购物者三个类,具体要求如下:
(1)商品类Product,包含商品名属性和set及get方法;
(2)超市类Market,包含超市名属性、存放商品的Product类型数组属性,set、get超市名的方法,能够获取商品或者存入商品的get、set方法,卖货的方法sell(String ProductName),该方法的功能是查找超市是否有所要购买的商品,如果有,则返回商品名;如果没有则返回空;
(3)购物者类Person,包含购物者姓名,set、get姓名的方法;购物的方法shopping,要求把超市和商品作为参数,调用Market类的sell方法返回购物结果;
(4)定义测试类Shopping,创建电视机、洗衣机、豆浆机、打印机等商品;创建超市,并将商品存入超市中;创建购物者对象,并进行购物;输入超市名和要购买的商品名,根据购物结果给出结论。

package Test;import java.util.Scanner;class Product{String nameproduct;void setName(String name){this.nameproduct=name;}String getName(){return nameproduct;}
}
class Market{String nameMarket;Product [] products=new Product[4];void setName(String name){nameMarket=name;}String getName(){return nameMarket;}public void setProducts(Product[] products) {this.products = products;}String sell(String nameproduct){int num=-2;for(int i=0;i<4;i++){if(products[i].getName().equals(nameproduct)){num=i;break;}}if(num!=-2){return products[num].getName();}else{return null;}}
}
class Person{String nameperson;void setName(String name){nameperson=name;}String getName(){return nameperson;}boolean shopping(Market x,Product y) {for (int i = 0; i < x.products.length; i++) {if (y.equals(x.products[i])) {return true;}}return false;}
}
public class Test{public static void main(String[] args) {Product []p=new Product[4];p[0]=new Product();p[1]=new Product();p[2]=new Product();p[3]=new Product();p[0].setName("电视机");p[1].setName("洗衣机");p[2].setName("豆浆机");p[3].setName("打印机");Market []m=new Market[2];m[0]=new Market();m[1]=new Market();m[0].setName("家乐福");m[1].setName("家家乐福");m[0].setProducts(p);m[1].setProducts(p);Person p1=new Person();Scanner in=new Scanner(System.in);String market=in.next();String products=in.next();Market mar=new Market();Product pro=new Product();switch(market){case "家乐福": mar=m[0];break;case "家家乐福": mar=m[1];break;}switch(products){case "电视机": pro=p[0];break;case "洗衣机": pro=p[1];break;case "豆浆机": pro=p[2];break;case "打印机": pro=p[3];break;}boolean num=p1.shopping(mar,pro);if(num){System.out.println("张乐买到了"+products);}else{System.out.println("张乐所需商品无货");}}
}

 

  相关解决方案