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

需求请见: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();
	}
}

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

时间: 2024-10-18 13:21:08

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

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

紧跟着上一章~ 随后我们实现goodbiz的Goods类和SalesmanGroup类,这个有点类似MVC里面的控制器,在底层进行增删改查的处理 这里就很快明白了我们为什么底层还要再放good和salesman类,因为他们是我的map里面保存的对象,只作为保存的对象而其实并不参与业务 我觉得只用java实现的弊端在于没有mysql之类的数据库在后端对数据进行存储,于是我就用了Map<String,Good/Salesman>来对每一对对象进行存储 整体的思路如下图: /** * 商品信息库 *

BOS物流管理系统-第一天

BOS物流管理系统-第一天-系统分析.环境搭建.前端框架 BoBo老师 整体项目内容目标: 对项目概述的一些理解 亮点技术的学习 注意学习方式:优先完成当天代码. 其他内容. 最终: 学到新的技术,会应用新的技术:对项目有个整体感觉: 课程安排:12天左右 主要内容: 项目整体概述和一般流程(项目概念.一般项目流程等) BOS项目的概述(项目背景.需求.技术架构.学习目标) 开发环境搭建 项目导入和运行(传统项目结构)(Struts2的通配符映射) 项目导入和运行(Maven项目结构)(STS开

超市管理系统制定测试计划

http://www.cnblogs.com/panguangmei/ 超市管理系统测试计划 1. 简介 1. 1目的 超市管理系统“超市管理系统测试计划”文档有助于实现以下目标: 确定超市管理系统的信息和应超市管理系统测试的软件构件. 针对超市管理系统推荐可采用的超市管理系统测试策略,并对这些策略加以说明. 确定所需的资源,并对超市管理系统测试的工作量进行估计. 列出超市管理系统超市管理系统测试项目的可交付元素. 1. 2背景 对超市管理系统(构件.应用程序.系统等)及其目标进行简要说明.需要

哪里可以找到基于JAVA设计帮做的超市管理系统

一,关于我们我们是专业从事于定做计算机相关毕业设计,拥有专业的写手团队和严格的保密制度.我们的工程师们在软件工程开发与设计的各个领域积累了丰富的经验,保证服务水平.我们致力于为客户提供各专业高质量的毕业设计定做服务,为即将毕业的同学提供毕业设计指导.毕设代做.毕设定制等一站式服务.强大的专业能力,高效的服务水平,多年以来一直深得客户好评,毕业只有一次,我们将尽心尽力为你完成毕设. 联系我们:.扣.扣.号(幺零三贰三七幺贰幺) 与我们取得联系,向我们提出您的写作要求:我们咨询师会根据您的服务需求和

超市管理系统—NABCD模型

1) N (Need 需求) 需求分析: 超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生.依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力.物力,改善了员工的并且能够快速反映出商品的进.销.存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率. 2) A (Approach 做法) 本系统主要包括四大模块,分别是人事管理模块,销售管理模块,进货管理模块,库存管理模块.每

java写的一个简单学生管理系统[改进]

用Java写的一个简单学生管理系统 import java.util.*; public class student_cj {  public static void main(String[] args){      Scanner in=new Scanner(System.in);   System.out.print("请输入学生人数:");   int num=in.nextInt();//学生人数   String[] str=new String[num];//结合一行数

超市管理系统---总结篇

花费一周左右的时间完成一个练习项目:超市管理系统,基于C#winform+ADO.NET+SQLServer,分为前台系统+后台系统.有兴趣的小伙伴可以围观: GitHub: https://github.com/EasonDongH/SupermarketManagementSystem 总结一下: 技术点: ADO.NET:带参数SQL:存储过程:三层架构:分页查询等 学习点: 三层的练习:分页查询的实现 原文地址:https://www.cnblogs.com/EasonDongH/p/8

文献综述十一:基于商品的商业超市管理系统的改进

一.基本信息 标题:基于商品的商业超市管理系统的改进 时间:2017 出版源:潍坊学院学报 文件分类:对商品系统的研究 二.研究背景 根据超市实际需求进行扩展 ,由重结果向行为转为重过程控制 ,实现超市系统的自动管理和优化. 三.具体内容 大部分超市系统的商品管理着重点在于数据库管理.供应链管理等理论性研究,而国外的先进品类管理软件水土不服,不适合国内的超市管理特点.本文献主要从调研 .采购 .订单 .收货 .库存 .销售到回款等各个环节实施全程计算机控制 ,实现系统的自动判断和优化.文献的主要

SSM超市管理系统

每天记录学习,每天会有好心情.*^_^* 今天将为大家分析一个基于SSM的超市管理系统的设计与实现,给超市管理营造 出了一种现代化的气氛,至少也能促使人们的管理观念进行一点更新或者给超市罩上一层现代管理的外衣.采用当前非常流行的B/S体系结构,以JSP作为开发技术,主要依赖SSM技术框架,mysql数据库建立本系统.关键词,管理系统的设计与实现,超市管理系统设计与实现,设计超市管理系统),基于SSM的超市管理系统的设计与实现项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIP