Java项目:控制台商城系统(java+打印控制台)

源码获取:博客首页 "资源" 里下载!

功能简介:

客户信息管理、商品信息管理、购物信息管理、退出系统

 

显示系统主菜单:

public class SystemMenu {
	//显示系统主菜单
	public void showMainMenu(){
		System.out.println("\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("*                                                       *");
		System.out.println("*               欢迎使用迷你青春购物系统                  	                *");
		System.out.println("*                                                       *");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		
		System.out.println("1.客户信息管理\n");
		System.out.println("2.商品信息管理\n");
		System.out.println("3.购物信息管理\n");
		System.out.println("4.退出系统\n");

		boolean flag;
		do{
			System.out.println("\n请选择功能(1-4):");
			Scanner sc = new Scanner(System.in);
			int fun = sc.nextInt();
			
			flag = false;
			switch(fun){
				case 1:
					showCustomerMenu();
					break;
				case 2:
					showProductMenu();
					break;
				case 3:
					buyProductMenu();
					break;
				case 4:
					System.out.println("您已安全退出!欢迎下次使用本系统....");
					System.exit(0);
					break;
				default:
					System.out.println("请选择相应的功能,在1-4之间选择。");
					flag = true;
			}
		}while(flag);
	}
	
	//显示客户管理菜单
	public void showCustomerMenu(){
		System.out.println("\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("迷你青春购物系统 >> 客户信息管理");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		System.out.println("1.显示所有客户信息\n");
		System.out.println("2.添加客户信息\n");
		System.out.println("3.修改客户信息\n");
		System.out.println("4.删除客户信息\n");
		System.out.println("5.返回上一级菜单\n");
		System.out.println();
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请选择功能(1-5):");
		int fun = sc.nextInt();
		CustomerManager cm = new CustomerManager();
		
		switch(fun){
			case 1:
				cm.showAllCustomerInfo();
				break;
			case 2:
				cm.addCustomer();
				break;
			case 3:
				cm.updateCustomer();
				break;
			case 4:
				cm.deleteCustomer();
				break;
			case 5:
				showMainMenu();
				break;
			default:
				System.out.println("请选择相应的功能,在1-5之间选择。");
		}
	}
	
	/*
	 * 显示商品管理菜单
	 */
	public void showProductMenu(){
		System.out.println("\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("迷你青春购物系统 >> 商品信息管理");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		System.out.println("1.显示所有商品信息\n");
		System.out.println("2.添加商品信息\n");
		System.out.println("3.修改商品信息\n");
		System.out.println("4.删除商品信息\n");
		System.out.println("5.返回上一级菜单\n");
		System.out.println();
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请选择功能(1-5):");
		int fun = sc.nextInt();
		ProductManager pm = new ProductManager();
		
		switch(fun){
			case 1:
				pm.showAllProductInfo();
				break;
			case 2:
				pm.addProduct();
				break;
			case 3:
				pm.updateProduct();
				break;
			case 4:
				pm.deleteProduct();
				break;
			case 5:
				showMainMenu();
				break;
			default:
				System.out.println("请选择相应的功能,在1-5之间选择。");
		}
	}
	
	/*
	 * 显示购物管理菜单
	 */
	public void buyProductMenu(){
		System.out.println("\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("迷你青春购物系统 >> 购物信息管理");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		System.out.println("1.购买商品\n");
		System.out.println("2.优惠活动\n");
		System.out.println("3.幸运抽奖\n");
		System.out.println("4.返回上一级菜单\n");
		System.out.println();
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请选择功能(1-4):");
		int fun = sc.nextInt();
		BuyManager bm = new BuyManager();
		
		switch(fun){
			case 1:
				bm.buyProduct();
				break;
			case 2:
				bm.buyCheapenProduct();
				break;
			case 3:
				bm.luckLottery();
				break;
			case 4:
				showMainMenu();
				break;
			default:
				System.out.println("请选择相应的功能,在1-4之间选择。");
		}
	}
}

购买商品:

public class BuyManager {

	/*
	 * 购买商品
	 */
	public void buyProduct(){
		System.out.println("\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("迷你青春购物系统 >> 购物信息管理 >> 购买商品");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		
		int [] productId; //用于存储商品的编号
		String [] productName;//用于存储商品的名称
		float [] price;//用于存储商品的价格
		int [] number;//用于存储商品的现有数量
		
		//显示所有商品
		ProductDAO productDao = new ProductDAO();
		ArrayList<ProductManager> lst = productDao.select();
		//判断是否还有商品
		if(lst.size() == 0){
			System.out.println("商品已全部售完,请下次再来。");
			returnBuyProductFirstMenu();//调用返回上一级菜单方法
			return;
		}
		
		//初始化数组大小,数组的长度与查出的信息记录数相等
		productId = new int[lst.size()];
		productName = new String[lst.size()];
		price = new float[lst.size()];
		number = new int[lst.size()];
		
		System.out.println("商品编号\t\t商品名称\t\t价格\t\t数量\t");
		System.out.println("----------|--------------|--------------|--------------\n");
		
		for(int i=0;i<lst.size();i++){
			ProductManager pm = lst.get(i);
			System.out.println(pm.getProductId()+"\t\t"+pm.getProductName()+"\t\t¥"+pm.getPrice()+"\t\t"+pm.getNumber());
			productId[i] = pm.getProductId();//将所有商品的编号存入数组中
			productName[i] = pm.getProductName();//将所有商品的名称存入数组中
			price[i] = pm.getPrice();//将所有商品的价格存入数组中
			number[i] = pm.getNumber();//将所有商品的现有数量存入数组中
		}

		Scanner sc = new Scanner(System.in);
		String answer="";
		int id = 0;//购买商品的编号
		int num = 0;//购买的数量
		
		ArrayList<ProductManager> buyList = new ArrayList<ProductManager>();//购买的商品列表
		do{
			System.out.println("\n请选择购买的商品编号:");
			id = sc.nextInt();
			
			//查找输入的商品编号是否存在
			boolean flag = false;
			int index = 0;//该商品的下标
			for(int j=0;j<productId.length;j++){
				//如果商品编号存在,就停止循环
				if(productId[j] == id){
					flag = true;
					index = j;
					break;
				}
			}
			//如果商品编号存在,才能添加商品
			if(flag){
				do{	
					System.out.println("请输入购买的数量:");
					num = sc.nextInt();
					//判断输入的数量是否大于商品现存的数量
					if(num > number[index]){
						System.out.println("\n该商品数量已不足!请重新输入数量!");
					}else if(num<=0){
						System.out.println("商品数量必须大于0!");
					}else{
						System.out.println("\n本次消费单信息如下:");
						float sum = price[index] * num;//每个商品的总金额=价格*数量
						System.out.println(productName[index]+"\t\t¥"+price[index]+"\t\t¥"+sum);
						
						ProductManager pm = new ProductManager();
						pm.setProductName(productName[index]);
						pm.setPrice(price[index]);
						pm.setNumber(num);
						
						buyList.add(pm);
					}
					System.out.println("\n是否继续输入购买数量(y/n):");
					answer =sc.next().trim();
				}while(answer.equals("y") || answer.equals("Y"));
			}else{
				System.out.println("\n您选择的商品不存在!请选择正确的商品编号!");
			}
			
			System.out.println("\n是否继续选择购买的商品编号(y/n):");
			answer =sc.next().trim();
		}while(answer.equals("y") || answer.equals("Y"));
		
		//是否购买了商品
		if(buyList.size()>0){
			System.out.println("\n* * * * * * * * * * * 购买商品消费单 * * * * * * * * * * *\n");
			float allMoney = 0;//所有消费金额
			System.out.println("购买商品\t\t单价\t\t数量\t\t金额");
			for(int i=0;i<buyList.size();i++){
				ProductManager pm = buyList.get(i);
				System.out.println(pm.getProductName()+"\t\t¥"+pm.getPrice()+"\t\t"+pm.getNumber()+"\t\t¥"+pm.getPrice()*pm.getNumber());
				allMoney += pm.getPrice()*pm.getNumber();//累加
			}
			System.out.println("\n金额总计:"+allMoney);
			
			System.out.println("\n填写支付信息:");
			//将消费信息更新到数据库
			System.out.println("请输入会员号:");
			String customerNo = sc.next().trim();
			System.out.println("请输入密码:");
			String customerPwd = sc.next().trim();
			
			int score = calScore(allMoney);//得到本次消费的积分
			CustomerDAO customerDao = new CustomerDAO();
			
			//根据会员号和密码查询客户信息,查看余额是否足够
			CustomerManager customer = customerDao.selectByCustomerNoPwd(customerNo, customerPwd);
			if(customer.getBalance() > allMoney){//如果余额足够,才能进行购物
				if(customerDao.calBuyProduct(customerNo, customerPwd, allMoney, score, num, id)){
					System.out.println("\n购物成功!本次购物所获得的积分是:"+score);
				}else{
					System.out.println("\n购买商品失败!");
				}
			}else{
				System.out.println("\n对不起!您的余额不足。");
			}
		}
		returnBuyProductFirstMenu();//调用返回上一级菜单方法
	}
	
	/*
	 * 优惠活动,当购物超过一定的金额时,给予优惠。
	 */
	public void buyCheapenProduct(){
		System.out.println("\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("迷你青春购物系统 >> 购物信息管理 >> 优惠活动");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		
		int [] productId; //用于存储商品的编号
		String [] productName;//用于存储商品的名称
		float [] price;//用于存储商品的价格
		int [] number;//用于存储商品的现有数量
		
		//显示所有商品
		ProductDAO productDao = new ProductDAO();
		ArrayList<ProductManager> lst = productDao.select();
		//判断是否还有商品
		if(lst.size() == 0){
			System.out.println("商品已全部售完,请下次再来。");
			returnBuyProductFirstMenu();//调用返回上一级菜单方法
			return;
		}
		
		//初始化数组大小,数组的长度与查出的信息记录数相等
		productId = new int[lst.size()];
		productName = new String[lst.size()];
		price = new float[lst.size()];
		number = new int[lst.size()];
		
		System.out.println("商品编号\t\t商品名称\t\t价格\t\t数量\t");
		System.out.println("----------|--------------|--------------|--------------\n");
		
		for(int i=0;i<lst.size();i++){
			ProductManager pm = lst.get(i);
			System.out.println(pm.getProductId()+"\t\t"+pm.getProductName()+"\t\t¥"+pm.getPrice()+"\t\t"+pm.getNumber());
			productId[i] = pm.getProductId();//将所有商品的编号存入数组中
			productName[i] = pm.getProductName();//将所有商品的名称存入数组中
			price[i] = pm.getPrice();//将所有商品的价格存入数组中
			number[i] = pm.getNumber();//将所有商品的现有数量存入数组中
		}

		Scanner sc = new Scanner(System.in);
		String answer="";
		int id = 0;//购买商品的编号
		int num = 0;//购买的数量
		
		ArrayList<ProductManager> buyList = new ArrayList<ProductManager>();//购买的商品列表
		
		do{
			System.out.println("\n请选择购买的商品编号:");
			id = sc.nextInt();
			
			//查找输入的商品编号是否存在
			boolean flag = false;
			int index = 0;//该商品的下标
			for(int j=0;j<productId.length;j++){
				//如果商品编号存在,就停止循环
				if(productId[j] == id){
					flag = true;
					index = j;
					break;
				}
			}
			//如果商品编号存在,才能添加商品
			if(flag){
				do{	
					System.out.println("请输入购买的数量:");
					num = sc.nextInt();
					//判断输入的数量是否大于商品现存的数量
					if(num > number[index]){
						System.out.println("\n该商品数量已不足!请重新输入数量!");
					}else if(num<=0){
						System.out.println("商品数量必须大于0!");
					}else{
						System.out.println("\n本次消费单信息如下:");
						float sum = price[index] * num;//每个商品的总金额=价格*数量
						System.out.println(productName[index]+"\t\t¥"+price[index]+"\t\t¥"+sum);
						
						ProductManager pm = new ProductManager();
						pm.setProductName(productName[index]);
						pm.setPrice(price[index]);
						pm.setNumber(number[index]);
						
						buyList.add(pm);
					}
					System.out.println("\n是否继续输入购买数量(y/n):");
					answer =sc.next().trim();
				}while(answer.equals("y") || answer.equals("Y"));
			}else{
				System.out.println("\n您选择的商品不存在!请选择正确的商品编号!");
			}
			
			System.out.println("\n是否继续选择购买的商品编号(y/n):");
			answer =sc.next().trim();
		}while(answer.equals("y") || answer.equals("Y"));
		
		//是否购买了商品
		if(buyList.size()>0){
			System.out.println("\n* * * * * * * * * * * 购买商品消费单 * * * * * * * * * * *\n");
			float allMoney = 0;//所有消费金额
			System.out.println("购买商品\t\t单价\t\t数量\t\t金额");
			for(int i=0;i<buyList.size();i++){
				ProductManager pm = buyList.get(i);
				System.out.println(pm.getProductName()+"\t\t¥"+pm.getPrice()+"\t\t"+pm.getNumber()+"\t\t¥"+pm.getPrice()*pm.getNumber());
				allMoney += pm.getPrice()*pm.getNumber();//累加
			}
			
			int score = calScore(allMoney);//得到本次消费的积分
			
			allMoney = calMoney(allMoney); //进行打折后的总金额
			System.out.println("\n金额总计:"+allMoney);
			
			System.out.println("\n填写支付信息:");
			//将消费信息更新到数据库
			System.out.println("请输入会员号:");
			String customerNo = sc.next().trim();
			System.out.println("请输入密码:");
			String customerPwd = sc.next().trim();
			
			CustomerDAO customerDao = new CustomerDAO();
			//根据会员号和密码查询客户信息,查看余额是否足够
			CustomerManager customer = customerDao.selectByCustomerNoPwd(customerNo, customerPwd);
			if(customer.getBalance() > allMoney){//如果余额足够,才能进行购物
				if(customerDao.calBuyProduct(customerNo, customerPwd, allMoney, score, num, id)){
					System.out.println("\n购物成功!本次购物所获得的积分是:"+score);
				}else{
					System.out.println("\n购买商品失败!");
				}
			}else{
				System.out.println("\n对不起!您的余额不足。");
			}
		}
		returnBuyProductFirstMenu();//调用返回上一级菜单方法
	}
	
	/*
	 * 幸运抽奖,只有当积分超过一定的分数时,才能进行抽奖。
	 */
	public void luckLottery(){
		System.out.println("\n* * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("迷你青春购物系统 >> 购物信息管理 >> 幸运抽奖");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入积分:");
		int score = sc.nextInt();
		//当积分大于500时,才能进行抽奖
		if(score > 500){
			System.out.println("\n请输入抽奖信息:");
			System.out.println("\n请输入会员号:");
			int customerNo = sc.nextInt();

			int qianwei = customerNo / 1000;//分解出千位数字
			int baiwei = customerNo % 1000 /100;//分解出百位数字
			int shiwei = customerNo % 100 /10;//分解出十位数字
			int gewei = customerNo % 10;//分解出个位数字
			int sum = qianwei + baiwei + shiwei + gewei;
			
			Random rd = new Random();
			int random = rd.nextInt(36)+1;//产生一个1到36之间的数
			//当随机产生的数字与会员号分解的各位数字的和相等时,即为中奖客户
			if(sum == random){
				System.out.println("\n恭喜!会员号为 "+customerNo+" 的幸运客户,获得精美MP4一个!");
			}else{
				System.out.println("\n会员号为 "+customerNo+" 的客户,感谢您的支持!");
			}
		}else{
			System.out.println("\n您的积分不足,不能进行抽奖!");
		}
		returnBuyProductFirstMenu();//调用返回上一级菜单方法
	}
	
	/*
	 * 计算会员积分
	 */
	public int calScore(float sum){
		int score = 0;
		if(0<sum && sum<=50){
			score = 2;
		}else if(50<sum && sum<=100){
			score = 5;
		}else if(100<sum && sum<=500){
			score = 7;
		}else if(500<sum && sum<=1000){
			score = 10;
		}else{
			score = 12;
		}
		return score;
	}
	
	/*
	 * 根据购买金额打折
	 */
	public float calMoney(float allMoney){
		float cutMoney = 0;
		if(0<allMoney && allMoney<=150){
			cutMoney = allMoney * 0.95f;//打0.95折
			System.out.println("\n该会员享受的折扣是:0.95折");
		}else if(150<allMoney && allMoney<=200){
			cutMoney = allMoney * 0.9f;//打0.9折
			System.out.println("\n该会员享受的折扣是:0.9折");
		}else if(200<allMoney && allMoney<=300){
			cutMoney = allMoney * 0.8f;//打0.8折
			System.out.println("\n该会员享受的折扣是:0.8折");
		}else if(300<allMoney && allMoney<=500){
			cutMoney = allMoney * 0.7f;//打0.7折
			System.out.println("\n该会员享受的折扣是:0.7折");
		}else{
			cutMoney = allMoney * 0.65f;//打0.7折
			System.out.println("\n该会员享受的折扣是:0.65折");
		}
		return cutMoney;
	}
	
	/*
	 * 返回上一级菜单
	 */
	public void returnBuyProductFirstMenu(){
		Scanner sc = new Scanner(System.in);
		System.out.println("\n按任意键返回上一级菜单:");
		sc.next();
		SystemMenu sm = new SystemMenu();
		sm.buyProductMenu();//返回上一级菜单
	}
}

源码获取:博客首页 "资源" 里下载!

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyondwild

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值