天天看點

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

利用ArrayList實作電商系統子產品功能

功能介紹

完成一個電商系統的商品子產品功能

管理者類包含以下屬性:賬号、密碼(初始賬号為admin、初始密碼為admin)

商品類包含以下屬性:商品ID,商品名,類别名,單價,庫存量,産地,計量機關等資訊

要求實作商品管理功能以及管理者登入功能,具體如下:

  1. 管理者登入(賬号密碼固定admin/admin)
  2. 修改管理者密碼
  3. 商品添加
  4. 檢視商品清單
  5. 查詢指定id的商品
  6. 根據商品id删除商品
  7. 根據id修改指定商品的價格
  8. 根據id修改指定商品的庫存
  9. 根據商品類别查詢所有商品
  10. 查詢指定價格區間的商品資訊

分析

要實作這些功能,我建立了5個類:

  • Manager類(管理者類):定義管理者屬性,存儲管理者資訊
  • ManagerMode類(管理者管理類):聲明管理者功能:管理者登入、修改管理者密碼
  • Product類(商品類):定義商品屬性,存儲商品資訊
  • ProductMode類(商品管理類):聲明商品的功能方法:商品添加、查詢商品清單、查詢指定id的商品、根據商品id删除商   品、根據id修改指定商品的價格、根據id修改指定商品的庫存、根據商品類别查詢所有商品、查詢指定價格區間的商品資訊
  • ManagerClient類(管理者用戶端類):程式的主入口,展示管理者輸入控制台界面,通過控制台輸入實作各子產品功能

在ProductMode類中主要用到了ArrayList來存放商品資訊,是因為動态數組可以快速的添加、删除數組元素

代碼如下

Manager類

public class Manager {
	
	private String id;
	private String password;
	
	//初始化管理者賬号、密碼
	public Manager() {
		id = "admin";
		password = "admin";
	}

	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}
           

ManagerMode類

public class ManagerMode {
	
	Manager m = new Manager();
	
	/**管理者登入*/
	public boolean sign(String id,String password) {
		if(m.getId().equals(id) && m.getPassword().equals(password)) {
			return true;
		}
		return false;
	}
	
	/**修改管理者密碼*/
	public boolean modify(String password) {
		if(m.getPassword()!= null) {
			m.setPassword(password);
			return true;
		}
		return false;
		
	}

}
           

Product類

public class Product {
	
	private int id;
	private String name;
	private String type;
	private double price;
	private int count;
	private String place;
	private String unit;
	
	public Product() {
	}
	
	public Product(int id, String name, String type, double price, int count, String place, String unit) {
		super();
		this.id = id;
		this.name = name;
		this.type = type;
		this.price = price;
		this.count = count;
		this.place = place;
		this.unit = unit;
	}


	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
	public String getPlace() {
		return place;
	}
	public void setPlace(String place) {
		this.place = place;
	}
	public String getUnit() {
		return unit;
	}
	public void setUnit(String unit) {
		this.unit = unit;
	}

	@Override
	public String toString() {
		return  id + "\t" + name + "\t" + type + "\t" + price + "\t" + count
				+ "\t" + place + "\t" + unit ;
	}
	
}
           

ProductMode類

import java.util.ArrayList;


public class ProductMode {
	
	static ArrayList<Product> list = new ArrayList<>();
	
	/**商品添加*/
	public void add(Product p) {
		list.add(p);
	}
	
	/**查詢所有商品*/
	public ArrayList<Product> findAll(){
		return list;
	}
	
	/**查詢指定id的商品*/
	public Product findById(int id) {
		Product pro = null;
		for(Product p : list) {
			if(p.getId() == id) {
				pro = p;
				break;
			}
		}
		return pro;
	}
	
	/**根據商品id删除商品*/
	public boolean delete(int id){
		Product pro = findById(id);
		if(pro != null){
			return list.remove(pro);
		}
		return false;
	}
	
	/**根據id修改指定商品的價格*/
	public boolean modifyPrice(int id,double price) {
		Product pro = findById(id);
		if(pro != null) {
			pro.setPrice(price);
			return true;
		}
		return false;
	}
	
	/**根據id修改指定商品的庫存*/
	public boolean modifyCount(int id,int count) {
		Product pro = findById(id);
		if(pro != null) {
			pro.setCount(count);
			return true;
		}
		return false;
	}
	
	/**根據商品類别查詢所有商品*/
	public ArrayList<Product> findByType(String type){
		ArrayList<Product> pros = new ArrayList<>();
		for(Product p:list) {
			if(type.equals(p.getType())) {
				pros.add(p);
			}
		}
		return pros;
	}
	
	/**查詢指定價格區間的商品資訊*/
	public ArrayList<Product> findByPrices(double price1,double price2){
		ArrayList<Product> pros = new ArrayList<>();
		for(Product p: list) {
			if(p.getPrice()>=price1 && p.getPrice()<=price2) {
				pros.add(p);
			}
		}
		return pros;
	}
}
           

ManagerClient類

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

import com.softeem.hrms.Emp;
/**
 * 
 * @author max
 *
 */
public class ManageClient {
	
	private ManagerMode mm = new ManagerMode();
	private ProductMode pm = new ProductMode();
	private Scanner sc;
	
	/**管理者登入*/
	public void signin() {
		sc = new Scanner(System.in);
                msg("歡迎使用max的電商系統");
		msg("請輸入賬戶名:");
		String id =  sc.next();
		msg("請輸入密碼:");
		String password = sc.next();
		if(mm.sign(id, password)) {
			menu();
		}else {
			msg("賬戶不存在或密碼錯誤");
			msg("請重新輸入密碼");
			signin();
		}
	}
	
	public void menu() {
		msg("=========================");
		msg("========max電商系統========");
		msg("====【1】修改密碼===========");
		msg("====【2】添加商品===========");
		msg("====【3】商品清單===========");
		msg("====【4】查詢商品===========");
		msg("====【5】删除商品===========");
		msg("====【6】修改商品價格========");		
		msg("====【7】修改商品庫存========");		
		msg("====【8】根據類别查詢商品=====");		
		msg("====【9】查詢價格區間的商品====");		
		msg("====【0】退出系統===========");		
		msg("=========================");
		msg("請輸入操作指令:");
		start();
	}
	
	public void start() {
		sc = new Scanner(System.in);
		int i = sc.nextInt();
		switch(i){
		case 1:
			modifyPwd();
			break;
		case 2:
			add();
			break;
		case 3:
			list();
			break;
		case 4:
			queryById();
			break;
		case 5:
			delete();
			break;
		case 6:
			updatePrice();
			break;
		case 7:
			updateCount();
			break;
		case 8:
			queryByType();
			break;
		case 9:
			queryByPrice();
			break;
		case 0:
			exit();
			break;
			default:
				msg("請輸入正确的操作指令!!!");
				break;
		}
		menu();
	}
	
	/**修改管理者密碼*/
	public void modifyPwd() {
		msg("請輸入新密碼:");
		String password = sc.next();
		if(mm.modify(password)) {
			msg("修改成功");
		}else {
			msg("修改失敗");
		}
	}
	
	/**添加商品*/
	public void add() {
		msg("請輸入商品資訊(按以下格式:商品id/商品名/類别/單價/庫存/産地/計量機關)");
		sc = new Scanner(System.in);
		String s = sc.nextLine();
		//根據“/”截取商品資訊
		String[] info = s.split("/");
		if(pm.findById(Integer.parseInt(info[0])) != null){
			msg("該編号的商品已存在,請重新輸入");
			add();
			return;
		}else{
			Product p = new Product(Integer.parseInt(info[0]), 
					info[1], 
					info[2], 
					Double.parseDouble(info[3]), 
					Integer.parseInt(info[4]), 
					info[5],
					info[6]	);
			pm.add(p);
			msg("添加成功");
		}
	}
	
	/**商品清單*/
	public void list() {
		msg("商品id\t商品名\t類别\t單價\t庫存量\t産地\t計量機關");
		for (Product p: pm.findAll()) {
			msg(p);
		}
	}
	
	/**根據id查詢商品的用戶端實作*/
	public void queryById() {
		sc = new Scanner(System.in);
		msg("請輸入需要查詢的商品id:");
		int id = sc.nextInt();
		Product p = pm.findById(id);
		if(p == null) {
			msg("您輸入的商品id不存在");
			queryById();
			return;
		}
		msg("商品id\t商品名\t類别\t單價\t庫存量\t産地\t計量機關");
		msg(p);
	}
	
	/**根據商品id删除商品的用戶端實作*/
	public void delete() {
		sc = new Scanner(System.in);
		msg("請輸入商品的id:");
		int id = sc.nextInt();
		if(pm.delete(id)){
			msg("删除成功!");
		}else{
			msg("删除失敗!");
		}
	}
	
	/**根據商品id修改價格的用戶端實作*/
	public void updatePrice() {
		sc = new Scanner(System.in);
		msg("請輸入修改商品的id:");
		int id = sc.nextInt();
		msg("請輸入修改商品的價格:");
		double price = sc.nextDouble();
		if(pm.modifyPrice(id, price)) {
			msg("修改成功");
		}else {
			msg("修改失敗");
		}
	}
	/**根據商品id修改庫存的用戶端實作*/
	public void updateCount() {
		sc = new Scanner(System.in);
		msg("請輸入修改商品的id:");
		int id = sc.nextInt();
		msg("請輸入修改商品的庫存:");
		int count = sc.nextInt();
		if(pm.modifyCount(id, count)) {
			msg("修改成功");
		}else {
			msg("修改失敗");
		}
	}
	
	/**根據商品類别查詢所有商品的用戶端實作*/
	public void queryByType() {
		sc = new Scanner(System.in);
		msg("請輸入需要查詢的類别名稱:");
		String type = sc.next();
		ArrayList<Product> list = pm.findByType(type);
		msg("商品id\t商品名\t類别\t單價\t庫存量\t産地\t計量機關");
		if(list.size()>0){
			for (Product p  : list) {
				msg(p);
			}
		}
	}
	/**查詢指定價格區間的商品的用戶端實作*/
	public void queryByPrice() {
		sc = new Scanner(System.in);
		msg("請輸入需要查詢的價格下界:");
		double price1 = sc.nextDouble();
		msg("請輸入需要查詢的價格上界:");
		double price2 = sc.nextDouble();
		ArrayList<Product> list = pm.findByPrices(price1,price2);
		msg("商品id\t商品名\t類别\t單價\t庫存量\t産地\t計量機關");
		if(list.size()>0){
			for (Product p  : list) {
				msg(p);
			}
		}
	}
	/**系統退出*/
	public void exit() {
		sc = new Scanner(System.in);
		msg("是否确定退出?(Y/N)");
		String op = sc.next();
		if(op.equalsIgnoreCase("y")){
			msg("謝謝使用,再見!");
			System.exit(1);
		}
	}
	
	
	public void msg(Object obj) {
		System.out.println(obj);
	}
	
	public static void main(String[] args) {
		
		new ManageClient().signin();
		
	}

}
           

以上就是此簡易電商系統子產品功能源碼

接下來看運作結果

輸入正确的賬戶名與密碼才可登入系統

輸錯則重新輸入

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能
使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

接下來按照控制台菜單依步驟操作

1.修改密碼

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

2.添加商品

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能
使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能
使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

3.商品清單

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

4.查詢商品

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

5.删除商品

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能
使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

6.修改商品價格

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能
使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

7.修改商品庫存

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能
使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

8.根據類别查詢商品

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

9.查詢價格區間的商品

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

0.退出系統

使用Java的ArrayList實作電商系統子產品功能利用ArrayList實作電商系統子產品功能

以上就是此簡易系統的實作,希望可以幫到對java感興趣的朋友,也希望各位評論探讨更多java知識