JavaSE综合练习之大数据手机商城
Posted ChinaManor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE综合练习之大数据手机商城相关的知识,希望对你有一定的参考价值。
前言
大家好,我是ChinaManor,直译过来就是中国码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。
下面是本码农在学习Java基础
做的练习题,发出来希望给各位萌新学java有所帮助
需要用到的Jar包
链接:https://pan.baidu.com/s/1Y4CT_ePPKc2lDdh_ylMCew
提取码:didj
手机商城
题干:
根据指定要求,完成手机商城以下功能:
登录、商品列表查询、商品详情、展示购物车商品、访问足迹、添加到购物车、立即购买
一、 登录
题干:
完成【登录】功能:
用户输入用户名和密码完成登录功能
注:用户名和密码在初始化数据中(init方法)已给出
要求:
-
用户输入用户名、密码正确,提示亲爱的xxx,您已登录成功,请开心购物!!!
-
用户输入用户名、密码错误,提示登录失败,请重新登录!!!
-
用户是否为登录状态,都可以直接访问以下功能:
a. 商品列表查询、商品详情、展示购物车商品、访问足迹、添加到购物车
注:用户只有在登录状态下,才可以访问 付款功能 !!!
二、 商品列表查询
题干:
完成【商品列表查询】功能:
要求:
-
效果图如下图所示:
三、 商品详情
题干:
完成【商品详情】功能:
要求:
-
效果图如下图所示:
四、 添加到购物车
题干:
完成【添加到购物车】功能:
要求:
-
输入错误的货物编号、商品数量,提示:添加失败
-
输入正确的货物编号、商品数量,提示:添加到购物车成功!
五、 立即购买
题干:
完成【立即购买】功能:
要求:
-
未登录状态下,点击付款功能,提示:您还没有登录,请登录...
-
输入正确的货物编号、购买数量、显示购买清单
-
付款成功后,在此查询对应的货物列表,其库存数量减少(现有库存数量=原有库存数量-购买数量),如下图3
-
付款成功后,把购买记录(购买人、购买货物名称、购买数量、购买商品总金额)写入orders.txt文件中,如下图4
a. 若orders.txt文件不存在,创建该文件
b. 若存储多个购买记录,换行存储(一行一条购买记录)
六、 展示购物车商品
题干:
完成【展示购物车商品】功能:
要求:
-
当购物车中没有商品时,提示:购物车中暂时还没有商品哟,请前往商品首页购物!!!
-
当购物车中不为空时,显示购物列表
七、 访问足迹
题干:
完成【访问足迹】功能:
要求:
-
在没有访问商品时,提示:您还没有访问任何商品哟!
-
在访问商品详情后,访问足迹显示访问商品列表,如图2 图3
参考代码:
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篇:综合练习——单身狗租赁系统(数组版)