综合练习题

设计电商类,其中包含商品类,商品类属性(名称、价格、介绍、厂家、生产地址),继承类有食品类、电气类、服装类、玩具类。

食品类属性:有效时长、重量

电气类属性:电压、功率、重量

服装类属性:材质、面料、成分

玩具类属性:材质、分类、适用年龄

要求:

  1. 设计商品类,封装商品信息
  2. 设计继承类,继承商品类,封装继承商品信息
  3. 设计商城,商城中有一个各类商品的集合,客户可以看到所有商品,也可以根据不同继承类查询商品,每类商品不少以五种
  4. 查询商城中价格超过100元的商品
  5. 查询生产地是“北京”的商品
  6. 根据商品价格给商城排序,价格从高到低
  7. 设计购物车,购物车包括商品名称和商品数量,输入商品名称,显示商品信息,输入数量,加入购物车,完成添加后,输入“结账”,计算所有商品价格。
  8. 设计抽奖功能,查询所有商品,生成随机数,随机数范围0到商品集合长度,生成随机数后,通过下标获取商品,显示商品信息
//    父类  商品类
package nightpractice;
  
public class ShangPin implements Comparable<ShangPin>{
 
	
	private String name;//名称
	private double price;//价格
	private String introduce;//介绍
	private String factory;//厂家
	private String address;//生产地址
	
	
	
	public ShangPin() {
	}
	public ShangPin(String name, double price, String introduce, String factory, String address) {
		super();
		this.name = name;
		this.price = price;
		this.introduce = introduce;
		this.factory = factory;
		this.address = address;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public String getIntroduce() {
		return introduce;
	}
	public void setIntroduce(String introduce) {
		this.introduce = introduce;
	}
	public String getFactory() {
		return factory;
	}
	public void setFactory(String factory) {
		this.factory = factory;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public int compareTo(ShangPin o) {
		//按照当前的类作为参照对象,与方法中传入的参数进行对比
				//如果返回为正数,则表示大,为负数,则表示小,为0,则表示相等
				if(this.price>o.getPrice()){
					return -1;
				}else if(this.price<o.getPrice()){
					return 1;
				}else{
				return 0;
			}
	}
	
}
 
 
//     子类  食品类
 
package nightpractice;
 
public class ShiPin extends ShangPin{
 
	private int day;//有效时常
	private int weight;//重量
	
	public ShiPin(int day, int weight) {
		super();
		this.day = day;
		this.weight = weight;
	}
	
	public ShiPin() {
	}
	public ShiPin(String name, double price, String introduce, String factory, String address) {
		super(name, price, introduce, factory, address);
	}
	
	public int getDay() {
		return day;
	}
	public void setDay(int day) {
		this.day = day;
	}
	public int getWeight() {
		return weight;
	}
	public void setWeight(int weight) {
		this.weight = weight;
	}
	
	
}
 
//    子类  电气类
 
package nightpractice;
 
public class DianQi extends ShangPin{
 
	private String dianYa;//电压
	private String gongLv;//功率
	private String zhongLiang;//重量
	
	public DianQi(String dianYa, String gongLv, String zhongLiang) {
		super();
		this.dianYa = dianYa;
		this.gongLv = gongLv;
		this.zhongLiang = zhongLiang;
	}
	
	public DianQi() {
		super();
	}
	public DianQi(String name, double price, String introduce, String factory, String address) {
		super(name, price, introduce, factory, address);
	}
	
	public String getDianYa() {
		return dianYa;
	}
	public void setDianYa(String dianYa) {
		this.dianYa = dianYa;
	}
	public String getGongLv() {
		return gongLv;
	}
	public void setGongLv(String gongLv) {
		this.gongLv = gongLv;
	}
	public String getZhongLiang() {
		return zhongLiang;
	}
	public void setZhongLiang(String zhongLiang) {
		this.zhongLiang = zhongLiang;
	}
	
	
}
 
//    子类  服装类
 
package nightpractice;
 
public class FuZhuang extends ShangPin{
 
	private String caiZhi;//材质
	private String mianLiao;//面料
	private String chengFen;//成分
	
	public FuZhuang() {
		super();
	}
	public FuZhuang(String name, double price, String introduce, String factory, String address) {
		super(name, price, introduce, factory, address);
	}
	
	public FuZhuang(String caiZhi, String mianLiao, String chengFen) {
		super();
		this.caiZhi = caiZhi;
		this.mianLiao = mianLiao;
		this.chengFen = chengFen;
	}
	
	public String getCaiZhi() {
		return caiZhi;
	}
	public void setCaiZhi(String caiZhi) {
		this.caiZhi = caiZhi;
	}
	public String getMianLiao() {
		return mianLiao;
	}
	public void setMianLiao(String mianLiao) {
		this.mianLiao = mianLiao;
	}
	public String getChengFen() {
		return chengFen;
	}
	public void setChengFen(String chengFen) {
		this.chengFen = chengFen;
	}
	
	
}
 
//    子类  玩具类
 
package nightpractice;
 
public class wanJv extends ShangPin{
 
	private String caiZhi;//材质
	private String fenLei;//分类
	private String age;//适用年龄
	
	public wanJv() {
		super();
	}
	public wanJv(String name, double price, String introduce, String factory, String address) {
		super(name, price, introduce, factory, address);
	}
	
	public wanJv(String caiZhi, String fenLei, String age) {
		super();
		this.caiZhi = caiZhi;
		this.fenLei = fenLei;
		this.age = age;
	}
	
	public String getCaiZhi() {
		return caiZhi;
	}
	public void setCaiZhi(String caiZhi) {
		this.caiZhi = caiZhi;
	}
	public String getFenLei() {
		return fenLei;
	}
	public void setFenLei(String fenLei) {
		this.fenLei = fenLei;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	
	
}
 
//   测试类
 
package nightpractice;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
public class Test {
 
	public static void main(String[] args) {
 
		List<ShangPin> shangpin=new ArrayList<ShangPin>();
		
		ShangPin shipin1=new ShiPin("香肠一号",10.0,"熟食,可直接吃","长春食品厂","九台区");
		ShangPin shipin2=new ShiPin("香肠二号",12.0,"熟食,可直接吃","长春食品厂","九台区");
		ShangPin shipin3=new ShiPin("香肠三号",14.0,"熟食,可直接吃","长春食品厂","九台区");
		ShangPin shipin4=new ShiPin("香肠四号",16.0,"熟食,可直接吃","长春食品厂","九台区");
		ShangPin shipin5=new ShiPin("香肠五号",18.0,"熟食,可直接吃","长春食品厂","九台区");
		
		shangpin.add(shipin1);
		shangpin.add(shipin2);
		shangpin.add(shipin3);
		shangpin.add(shipin4);
		shangpin.add(shipin5);
		
		ShangPin dianqi1=new DianQi("电视机1代",1000,"可以看电视节目","长春电器厂","北京");
		ShangPin dianqi2=new DianQi("电视机2代",900,"可以看电视节目","长春电器厂","北京");
		ShangPin dianqi3=new DianQi("电视机3代",800,"可以看电视节目","长春电器厂","北京");
		ShangPin dianqi4=new DianQi("电视机4代",700,"可以看电视节目","长春电器厂","北京");
		ShangPin dianqi5=new DianQi("电视机5代",600,"可以看电视节目","长春电器厂","北京");
		
		shangpin.add(dianqi1);
		shangpin.add(dianqi2);
		shangpin.add(dianqi3);
		shangpin.add(dianqi4);
		shangpin.add(dianqi5);
		
		ShangPin fuzhuang1=new FuZhuang("外套第一版",100,"可以穿","长春服装厂","朝阳区");
		ShangPin fuzhuang2=new FuZhuang("外套第二版",120,"可以穿","长春服装厂","朝阳区");
		ShangPin fuzhuang3=new FuZhuang("外套第三版",140,"可以穿","长春服装厂","朝阳区");
		ShangPin fuzhuang4=new FuZhuang("外套第四版",160,"可以穿","长春服装厂","朝阳区");
		ShangPin fuzhuang5=new FuZhuang("外套第五版",180,"可以穿","长春服装厂","朝阳区");
		
		shangpin.add(fuzhuang1);
		shangpin.add(fuzhuang2);
		shangpin.add(fuzhuang3);
		shangpin.add(fuzhuang4);
		shangpin.add(fuzhuang5);
		
		ShangPin wanjv1=new wanJv("惨叫鸡1代",10.0,"可以叫","长春玩具厂","南关区");
		ShangPin wanjv2=new wanJv("惨叫鸡5代",9.0,"可以叫","长春玩具厂","南关区");
		ShangPin wanjv3=new wanJv("惨叫鸡3代",8.0,"可以叫","长春玩具厂","南关区");
		ShangPin wanjv4=new wanJv("惨叫鸡4代",7.0,"可以叫","长春玩具厂","南关区");
		ShangPin wanjv5=new wanJv("惨叫鸡5代",6.0,"可以叫","长春玩具厂","南关区");
		
		shangpin.add(wanjv1);
		shangpin.add(wanjv2);
		shangpin.add(wanjv3);
		shangpin.add(wanjv4);
		shangpin.add(wanjv5);
		
		for(ShangPin s:shangpin){
			System.out.println(s.getName()+"的价格是:"+s.getPrice()+",功能是:"+s.getIntroduce()+",厂家是:"+s.getFactory()+",地址是:"+s.getAddress());
		}
		
		//  商品大于100的商品查询:
		System.out.println();
		System.out.println("*******商品大于100查询:*******");
		for(ShangPin s:shangpin){
			if(s.getPrice()>100){
				System.out.println(s.getName()+"的价格是:"+s.getPrice()+",功能是:"+s.getIntroduce()+",厂家是:"+s.getFactory()+",地址是:"+s.getAddress());
			}
			
		}
		
		//  产地是北京的查询:
		System.out.println();
		System.out.println("*******产地是北京的查询:*******");
		for(ShangPin s:shangpin){
			if("北京".equals(s.getAddress())){
				System.out.println(s.getName()+"的价格是:"+s.getPrice()+",功能是:"+s.getIntroduce()+",厂家是:"+s.getFactory()+",地址是:"+s.getAddress());
			}
			
		}
		
		//  商品价格排序:
		System.out.println();
		System.out.println("*******商品价格排序:*******");
		Collections.sort(shangpin);
		for(ShangPin s:shangpin){
			System.out.println(s.getName()+"的价格是:"+s.getPrice()+",功能是:"+s.getIntroduce()+",厂家是:"+s.getFactory()+",地址是:"+s.getAddress());
		}
		
		//购物车显示
		List<ShangPin> shangpin1=new ArrayList<ShangPin>();
		System.out.println();
		System.out.println("*******购物车显示:*******");
		System.out.println("请输入商品名称:");
		String name1=new Scanner(System.in).nextLine();
		
		for(ShangPin s:shangpin){
			if(name1.equals(s.getName())){
				System.out.println("请输入商品的数量:");
				int num=new Scanner(System.in).nextInt();
				switch (name1) {
				case "香肠一号":
					for(int i=0;i<num;i++){
						shangpin1.add(shipin1);
					}	
					break;
				case "香肠二号":
					for(int i=0;i<num;i++){
						shangpin1.add(shipin2);
					}	
					break;
				case "香肠三号":
					for(int i=0;i<num;i++){
						shangpin1.add(shipin3);
					}	
					break;
				case "香肠四号":
					for(int i=0;i<num;i++){
						shangpin1.add(shipin4);
					}	
					break;
				case "香肠五号":
					for(int i=0;i<num;i++){
						shangpin1.add(shipin5);
					}	
					break;
				case "电视机1代":
					for(int i=0;i<num;i++){
						shangpin1.add(dianqi1);
					}	
					break;
				case "电视机2代":
					for(int i=0;i<num;i++){
						shangpin1.add(dianqi2);
					}	
					break;
				case "电视机3代":
					for(int i=0;i<num;i++){
						shangpin1.add(dianqi3);
					}	
					break;
				case "电视机4代":
					for(int i=0;i<num;i++){
						shangpin1.add(dianqi4);
					}	
					break;
				case "电视机5代":
					for(int i=0;i<num;i++){
						shangpin1.add(dianqi5);
					}	
					break;
				case "外套第一版":
					for(int i=0;i<num;i++){
						shangpin1.add(fuzhuang1);
					}	
					break;
				case "外套第二版":
					for(int i=0;i<num;i++){
						shangpin1.add(fuzhuang2);
					}	
					break;
				case "外套第三版":
					for(int i=0;i<num;i++){
						shangpin1.add(fuzhuang3);
					}	
					break;
				case "外套第四版":
					for(int i=0;i<num;i++){
						shangpin1.add(fuzhuang4);
					}	
					break;
				case "外套第五版":
					for(int i=0;i<num;i++){
						shangpin1.add(fuzhuang5);
					}	
					break;
				case "惨叫鸡1代":
					for(int i=0;i<num;i++){
						shangpin1.add(wanjv1);
					}	
					break;
				case "惨叫鸡2代":
					for(int i=0;i<num;i++){
						shangpin1.add(wanjv2);
					}	
					break;
				case "惨叫鸡3代":
					for(int i=0;i<num;i++){
						shangpin1.add(wanjv3);
					}	
					break;
				case "惨叫鸡4代":
					for(int i=0;i<num;i++){
						shangpin1.add(wanjv4);
					}	
					break;
				case "惨叫鸡5代":
					for(int i=0;i<num;i++){
						shangpin1.add(wanjv5);
					}	
					break;
 
				default:
					System.out.println("商品输入错误,请重新输入!");
					break;
				}
			
				
			}
			
		}
		double sum=0;
		for(ShangPin s1:shangpin1){
		System.out.println(s1.getName()+"的价格是:"+s1.getPrice()+",功能是:"+s1.getIntroduce()+",厂家是:"+s1.getFactory()+",地址是:"+s1.getAddress());
		sum+=s1.getPrice();
		System.out.println("总金额是:"+sum);
		}
		
		//  抽奖功能
		System.out.println();
		System.out.println("************抽奖**********");
		System.out.println("全部奖品是:");
		for(ShangPin s:shangpin){
			System.out.println(s.getName()+"的价格是:"+s.getPrice()+",功能是:"+s.getIntroduce()+",厂家是:"+s.getFactory()+",地址是:"+s.getAddress());
		}
		System.out.println();
		System.out.println("您抽到的奖品是:");
		int numb=(int)(Math.random()*shangpin.size());
//		System.out.println(shangpin.get(numb).getName());
		System.out.println(shangpin.get(numb).getName()+"的价格是:"+shangpin.get(numb).getPrice()+",功能是:"+shangpin.get(numb).getIntroduce()+",厂家是:"+shangpin.get(numb).getFactory()+",地址是:"+shangpin.get(numb).getAddress());
	}
 
}

运行结果:

猜你喜欢

转载自blog.csdn.net/m0_46626161/article/details/119768168