欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面向对象的简单管理系统的编写

程序员文章站 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

这是我根据最近所学的内容做的一个小型的管理系统,用处不大,希望能给别人带来帮助,如果有什么错误及问题,希望大家及时反馈,我会进行更正!本文原创……

相关标签: 管理系统

上一篇:

下一篇: