JavaSE综合练习之大数据手机商城

Posted ChinaManor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE综合练习之大数据手机商城相关的知识,希望对你有一定的参考价值。

前言

大家好,我是ChinaManor,直译过来就是中国码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。

下面是本码农在学习Java基础做的练习题,发出来希望给各位萌新学java有所帮助

需要用到的Jar包
链接:https://pan.baidu.com/s/1Y4CT_ePPKc2lDdh_ylMCew
提取码:didj

手机商城

​ 题干:

​ 根据指定要求,完成手机商城以下功能:

​ 登录、商品列表查询、商品详情、展示购物车商品、访问足迹、添加到购物车、立即购买

一、 登录

​ 题干:

​ 完成【登录】功能:

​ 用户输入用户名和密码完成登录功能

​ 注:用户名和密码在初始化数据中(init方法)已给出

​ 要求:

  1.    用户输入用户名、密码正确,提示亲爱的xxx,您已登录成功,请开心购物!!!     
    
  2.    用户输入用户名、密码错误,提示登录失败,请重新登录!!!     
    
  3.    用户是否为登录状态,都可以直接访问以下功能:     
    

a. 商品列表查询、商品详情、展示购物车商品、访问足迹、添加到购物车

​ 注:用户只有在登录状态下,才可以访问 付款功能 !!!

img

二、 商品列表查询

​ 题干:

​ 完成【商品列表查询】功能:

​ 要求:

  1.    效果图如下图所示:     
    

img

三、 商品详情

​ 题干:

​ 完成【商品详情】功能:

​ 要求:

  1.    效果图如下图所示:     
    

img

四、 添加到购物车

​ 题干:

​ 完成【添加到购物车】功能:

​ 要求:

  1.    输入错误的货物编号、商品数量,提示:添加失败     
    
  2.    输入正确的货物编号、商品数量,提示:添加到购物车成功!     
    

img

img

五、 立即购买

​ 题干:

​ 完成【立即购买】功能:

​ 要求:

  1.    未登录状态下,点击付款功能,提示:您还没有登录,请登录...     
    
  2.    输入正确的货物编号、购买数量、显示购买清单     
    
  3.    付款成功后,在此查询对应的货物列表,其库存数量减少(现有库存数量=原有库存数量-购买数量),如下图3     
    
  4.    付款成功后,把购买记录(购买人、购买货物名称、购买数量、购买商品总金额)写入orders.txt文件中,如下图4     
    

a. 若orders.txt文件不存在,创建该文件

b. 若存储多个购买记录,换行存储(一行一条购买记录)

img

img

img

img

六、 展示购物车商品

​ 题干:

​ 完成【展示购物车商品】功能:

​ 要求:

  1.    当购物车中没有商品时,提示:购物车中暂时还没有商品哟,请前往商品首页购物!!!     
    
  2.    当购物车中不为空时,显示购物列表     
    

img

img

七、 访问足迹

​ 题干:

​ 完成【访问足迹】功能:

​ 要求:

  1.    在没有访问商品时,提示:您还没有访问任何商品哟!     
    
  2.    在访问商品详情后,访问足迹显示访问商品列表,如图2 图3     
    

img

img

img

参考代码:

Shop.java

package 每日作业17;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Created by dingw on 2019/11/17.
 */
public class Shop {
    //品牌集合
    static List<Brand> brandList = new ArrayList<>();
    //用户
    static ArrayList<User> users = new ArrayList<>();
    //购物车
    static ArrayList<Item> carts = new ArrayList<>();
    //访问足迹
    static List<Goods> goodsList = new ArrayList<>();
    //判断登录的标识
    static boolean flag = false;
    //登录人
    static String loginname = "";

    public static void main(String[] args) throws Exception {
        init();
        System.out.println("=====================================大数据手机商城欢迎您========================================");
        one:
        while (true) {
            System.out.println("==========================================================================================");
            System.out.println("【1】 登录");
            System.out.println("【2】 商品列表查询");
            System.out.println("【3】 商品详情");
            System.out.println("【4】 展示购物车商品");
            System.out.println("【5】 访问足迹");
            System.out.println("【6】 退出");
            System.out.print("请选择[1-6]:");
            System.out.println("请输入你的操作");
            Scanner sc = new Scanner(System.in);
            String x = sc.nextLine();
            switch (x) {
                case "1":
                    login();
                    break;
                case "2":
                    findAll();
                    break;
                case "3":
                    findProductById();
                    two:
                    while (true) {
                        System.out.println("***************************************************************************");
                        System.out.println("【1】 添加到购物车");
                        System.out.println("【2】 立即购买");
                        System.out.println("【3】 退出");
                        System.out.print("请选择[1-3]:");
                        System.out.println("请输入你的操作");
                        Scanner sc1 = new Scanner(System.in);
                        String xs = sc1.nextLine();
                        switch (xs) {
                            case "1":
                                addCart();
                                break;
                            case "2":
                                pay();
                                break;
                            default:
                                break two;
                        }
                    }
                    break;
                case "4":
                    showCart();
                    break;
                case "5":
                    historyVisit();
                    break;
                default:
                    break one;
            }

        }

    }

    /**
     * 展示购物车
     */
    public static void showCart() {
        System.out.println("===================================购物车商品如下============================================");
        if (carts.size() == 0) {
            System.out.println("购物车中暂时还没有商品哟,请前往商品首页购物!!!");
        } else {
            System.out.println("货物编号\\t\\t 货物名称(商品名+颜色)\\t\\t\\t价格\\t\\t\\t\\t\\t颜色\\t\\t购买数量");
            for (Item item : carts) {
                System.out.println(item.getId() + "\\t\\t\\t\\t" + item.getName() + "\\t\\t\\t\\t" + item.getPrice() + "\\t\\t\\t\\t" + item.getColor() + "\\t\\t" + item.getNum());

            }
        }

    }

    /**
     * 结账
     */
    private static void pay() throws Exception {
        if (flag) {
            System.out.println("请输入货物编号:");
            Scanner sc = new Scanner(System.in);
            String num = sc.nextLine();
            System.out.println("请输入购买数量:");
            String kc = sc.nextLine();
            boolean ss = false;
            for (Brand brand : brandList) {
                for (Goods goods : brand.getGoodsList()) {
                    for (Item item : goods.getItemList()) {
                        if (item.getId().equals(num)) {
                            if (item.getNum() < Integer.parseInt(kc)) {
                                flag = true;
                            } else {
                                System.out.println("货物编号\\t\\t 货物名称(商品名+颜色)\\t\\t\\t价格\\t\\t\\t\\t\\t颜色\\t\\t购买数量");
                                System.out.println(item.getId() + "\\t\\t\\t\\t" + item.getName() + "\\t\\t\\t\\t" + item.getPrice() + "\\t\\t\\t\\t" + item.getColor() + "\\t\\t" + kc);
                                System.out.println("=======================================================================");
                                double total = (Math.round(item.getPrice() * 100 * Integer.parseInt(kc))) / 100.0;
                                System.out.println("总计付款:" + total);
                                item.setNum(item.getNum() - Integer.parseInt(kc));
                                FileUtils.write(new File("orders.txt"), loginname + ":" + item.getName() + "," + kc + "," + total + "\\r\\n", true);
                                return;
                            }
                        }

                    }

                }

            }
            System.out.println("货物编号不存在,请重新输入!!!");
            if (ss) {
                System.out.println("库存不足,请重新购买!");
            }


        } else {
            System.out.println("您还没有登录,请登录.....");
            login();
        }
    }

    /**
     * 添加到购物车
     */
    private static void addCart() {
        System.out.println("请输入货物编号:");
        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();
        System.out.println("请输入商品数量:");
        String kc = sc.nextLine();
        for (Brand brand : brandList) {
            for (Goods goods : brand.getGoodsList()) {
                for (Item item : goods.getItemList()) {
                    if(carts.contains(item)){
                        for (Item cart : carts) {
                            if (cart.getName().equals(item.getName())&&(cart.getNum()+Integer.parseInt(kc))<=item.getNum()){
                                cart.setNum(cart.getNum()+Integer.parseInt(kc));
                                System.out.println("添加到购物车成功!");
                                return;
                            }

                        }
                    }
                    if (item.getId().equals(num) && Integer.parseInt(kc) <= item.getNum()) {
                        carts.add(new Item(item.getId(), item.getName(), item.getColor(), item.getPrice(), Integer.parseInt(kc)));
                        System.out.println("添加到购物车成功!");
                        return;
                    }

                }

            }

        }
        System.out.println("添加失败");

    }

    /**
     * 访问足迹
     */
    private static void historyVisit() {
        if (goodsList.size() == 0) {
            System.out.println("您还没有访问任何商品哟!");
        } else {
            System.out.println("商品编号\\t\\t 商品名称\\t\\t\\t\\t商品介绍");
            for (Goods goods : goodsList) {
                System.out.printf(goods.getGid() + "\\t\\t\\t  " + goods.getGname() + "\\t\\t\\t" + goods.getDesc());
                System.out.println();

            }
        }

    }

    /**
     * 商品详情
     */
    private static void findProductById() {
        findAll();
        System.out.println("============================================商品详情========================================");
        System.out.println("请输入您要查询的商品编号:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        System.out.println("货物编号\\t\\t 货物名称(商品名+颜色)\\t\\t\\t价格\\t\\t\\t\\t\\t颜色\\t\\t库存数");
        for (Brand brand : brandList) {
            for (Goods goods : brand.getGoodsList()) {
                if (goods.getGid() == num) {
                    if (!goodsList.contains(goods)){
                        goodsList.add(goods);
                    }

                    for (Item item : goods.getItemList()) {
                        System.out.println(item.getId() + "\\t\\t\\t\\t" + item.getName() + "\\t\\t\\t\\t" + item.getPrice() + "\\t\\t\\t\\t" + item.getColor() + "\\t\\t" + item.getNum());

                    }
                }
            }

        }

    }


    /**
     * 查询所有:商品列表查询
     */
    public static void findAll() {
        System.out.println("=========================================商品列表查询======================================");
        System.out.println("商品编号\\t\\t 商品名称\\t\\t\\t\\t商品介绍");
        for (Brand brand : brandList) {
            for (Goods goods : brand.getGoodsList()) {
                System.out.printf(goods.getGid() + "\\t\\t\\t  " + goods.getGname() + "\\t\\t\\t" + goods.getDesc());
                System.out.println();
            }

        }

    }

    /**
     * 登录
     */
    public static void login() {
        System.out.println("=====================================欢迎使用登录功能======================================

以上是关于JavaSE综合练习之大数据手机商城的主要内容,如果未能解决你的问题,请参考以下文章

《Java从入门到放弃》JavaSE篇:综合练习——单身狗租赁系统(数组版)

第2节 mapreduce深入学习:8手机流量汇总求和

JavaSE学习之注解

大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析

Android学习之网上商城(上)

HTML+CSS大作业:购物商城网页设计与实现——手机主题网站