电商系统的商品模块功能
简介
该系统包含五个类,一个商品类、商品方法实现类、管理员类、管理员管理类、主界面类。
- 商品类(商品ID,商品名,类别名,单价,库存量,产地)
- 管理员类(账户、密码)
实现功能
- 管理员登录(账号密码固定admin/admin)
- 修改管理员密码
- 商品添加
- 商品列表
- 查询指定id的商品
- 根据商品id删除商品
- 根据id修改指定商品的价格
- 根据id修改指定商品的库存
- 根据商品类别查询所有商品
- 查询指定价格区间的商品信息
实现方法
管理员类包括:
- 管理员类属性: 账号、密码
- 一个默认构造器、一个自定义构造器
- 属性的set/get方法
public class Admin {
private String name;//账号
private String pw;//密码
public Admin() {
}
public Admin(String name, String pw) {
super();
this.name = name;
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
}
管理员管理类包括
- 一个叫alist的集合来存储管理员数据
- 一个用来初始化管理员的构造器
- 判断管理员是否登入成功方法
- 管理员修改密码的方法
public class AdminManage {
private ArrayList<Admin> alist = new ArrayList<>();
private Admin admin =null;
public AdminManage() {
alist.add(new Admin("admin","admin"));
}
public Admin foreach()
{
for(Admin a:alist)
{
if(a != null)
admin = a;
}
return admin;
}
/**
*是否登入成功
*/
public boolean sign(String name,String pw)
{
foreach();
//比较账号与密码是否相等
if(name.equals(admin.getName()) && pw.equals(admin.getPw()) )
{
return true;
}
return false;
}
/**
*修改密码
*/
public void changePw(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入旧的密码");
//判断字符串是否相等
if(admin.getPw().equals(sc.next()) )
{
System.out.println("请输入新的密码");
admin.setPw(sc.next());
return;
}
else{
System.out.println("密码错误,请重新操作");
changePw();
}
}
}
商品类包括
- 属性(商品ID,商品名,类别名,单价,库存量,产地)
- 一个默认构造器和一个自定义构造器
- 属性set/get/方法
- toString的重写方法
public class Shopping {
private int id;
private String sname;//商品名
private String cname;//类别名
private int sal;//单价
private int count;//库存量
private String address;//产地
public Shopping() {
}
public Shopping(int id, String sname, String cname, int sal, int count, String address) {
super();
this.id = id;
this.sname = sname;
this.cname = cname;
this.sal = sal;
this.count = count;
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public int getSal() {
return sal;
}
public void setSal(int sal) {
this.sal = sal;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "商品id:" + id + "\t商品名:" + sname + "\t类别名:" + cname + "\t单价:" + sal + "\t库存量:" + count
+ "\t产地:" + address +"\n";
}
}
商品管理类包括
- 一个存放商品类的集合
- 商品的增、删、改、查等功能的实现
public class ShoppingManager {
/**
* 定义一个集合存放商品信息
* */
static ArrayList<Shopping> list = new ArrayList<>();
/**
* 添加商品
*/
public boolean add(Shopping s)
{
//判断是否已存在商品id,存在则添加失败
if(select(s.getId()) == null)
{
list.add(s);
return true;
}
return false;
}
/**
* 根据id查找商品
* */
public Shopping select(int id) {
//给一个空的Shopping对象
Shopping sg = null;
//遍历集合
for(Shopping s : list)
{
//是否存在该商品的id
if(s.getId() == id)
{
sg = s;
break;
}
}
return sg;
}
/**
* 商品列表
*/
public ArrayList<Shopping> selectAllShopping()
{
return list;
}
/**
* 根据商品id删除商品
* */
public boolean del(int id)
{
//查询该id的商品信息
Shopping s = select(id);
//如果不为空
if(s != null)
{
//删除该信息
list.remove(s);
return true;
}
else
//删除失败
return false;
}
/**
* 根据商品id修改价格
* */
public boolean changeSal(int id,int sal)
{
//查询该id的商品信息
Shopping s = select(id);
if(s != null)
{
s.setSal(sal);
return true;
}
return false;
}
/**
* 根据商品id修改库存
* */
public boolean changeCount(int id,int count)
{
//查询该id的商品信息
Shopping s = select(id);
if(s != null)
{
s.setCount(count);
return true;
}
return false;
}
/**
* 根据商品类别查询所有商品
* */
public ArrayList<Shopping> selectByCname(String cname)
{
//给一个新的集合来存放数据
ArrayList<Shopping> sg = new ArrayList<>();
//遍历集合
for(Shopping s:list )
{
if(s != null && s.getCname().equals(cname))
{
sg.add(s);
}
}
return sg;
}
/**
*查询指定价格区间的商品信息
*/
public ArrayList<Shopping> selectBySal(int lSal,int hSal)
{
//给一个新的集合来存放数据
ArrayList<Shopping> sg = new ArrayList<>();
//判断2个值大小排序
if(lSal > hSal)
{
int i =lSal;
lSal =hSal;
hSal = i;
}
for(Shopping s :list)
{
if(s.getSal() > lSal && s.getSal() < hSal)
{
sg.add(s);
}
}
return sg;
}
}
public class ShoppingClient {
private ShoppingManager sm = new ShoppingManager();
private AdminManage am =new AdminManage();
Scanner sc;
/**菜单*/
public void menu(){
p("1请登入");
p("0退出");
start();
}
/**
*开始
*/
private void start() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch(i){
case 1:
if(dengru())
{
shoppingMune();
}
else
{
p("登入失败,请重新登入");
menu();
}
break;
case 0:
exit();
break;
case 2:
add();
break;
default:
p("请输入正确指令");
break;
}
//menu();
}
主界面
- 商品类以及管理员类功能的实现
- 定义了一个p(Object obj)的输出方法
- 大量使用了方法的调用、switch选择、p()实现
//商品菜单
private void shoppingMune() {
p("1修改密码");
p("2添加商品");
p("3商品列表");
p("4查询指定id的商品");
p("5删除商品");
p("6修改商品价格");
p("7修改商品库存");
p("8查询商品类所有商品信息");
p("9查询区间类所有商品");
p("0返回");
sc = new Scanner(System.in);
int j = sc.nextInt();
switch(j)
{
case 1:
//修改密码
am.changePw();
break;
case 2:
//添加商品
add();
break;
case 3:
//商品列表
showAll();
break;
case 4:
//根据id查询商品信息
showById();
break;
case 5:
//删除商品
delete();
break;
case 6:
//修改商品价格
changeSalById();
break;
case 7:
//修改商品库存
changeCountById();
break;
case 8:
//查询商品类所有信息
selectAllByCname();
break;
case 9:
//查询区间内的商品
selectAreaOfSal();
case 0:
menu();
break;
default:
p("输入错误");
break;
}
shoppingMune();
}
/***/
private void selectAreaOfSal() {
sc = new Scanner(System.in);
p("请输入要查询的商品的区间[1-100]");
String[] s = sc.nextLine().split("-");
p("-----------------------------------------");
p(sm.selectBySal(Integer.parseInt(s[0]), Integer.parseInt(s[1])));
p("-----------------------------------------");
}
/**查询商品类所有信息*/
private void selectAllByCname() {
sc = new Scanner(System.in);
p("请输入要查询的商品类[电子]");
p("-----------------------------------------");
p(sm.selectByCname(sc.next()));
p("-----------------------------------------");
}
/**通过id修改商品库存*/
private void changeCountById() {
sc = new Scanner(System.in);
p("请输入要指定修改的商品id以及要修改库存【1-1900】");
String[] arr=sc.nextLine().split("-");
if(sm.changeCount(Integer.parseInt(arr[0]), Integer.parseInt(arr[1])))
{
p("-----------------------------------------");
p("修改成功,信息如下");
p("-----------------------------------------");
p(sm.select(Integer.parseInt(arr[0])));
p("-----------------------------------------");
}
else
{
p("-----------------------------------------");
p("没有改商品的id信息,修改失败");
p("-----------------------------------------");
}
}
/**通过id修改商品价格*/
private void changeSalById() {
sc = new Scanner(System.in);
p("请输入要指定修改的商品id以及修改的价格[1-1900]");
String[] arr=sc.nextLine().split("-");
if(sm.changeSal(Integer.parseInt(arr[0]), Integer.parseInt(arr[1])))
{
p("-----------------------------------------");
p("修改成功,信息如下");
p("-----------------------------------------");
p(sm.select(Integer.parseInt(arr[0])));
p("-----------------------------------------");
}
else
{
p("-----------------------------------------");
p("没有改商品的id信息,修改失败");
p("-----------------------------------------");
}
}
/**根据id删除商品*/
private void delete() {
sc = new Scanner(System.in);
p("请输入要删除的商品id");
if(sm.del(sc.nextInt()))
{
p("-----------------------------------------");
p("商品删除成功");
p("-----------------------------------------");
}
else
{
p("-----------------------------------------");
p("没有该商品信息,删除失败");
p("-----------------------------------------");
}
}
/**查询所有商品信息*/
private void showAll() {
p("-----------------------------------------");
p(sm.selectAllShopping());
p("------------------------------------------");
}
/**根据id查询信息*/
private void showById() {
sc = new Scanner(System.in);
p("请输入要查询的商品id");
int id = sc.nextInt();
p("信息如下:");
p("----------------------");
p(sm.select(id));
p("----------------------");
}
/**添加商品*/
private void add() {
p("请输入商品信息[1-手机-电子-5000-10000-中国]");
sc = new Scanner(System.in);
String s = sc.nextLine();
/**根据“-”截取商品信息*/
String[] info = s.split("-");
if(sm.select(Integer.parseInt(info[0])) != null)
{
p("该编号的商品已经存在,请重新输入");
add();
return;
}
else
{
Shopping sp = new Shopping(Integer.parseInt(info[0]), info[1], info[2],
Integer.parseInt(info[3]), Integer.parseInt(info[4]),
info[5]);
sm.add(sp);
p("添加成功");
}
}
/**退出*/
private void exit() {
sc = new Scanner(System.in);
p("是否退出");
String op = sc.next();
if(op.equalsIgnoreCase("y"))
{
p("谢谢使用");
System.exit(1);
}
}
/*
*登入判断
*/
public boolean dengru(){
ArrayList<Admin> admin = new ArrayList();
p("请输入账号与密码[admin/admin]");
sc = new Scanner(System.in);
// 以空格为分隔
String[] arr=sc.nextLine().split("/");
Admin a = new Admin(arr[0], arr[1]);
admin.add(a);
for(Admin e : admin)
{
if(e != null)
{
return am.sign(e.getName(),e.getPw());
}
}
return false;
}
/**打印方法*/
public void p(Object obj){
System.out.println(obj);
}
/**主函数*/
public static void main(String[] args) {
new ShoppingClient().menu();
}
}