package com.shop.ui;
import com.shop.entity.Book;
import com.shop.entity.Phone;
import com.shop.entity.Product;
import com.shop.entity.User;
import com.shop.service.CartService;
import com.shop.service.ProductService;
import com.shop.service.UserService;
import com.shop.util.ValidationUtil;
import java.util.InputMismatchException;
import java.util.Scanner;
public class ConsoleUI {
private static final Scanner scanner = new Scanner(System.in);
private static User loggedInUser;
private static ProductService productService = new ProductService();
private static UserService userService = new UserService();
private static CartService cartService = new CartService();
public static void main(String[] args) {
showWelcomeMessage();
while (true) {
if (loggedInUser == null) {
showLoginMenu();
} else {
showUserMenu();
}
}
}
private static void showWelcomeMessage() {
System.out.println("欢迎来到商城系统!");
}
private static void showLoginMenu() {
System.out.println("1. 登录");
System.out.println("2. 注册");
System.out.println("3. 退出");
int choice = getInput();
switch (choice) {
case 1:
login();
break;
case 2:
register();
break;
case 3:
System.exit(0);
default:
System.out.println("无效选择,请重新输入。");
}
}
private static void showUserMenu() {
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.println("7. 退出登录");
System.out.println("8. 购买商品");
System.out.println("9. 添加到购物车");
int choice = getInput();
switch (choice) {
case 1:
browseProducts();
break;
case 2:
searchProducts();
break;
case 3:
viewCart();
break;
case 4:
checkout();
break;
case 5:
changePassword();
break;
case 6:
addAddress();
break;
case 7:
loggedInUser = null;
System.out.println("已退出登录。");
break;
case 8:
purchase();
break;
case 9:
addToCart();
break;
default:
System.out.println("无效选择,请重新输入。");
}
}
private static void login() {
System.out.println("请输入用户名:");
String username = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
if (userService.login(username, password)) {
loggedInUser = userService.getUserByUsername(username);
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误。");
}
}
private static void register() {
System.out.println("请输入用户名:");
String username = scanner.nextLine();
while (!ValidationUtil.isValidUsername(username)) {
System.out.println("用户名不符合规则,请重新输入。");
username = scanner.nextLine();
}
System.out.println("请输入密码:");
String password = scanner.nextLine();
while (!ValidationUtil.isValidPassword(password)) {
System.out.println("密码不符合规则,请重新输入。");
password = scanner.nextLine();
}
User newUser = new User(generateUserId(), username, password);
if (userService.register(newUser)) {
System.out.println("注册成功!");
} else {
System.out.println("注册失败。");
}
}
private static int generateUserId() {
return userService.getUserList().size() + 1;
}
private static void browseProducts() {
System.out.println("商品列表:");
for (Product product : productService.getAllProducts()) {
if (product instanceof Book) {
Book book = (Book) product;
System.out.println("书籍:" + book.getName() + ",作者:" + book.getAuthor() + ",价格:" + book.getPrice());
} else if (product instanceof Phone) {
Phone phone = (Phone) product;
System.out.println("手机:" + phone.getName() + ",品牌:" + phone.getBrand() + ",价格:" + phone.getPrice());
}
}
}
private static void searchProducts() {
System.out.println("请输入搜索关键词:");
String keyword = scanner.nextLine();
System.out.println("搜索结果:");
for (Product product : productService.getAllProducts()) {
if (product.getName().contains(keyword)) {
if (product instanceof Book) {
Book book = (Book) product;
System.out.println("书籍:" + book.getName() + ",作者:" + book.getAuthor() + ",价格:" + book.getPrice());
} else if (product instanceof Phone) {
Phone phone = (Phone) product;
System.out.println("手机:" + phone.getName() + ",品牌:" + phone.getBrand() + ",价格:" + phone.getPrice());
}
}
}
}
private static void viewCart() {
System.out.println("购物车:");
for (Product product : cartService.getCartItems()) {
if (product instanceof Book) {
Book book = (Book) product;
System.out.println("书籍:" + book.getName() + ",作者:" + book.getAuthor() + ",价格:" + book.getPrice());
} else if (product instanceof Phone) {
Phone phone = (Phone) product;
System.out.println("手机:" + phone.getName() + ",品牌:" + phone.getBrand() + ",价格:" + phone.getPrice());
}
}
System.out.println("总价:" + cartService.calculateTotal());
}
private static void addToCart() {
System.out.println("请输入要添加到购物车的商品 ID:");
int productId = getInput();
Product product = productService.getProductById(productId);
if (product!= null) {
cartService.addToCart(product);
System.out.println("商品已添加到购物车。");
} else {
System.out.println("商品不存在。");
}
}
private static void checkout() {
double total = cartService.calculateTotal();
System.out.println("购物车总价:" + total);
System.out.println("确认结账吗?(Y/N)");
String choice = scanner.nextLine();
if (choice.equalsIgnoreCase("Y")) {
System.out.println("购买成功!");
cartService.clearCart();
} else {
System.out.println("结账取消。");
}
}
private static void purchase() {
double total = cartService.calculateTotal();
System.out.println("购物车总价:" + total);
System.out.println("确认购买吗?(Y/N)");
String choice = scanner.nextLine
java购物车系统学生实验
需积分: 0 188 浏览量
更新于2024-10-20
收藏 23KB ZIP 举报
在当今信息化快速发展的时代,编程教学已经成为了高校计算机教育不可或缺的一部分。Java作为一门广泛使用的编程语言,在教学中占据着重要的地位。购物车系统是电子商务网站中不可或缺的一个组成部分,因此,通过实现一个Java购物车系统,可以让学生更深入地理解Java编程语言的应用以及网络编程的基本概念。
在进行Java购物车系统的学生实验时,学生将有机会接触到多个编程知识点,包括但不限于面向对象编程、集合框架的使用、事件驱动编程以及网络编程基础。此外,学生还将学习到如何在Java环境中搭建开发环境,编写和调试代码,并且了解如何将Java Web技术与数据库技术相结合,从而实现一个完整的系统。
具体来说,学生在实验过程中会学习到如何设计用户界面,如何处理用户输入,以及如何响应用户操作。例如,添加商品到购物车、修改商品数量、删除购物车中的商品以及计算购物车中所有商品的总价等操作都需要通过编程来实现。这些操作的实现将涉及到Java的图形用户界面(GUI)编程,这通常使用Swing或JavaFX框架来完成。
在实现购物车的业务逻辑方面,学生需要掌握Java的基本语法和面向对象的概念,如类与对象、继承、多态和封装等。此外,学生还需要了解如何使用Java的集合类,比如ArrayList和HashMap等来存储和管理购物车中的商品信息。这不仅锻炼了学生的编程能力,还加深了他们对数据结构的理解。
在网络编程方面,学生将接触到Java的Socket编程,学习如何创建客户端和服务器端的交互。这将有助于学生理解HTTP协议的基本工作原理,并掌握如何通过网络进行数据的发送和接收。在购物车系统的上下文中,网络编程通常用于实现与远程服务器的数据交换,比如从服务器获取商品信息,或更新购物车状态到服务器等。
此外,学生在实验中还将接触到数据库技术。购物车系统通常需要将用户的购物信息存储在数据库中,因此,学生需要学习如何使用JDBC连接数据库,执行SQL查询和更新操作。这将帮助学生了解后端存储的实现,并且增强他们对数据库操作和数据持久化的认识。
通过Java购物车系统的学生实验,学生可以综合运用所学的编程知识,解决实际问题,并加深对Java编程语言、网络编程、数据库技术的理解。这对于提升学生的实践能力和编程思维具有重要的意义。

网安2313202321336074
- 粉丝: 78
最新资源
- 海康网络监控方案(可编辑修改word版).docx
- 物联网系统课程设计.doc
- 基于51单片机的超声波测距仪之倒车雷达作品设计毕业论文.doc
- 知之为知之不知为不知MicrosoftPowerPoint演示文稿.ppt
- 系统安全评价.pptx
- litemall-移动应用开发资源
- 基于sas软件以北大光华管理学院教学评估为例.pptx
- 中远集团电子商务发展战略.pptx
- 51单片机-单片机开发资源
- 企业信息化的规划与实施.doc
- 网络的安全教育主题班会国旗下讲话发言建议书.docx
- 广州市财政局计算机网络设备采购工程技术规范书.doc
- 如何撰写有吸引力的网络推广文案.docx
- 算法初步程序框图与算法的基本逻辑结构.pptx
- 物联网产业发展规划纲要.docx
- 微型计算机控制技术试卷.doc