package cs;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ShoppingCar {
private List<Item> itemList = new ArrayList<>();
public static void main(String[] args) {
System.out.println("本系统由--完颜梁莹,房思勤,丁瑞轩--开发");
String USERNAME = "lisi";//定义用户名
String PASSWORD = "123456";//定义密码
//用户登录
boolean loginSuccess = false;
Scanner scanner = new Scanner(System.in);
do {
System.out.print("Enter username: ");
String username = scanner.next();
System.out.print("Enter password: ");
String password = scanner.next();
if (username.equals(USERNAME) && password.equals(PASSWORD)) {
System.out.println("Login successful!");
loginSuccess = true;
} else {
System.out.println("Login failed. Please try again.");
}
} while (!loginSuccess);
ShoppingCar cart = new ShoppingCar();
cart.loadItemsFromFile("C:\\Users\\86138\\Desktop\\商品信息.txt");
Scanner sc = new Scanner(System.in);
int choice;
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("0. 退出");
choice = scanner.nextInt();
switch (choice) {
case 1:
cart.addItem(scanner);
break;
case 2:
cart.showItems();
break;
case 3:
cart.askAmount(scanner);
break;
case 4:
cart.removeItem(scanner);
break;
case 5:
cart.payout();
break;
case 0:
System.out.println("购物已结束,欢迎下次光临 ");
return;
default:
System.out.println("无效选择,请重新输入。");
break;
}
}
}
// 从指定文件中读取商品信息,并加入到购物车中。
private void loadItemsFromFile(String filename) {
File file = new File(filename);
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String[] parts = scanner.nextLine().split(",");
if (parts.length == 2) {
String name = parts[0].trim();
double price = Double.parseDouble(parts[1].trim());
itemList.add(new Item(name, price));
} else {
System.out.println("商品信息文件格式错误!");
}
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("商品信息文件不存在!");
}
}
//查询购物车
private void showItems() {
if (itemList.isEmpty()) {
System.out.println("购物车为空。");
return;
}
System.out.println("购物车内商品信息如下:");
for (Item item : itemList) {
System.out.printf("%s\t%s\t%d\t%.2f\n", item.getName(), item.getPrice(), item.getAmount(),
item.getPrice() * item.getAmount());
}
System.out.println("购物车总价为:" + calculateTotalPrice() + "元。");
}
// 添加商品
private void addItem(Scanner scanner) {
System.out.print("请输入要添加的商品名称:");
String name = scanner.next();
Item item = findItemByName(name);
if (item != null) {
System.out.print("请输入添加的数量:");
int amount = scanner.nextInt();
item.setAmount(item.getAmount() + amount);
System.out.println("商品已添加到购物车。");
} else {
System.out.println("未找到该商品!");
}
}
//修改商品数量
private void askAmount(Scanner scanner) {
System.out.print("请输入要修改数量的商品名称:");
String name = scanner.next();
Item item = findItemByName(name);
if (item != null) {
System.out.print("请输入修改后的数量:");
int amount = scanner.nextInt();
item.setAmount(amount);
System.out.println("商品数量已修改。");
} else {
System.out.println("未找到该商品!");
}
}
//删除商品
private void removeItem(Scanner scanner) {
System.out.print("请输入要删除的商品名称:");
String name = scanner.next();
Item item = findItemByName(name);
if (item != null) {
itemList.remove(item);
System.out.println("商品已从购物车中删除。");
} else {
System.out.println("未找到该商品!");
}
}
//结账,输出购物小票并清空购物车。
private void payout() {
if (itemList.isEmpty()) {
System.out.println("购物车为空,不能结账。");
return;
}
System.out.println("=========================");
System.out.println("购物小票:");
System.out.printf("%-20s%-10s%-10s%-10s\n", "商品名称", "单价(元)", "数量", "总价(元)");
for (Item item : itemList) {
System.out.printf("%-20s%-10.2f%-10d%-10.2f\n", item.getName(), item.getPrice(), item.getAmount(),
item.getPrice() * item.getAmount());
}
System.out.println("=========================");
System.out.println("购物车总价为:" + calculateTotalPrice() + "元。");
System.out.println("欢迎下次光临!");
itemList.clear();
}
//根据名称查找商品
private Item findItemByName(String name) {
for (Item item : itemList) {
if (item.getName().equals(name)) {
return item;
}
}
return null;//若不存在则返回null
}
//计算购物车总价
private double calculateTotalPrice() {
double totalPrice = 0;
for (Item item : itemList) {
totalPrice += item.getPrice() * item.getAmount();
}
return totalPrice;
}
//定义一个Item类,定义商品的名称,价格,数量
public class Item {
private String name;
private double price;
private int amount;
public Item(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
}
}
shop.zip
需积分: 0 98 浏览量
2023-06-09
16:37:38
上传
评论
收藏 2KB ZIP 举报
2301_78254431
- 粉丝: 0
- 资源: 1