面向对象的简单管理系统的编写
程序员文章站
2024-01-04 08:25:04
...
电商管理系统
管理系统的编写其实并不难,只要你了解了编写的方法思维,考察的就是思维的全面性,通过固定的方法去编写,就我的理解,就是“属性类”,“行为类”,“客户端类”,“属性类”中写属性,加上构造器、set/get方法、toString方法重写等等;“行为类”中写的是对“属性类”的操作,增删改查方法;“客户端类”就是一个实验类,通过客户端的方式去检查程序,管理系统的实现!下面是我的一个小成果,请大家欣赏!
完成一个电商系统的商品模块功能,商品类包含以下属性:商品ID,商品名,类别名,单价,库存量,产地,计量单位等信息,要求实现商品管理功能以及管理员登录功能,具体如下:
1.管理员登录(账号密码固定admin/admin`)
2.修改管理员密码
3.商品添加
4.商品列表
5.查询指定Id的商品
6.根据商品id删除商品
7.修改指定商品的价格
8.修改指定商品的库存
9.根据商品类别查询所有商品
10.查询指定价格区间的商品信息
管理员类
/**
* 管理员类
* @author July.Jul.
*
*/
public class Admin {
/**用户名*/
private String username;
/**密码*/
private String password;
/**初始化录入管理员用户名及密码*/
public Admin() {
username = "admin";
password = "admin";
}
/**set,get方法*/
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
商品类
/**
* 商品类
* @author July.Jul.
*
*/
public class Commodiy {
/**商品ID*/
private String id;
/**商品名*/
private String name;
/**类别名*/
private String catagory;
/**单价*/
private double price;
/**库存量*/
private int count;
/**产地*/
private String site;
/**计量单位*/
private String unit;
/**默认构造器*/
public Commodiy() {
}
/**构造器*/
public Commodiy(String id, String name, String catagory, double price, int count, String site, String unit) {
this.id = id;
this.name = name;
this.catagory = catagory;
this.price = price;
this.count = count;
this.site = site;
this.unit = unit;
}
/**toString重写*/
@Override
public String toString() {
return id + "\t" + name + "\t" + catagory + "\t" + price + "\t" + count + "\t" + site + "\t" + unit;
}
/**set,get方法*/
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCatagory() {
return catagory;
}
public void setCatagory(String catagory) {
this.catagory = catagory;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
}
商品管理类
import java.util.ArrayList;
/**
* 商品管理
* @author July.Jul.
*
*/
public class CommodiyManager {
/**为商品类创建动态数组*/
static ArrayList<Commodiy> list = new ArrayList<>();
/**商品添加*/
public void add(Commodiy c){
list.add(c);
}
/**商品列表*/
public ArrayList<Commodiy> list(){
return list;
}
/**查询指定id的商品*/
public Commodiy findById(String id){
Commodiy com = null;
for(Commodiy c:list){
if(c != null && id.equals(c.getId())){
com = c;
break;
}
}
return com;
}
/**根据商品id删除商品*/
public boolean deleteById(String id){
Commodiy c = findById(id);
if(c !=null){
list.remove(c);
return true;
}else{
return false;
}
}
/**修改指定商品的价格*/
public boolean updatePriceById(String id,double price){
Commodiy c = findById(id);
if(c != null){
c.setPrice(price);
return true;
}else{
return false;
}
}
/**修改指定商品的库存*/
public boolean updateCountById(String id,int count){
Commodiy c = findById(id);
if(c != null){
c.setCount(count);
return true;
}else{
return false;
}
}
/**根据商品类别查询所有商品*/
public ArrayList<Commodiy> findByCatagray(String catagory){
ArrayList<Commodiy> coms = new ArrayList<>();
for(Commodiy c:list){
if(catagory.equals(c.getCatagory())){
coms.add(c);
}
}
return coms;
}
/**查询指定价格区间的商品信息*/
public ArrayList<Commodiy> findByPricerange(double lowerprice,double higherprice){
ArrayList<Commodiy> coms = new ArrayList<>();
for(Commodiy c:list){
if(c != null && c.getPrice() >= lowerprice && c.getPrice() <= higherprice){
coms.add(c);
}
}
return coms;
}
}
客户端
/**
* 客户端
* @author July.Jul.
*
*/
import java.util.ArrayList;
import java.util.Scanner;
public class Client {
private CommodiyManager comm = new CommodiyManager();
private Admin ad = new Admin();
private Scanner sc;
/**登录菜单*/
public void Adminmenu(){
msg("【1】登录");
msg("【2】退出");
msg("请输入指令:");
start();
}
/**登录菜单实现*/
public void start(){
sc = new Scanner(System.in);
int i = sc.nextInt();
switch(i){
case 1:
admin();
break;
case 2:
exit();
break;
default:
msg("输入错误,请重新输入!");
Adminmenu();
break;
}
}
/**退出登录界面的客户端实现*/
private void exit() {
sc = new Scanner(System.in);
msg("是否确定退出?(Y/N)");
String op = sc.next();
if(op.equalsIgnoreCase("Y")){
System.exit(1);
}
}
/**登录的客户端实现,登录成功进入menu(),失败回到Adminmenu()*/
private void admin() {
sc = new Scanner(System.in);
msg("请输入用户名:");
String username = sc.nextLine();
msg("请输入密码:");
String password = sc.nextLine();
if(username.equals(ad.getUsername()) && password.equals(ad.getPassword())){
msg("登陆成功!");
menu();
}else{
msg("用户名或密码不正确,登录失败!");
Adminmenu();
}
}
/**登录成功后菜单*/
public void menu(){
msg("----July.Jul 电商系统----");
msg("【1】修改管理员密码");
msg("【2】商品添加");
msg("【3】商品列表");
msg("【4】根据ID查询商品");
msg("【5】根据商品ID删除商品");
msg("【6】根据商品ID修改商品价格");
msg("【7】根据商品ID修改库存");
msg("【8】根据商品类别查询所有商品");
msg("【9】查询指定价格区间的商品信息");
msg("【0】退出系统");
msg("请输入指令:");
goin();
}
/**登录成功后菜单实现*/
private void goin() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch(i){
case 1:
alterPassword();
break;
case 2:
add();
break;
case 3:
list();
break;
case 4:
queryById();
break;
case 5:
cancleById();
break;
case 6:
alterPrice();
break;
case 7:
alterCount();
break;
case 8:
queryBySite();
break;
case 9:
queryByPrice();
break;
case 0:
exits();
break;
default:
msg("输入不正确,请重新输入!");
break;
}
menu();
}
/**修改客户端密码的客户端实现*/
private void alterPassword() {
sc = new Scanner(System.in);
System.out.println("请输入更改后的密码:");
String password = sc.nextLine();
if(password.equals(ad.getPassword())){
System.out.println("修改失败,请输入与原密码不同的密码!");
alterPassword();
return;
}else{
ad.setPassword(password);
msg("修改成功!");
}
}
/**商品添加的客户端实现*/
private void add() {
msg("请输入商品信息(按以下格式:商品ID/商品名/类别名/单价/库存量/产地/计量单位)");
sc = new Scanner(System.in);
String s = sc.nextLine();
/**根据"/"截取员工信息*/
String[] info = s.split("/");
if(comm.findById(info[0]) != null){
msg("该编号的商品已存在,请重新输入!");
add();
return;
}else{
Commodiy c = new Commodiy(info[0],
info[1],
info[2],
Double.parseDouble(info[3]),
Integer.parseInt(info[4]),
info[5],
info[6]);
comm.add(c);
msg("添加成功!");
}
}
/**商品列表的客户端实现*/
private void list() {
msg("商品ID\t商品名\t类别名\t单价\t库存量\t产地\t计量单位");
for(Commodiy c:comm.list()){
msg(c);
}
}
/**根据商品ID查询商品信息的客户端实现*/
private void queryById() {
sc = new Scanner(System.in);
msg("请输入商品id:");
String id = sc.nextLine();
msg("商品ID\t商品名\t类别名\t单价\t库存量\t产地\t计量单位");
if(comm.findById(id) != null){
msg(comm.findById(id));
}else{
msg("查询失败!");
}
}
/**根据商品ID删除商品信息的客户端实现*/
private void cancleById() {
sc = new Scanner(System.in);
msg("请输入商品id:");
String id = sc.nextLine();
if(comm.deleteById(id)){
msg("删除成功!");
}else{
msg("删除失败!");
}
}
/**根据商品ID修改商品价格的客户端实现*/
private void alterPrice() {
sc = new Scanner(System.in);
msg("请输入商品id:");
String id = sc.nextLine();
msg("请输入修改后的价格:");
double price = sc.nextDouble();
if(comm.findById(id) != null){
comm.updatePriceById(id, price);
msg("修改成功!");
}else{
msg("修改失败!");
}
}
/**根据商品ID修改商品库存量的客户端实现*/
private void alterCount() {
sc = new Scanner(System.in);
msg("请输入商品id:");
String id = sc.nextLine();
msg("请输入修改后的库存量:");
int count = sc.nextInt();
if(comm.findById(id) != null){
comm.updateCountById(id, count);
}else{
msg("修改失败!");
}
}
/**根据商品类型查询商品的客户端实现*/
private void queryBySite() {
sc = new Scanner(System.in);
msg("请输入商品类型:");
String catagory = sc.nextLine();
ArrayList<Commodiy> list = comm.findByCatagray(catagory);
msg("商品ID\t商品名\t类别名\t单价\t库存量\t产地\t计量单位");
if(list.size()>0){
for(Commodiy e:list){
msg(e);
}
}
}
/**根据价格区间查询商品信息的客户端实现*/
private void queryByPrice() {
sc = new Scanner(System.in);
msg("请输入最低价格:");
double lowerprice = sc.nextDouble();
msg("请输入最高价格:");
double higherprice = sc.nextDouble();
ArrayList<Commodiy> list = comm.findByPricerange(lowerprice, higherprice);
msg("商品ID\t商品名\t类别名\t单价\t库存量\t产地\t计量单位");
if(list.size()>0){
for(Commodiy e:list){
msg(e);
}
}
}
/**退出系统的客户端实现*/
private void exits() {
sc = new Scanner(System.in);
msg("是否确定退出?(Y/N)");
String op = sc.next();
if(op.equalsIgnoreCase("Y")){
msg("感谢使用本系统!");
System.exit(1);
}
}
/**输出语句*/
public void msg(Object obj){
System.out.println(obj);
}
/**主方法*/
public static void main(String[] args) {
new Client().Adminmenu();
}
}
结果展示
【1】登录
【2】退出
请输入指令:
1
请输入用户名:
admin
请输入密码:
admin
登陆成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
1
请输入更改后的密码:
123456
修改成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
2
请输入商品信息(按以下格式:商品ID/商品名/类别名/单价/库存量/产地/计量单位)
001/apple/水果/5/100/湖北/kg
添加成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
2
请输入商品信息(按以下格式:商品ID/商品名/类别名/单价/库存量/产地/计量单位)
002/orange/水果/4/100/湖北/kg
添加成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
2
请输入商品信息(按以下格式:商品ID/商品名/类别名/单价/库存量/产地/计量单位)
003/pen/文具/15/100/湖北/支
添加成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
3
商品ID 商品名 类别名 单价 库存量 产地 计量单位
001 apple 水果 5.0 100 湖北 kg
002 orange 水果 4.0 100 湖北 kg
003 pen 文具 15.0 100 湖北 支
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
4
请输入商品id:
1
商品ID 商品名 类别名 单价 库存量 产地 计量单位
查询失败!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
4
请输入商品id:
001
商品ID 商品名 类别名 单价 库存量 产地 计量单位
001 apple 水果 5.0 100 湖北 kg
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
5
请输入商品id:
001
删除成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
3
商品ID 商品名 类别名 单价 库存量 产地 计量单位
002 orange 水果 4.0 100 湖北 kg
003 pen 文具 15.0 100 湖北 支
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
5
请输入商品id:
1
删除失败!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
6
请输入商品id:
002
请输入修改后的价格:
6
修改成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
3
商品ID 商品名 类别名 单价 库存量 产地 计量单位
002 orange 水果 6.0 100 湖北 kg
003 pen 文具 15.0 100 湖北 支
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
7
请输入商品id:
003
请输入修改后的库存量:
150
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
3
商品ID 商品名 类别名 单价 库存量 产地 计量单位
002 orange 水果 6.0 100 湖北 kg
003 pen 文具 15.0 150 湖北 支
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
8
请输入商品类型:
水果
商品ID 商品名 类别名 单价 库存量 产地 计量单位
002 orange 水果 6.0 100 湖北 kg
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
9
请输入最低价格:
4
请输入最高价格:
7
商品ID 商品名 类别名 单价 库存量 产地 计量单位
002 orange 水果 6.0 100 湖北 kg
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
0
是否确定退出?(Y/N)
y
感谢使用本系统!即将进入登录界面!
【1】登录
【2】退出
请输入指令:
1
请输入用户名:
admin
请输入密码:
admin
用户名或密码不正确,登录失败!
【1】登录
【2】退出
请输入指令:
1
请输入用户名:
admin
请输入密码:
123456
登陆成功!
----July.Jul 电商系统----
【1】修改管理员密码
【2】商品添加
【3】商品列表
【4】根据ID查询商品
【5】根据商品ID删除商品
【6】根据商品ID修改商品价格
【7】根据商品ID修改库存
【8】根据商品类别查询所有商品
【9】查询指定价格区间的商品信息
【0】退出系统
请输入指令:
0
是否确定退出?(Y/N)
y
感谢使用本系统!即将进入登录界面!
【1】登录
【2】退出
请输入指令:
2
是否确定退出?(Y/N)
y
这是我根据最近所学的内容做的一个小型的管理系统,用处不大,希望能给别人带来帮助,如果有什么错误及问题,希望大家及时反馈,我会进行更正!本文原创……