下午写了一个,架子搭起来了。具体方法你继续完善啊。
效果如下:
----------------超市管理系统---------------
***********当前商品信息如下:************
商品编号商品名商品数量上架日期
1001老坛酸菜牛肉面102020-01-08
登陆方式:1. 超级管理员2. 管理员
请选择登陆方式(1或2):
1
------------超级管理员登陆-----------
请输入登陆名:
admin
请输入登陆密码:
admin
超级管理员[admin]登陆成功!
--------请选择:1. 进入普通管理员管理页面----------------------
--------请选择:2. 进入商品管理页面---------------------------
请输入你要去的管理页面:(1或2),其他任何选择就是退出
2
------------商品管理页面-------------
***********当前商品信息如下:************
商品编号商品名商品数量上架日期
1001老坛酸菜牛肉面102020-01-08
1. 新增商品
2. 修改商品
3. 删除商品
请输入你的选择:(1或2或3),其他任意选择视为退出
1
请输入新增的商品信息:
输入编号:
火腿
输入商品名:
火腿
输入商品类型:
火腿
输入商品重量:
20g
商品添加成功!
***********当前商品信息如下:************
商品编号商品名商品数量上架日期
1001老坛酸菜牛肉面102020-01-08
火腿火腿102020-01-08
------------商品管理页面-------------
***********当前商品信息如下:************
商品编号商品名商品数量上架日期
1001老坛酸菜牛肉面102020-01-08
火腿火腿102020-01-08
1. 新增商品
2. 修改商品
3. 删除商品
请输入你的选择:(1或2或3),其他任意选择视为退出
5
***********当前商品信息如下:************
商品编号商品名商品数量上架日期
1001老坛酸菜牛肉面102020-01-08
火腿火腿102020-01-08
----------------超市管理系统---------------
***********当前商品信息如下:************
商品编号商品名商品数量上架日期
1001老坛酸菜牛肉面102020-01-08
火腿火腿102020-01-08
登陆方式:1. 超级管理员2. 管理员
请选择登陆方式(1或2):
下边是代码部分
org.market.entity包中的类:
Admin 类
package org.market.entity;
import java.util.Objects;
/**
* 管理员:当用户名相同时表示同一个管理员
* @author Feng
*/
public class Admin {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Admin{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Admin)) {
return false;
}
Admin admin = (Admin) o;
return Objects.equals(name, admin.name);
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
}
Product 类
package org.market.entity;
import java.time.LocalDate;
import java.util.Objects;
/**
* 商品类:只要编号相同就认为是同一件商品
* @author Feng
*/
public class Product {
/**商品编号:唯一*/
private String id;
/**商品种类*/
private String type;
/**商品名*/
private String name;
/**商品数量*/
private Integer count;
/**商品重量*/
private String weight;
/**生产日期*/
private LocalDate date;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public String getWeight() {
return weight;
}
public void setWeight(String weight) {
this.weight = weight;
}
public LocalDate getDate() {
return date;
}
public void setDate(LocalDate date) {
this.date = date;
}
@Override
public String toString() {
return "Product{" +
"id='" + id + '\'' +
", type='" + type + '\'' +
", name='" + name + '\'' +
", count=" + count +
", weight='" + weight + '\'' +
", date=" + date +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Product)) {
return false;
}
Product product = (Product) o;
return Objects.equals(id, product.id);
}
@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
}
SuperAdmin类
package org.market.entity;
/**
* 超级管理员
* @author Feng
*/
public final class SuperAdmin {
/**登陆名*/
public final String NAME = "admin";
/**密码*/
public final String PASSWORD = "admin";
}
org.market.service包
AdminService类
package org.market.service;
import org.market.entity.Admin;
/**
* 业务逻辑功能定义:
* 定义存储管理员信息的数组,并提供一系列操作
* @author Feng
*/
public class AdminService {
/**管理员数组*/
private final Admin[] ADMINS;
/**
* 构造:管理员信息
* @param admins 管理员数组
*/
public AdminService(Admin[] admins) {
ADMINS = admins;
}
/**
* 增加管理员信息
* @param admin 管理员
*/
public void addAdmin(Admin admin){
for (int i = 0; i < ADMINS.length; i++) {
if (ADMINS[i] == null){
ADMINS[i] = admin;
System.out.println("管理员添加成功!");
break;
}
}
}
/**
* 删除管理员
*/
public void deleteAdmin(Admin admin){
for (int i = 0; i < ADMINS.length; i++) {
if(ADMINS[i] == null){
System.out.println("不存在名字为:[" + admin.getName() + "]的管理员!");
return;
}
if (ADMINS[i].equals(admin)){
ADMINS[i] = null;
System.out.println("管理员 [" + admin.getName() + "]被删除了!");
return;
}
}
}
/**
* 更新管理员信息
* @param admin 管理员
*/
public void updateAdmin(Admin admin){
boolean exist = false;
for (int i = 0; i < ADMINS.length; i++) {
if(ADMINS[i] != null && ADMINS[i].equals(admin)){
exist = true;
ADMINS[i] = admin;
break;
}
}
if(exist){
System.out.println("更新管理员[" + admin.getName() + "]信息成功!");
} else {
System.out.println("名字为:[" + admin.getName() +"]的管理员不存在!");
}
}
/**
* 管理员登陆
* @param admin 管理员
* @return 登陆成功返回 true;否则返回 false
*/
public boolean login(Admin admin){
for (Admin adminTemp : ADMINS) {
if (adminTemp != null && adminTemp.equals(admin)) {
if (adminTemp.getPassword().equals(admin.getPassword())) {
return true;
}
}
}
return false;
}
}
ProductService类
package org.market.service;
import org.market.entity.Admin;
import org.market.entity.Product;
import java.util.Objects;
import java.util.stream.Stream;
/**
* 业务逻辑功能定义:
* 定义存储商品信息的数组,并提供一系列操作
* @author Feng
*/
public class ProductService {
/**商品数组*/
private final Product[] PRODUCTS;
/**
* 构造器:传入管理需要的数据
* @param products 商品数组
*/
public ProductService(Product[] products){
this.PRODUCTS = products;
}
/**
* 增加商品
* @param product 商品对象
*/
public void addProduct(Product product){
for (int i = 0; i < PRODUCTS.length; i++) {
if (PRODUCTS[i] == null){
PRODUCTS[i] = product;
System.out.println("商品添加成功!");
break;
}
}
}
/**
* 删除商品:通过商品编号删除
* @param product 商品对象
*/
public void deleteProduct(Product product){
for (int i = 0; i < PRODUCTS.length; i++) {
if(PRODUCTS[i] == null){
System.out.println("商品列表中没有编号为:[" + product.getId() + "]的商品!");
return;
}
// 列表中的商品编号与方法参数中的商品对象编号一致
// 找到了目标商品
if (PRODUCTS[i].equals(product)){
PRODUCTS[i] = null;
System.out.println("商品 [" + product.getId() + "]被删除了!");
return;
}
}
}
/**
* 通过商品编号获取商品
* @param id 编号
*/
public Product getProduct(String id){
for (Product product : PRODUCTS) {
if (product != null && product.getId().equals(id)) {
return product;
}
}
System.out.println("编号为 [" + id + "]的商品不存在!");
// 没找到目标编号的商品
return null;
}
/**
* 获取所有商品
* @return Product数组
*/
public Product[] getProducts(){
return PRODUCTS;
}
/**
* 修改商品信息
* @param product 商品
*/
public void updateProduct(Product product){
boolean exist = false;
for (int i = 0; i < PRODUCTS.length; i++) {
if(PRODUCTS[i] != null && PRODUCTS[i].equals(product)){
exist = true;
PRODUCTS[i] = product;
break;
}
}
if(exist){
System.out.println("更新商品[" + product.getId() + "]信息成功!");
} else {
System.out.println("编号[" + product.getId() +"]商品不存在!");
}
}
}
客户端类:
package org.market.client;
import org.market.entity.Admin;
import org.market.entity.Product;
import org.market.entity.SuperAdmin;
import org.market.service.AdminService;
import org.market.service.ProductService;
import java.time.LocalDate;
import java.util.Scanner;
/**
* Created by Feng on 2020/1/8 14:20
* CurrentProject's name is java8
* @author Feng
*/
public class Client{
/**商品业务封装对象*/
private ProductService productService;
/**管理员业务封装对象*/
private AdminService adminService;
/**控制台输入*/
private static Scanner input = new Scanner(System.in);
private boolean superAdminLogin = false;
private boolean adminLogin = false;
/**构造*/
private Client(){
}
/**
* 超级管理员登陆后的界面
*/
private void superAdminMainClient(){
sop("--------请选择:1. 进入普通管理员管理页面----------------------");
sop("--------请选择:2. 进入商品管理页面---------------------------");
String choice = input("请输入你要去的管理页面:(1或2),其他任何选择就是退出");
if(choice.contains("1")){
boolean flag = true;
while(flag){
sop("------------普通管理员管理页面-------------");
sop("1. 新增管理员");
sop("2. 修改管理员");
sop("3. 删除管理员");
String operation = input("请输入选择:(1或2或3),其他任何选择就是退出");
switch (operation){
case "1":
addAdmin();
break;
case "2":
updateAdmin();
break;
case "3":
deleteAdmin();
break;
default:
flag = false;
break;
}
}
}
if(choice.contains("2")){
boolean flag = true;
while(flag){
sop("------------商品管理页面-------------");
printProductMessage();
sop("1. 新增商品");
sop("2. 修改商品");
sop("3. 删除商品");
String operation = input("请输入你的选择:(1或2或3),其他任意选择视为退出");
switch (operation){
case "1":
addProduct();
break;
case "2":
updateProduct();
break;
case "3":
deleteProduct();
break;
default:
flag = false;
break;
}
printProductMessage();
}
}
// 退出
superAdminLogin = false;
}
private void deleteProduct() {
}
private void updateProduct() {
}
private void addProduct() {
sop("请输入新增的商品信息:");
String id = input("输入编号:");
String name = input("输入商品名:");
String type = input("输入商品类型:");
String weight = input("输入商品重量:");
Product product = new Product();
product.setId(id);
product.setName(name);
product.setCount(10);
product.setType(type);
product.setWeight(weight);
product.setDate(LocalDate.now());
productService.addProduct(product);
}
private void deleteAdmin() {
}
private void updateAdmin() {
}
private void addAdmin() {
}
/**
* 管理员登陆后的界面
*/
private void adminMainClient() {
}
/**
* 登陆
*/
private void login(){
String loginChoice = initClient();
if(loginChoice.contains("1")){
sop("------------超级管理员登陆-----------");
String name = input("请输入登陆名:");
String password = input("请输入登陆密码:");
SuperAdmin superAdmin = new SuperAdmin();
if(superAdmin.NAME.equals(name) && superAdmin.PASSWORD.equals(password)){
sop("超级管理员[" + superAdmin.NAME + "]登陆成功!");
superAdminLogin = true;
return;
}
}
if(loginChoice.contains("2")){
sop("------------管理员登陆-----------");
String name = input("请输入登陆名:");
String password = input("请输入登陆密码:");
Admin admin = new Admin();
admin.setName(name);
admin.setPassword(password);
adminLogin = adminService.login(admin);
}
}
private void printProductMessage(){
sop("***********当前商品信息如下:************");
sop("商品编号\t商品名\t商品数量\t上架日期");
for (Product product : productService.getProducts()) {
if(product == null){
continue;
}
sop(product.getId() + "\t" + product.getName() + "\t" + product.getCount() + "\t" + product.getDate());
}
}
/**初始化控制台输出信息*/
private String initClient(){
printProductMessage();
sop("登陆方式:1. 超级管理员\t2. 管理员");
return input("请选择登陆方式(1或2):");
}
/**初始化数据*/
private void init(){
// 初始化 大小为10 的商品数组
Product[] products = new Product[10];
// 放入一个商品
Product product = new Product();
product.setId("1001");
product.setName("老坛酸菜牛肉面");
product.setCount(10);
product.setType("小零食");
product.setWeight("45g");
product.setDate(LocalDate.now());
products[0] = product;
productService = new ProductService(products);
// 管理员数组
Admin[] admins = new Admin[3];
Admin admin = new Admin();
admin.setName("小冯");
admin.setPassword("123456");
admins[0] = admin;
adminService = new AdminService(admins);
}
/**
* 封装打印输出语句:打印结果到控制台
* @param obj 任意内容
*/
private static void sop(Object obj){
System.out.println(obj);
}
/**
* 控制台打印 message 提示信息,并返回控制台输入的字符串
* @param message 提示词,比如:请输入一句话
* @return 输入的字符串
*/
private static String input(String message){
System.out.println(message);
return input.nextLine();
}
/**系统入口*/
public static void main(String[] args) {
Client client = new Client();
// 初始化数据
client.init();
while(true){
sop("----------------超市管理系统---------------");
client.login();
while(client.superAdminLogin){
client.superAdminMainClient();
}
while (client.adminLogin){
client.adminMainClient();
}
}
}
}