Main.java
package com.example.main;
import java.util.Scanner;
import com.example.tools.Admin;
import com.example.tools.Shopping;
public class Main {
Shopping shopping = new Shopping();
static Main main;
public static void main(String[] args) {
main = new Main();
main.login();
}
public void login(){
Scanner sc = new Scanner(System.in);
do{
System.out.println("请选择登录身份:1.管理员 2.顾客");
int option = sc.nextInt();
if(option == 1){
Admin admin = new Admin();
admin.login();
}else if(option == 2){
main.welcome();
}
System.out.println("是否继续操作?1 是 2 否");
option = sc.nextInt();
if(option == 1){
continue;
}else if(option == 2){
break;
}
}while(true);
System.out.println("谢谢使用本系统!");
}
public void welcome() {
System.out.println("*********************************");
System.out.println("********自助商店********");
System.out.println("*********************************");
showAllFoods();
}
public void showAllFoods() {
shopping.showAllFoods();
buy();
}
public void buy(){
shopping.buy();
}
}
Admin.java
package com.example.tools;
import java.util.Scanner;
public class Admin {
private String userName = "admin";
private String psw = "123";
Scanner sc = new Scanner(System.in);
public Admin(){
}
public String getUserName() {
return userName;
}
public String getPsw() {
return psw;
}
public void login(){
System.out.println("请输入用户名:");
String user = sc.next();
System.out.println("请输入密码");
String psw = sc.next();
if(!"".equals(user) && !"".equals(psw)){
if("admin".equals(user)&& "123".equals(psw)){
System.out.println("登录成功!");
showAdminMenu();
}else{
System.out.println("用户名或密码有误,请重新输入!");
login();
}
}else{
System.out.println("用户名或密码不能为空!");
login();
}
}
public void showAdminMenu(){
System.out.println("=========================");
System.out.println("=======管理员操作菜单=========");
System.out.println("=========================");
System.out.println("1.添加商品");
System.out.println("2.下架商品");
int option = sc.nextInt();
if(option == 1){
addCommodity();
}else if(option == 2){
deleteCommodity();
}
}
public void addCommodity(){
int currentFoodKinds = FoodData.foodKinds;
if(currentFoodKinds < 10){
System.out.println("请输入新增商品名称:");
String name = sc.next();
System.out.println("请输入新增商品单价:");
double price = sc.nextDouble();
System.out.println("请输入新增商品库存数量:");
int reserve = sc.nextInt();
FoodData.names[currentFoodKinds] = name;
FoodData.prices[currentFoodKinds] = price;
FoodData.reserves[currentFoodKinds] = reserve;
FoodData.foodKinds++;
System.out.println("新商品添加成功,还可添加" + (10 - FoodData.foodKinds) + "种商品");
}else{
System.out.println("抱歉,库存已满,无法新增商品!");
}
}
public void deleteCommodity(){
showAllCommodity();
System.out.println("请输入要下架的商品编号:");
}
public void showAllCommodity(){
System.out.println("商品编号\t"+"商品名称\t"+"商品单价(元)\t"+"商品数量(件)");
for(int i=0; i< FoodData.foodKinds; i++) {
if( FoodData.names[i] != null) {
System.out.println((i+1)+"\t"+FoodData.names[i]+ "\t"
+ FoodData.prices[i] + "\t\t" + FoodData.reserves[i]);
}
}
}
}
Cart.java
package com.example.tools;
public class Cart {
public static Food[] foodsInCart;
public Cart(){
foodsInCart = new Food[10];
}
}
Customer.java
package com.example.tools;
public class Customer {
private boolean isMember = false;
public boolean isMember() {
return isMember;
}
public void setMember(boolean isMember) {
this.isMember = isMember;
}
}
Food.java
package com.example.tools;
public class Food {
private String name;
private double price;
private int number = 0;
public Food(String name,double price, int number) {
super();
this.name = name;
this.price = price;
this.number = number;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
FoodData.java
package com.example.tools;
public class FoodData {
public static String[] names = new String[10];
public static double[] prices = new double[10];
public static int []reserves = new int[10];
public static int foodKinds = 3;
static{
for(int i=0; i<names.length;i++) {
switch(i) {
case 0:
names[i] = "可乐";
prices[i] = 2.5;
reserves[i] = 10;
break;
case 1:
names[i] = "面包";
prices[i] = 10;
reserves[i] = 8;
break;
case 2:
names[i] = "牛奶";
prices[i] = 6;
reserves[i] = 20;
break;
}
}
}
}
Shopping .java
package com.example.tools;
import java.util.Scanner;
public class Shopping {
private Cart cart;
public Shopping() {
cart = new Cart();
}
public void showAllFoods() {
System.out.println("商品编号\t"+"商品名称\t"+"商品单价(元)\t"+"商品数量(件)");
for(int i=0; i< FoodData.names.length; i++) {
if( FoodData.names[i] != null) {
System.out.println((i+1)+"\t"+FoodData.names[i]+ "\t"
+ FoodData.prices[i] + "\t\t" + FoodData.reserves[i]);
}
}
}
public void buy() {
boolean flag = true;
int index = 0;
int number = 0;
Scanner sc = new Scanner(System.in);
do {
while(true){
System.out.println("请输入要购买的商品编号:");
int foodId = sc.nextInt();
if(foodId >=1 && foodId<= FoodData.foodKinds){
while(true){
System.out.println("请输入"+ FoodData.names[foodId - 1]+"的购买数量:");
number = sc.nextInt();
if( !(number <= FoodData.reserves[foodId - 1])){
System.out.println("输入的数量大于该商品的库存数量,请重新输入!");
}else{
break;
}
}
Food food = new Food(FoodData.names[foodId - 1], FoodData.prices[foodId - 1], number);
FoodData.reserves[foodId - 1] = FoodData.reserves[foodId - 1] - number;
if( index < 10){
cart.foodsInCart[index] = food;
index++;
}else{
System.out.println("购物车已放满,无法再继续购买!");
break;
}
break;
}else{
System.out.println("输入的商品编号有误,请重新输入!");
}
}
for(int i=0; i <index; i++){
System.out.println("目前购买了:"+ cart.foodsInCart[i].getName()+ "\t数量为:" + cart.foodsInCart[i].getNumber()+
"\t需支付: " + cart.foodsInCart[i].getNumber() * cart.foodsInCart[i].getPrice()+"元");
}
System.out.println("是否继续购物?(1.是 2.否)");
int option = sc.nextInt();
if(option == 1){
showAllFoods();
flag = true;
}else{
flag = false;
double total = 0;
System.out.println("小票打印中......");
System.out.println("===============购物小票=============");
for(int i=0; i <index; i++){
System.out.println("商品名:"+ cart.foodsInCart[i].getName()+ "\t数量:" + cart.foodsInCart[i].getNumber()+
"\t需支付: " + cart.foodsInCart[i].getNumber() * cart.foodsInCart[i].getPrice()+"元");
total = total + cart.foodsInCart[i].getNumber() * cart.foodsInCart[i].getPrice();
}
System.out.println("一共请支付: "+ total + "元");
System.out.println("=============================");
System.out.println("谢谢光临!");
}
}while(flag);
}
}
效果图: