首页 > 代码库 > 写留的商务超市管理系统~~~第一部分

写留的商务超市管理系统~~~第一部分

需求请见:http://pan.baidu.com/s/1pJPsYF5

有机会希望再补po到blog上面~

首先用menu把进入后的框架搭起来

/*
 * 各级菜单显示
 */
package com.pb.menu;

public class Menu {
	/**
	 * 登陆菜单
	 */
	public void login() {
		System.out.println("欢迎使用商超管理系统");
		System.out.println("1、登陆系统");
		System.out.println("2、退出");
	}

	/**
	 * 主菜单内容
	 */
	public void mainMenu() {
		System.out.println("**********我是分割线***********");
		System.out.println("1、商品维护");
		System.out.println("2、前台收银");
		System.out.println("3、商品管理");
		System.out.println("4、返回上一级菜单");
		System.out.println("**********我是分割线***********");
	}

	/**
	 * 商品维护菜单内 容
	 */
	public void mainMenu_1() {
		System.out.println("商超购物系统>>>商品维护");
		System.out.println("**********我是分割线***********");
		System.out.println("1、增加商品信息");
		System.out.println("2、更改商品信息");
		System.out.println("3、删除商品信息");
		System.out.println("4、显示所有商品信息");
		System.out.println("5、查询商品信息");
		System.out.println("6、入库管理");
		System.out.println("7、保存");
		System.out.println("8、返回上一级菜单");
		System.out.println("**********我是分割线***********");
	}

	/**
	 * 前台收银菜单内容
	 */
	public void mainMenu_2() {
		System.out.println("商超购物系统>>>前台收银");
		System.out.println("**********我是分割线***********");
		System.out.println("1、购物结算");
		System.out.println("2、返回上一级菜单");
		System.out.println("**********我是分割线***********");
	}

	/**
	 * 商品维护菜单内容
	 */
	public void mainMenu_3() {
		System.out.println("商超购物系统>>>商品管理");
		System.out.println("**********我是分割线***********");
		System.out.println("1、设置商品预警库存");
		System.out.println("2、今日售出商品");
		System.out.println("3、售货员管理");
		System.out.println("4、返回上一级菜单");
		System.out.println("**********我是分割线***********");
	}

	public void mainMenu_3_3() {
		System.out.println("商超购物系统>>>商品管理>>>售货员管理");
		System.out.println("**********我是分割线***********");
		System.out.println("1、新增售货员信息");
		System.out.println("2、修改售货员信息");
		System.out.println("3、删除售货员信息");
		System.out.println("4、显示所有售货员信息");
		System.out.println("5、查看售货员信息");
		System.out.println("6、保存");
		System.out.println("7、返回上一级菜单");
		System.out.println("**********我是分割线***********");
	}
}

然后我的思路非常线性,写了写架构在纸上,大概就是两个东西,一个叫salesman,用来操作物品,一个叫做good,就是物品。

我用一个叫user的类去管理存储他们两个的方法和属性。然后再分别去管理调用

于是我先把main函数写出来,然后就每个缺少的部分再去写他们每个的内容。

package com.pb.user;

import java.util.Scanner;

import com.pb.good.Good;
import com.pb.goodbiz.Goods;
import com.pb.isinputright.IsRight;
import com.pb.management.GoodManagement;
import com.pb.management.SalesmanManagement;
import com.pb.myexception.MyException;
import com.pb.salesman.Salesman;
import com.pb.salesmanBiz.SalesmanGroup;

public class User {
	Scanner in = new Scanner(System.in);
	GoodManagement gm = new GoodManagement();
	SalesmanManagement sm = new SalesmanManagement();
	
	//登陆主菜单
	public boolean landingMan(){
		System.out.print("请输入用户名:");
		String name = in.next();
		System.out.print("\n请输入密码:");
		String psd = in.next();
		if(name.equals("admin")){
			if(psd.equals("admin"))
				return true;
		}
		return false;
	}

	// 售货员登陆登陆
	public boolean landing() {
		System.out.print("请输入用户名:");
		String name = in.next();
		System.out.print("\n请输入密码:");
		String psd = in.next();
		try {
			if (SalesmanGroup.userMap.get(name) == null)
				throw new MyException("用户名密码不匹配!");
		} catch (MyException e) {
			System.out.println(e.getMessage());
			return false;
		}
		try {
			if (!SalesmanGroup.userMap.get(name).getPsd().equals(psd))
				throw new MyException("用户名密码不匹配!");
		} catch (MyException e) {
			System.out.println(e.getMessage());
			return false;
		}
		return true;
	}

	// 新增商品
	public void add() {
		System.out.println("请输入商品信息:");
		System.out.println("请输入商品名称:");
		String name = in.next();
		try {
			if (Goods.goodMap.get(name) != null)
				throw new MyException("用户名已存在!");
		} catch (MyException e) {
			System.out.println(e.getMessage());
			return;
		}
		System.out.println("请输入商品价格:");
		double price = in.nextDouble();
		System.out.println("请输入商品库存:");
		int storage = in.nextInt();
		gm.add(new Good(name, price, storage));
	}

	// 删除商品
	public void delete() {
		System.out.println("请输入商品名称:");
		String name = in.next();
		if (Goods.goodMap.get(name) != null) {
			if (Goods.goodMap.get(name).getStorage() == 0) {
				gm.delete(name);
			} else {
				System.out.println("库存不为0,不能删除商品!");
			}
		} else {
			System.out.println("商品不存在!");
		}

	}

	// 修改商品
	public void modify() {
		System.out.println("请输入商品名称:");
		String name = in.next();
		if (Goods.goodMap.get(name) != null) {
			gm.query(name);
			String c;
			do {
				System.out.println("请选择您要修改的内容:");
				System.out.println("1、更改商品名称:");
				System.out.println("2、更改商品价格:");
				System.out.println("3、更改商品数量:");
				int n = in.nextInt();
				switch (n) {
				case 1:
					System.out.println("请输入变更后的商品名称:");
					String newname = in.next();
					Good good = Goods.goodMap.get(name);
					good.setName(newname);
					Goods.goodMap.remove(name);
					Goods.goodMap.put(newname, good);
					break;
				case 2:
					System.out.println("请输入变更后的商品价格:");
					Goods.goodMap.get(name).setPrice(in.nextDouble());
					break;
				case 3:
					System.out.println("请输入变更后的商品数量:");
					Goods.goodMap.get(name).setStorage(in.nextInt());
					break;
				}
				System.out.print("是否继续修改此商品信息(N/Y):");
				c = in.next();
			} while (c.equalsIgnoreCase("y"));
		} else
			System.out.println("商品不存在,请核实!");
	}

	// 查看指定商品
	public void query() {
		System.out.println("请输入商品名称:");
		String name = in.next();
		if (Goods.goodMap.get(name) != null) {
			gm.query(name);
		} else
			System.out.println("商品不存在,请核实!");
	}

	// 按价格升序查询
	public void priceQuery() {
		gm.priceQuery();
	}

	// 查看全部商品
	public void queryAll() {
		gm.queryAll();
	}

	// 查询当日买出商品
	public void dayQuery() {
		gm.dayQuery();
	}

	// 模糊查找商品信息
	public boolean fuzzyQuery() {
		System.out.println("请输入商品关键字:");
		String str = in.next();
		return gm.fuzzyQuery(str);
	}

	// 保存商品信息
	public void save() {
		gm.save();
	}

	// 商品入货
	public void in() {
		System.out.println("请输入商品名称:");
		String name = in.next();
		if (Goods.goodMap.get(name) != null) {
			System.out.println("请输入入库数量:");
			int num = in.nextInt();
			gm.in(name, num);
		} else
			System.out.println("商品不存在!");
	}

	// 新增售货员
	public void addSalesman() {
		System.out.println("请输入售货员信息:");
		System.out.println("请输入用户名:");
		String name = in.next();
		try {
			if (SalesmanGroup.userMap.get(name) != null)
				throw new MyException("该用户已存在!");
		} catch (MyException e) {
			System.out.println(e.getMessage());
			return;
		}
		System.out.println("请输入密码:");
		String psd = in.next();
		if (!IsRight.isPsd(psd))
			return;
		System.out.println("请再次输入密码:");
		String psd1 = in.next();
		if (!IsRight.isPsd(psd, psd1))
			return;
		System.out.println("请输入年龄:");
		int age = in.nextInt();
		if (!IsRight.isAge(age))
			return;
		sm.add(new Salesman(name, psd, age));
	}

	// 修改售货员
	public void modifySalesman() {
		System.out.println("请输入用户名:");
		String name = in.next();
		if (SalesmanGroup.userMap.get(name) != null) {
			sm.query(name);
			String c;
			do {
				System.out.println("请选择您要修改的内容:");
				System.out.println("1、更改用户名:");
				System.out.println("2、更改密码:");
				System.out.println("3、更改年龄:");
				int n = in.nextInt();
				switch (n) {
				case 1:
					System.out.println("请输入变更后的用户名");
					String newname = in.next();
					Salesman salesman = SalesmanGroup.userMap.get(name);
					salesman.setName(newname);
					SalesmanGroup.userMap.remove(name);
					SalesmanGroup.userMap.put(newname, salesman);
					break;
				case 2:
					System.out.println("请输入变更后的密码:");
					SalesmanGroup.userMap.get(name).setPsd(in.next());
					break;
				case 3:
					System.out.println("请输入变更后的年龄:");
					SalesmanGroup.userMap.get(name).setAge(in.nextInt());
					break;
				}
				System.out.print("是否继续修改此用户信息(N/Y):");
				c = in.next();
			} while (c.equalsIgnoreCase("y"));
		} else
			System.out.println("用户名不存在!");
	}

	// 删除售货员
	public void deleteSalesman() {
		System.out.println("请输入要删除的用户名:");
		String name = in.next();
		if (SalesmanGroup.userMap.get(name) != null) {
			SalesmanGroup.userMap.remove(name);
		} else
			System.out.println("用户名不存在!");
	}

	// 查找指定售货员
	public void querySalesman() {
		System.out.println("请输入要查询的用户名:");
		String name = in.next();
		if (SalesmanGroup.userMap.get(name) != null) {
			sm.query(name);
		} else
			System.out.println("用户名不存在!");
	}

	// 查找全部售货员
	public void queryAllSalesman() {
		sm.queryAll();
	}

	// 保存
	public void saveSalesman() {
		sm.save();
	}

	// 检查商品库存
	public void checkStorage(int num) {
		gm.checkStorage(num);
	}

	// 购物
	public double settlement() {
		System.out.println("请输入商品名称:");
		String name = in.next();
		if (Goods.goodMap.get(name) == null) {
			System.out.println("商品不存在!");
			return 0;
		} else {
			System.out.println("请输入购买数量:");
			int sale = in.nextInt();
			return gm.settlement(Goods.goodMap.get(name), sale);
		}
	}

	// 付款
	public void payment() {
		double sum = 0;// 购买商品总金额
		double sum1 = 0;// 总交费金额
		double money = 0;// 单次交费金额
		String c;
		do {
			if (fuzzyQuery()) {
				sum += settlement();
			} else {
				System.out.println("商品不存在!");
			}
			System.out.print("是否继续购买(N/Y):");
			c = in.next();
		} while (c.equalsIgnoreCase("y"));
		if (sum == 0)
			System.out.println("欢迎再次光临");
		else {
			do {
				System.out.println("请输入交费金额:");
				money = in.nextDouble();
				sum1 += money;
				if (sum1 < sum)
					System.out.println("交费金额小于货款,请继续交费!");
			} while (sum1 < sum);
			System.out.println("找钱:" + (sum1 - sum) + "\n欢迎再次光临");
		}
	}
}
然后我们再去写他们的Management

——————————————————华丽的分割线——————————————————————

/**
 * 管理商品信息库
 */
package com.pb.management;

import com.pb.good.Good;
import com.pb.goodbiz.Goods;

public class GoodManagement {

	Goods goods = new Goods();

	// 新增
	public void add(Good good) {
		goods.addGood(good);
	}

	// 删除
	public void delete(String name) {
		goods.deleteGood(name);
	}

	// 修改
	public void modify(Good good) {
		goods.modifyGood(good);
	}

	// 查询指定商品
	public void query(String name) {
		goods.queryGood(name);
	}

	// 查询全部商品
	public void queryAll() {
		goods.queryAll();
	}

	// 查询当日买出商品
	public void dayQuery() {
		goods.dayQuery();
	}

	// 升序查找商品
	public void priceQuery() {
		goods.priceQuery();
	}
	
	// 模糊查找商品信息
	public boolean fuzzyQuery(String str) {
		return goods.fuzzyQuery(str);
	}

	// 保存
	public void save() {
		goods.save();
	}

	// 入库
	public void in(String name, int num) {
		goods.in(name, num);
	}

	// 检查商品库存
	public void checkStorage(int num) {
		goods.checkStorage(num);
	}

	// 结账
	public double settlement(Good good, int sale) {
		return goods.settlement(good, sale);
	}
}

/**
 * 管理售货员库
 */
package com.pb.management;

import com.pb.salesman.Salesman;
import com.pb.salesmanBiz.SalesmanGroup;

public class SalesmanManagement {

	SalesmanGroup sg = new SalesmanGroup();

	// 新增售货员
	public void add(Salesman user) {
		sg.add(user);
	}

	// 修改售货员
	public void modity(Salesman user) {
		sg.modify(user);
	}

	// 删除售货员
	public void delete(String name) {
		sg.delete(name);
	}

	// 查找指定售货员
	public void query(String name) {
		sg.query(name);
	}

	// 查找全部售货员
	public void queryAll() {
		sg.queryAll();
	}
	
	//保存
	public void save(){
		sg.save();
	}
}

先写到这里,具体的底层操作请见下一步!

写留的商务超市管理系统~~~第一部分