我这里是用数组实现了一个能够购买商品的一串代码,没有去重。
import javax.crypto.spec.PSource;
import java.util.Arrays;
import java.util.Scanner;
public class Test01 {
Scanner in = new Scanner(System.in);
//购买完商品后返回上一层的定位
int choose = -1 ;
//日用品数组
String [] rypName = {"香皂","洗发水","洗脸盆"};
int [] rypPrice ={10,20,30};
//食品数组
String [] foodName = {"薯片","可口可乐","李小鹏"};
int [] foodPrice ={10,3,2};
//调味品数组
String [] condimentName = {"十三香","老陈醋","酱油"};
int [] condimentPrice ={11,50,23};
//购物车数组
String [] shoppingName = {};
int [] shoppingPrice = {};
int [] shoppingNumber = {};
//中间数组
String [] middleName = null;
int [] middlejPrice = null;
//主菜单方法
public void MainMenu(){
System.out.println("-----------欢迎使用商城购物系统-----------");
System.out.println("请选择您要进入的(请输入1~6进入不同的区域)");
System.out.println("1:日用品 2:食品 3:调味品 4:查看购物车 5:付款 6:放弃购买");
choose = in.nextInt();
CenterControl(choose);
}
//中控
public void CenterControl(int choose){
switch (choose){
case 1:
case 2:
case 3:
Shopping(choose);
break;
case 4:
ViewCart();
break;
case 5:
Payment();
break;
case 6:
System.out.println("放弃购买!欢迎下次光临!");
System.exit(0);
default:
System.out.println("输入错误,请重新输入");
MainMenu();
}
}
//购物界面
public void Shopping(int choose){
if (choose == 1){
//将日用品数组赋值给中间数组
middleName = rypName;
middlejPrice = rypPrice;
} else if (choose == 2) {
//将食物数组赋值给中间数组
middleName = foodName;
middlejPrice = foodPrice;
}else {
//将调味品数组赋值给中间数组
middleName = condimentName;
middlejPrice = condimentPrice;
}
System.out.print("请选择购买的商品:");
//将数组中的数据遍历展示出来
for (int i = 0 ; i < middleName.length ; i++){
System.out.print( (i+1) + middleName[i] + " " + middlejPrice[i]+ "元 ");
}
System.out.println("");
GoShopping();
}
//加入购物车
public void GoShopping(){
int goshoppingchoose = in.nextInt();
//判断用户的选择是否超出商品的选项
if (goshoppingchoose > middleName.length && goshoppingchoose < 1){
System.out.println("输入错误,请重新输入");
Shopping(choose);
}
System.out.println("请输入数量");
int goshoppingNumber = in.nextInt();
//判断客户输入的数量是否正常
if (goshoppingNumber < 1){
System.out.println("输入错误,请重新输入");
goshoppingNumber = in.nextInt();
}
//数组扩容
String[] newshoppingName = Arrays.copyOf(shoppingName, shoppingName.length + 1);
int[] newshoppingPrice = Arrays.copyOf(shoppingPrice, shoppingPrice.length + 1);
int[] newshoppingNumber = Arrays.copyOf(shoppingNumber, shoppingNumber.length + 1);
//往扩容后的新数组里添加数据
newshoppingName [newshoppingName.length-1] = middleName[goshoppingchoose - 1];
newshoppingPrice [newshoppingPrice.length-1] = middlejPrice [goshoppingchoose - 1];
newshoppingNumber [newshoppingNumber.length-1] = goshoppingNumber;
//将扩容后的数组赋值给旧的数组
shoppingName = newshoppingName;
shoppingPrice = newshoppingPrice;
shoppingNumber = newshoppingNumber;
//显示加入购物车的商品及数量
System.out.println(goshoppingNumber + "个" + middleName[goshoppingchoose - 1] + "成功加入购物车");
System.out.println("购物完毕输入1返回主菜单,输入2返回上一层,输入0结束购物并付款");
SecondCenterControl();
}
//第二次中控
public void SecondCenterControl(){
int choose1 = in.nextInt();
switch (choose1){
case 1:
MainMenu();
break;
case 2:
Shopping(choose);
break;
case 0:
Payment();
break;
default:
System.out.println("输入错误,请重新输入");
SecondCenterControl();
}
}
//查看购物车
public void ViewCart(){
//判断购物车里是否有商品
if (shoppingName.length == 0){
System.out.println("您还未购买商品,请先购买商品");
MainMenu();
}
System.out.println("已购买:");
//将数组中的数据遍历展示出来
for (int i = 0; i < shoppingName.length; i++) {
System.out.println(shoppingNumber[i] + "个" + shoppingName[i] + "单价为" + shoppingPrice[i] + "元");
}
MainMenu();
}
//付款
public void Payment(){
//总价格
int TotalPrice = 0 ;
//客户付款金额
int payment = 0 ;
//判断购物车是否有商品
if (shoppingName.length == 0){
System.out.println("您还未购买商品,请先购买商品");
MainMenu();
}
System.out.println("已购买:");
//将数组中的数据遍历展示出来
for (int i = 0; i < shoppingName.length; i++) {
System.out.println(shoppingNumber[i] + "个" + shoppingName[i] + "单价为" + shoppingPrice[i] + "元");
TotalPrice += shoppingPrice[i] * shoppingPrice[i];
}
System.out.println("总价格为" + TotalPrice + "元,已付款"+ payment +"元");
System.out.println("请付款:");
payment += in.nextInt();
if (payment < 1){
System.out.println("警报响起,防盗门关闭");
System.exit(0);
}
//用户付款金额不够,请继续付款多少元
while (payment < TotalPrice){
System.out.println("总价格为" + TotalPrice + "元,已付款"+payment+"元,还差"+(TotalPrice-payment)+"元");
payment += in.nextInt();
}
System.out.println("支付成功,找零"+(payment-TotalPrice) + "元");
System.out.println("欢迎下次光临!");
System.exit(0);
}
}
// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.
public class Main {
public static void main(String[] args) {
Test01 test01 = new Test01();
test01.MainMenu();
}
}