概述
购物车系统
2.package com.emp.product.message主要是存储商品的属性id,name,price,count放在一个类中
3.package com.emp.customer.message存储顾客,就是买商品人的信息属性id,pwd,name,sex,birthday,还有score(积分属性),放在一个类中
积分属性本系统没有去实现,希望大家给一些建议
4package com.emp.product.administrator;管理员包中我创建了两个类,一个和上面是一样的,存储管理员信息属性类;另一个AdminUtil类是管理员登录后处理数据类
package com.emp.product.administrator;
/**
* 管理员信息模块
*
* @author ygy
*
*/
public class Administrator {
private String adminId; //管理员编号
private String adminName; //管理员姓名
private String adminnPsw; //管理员密码
public String getAdminId() {
return adminId;
}
public void setAdminId(String adminId) {
this.adminId = adminId;
}
public String getAdminName() {
return adminName;
}
public void setAdminName(String adminName) {
this.adminName = adminName;
}
public String getAdminnPsw() {
return adminnPsw;
}
public void setAdminnPsw(String adminnPsw) {
this.adminnPsw = adminnPsw;
}
public Administrator(){
super();
}
public Administrator(String adminId, String adminName, String adminnPsw) {
super();
this.adminId = adminId;
this.adminName = adminName;
this.adminnPsw = adminnPsw;
}
}
package com.emp.product.administrator;
import java.util.Scanner;
import com.emp.product.message.Product;
import com.emp.shopping.cart.Cart;
import com.emp.shopping.cart.CartItems;
import com.emp.shopping.operator.CustomerShopping;
/**
* 管理操作模块;
*
* @author ygy
*
*/
public class AdminUtil extends Cart {
static Scanner sc = new Scanner(System.in);
static CustomerShopping cus = new CustomerShopping();
//显示商品售后的库存情况:
public static void showP(){
System.out.println("===商品剩余情况===");
System.out.println("编号t名称tt单价t剩余数量");
for(Product p : cus.lstProducts){
for(CartItems a :cart){
if(a.getP().getPid().equals(p.getPid())){
int pnum = p.getStock()-a.getCount();
p.setStock(pnum);
}
}
System.out.println(p.getPid()+"t"+p.getPname()+"tt"+p.getPprice()+"t"+p.getStock());
}
System.out.println("=============");
cleanup();
}
//整理商品信息
public static boolean cleanup(){
System.out.println("是否需要整理商品信息?y/n");
switch ((new Scanner(System.in).nextLine())) {
case "y":
//添加新商品,和商品的数量;
//删除商品信息????
while(true){
System.out.print("商品Id:");
String id = sc.nextLine();
System.out.print("商品名称:");
String name = sc.nextLine();
System.out.print("商品价格:");
String price = sc.nextLine();
System.out.print("商品储存量:");
String stock = sc.nextLine();
for(Product p : cus.lstProducts){
if(id.equals(p.getPid())){
p.setPname(name);
p.setPprice(Double.parseDouble(price));
p.setStock(Integer.parseInt(stock));
return true;
}
}
cus.lstProducts.add(new Product(id, name, Double.parseDouble(price),Integer.parseInt(stock)));
}
case "n":
return false;
}
return false;
}
}
5.package com.emp.shopping.operator;购物包我创建了一个类,类中主要是初始化商品信息,会员信息和管理员信息,用集合arraylist存储;验证顾客和管理员录,分别进入不同的界面操作;这个类是贯穿和联系属性类和后面购物车逻辑类的枢纽;
package com.emp.shopping.operator;
import java.util.*;
import com.emp.customer.message.Customer;
import com.emp.product.administrator.AdminUtil;
import com.emp.product.administrator.Administrator;
import com.emp.product.message.Product;
import com.emp.shopping.cart.Cart;
import com.emp.shopping.cart.CartItems;
/**
* 会员操作模块
*
* @author ygy
*
*/
public class CustomerShopping {
static Scanner sc = new Scanner(System.in);
private static Cart cart =new Cart();//创建一个购物车;
public static ArrayList<Customer> lstCustomers=
new ArrayList<Customer>();
public static ArrayList<Product> lstProducts=
new ArrayList<Product>();
public static ArrayList<Administrator> lstAdministrators=
new ArrayList<Administrator>();
//初始化数据,运行时先初始化3个会员,存入
public static void initData(){
lstCustomers.add(new Customer("01","123","andy","女","1996-6-1",100));
lstCustomers.add(new Customer("02","123","jimi","女","1997-7-1",0));
lstCustomers.add(new Customer("03","123","zsan","男","1994-3-1",233));
lstCustomers.add(new Customer("05","123","tom","男", " ", 1212));
//设置一个管理员
lstAdministrators.add(new Administrator("01","yuan" , "0926"));
lstProducts.add(new Product("011","柠檬霸",13.0,100));
lstProducts.add(new Product("012","金桔柠檬",10.0,110));
lstProducts.add(new Product("013","密西柠檬汁",11.0,120));
lstProducts.add(new Product("014","柠檬水",12.0,130));
lstProducts.add(new Product("015","柠檬柚子水",9.0,150));
lstProducts.add(new Product("016","珍珠奶茶",9.0,130));
lstProducts.add(new Product("017","蛋挞",5.0,50));
lstProducts.add(new Product("018","汉堡",6.0,110));
lstProducts.add(new Product("019","北京鸡肉卷",15.0,130));
lstProducts.add(new Product("020","正新鸡排",11.0,130));
}
//1.会员登录;用户名和密码。从顾客集合中查找是否能匹配,true登录成功
public static boolean login(){
System.out.println("请选择:1.会员登录2.管理员登录");
switch ((new Scanner(System.in).nextLine())) {
case "1":
System.out.println("=======会员登录======");
System.out.println("用户名:");
String name=sc.nextLine();
System.out.println("密码:");
String pwd=sc.nextLine();
for(Customer c: lstCustomers){
if (name.equals(c.getName()) && pwd.equals(c.getPwd())){
buy();
return true;
}
}
System.out.println("你输入的信息有误!");
return false;
case "2":
System.out.println("=======管理员登录======");
System.out.println("管理员:");
String name1=sc.nextLine();
System.out.println("密码:");
String pwd1=sc.nextLine();
for(Administrator a: lstAdministrators){
if (name1.equals(a.getAdminName()) && pwd1.equals(a.getAdminnPsw())){
AdminUtil.showP();
return true;
}
}
System.out.println("你输入的信息有误!");
return false;
}
/* if ((new Scanner(System.in).nextLine()).equals("1")) {
}
if((new Scanner(System.in).nextLine()).equals("2")){
}*/
return false;
}
//2.顾客购买商品1.先打印出所有商品明细
// 2.顾客选择指定编号的商品及购买数量
// 3.把选择要购买的商品信息存入到购物车
// (购买商品明细集合,总计花费)
// 购物商品明细类(商品编号,购买数量,费用)
public static void buy(){
//显示商品信息
System.out.println("--------------商品信息--------------");
System.out.println("编号t名称ttt单价t数量");
for(Product p:lstProducts){
System.out.println(p.getPid()+"t"+p.getPname()+"ttt"+p.getPprice()+"t"+p.getStock());
}
System.out.println("---------------------------------");
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("输入商品编号:");
String id=sc.nextLine(); //pid
System.out.println("输入购买数量:");
String count=sc.nextLine(); //pcount
if(id.equals("")||count.equals("")){
System.out.println("操作有误!");
break;
}else{
boolean f = false;
for(Product p: lstProducts){ //在集合里找用户输入的商品;
if(p.getPid().equals(id)){
//将购买的商品记录在清单里
CartItems item=new CartItems(p, Integer.parseInt(count));
//添加到购物车
cart.addItem(item);
f =true;
}
}
if(f){
pay();
System.out.println("总计:"+cart.getTotalCost()+"元");
}else{
System.out.println("你输入的信息有误!请核对后,输入正确信息");
break;
}
}
}
}
//顾客结算,打印明细
public static void pay(){
cart.showDetail();
}
//查看会员积分
public static void showScore(){
}
}
6.package com.emp.shopping.operator;购物车包,创建了两个类,其中CartItem类主要是保存用户单次购物的信息,并计算购买的总价,最后放在购物车里
Cart类中主要有将传来的单次购买的商品信息放入到一个集合然后汇总,其中需要处理商品库存和购买的数量问题
package com.emp.shopping.cart;
import java.util.LinkedList;
import com.emp.product.message.Product;
/**
* 购物车模块;存储顾客购买的商品信息,计算总价
* @author ygy
*
*/
//购物车
//怎么将购物车重复的商品合并???
//创建一个管理员为商品添加和修改商品信息?
public class Cart {
//创建清单集合--->购物车
public static LinkedList<CartItems> cart = new LinkedList<CartItems>();
//添加商品到购物车(主要处理数量问题)
public boolean addItem(CartItems item) {
//顾客刚才第一次下单数量就过了库存;
if(item.getCount()>item.getP().getStock()){
System.out.println("对不起,您需要的数量太多,现有的数量是:"+item.getP().getStock()+",请重新下单或者请求管理员增加商品数量!");
return true;
}
//顾客下单中下次下同一商品时,数量总和超过了库存;
for(CartItems a : cart){
if(item.getP().getPname().equals(a.getP().getPname())){
int sum = a.getCount()+item.getCount() ;
if(sum > a.getP().getStock()){
System.out.println("对不起,您需要的仅剩:"+(a.getP().getStock()-a.getCount())+",请重新下单或者请求管理员增加商品数量!");
return true;
}else{
a.setCount(sum);
return true;
}
}
}
cart.add(item);
return true;
}
//计算总价格;
public double getTotalCost() {
double sum = 0.0;
for(CartItems a :cart){
sum += a.getCost();
}
return sum;
}
//显示清单;
public void showDetail() {
System.out.println("===购物车清单===");
System.out.println("编号t名称tt单价t数量");
for(CartItems a :cart){
Product p = a.getP();
System.out.println(p.getPid()+"t"+p.getPname()+"tt"+p.getPprice()+"t"+a.getCount());
}
System.out.println("=============");
}
}
package com.emp.shopping.cart;
import com.emp.product.message.Product;
/**
* 清单模块:
* 购买车每一个商品明细类(商品对象,购买数量,费用)
* @author ygy
*
*/
public class CartItems {
private Product p;
private int count;
private double cost; //商品单价*购买数量
public Product getP() {
return p;
}
public double getCost() {
return this.cost;
}
public void setCost(double cost) {
this.cost = cost;
}
public CartItems(Product p, int count) {
super();
this.p = p;
this.count = count;
this.cost=p.getPprice()*count; //cost要计算;
}
public CartItems() {
// TODO Auto-generated constructor stub
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
this.cost=p.getPprice()*this.count;
}
}
作者:yuanguiyu2017
2017.7.23
首先我把自己要实现的购物车按照需求在实现中一次创建了五个包
2.package com.emp.product.message主要是存储商品的属性id,name,price,count放在一个类中
3.package com.emp.customer.message存储顾客,就是买商品人的信息属性id,pwd,name,sex,birthday,还有score(积分属性),放在一个类中
积分属性本系统没有去实现,希望大家给一些建议
4package com.emp.product.administrator;管理员包中我创建了两个类,一个和上面是一样的,存储管理员信息属性类;另一个AdminUtil类是管理员登录后处理数据类
package com.emp.product.administrator;
/**
* 管理员信息模块
*
* @author ygy
*
*/
public class Administrator {
private String adminId; //管理员编号
private String adminName; //管理员姓名
private String adminnPsw; //管理员密码
public String getAdminId() {
return adminId;
}
public void setAdminId(String adminId) {
this.adminId = adminId;
}
public String getAdminName() {
return adminName;
}
public void setAdminName(String adminName) {
this.adminName = adminName;
}
public String getAdminnPsw() {
return adminnPsw;
}
public void setAdminnPsw(String adminnPsw) {
this.adminnPsw = adminnPsw;
}
public Administrator(){
super();
}
public Administrator(String adminId, String adminName, String adminnPsw) {
super();
this.adminId = adminId;
this.adminName = adminName;
this.adminnPsw = adminnPsw;
}
}
package com.emp.product.administrator;
import java.util.Scanner;
import com.emp.product.message.Product;
import com.emp.shopping.cart.Cart;
import com.emp.shopping.cart.CartItems;
import com.emp.shopping.operator.CustomerShopping;
/**
* 管理操作模块;
*
* @author ygy
*
*/
public class AdminUtil extends Cart {
static Scanner sc = new Scanner(System.in);
static CustomerShopping cus = new CustomerShopping();
//显示商品售后的库存情况:
public static void showP(){
System.out.println("===商品剩余情况===");
System.out.println("编号t名称tt单价t剩余数量");
for(Product p : cus.lstProducts){
for(CartItems a :cart){
if(a.getP().getPid().equals(p.getPid())){
int pnum = p.getStock()-a.getCount();
p.setStock(pnum);
}
}
System.out.println(p.getPid()+"t"+p.getPname()+"tt"+p.getPprice()+"t"+p.getStock());
}
System.out.println("=============");
cleanup();
}
//整理商品信息
public static boolean cleanup(){
System.out.println("是否需要整理商品信息?y/n");
switch ((new Scanner(System.in).nextLine())) {
case "y":
//添加新商品,和商品的数量;
//删除商品信息????
while(true){
System.out.print("商品Id:");
String id = sc.nextLine();
System.out.print("商品名称:");
String name = sc.nextLine();
System.out.print("商品价格:");
String price = sc.nextLine();
System.out.print("商品储存量:");
String stock = sc.nextLine();
for(Product p : cus.lstProducts){
if(id.equals(p.getPid())){
p.setPname(name);
p.setPprice(Double.parseDouble(price));
p.setStock(Integer.parseInt(stock));
return true;
}
}
cus.lstProducts.add(new Product(id, name, Double.parseDouble(price),Integer.parseInt(stock)));
}
case "n":
return false;
}
return false;
}
}
5.package com.emp.shopping.operator;购物包我创建了一个类,类中主要是初始化商品信息,会员信息和管理员信息,用集合arraylist存储;验证顾客和管理员录,分别进入不同的界面操作;这个类是贯穿和联系属性类和后面购物车逻辑类的枢纽;
package com.emp.shopping.operator;
import java.util.*;
import com.emp.customer.message.Customer;
import com.emp.product.administrator.AdminUtil;
import com.emp.product.administrator.Administrator;
import com.emp.product.message.Product;
import com.emp.shopping.cart.Cart;
import com.emp.shopping.cart.CartItems;
/**
* 会员操作模块
*
* @author ygy
*
*/
public class CustomerShopping {
static Scanner sc = new Scanner(System.in);
private static Cart cart =new Cart();//创建一个购物车;
public static ArrayList<Customer> lstCustomers=
new ArrayList<Customer>();
public static ArrayList<Product> lstProducts=
new ArrayList<Product>();
public static ArrayList<Administrator> lstAdministrators=
new ArrayList<Administrator>();
//初始化数据,运行时先初始化3个会员,存入
public static void initData(){
lstCustomers.add(new Customer("01","123","andy","女","1996-6-1",100));
lstCustomers.add(new Customer("02","123","jimi","女","1997-7-1",0));
lstCustomers.add(new Customer("03","123","zsan","男","1994-3-1",233));
lstCustomers.add(new Customer("05","123","tom","男", " ", 1212));
//设置一个管理员
lstAdministrators.add(new Administrator("01","yuan" , "0926"));
lstProducts.add(new Product("011","柠檬霸",13.0,100));
lstProducts.add(new Product("012","金桔柠檬",10.0,110));
lstProducts.add(new Product("013","密西柠檬汁",11.0,120));
lstProducts.add(new Product("014","柠檬水",12.0,130));
lstProducts.add(new Product("015","柠檬柚子水",9.0,150));
lstProducts.add(new Product("016","珍珠奶茶",9.0,130));
lstProducts.add(new Product("017","蛋挞",5.0,50));
lstProducts.add(new Product("018","汉堡",6.0,110));
lstProducts.add(new Product("019","北京鸡肉卷",15.0,130));
lstProducts.add(new Product("020","正新鸡排",11.0,130));
}
//1.会员登录;用户名和密码。从顾客集合中查找是否能匹配,true登录成功
public static boolean login(){
System.out.println("请选择:1.会员登录2.管理员登录");
switch ((new Scanner(System.in).nextLine())) {
case "1":
System.out.println("=======会员登录======");
System.out.println("用户名:");
String name=sc.nextLine();
System.out.println("密码:");
String pwd=sc.nextLine();
for(Customer c: lstCustomers){
if (name.equals(c.getName()) && pwd.equals(c.getPwd())){
buy();
return true;
}
}
System.out.println("你输入的信息有误!");
return false;
case "2":
System.out.println("=======管理员登录======");
System.out.println("管理员:");
String name1=sc.nextLine();
System.out.println("密码:");
String pwd1=sc.nextLine();
for(Administrator a: lstAdministrators){
if (name1.equals(a.getAdminName()) && pwd1.equals(a.getAdminnPsw())){
AdminUtil.showP();
return true;
}
}
System.out.println("你输入的信息有误!");
return false;
}
/* if ((new Scanner(System.in).nextLine()).equals("1")) {
}
if((new Scanner(System.in).nextLine()).equals("2")){
}*/
return false;
}
//2.顾客购买商品1.先打印出所有商品明细
// 2.顾客选择指定编号的商品及购买数量
// 3.把选择要购买的商品信息存入到购物车
// (购买商品明细集合,总计花费)
// 购物商品明细类(商品编号,购买数量,费用)
public static void buy(){
//显示商品信息
System.out.println("--------------商品信息--------------");
System.out.println("编号t名称ttt单价t数量");
for(Product p:lstProducts){
System.out.println(p.getPid()+"t"+p.getPname()+"ttt"+p.getPprice()+"t"+p.getStock());
}
System.out.println("---------------------------------");
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("输入商品编号:");
String id=sc.nextLine(); //pid
System.out.println("输入购买数量:");
String count=sc.nextLine(); //pcount
if(id.equals("")||count.equals("")){
System.out.println("操作有误!");
break;
}else{
boolean f = false;
for(Product p: lstProducts){ //在集合里找用户输入的商品;
if(p.getPid().equals(id)){
//将购买的商品记录在清单里
CartItems item=new CartItems(p, Integer.parseInt(count));
//添加到购物车
cart.addItem(item);
f =true;
}
}
if(f){
pay();
System.out.println("总计:"+cart.getTotalCost()+"元");
}else{
System.out.println("你输入的信息有误!请核对后,输入正确信息");
break;
}
}
}
}
//顾客结算,打印明细
public static void pay(){
cart.showDetail();
}
//查看会员积分
public static void showScore(){
}
}
6.package com.emp.shopping.operator;购物车包,创建了两个类,其中CartItem类主要是保存用户单次购物的信息,并计算购买的总价,最后放在购物车里
Cart类中主要有将传来的单次购买的商品信息放入到一个集合然后汇总,其中需要处理商品库存和购买的数量问题
package com.emp.shopping.cart;
import java.util.LinkedList;
import com.emp.product.message.Product;
/**
* 购物车模块;存储顾客购买的商品信息,计算总价
* @author ygy
*
*/
//购物车
//怎么将购物车重复的商品合并???
//创建一个管理员为商品添加和修改商品信息?
public class Cart {
//创建清单集合--->购物车
public static LinkedList<CartItems> cart = new LinkedList<CartItems>();
//添加商品到购物车(主要处理数量问题)
public boolean addItem(CartItems item) {
//顾客刚才第一次下单数量就过了库存;
if(item.getCount()>item.getP().getStock()){
System.out.println("对不起,您需要的数量太多,现有的数量是:"+item.getP().getStock()+",请重新下单或者请求管理员增加商品数量!");
return true;
}
//顾客下单中下次下同一商品时,数量总和超过了库存;
for(CartItems a : cart){
if(item.getP().getPname().equals(a.getP().getPname())){
int sum = a.getCount()+item.getCount() ;
if(sum > a.getP().getStock()){
System.out.println("对不起,您需要的仅剩:"+(a.getP().getStock()-a.getCount())+",请重新下单或者请求管理员增加商品数量!");
return true;
}else{
a.setCount(sum);
return true;
}
}
}
cart.add(item);
return true;
}
//计算总价格;
public double getTotalCost() {
double sum = 0.0;
for(CartItems a :cart){
sum += a.getCost();
}
return sum;
}
//显示清单;
public void showDetail() {
System.out.println("===购物车清单===");
System.out.println("编号t名称tt单价t数量");
for(CartItems a :cart){
Product p = a.getP();
System.out.println(p.getPid()+"t"+p.getPname()+"tt"+p.getPprice()+"t"+a.getCount());
}
System.out.println("=============");
}
}
package com.emp.shopping.cart;
import com.emp.product.message.Product;
/**
* 清单模块:
* 购买车每一个商品明细类(商品对象,购买数量,费用)
* @author ygy
*
*/
public class CartItems {
private Product p;
private int count;
private double cost; //商品单价*购买数量
public Product getP() {
return p;
}
public double getCost() {
return this.cost;
}
public void setCost(double cost) {
this.cost = cost;
}
public CartItems(Product p, int count) {
super();
this.p = p;
this.count = count;
this.cost=p.getPprice()*count; //cost要计算;
}
public CartItems() {
// TODO Auto-generated constructor stub
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
this.cost=p.getPprice()*this.count;
}
}
作者:yuanguiyu2017
2017.7.23
最后
以上就是善良悟空为你收集整理的java购物车系统-yuanguiyu2017的全部内容,希望文章能够帮你解决java购物车系统-yuanguiyu2017所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复