编写一个模拟超市购物程序。购物时,如果购物者要购买的商品在超市中有,则提示“购物者买到了某商品”;如果没有所需的商品,则提示“购物者所需某商品无货”。
要求
编写一个模拟超市购物程序。购物时,如果购物者要购买的商品在超市中有,则提示“购物者买到了某商品”;如果没有所需的商品,则提示“购物者所需某商品无货”。该程序涉及商品、超市、购物者三个类,具体要求如下:
(1)商品类Product,包含商品名属性和set及get方法;
(2)超市类Market,包含超市名属性、存放商品的Product类型数组属性,set、get超市名的方法,能够获取商品或者存入商品的get、set方法,卖货的方法sell(StringProductName),该方法的功能是查找超市是否有所要购买的商品,如果有,则返回商品名;如果没有则返回空;
(3)购物者类Person,包含购物者姓名,set、get姓名的方法;购物的方法shopping,要求把超市和商品作为参数,调用Market类的sell方法返回购物结果;
(4)定义测试类Shopping,创建电脑、电视机、沙发、茶几等商品;创建超市,并将商品存入超市中;
创建购物者对象,并进行购物;输入超市名和要购买的商品名,根据购物结果给出结论。
- 商品类Product
class Product{
String nameProduct;
void setName(String x){
nameProduct=x;
}
String getName(){
return nameProduct;
}
}
- 超市类Market
class Market{
String nameMarket;
Product[] products=new Product[100];
void setName(String x){
nameMarket=x;
}
String getName(){
return nameMarket;
}
void setProduct(Product[] x){
products=x;
}
Product[] getProduct(){
return products;
}
String sell(String nameProduct){
int num=-1;
for(int i=0;i<products.length;i++){
if(products[i].getName().equals(nameProduct)){
num=i;break;
}
}
if(num!=-1){
return products[num].getName();
}
else return null;
}
}
3.购物者类Person
class Person{
String namePerson;
void setName(String x){
namePerson=x;
}
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;
}
}
4.定义测试类Shopping
public class Main{
public static void main(String[] args){
Product[] p=new Product[100];
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[100];
m[0]=new Market();
m[1]=new Market();
m[0].setName("彬彬超市");
m[1].setName("耳东超市");
m[0].setProduct(p);
m[1].setProduct(p);
Person 小王=new Person();
Scanner s=new Scanner(System.in);
String market=s.next();
String product=s.next();
Market mar=new Market();
Product pro=new Product();
switch(market){
case "彬彬超市": mar=m[0];break;
case "耳东超市": mar=m[1];break;
}
switch(product){
case "电脑": pro=p[0];break;
case "电视机": pro=p[1];break;
case "沙发": pro=p[2];break;
case "茶几": pro=p[3];break;
}
boolean num=小王.shopping(mar,pro);
if(num){
System.out.println("小王买到了"+product);
}
else{
System.out.println("小王所需商品无货");
}
}
}
注:这里商品为电脑,电视机,沙发,茶几,超市名称为彬彬超市和耳东超市,消费者的名称叫小王。
完整代码如下:
import java.util.*;
class Product{
String nameProduct;
void setName(String x){
nameProduct=x;
}
String getName(){
return nameProduct;
}
}
class Market{
String nameMarket;
Product[] products=new Product[100];
void setName(String x){
nameMarket=x;
}
String getName(){
return nameMarket;
}
void setProduct(Product[] x){
products=x;
}
Product[] getProduct(){
return products;
}
String sell(String nameProduct){
int num=-1;
for(int i=0;i<products.length;i++){
if(products[i].getName().equals(nameProduct)){
num=i;break;
}
}
if(num!=-1){
return products[num].getName();
}
else return null;
}
}
class Person{
String namePerson;
void setName(String x){
namePerson=x;
}
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 Main{
public static void main(String[] args){
Product[] p=new Product[100];
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[100];
m[0]=new Market();
m[1]=new Market();
m[0].setName("彬彬超市");
m[1].setName("耳东超市");
m[0].setProduct(p);
m[1].setProduct(p);
Person 小王=new Person();
Scanner s=new Scanner(System.in);
String market=s.next();
String product=s.next();
Market mar=new Market();
Product pro=new Product();
switch(market){
case "彬彬超市": mar=m[0];break;
case "耳东超市": mar=m[1];break;
}
switch(product){
case "电脑": pro=p[0];break;
case "电视机": pro=p[1];break;
case "沙发": pro=p[2];break;
case "茶几": pro=p[3];break;
}
boolean num=小王.shopping(mar,pro);
if(num){
System.out.println("小王买到了"+product);
}
else{
System.out.println("小王所需商品无货");
}
}
}