java 面向對象 購物車

一個商城包括多個商品、多個用戶。擁有銷售商品、展示商品和查找商品功能。
2)    一個用戶擁有一個購物車,購物車具有結算功能。
3)    商城具有名稱,靜態字符串類型
4)    用戶類是抽象類,兩個子類,售貨員和顧客。購買商品作爲抽象方法,售貨員購買享八折優惠。
5)    商品和用戶不再用二維數組,而是用類集來表示。

 

 

package tang;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import javax.xml.soap.SAAJResult;

/*
 * 
 * 	基於上一個實驗,建立商品類、購物車類、用戶類、商城類,實現同樣的功能。
1)	一個商城包括多個商品、多個用戶。擁有銷售商品、展示商品和查找商品功能。
2)	一個用戶擁有一個購物車,購物車具有結算功能。
3)	商城具有名稱,靜態字符串類型
4)	用戶類是抽象類,兩個子類,售貨員和顧客。購買商品作爲抽象方法,售貨員購買享八折優惠。
5)	商品和用戶不再用二維數組,而是用類集來表示。

 * */

public class work {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		shangping sp1 = new shangping(1001, "巧克力", 120, 5, "食品");
		shangping sp2 = new shangping(1002, "牛奶", 100, 3, "食品");
		shangping sp3 = new shangping(1003, "火腿腸", 500, 2, "食品");
		shangping sp4 = new shangping(1004, "毛衣", 10, 1000, "衣服");
		shangping sp5 = new shangping(1005, "褲子", 20, 999, "衣服");
		shangping sp6 = new shangping(1006, "鞋子", 999, 200, "衣服");
		gouwuche gu1 = new gouwuche(sp1, 2);
		gouwuche gu2 = new gouwuche(sp2, 4);
		gouwuche gu3 = new gouwuche(sp3, 2);
		
		// 購物車
		List<gouwuche> gous1 = new ArrayList<gouwuche>();
		gous1.add(gu1);
		gous1.add(gu2);
		List<gouwuche> gous2 = new ArrayList<gouwuche>();
		gous2.add(gu3);
		gous2.add(gu2);
		// 商品列表
		List<shangping> shangpings1 = new ArrayList<shangping>();
		shangpings1.add(sp1);
		shangpings1.add(sp2);
		shangpings1.add(sp6);
		// 用戶
		guke g1 = new guke("xiaohua", "123456", 0, gous1);
		guke g2 = new guke("laowang", "123456", 0, gous2);
		List<yonghu> yonghus = new ArrayList<yonghu>();
		yonghus.add(g1);
		yonghus.add(g2);
		// 商城
		shangcheng sc = new shangcheng(yonghus, shangpings1);
		System.out.println("請輸入用戶名");
		String name = input.next();
		System.out.println("請輸入密碼");
		String mima = input.next();
		boolean user = userhave(name, mima, sc);

		// 1-加入購物車,2-查詢商品,3-結算,4-退出”

		if (user) {
			System.out.println("登錄成功");
			while (true) {

				System.out.println("1-查看購物車" + "\t" + "2-查詢商品" + "\n" + "3-結算" + "\t" + "4-退出");
				int a = input.nextInt();
				yonghu loginuser = getuser(name, sc);
				if (a == 1) {
					showgou(loginuser);

				} else if (a == 2) {
					System.out.println("請輸入查詢商品信息:");
					String searchname = input.next();
					int i = chaxun(searchname, sc);
					if (i == -1) {
						System.out.println("沒有此商品");
					} else {
						System.out.println("是否加入購物車         是/否");
						String jiagou = input.next();
						if (jiagou.equals("是")) {
							jiagou(loginuser, i, sc);
						} else {
							continue;
						}
					}

				} else if (a == 3) {
					showgou(loginuser);
					System.out.println();

					System.out.println(jiesuan(loginuser));

				} else {
					break;
				}
			}
		} else {
			System.out.println("登錄失敗");
		}

	}

	private static void jiagou(yonghu loginuser, int i, shangcheng sc) {
		// TODO Auto-generated method stub

		gouwuche gou = new gouwuche(sc.getShangpings().get(i), 1);
		sc.getShangpings().get(i).setShuliang(sc.getShangpings().get(i).getShuliang() - 1);

		loginuser.getGouwuches().add(gou);
	}

	private static int chaxun(String searchname, shangcheng sc) {
		// TODO Auto-generated method stub
		int s = -1;
		for (int i = 0; i < sc.getShangpings().size(); i++) {
			if (sc.getShangpings().get(i).getName().equals(searchname)) {
				System.out.println("編號:" + sc.getShangpings().get(i).getBianhao());
				System.out.println("名稱:" + sc.getShangpings().get(i).getName());
				System.out.println("價格:" + sc.getShangpings().get(i).getJiage());
				System.out.println("庫存:" + sc.getShangpings().get(i).getShuliang());
				System.out.println("類別:" + sc.getShangpings().get(i).getLeibie());
				s = i;
			}

		}
		return s;
	}

	private static double jiesuan(yonghu loginuser) {
		// TODO Auto-generated method stub
		double sum = 0;
		for (int i = 0; i < loginuser.getGouwuches().size(); i++) {
			sum += loginuser.getGouwuches().get(i).getShuliang()
					* loginuser.getGouwuches().get(i).getShangping().getJiage();
		}
		return sum;

	}

	private static void showgou(yonghu loginuser) {
		// TODO Auto-generated method stub
		System.out.println("商品編號" + "    " + "商品名稱" + "     " + "商品價格" + "    " + "商品數量");

		for (int i = 0; i < loginuser.getGouwuches().size(); i++) {
			System.out.print(loginuser.getGouwuches().get(i).getShangping().getBianhao() + "   ");
			System.out.print(loginuser.getGouwuches().get(i).getShangping().getName() + "   ");
			System.out.print(loginuser.getGouwuches().get(i).getShangping().getJiage() + "   ");
			System.out.print(loginuser.getGouwuches().get(i).getShuliang() + "   ");
			System.out.println();
		}
		System.out.println();
	}

	private static yonghu getuser(String name, shangcheng sc) {
		// TODO Auto-generated method stub
		for (int i = 0; i < sc.getYonghus().size(); i++) {
			if (sc.getYonghus().get(i).getUsername().equals(name)) {

				return sc.getYonghus().get(i);
			}
		}
		return null;
	}

	private static boolean userhave(String name, String mima, shangcheng sc) {
		// TODO Auto-generated method stub
		for (int i = 0; i < sc.getYonghus().size(); i++) {
			if (sc.getYonghus().get(i).getUsername().equals(name)) {
				if (sc.getYonghus().get(i).getPassword().equals(mima))
					return true;
			}
		}
		return false;
	}

}

//分別有商品編號、商品名稱、商品數量、商品價格和商品類別。
class shangping {
	private long bianhao;
	private String name;
	private int shuliang;
	private double jiage;
	private String leibie;

	public long getBianhao() {
		return bianhao;
	}

	public void setBianhao(long bianhao) {
		this.bianhao = bianhao;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getShuliang() {
		return shuliang;
	}

	public void setShuliang(int shuliang) {
		this.shuliang = shuliang;
	}

	public double getJiage() {
		return jiage;
	}

	public void setJiage(double jiage) {
		this.jiage = jiage;
	}

	public String getLeibie() {
		return leibie;
	}

	public void setLeibie(String leibie) {
		this.leibie = leibie;
	}

	@Override
	public String toString() {
		return "shangping [bianhao=" + bianhao + ", name=" + name + ", shuliang=" + shuliang + ", jiage=" + jiage
				+ ", leibie=" + leibie + "]";
	}

	public shangping(long bianhao, String name, int shuliang, double jiage, String leibie) {
		super();
		this.bianhao = bianhao;
		this.name = name;
		this.shuliang = shuliang;
		this.jiage = jiage;
		this.leibie = leibie;
	}

}

class gouwuche {
	private shangping shangping;
	private int shuliang;

	public shangping getShangping() {
		return shangping;
	}

	public void setShangping(shangping shangping) {
		this.shangping = shangping;
	}

	public int getShuliang() {
		return shuliang;
	}

	public void setShuliang(int shuliang) {
		this.shuliang = shuliang;
	}

	public gouwuche(tang.shangping shangping, int shuliang) {
		super();
		this.shangping = shangping;
		this.shuliang = shuliang;
	}

//	List thinglist= new ArrayList<>();

//	public List<shangping> getShangpings() {
//		return shangpings;
//	}

//	public gouwuche(List<shangping> shangpings) {
//		super();
//		this.shangpings = shangpings;
//	}

//	public void setShangpings(List<shangping> shangpings) {
//		this.shangpings = shangpings;
//	}
//
//
//	public double jiesuan(List<shangping> shangpings) {
//		double sum=0;
//		for(int i=0;i<shangpings.size();i++) {
//			sum+=shangpings.get(i).getJiage();
//		}
//		return sum;
//		
//	}

}

abstract class yonghu {
	private String username;
	private String password;
	private double yue;
	private List<gouwuche> gouwuches;

	public List<gouwuche> getGouwuches() {
		return gouwuches;
	}

	public void setGouwuches(List<gouwuche> gouwuches) {
		this.gouwuches = gouwuches;
	}

	public void goumai() {

	}

	public double getYue() {
		return yue;
	}

	public void setYue(double yue) {
		this.yue = yue;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "yonghu [username=" + username + ", password=" + password + ", yue=" + yue + ", gouwuches=" + gouwuches
				+ "]";
	}

	public yonghu(String username, String password, double yue, List<gouwuche> gouwuches) {
		super();
		this.username = username;
		this.password = password;
		this.yue = yue;
		this.gouwuches = gouwuches;
	}

//	public double jiesuan() {
//		double sum=0;
//		for (int i = 0; i < gouwuches.size(); i++) {
//			sum+=gouwuches.get(i).getShangping().getJiage();
//			
//		}
//		return sum;
//	}

}

class guke extends yonghu {

	public guke(String username, String password, double yue, List<gouwuche> gouwuches) {
		super(username, password, yue, gouwuches);
		// TODO Auto-generated constructor stub
	}

}

class xiaoshou extends yonghu {

	public xiaoshou(String username, String password, double yue, List<gouwuche> gouwuches) {
		super(username, password, yue, gouwuches);
		// TODO Auto-generated constructor stub
	}

}

class shangcheng {
	private static String name;
	List<yonghu> yonghus = new ArrayList<yonghu>();
	List<shangping> shangpings = new ArrayList<shangping>();

	public shangcheng(List<yonghu> yonghus, List<shangping> shangpings) {
		super();
		this.yonghus = yonghus;
		this.shangpings = shangpings;
	}

	public static String getName() {
		return name;
	}

	public static void setName(String name) {
		shangcheng.name = name;
	}

	public List<yonghu> getYonghus() {
		return yonghus;
	}

	public void setYonghus(List<yonghu> yonghus) {
		this.yonghus = yonghus;
	}

	public List<shangping> getShangpings() {
		return shangpings;
	}

	public void setShangpings(List<shangping> shangpings) {
		this.shangpings = shangpings;
	}

}

 

發佈了10 篇原創文章 · 獲贊 16 · 訪問量 4225
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章