Java基础写一个项目

我这里是用数组实现了一个能够购买商品的一串代码,没有去重。

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();
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值