收藏 分销(赏)

北大青鸟第一单元超市收银管理系统.doc

上传人:快乐****生活 文档编号:4484312 上传时间:2024-09-24 格式:DOC 页数:88 大小:200KB
下载 相关 举报
北大青鸟第一单元超市收银管理系统.doc_第1页
第1页 / 共88页
北大青鸟第一单元超市收银管理系统.doc_第2页
第2页 / 共88页
北大青鸟第一单元超市收银管理系统.doc_第3页
第3页 / 共88页
北大青鸟第一单元超市收银管理系统.doc_第4页
第4页 / 共88页
北大青鸟第一单元超市收银管理系统.doc_第5页
第5页 / 共88页
点击查看更多>>
资源描述

1、北大青鸟第一单元超市收银管理系统882020年5月29日文档仅供参考包结构四个包,九个类,一个资源文件客户端类package com.supermarket.Client;/* * 客户端界面 */import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Scanner;import com.supermarket.Tools.Datas;import com.supermarket.Tools.SysConstans;import com.superm

2、arket.entity.Goods;public class Client /定义扫描器,用于键盘输入public static Scanner input=new Scanner(System.in);/创立客户端业务类对象,调用方法public static ClientB cb=new ClientB();public static void main(String args) doSystem.out.println(*欢迎使用青鸟超市系统*);System.out.println(1.登录+n2.退出);System.out.println(*请选择1/2*);String cho

3、ice=input.next();if(choice.equals(1)/登录视图createLoginView();break;else if(choice.equals(2)/退出System.exit(0);else/输入有误,报错System.out.println(无此选项!);while(true);System.out.println(*谢谢使用青鸟超市系统*);/* * 登录视图 * 经过输入的用户名与密码验证用户身份,管理员则进入管理界面,收银员则进入收银界面,都不是则提示错误,并重新进行输入 */public static void createLoginView()do

4、/提示登录信息System.out.println(请输入用户名:);String name = input.next();System.out.println(请输入密码:);String password = input.next();/调用客户端登录方法,接收返回值,判断登录者的身份Datas datas = cb.doLogin(name, password); /判断是管理员还是收银员if (datas.getFlag().equals(SysConstans.SYS_ADMIN) createAdminView();break; else if (datas.getFlag().e

5、quals(SysConstans.SYS_CASHIER) createCashierView();break; else System.out.println(用户名或密码有误,请重新输入); while (true);/* * 管理员菜单 * 实现管理员功能: * 1.商品入库2.商品出库3.新增商品4.查询全部商品5.按编号查询商品6.退出 */private static void createAdminView() /循环操作/ 管理员菜单System.out.println(管理员登录成功,进入管理员界面);doSystem.out.println(*欢迎进入青鸟超市库存管理系统

6、*);System.out.println(1.商品入库t2.商品出库t3.新增商品t4.查询全部商品t5.按序号查询商品t6.退出);/提示用户选择System.out.println(请输入您的选择);int choice=input.nextInt();switch(choice)/商品入库,调入库方法case 1:/提示输入要入库的编号System.out.println(请输入入库商品编号:);/定义变量接收输入的编号String goodnum=input.next();/调用方法判断库存中是否有要入库的商品if(cb.Find(goodnum).getFlag().equals(

7、SysConstans.SYS_SUCCESS)System.out.println(请输入入库数量:);int count=input.nextInt();if(count=0)Datas datas=cb.RuKu(goodnum,count);if(datas.getFlag().equals(SysConstans.SYS_SUCCESS)System.out.println(入库成功!);showList(cb.FindAll();elseSystem.out.println(入库数量必须大于0);elseSystem.out.println(无此商品,请选择3新增);break;/

8、商品出库,调出库方法case 2:do/提示输入出库商品编号System.out.println(请选择出库商品编号:);/定义变量接收编号String goodid=input.next();/先查询是否由此商品if(cb.Find(goodid).getFlag().equals(SysConstans.SYS_SUCCESS)/提示输入出库数量System.out.println(请输入出库数量:);int count=input.nextInt();if(count0)Datas datas=cb.ChuKu(goodid,count);if(datas.getFlag().equal

9、s(SysConstans.SYS_LACK)System.out.println(库存不足!);showGood(datas);break;elseSystem.out.println(出库成功!);showList(datas);break;elseSystem.out.println(出库数量必须大于0!);elseSystem.out.println(库存中无此商品,请选择3新增);break;while(true);break;case 3:/新增商品,调新增方法do/提示输入新增商品编号System.out.println(请输入新增商品的编号:);String newgoodid

10、=input.next();if(cb.Find(newgoodid).getFlag().equals(SysConstans.SYS_SUCCESS)System.out.println(商品已存在);break;elseSystem.out.println(请输入商品名称:);String name=input.next();System.out.println(请输入商品单价:);double price=input.nextDouble();System.out.println(请输入商品单位:);String unit=input.next();System.out.println

11、(请输入商品数量:);int count=input.nextInt();Goods good=new Goods(newgoodid,(name+t),price,unit,count);/把要新增的商品经过调用方法传给业务类,并接收返回值Datas datas=cb.Add(good);System.out.println(新增商品成功!);/打印商品列表showList(cb.FindAll();break;while(true);break;/查询全部商品的方法case 4:/查询商品,调用showList方法参数为Datas类型,是FindAll传回来的showList(cb.Fin

12、dAll();break;/按编号查询商品,调按编号查询方法case 5:/提示输入编号System.out.println(请输入要查询的编号:);/定义变量接收输入String id=input.next(); /判断库存中是否存在编号为goodid的商品Datas datas=cb.Find(id); /如果存在,调用方法,打印商品 if(datas.getFlag().equals(SysConstans.SYS_SUCCESS) showGood(datas); else System.out.println(没有此商品); break;case 6:/退出System.out.pr

13、intln(管理员退出成功!);System.exit(0);default :/提示无此选项System.out.println(无此选项,请重新输入:);while(true);/* * 收银员管理界面. * 实现收银员的功能: * 1.扫描商品2.修改购买商品的数量3.结账4.退出 */收银员管理界面private static void createCashierView() /循环操作收银界面while(true)System.out.println(收银员登录成功,进入收银员界面);System.out.println(*欢迎进入青鸟超市收银管理系统*);System.out.pr

14、intln(1.扫描商品t2.修改数量t3.结账t4.退出);/提示用户输入操作选项System.out.println(请输入您的选择:);int choice=input.nextInt();switch(choice)case 1:/调用扫描方法do/提示输入扫描编号System.out.println(请输入要扫描的商品编号:);String scannum=input.next();/如果查询到编号,说明商品存在,否则商品不存在if(cb.Find(scannum).getFlag().equals(SysConstans.SYS_SUCCESS)/如果商品存在,调用扫描的方法Dat

15、as datas=cb.scan(scannum);/判断返回的标识if(datas.getFlag().equals(SysConstans.SYS_SUCCESS)System.out.println(扫描成功);showScan(datas);break;elseSystem.out.println(扫描失败);/showScan(datas);break;elseSystem.out.println(商品不存在!);break;while(true);break;case 2:/修改数量的方法/判断购买列表是否为空if(cb.result().getFlag().equals(SysC

16、onstans.SYS_ERROR)System.out.println(购买列表中还没有购买物品!);continue;/循环操作数据do/提示用户输入要修改的编号,并判断购买列表中是否存在此编号System.out.println(请输入要修改的商品编号:);String changeid=input.next();Datas datas=new Datas();/调用方法判断是否存在商品编号if(hasid(changeid)/存在,提示修改数量System.out.println(请输入修改后的数量);int changenum=input.nextInt();if(changenum

17、1) datas=cb.ChangeCount(changeid,changenum);if(datas.getFlag().equals(SysConstans.SYS_LACK)System.out.println(数量不足,请确认!);showGood(cb.Find(changeid);continue;elseSystem.out.println(修改成功!);showScan(cb.result();break;elseSystem.out.println(购买数量必须大于0!);break;/如果包含,提示修改数量System.out.println(购买列表中无此商品,请核实)

18、;continue;while(true);break;case 3:/调用结账方法creatOver();break;case 4:/退出System.out.println(收银员退出系统成功!);System.exit(0);default:/错误提示System.out.println(输入有问题,请重新输入:);/* * 打印商品列表的方法,参数是Datas类型,无返回值 * 经过调用客户端业务类的方法得到返回值,打印商品列表 * param datas */打印商品列表private static void showList(Datas datas)System.out.print

19、ln(-);System.out.println(商品编号tt商品名称tttt商品单价tt单位tt数量);for(Goods good:datas.getGoodslist()System.out.println(good.getGoodid()+tt+good.getGoodname()+tt+good.getGoodprice()+tt+good.getGoodunit()+tt+good.getGoodcount();System.out.println(-);/* * 按编号查询商品的方法.得到返回值,直接打印返回值中的商品 * param datas */打印单个商品private

20、static void showGood(Datas datas)System.out.println(-);System.out.println(商品编号tt商品名称tttt商品单价tt单位tt数量);System.out.println(datas.getGood().getGoodid()+tt+datas.getGood().getGoodname()+tt+datas.getGood().getGoodprice()+tt+datas.getGood().getGoodunit()+tt+datas.getGood().getGoodcount();System.out.printl

21、n(-);/* * 收银员菜单中的扫描商品的方法后打印扫描商品列表的方法 * * param datas */打印扫描商品列表private static void showScan(Datas datas)if(datas.getFlag().equals(SysConstans.SYS_SUCCESS)/定义列表接收扫描后的购买列表ArrayList scanlist=datas.getBuylist();/输出商品列表System.out.println(商品编号t商品名称tttt数量tt单价tt金额);System.out.println(-);for(Goods good:scanl

22、ist)System.out.println(good.getGoodid()+t+good.getGoodname()+tt+good.getGoodcount()+tt+good.getGoodprice()+tt+(good.getGoodprice()*good.getGoodcount();System.out.println(-);/* * 查询购买列表中是否存在要修改数量的商品 * 参数为商品编号,如果存在,返回true.不存在则返回false * param id * return */查询购买列表中是否存在要修改数量商品的编号private static boolean ha

23、sid(String id)Datas datas=new Datas();datas.setBuylist(cb.result().getBuylist();for(Goods good:datas.getBuylist()if(good.getGoodid().equals(id)return true;return false;/* * 结账方法,分为普通结账和会员结账 * 普通结账和会员结账,分别调用普通结账方法和会员结账方法 */结账方法private static void creatOver() /首先打印购买列表,算出总金额.调用普通结账,或vip结账double money=

24、sum(cb.result();/System.out.println(您的消费金额是:+money);/提示选择结账方法if(money!=0)System.out.println(请选择结账方法:);System.out.println(1.普通结账t2.会员结账);int choice=input.nextInt();if(choice=1)/普通会员结账方法System.out.println(您的消费金额是:+money);doSystem.out.println(请输入金额:);int pay=input.nextInt();if(pay0)System.out.println(请

25、输入正确金额!);else if(pay=money)/System.out.println();/结账成功.调用结账方法,打印小票,并跳出结账.Over(money, pay);break;elseSystem.out.println(请输入正确格式:);while(true);else if(choice=2)/vip会员结账方法,会员卡号 .System.out.println(您的消费金额是:+money);System.out.print(请输入您的会员卡号:);doint vip = input.nextInt();if(vip= )System.out.print(会员卡号正确,

26、请输入您要支付的金额:);int vippay=input.nextInt();if(vippay0)if(vippaymoney)/金额足够时调用vip结账方法VipOver(money, vippay);break;elseSystem.out.println(付款金额不足);elseSystem.out.println(付款金额必须大于0!);elseSystem.out.println(您的会员卡号不正确:);while(true);elseSystem.out.println(无此结账方法);else System.out.println(您还没有扫描商品);/* * 结账时用到的计

27、算购买金额的方法,如果buylist不为空,则返回购买金额.否则返回0. * * param result * return */算出购买总金额的方法private static double sum(Datas result)/首先判断购买列表是否为空,不为空则算出购买金额if(cb.result().getFlag().equals(SysConstans.SYS_SUCCESS)ArrayList list=cb.result().getBuylist();double sum=0;/购买总额for(int i=0;ilist.size();i+)sum+=list.get(i).get

28、Goodprice()*list.get(i).getGoodcount();return sum;elsereturn 0;/计算购买数量的方法private static int sumBuyListCount(Datas result)if(cb.result().getFlag().equals(SysConstans.SYS_SUCCESS)ArrayList list=cb.result().getBuylist();int goodscount=0;for(int i=0;ilist.size();i+)goodscount+=list.get(i).getGoodcount()

29、;return goodscount;elsereturn 0;/* * 普通结账方法.返回结账视图,并清空购买菜单 * param money * param pay */普通用户结账的方法private static void Over(double money,int pay)/首先打印,小票的表头System.out.println(*);System.out.println(tttt青鸟超市);System.out.println(收银员:1001t小票号: + ticket();/显示购买列表showbuylist();/显示购买金额和购买的数量,结账提示System.out.pr

30、intln(总数量: + sumBuyListCount(cb.result()+ ttt应收: + money);System.out.println(实收: + pay + tt找零: + (pay-money);System.out.println(Date();System.out.println(此小票是您退换货及核对积分的凭证,请妥善保存!);System.out.println(*);/购买列表清空cb.clear();/* * Vip会员结账方法.返回结账视图,累计会员积分,并清空购买菜单 * param money * param pay */vip用户结账方法private

31、 static void VipOver(double money,int vippay)/首先打印,小票的表头System.out.println(*);System.out.println(tttt青鸟超市);System.out.println(收银员:1001t小票号: + ticket();/显示购买列表showbuylist();/显示购买金额和购买的数量,结账提示System.out.println(总数量: +sumBuyListCount(cb.result() + ttt应收: + money);System.out.println(实收: + vippay + tt找零:

32、 + (vippay-money);/Vip积分提示System.out.println(本次累计积分成功tt卡号: );System.out.println(消费前积分 + 本次消费积分 = 消费后积分);System.out.println( +(int)money+=+( +(int)money);System.out.println(Date();System.out.println(此小票是您退换货及核对积分的凭证,请妥善保存!);System.out.println(*);/购买列表清空cb.clear();/* * 打印购买菜单的方法. */打印购买列表的方法private st

33、atic void showbuylist()ArrayList buylist=cb.result().getBuylist();System.out.println(序tt商品名称(单位)tttt数量tt单价tt金额);System.out.println(-);for(int i=0;ibuylist.size();i+)System.out.println(i+1)+tt(+buylist.get(i).getGoodid()+)+buylist.get(i).getGoodname()+buylist.get(i).getGoodunit()+ttt+buylist.get(i).getGoodcount()+tt+buylist.get(i).getGoodprice()+tt+buylist.get(i).getGoodcount()*buylist.get(i).getGoodprice();System.out.println(-);/* * 得到日期的方法,在结账时显示日期用 * return */显示日期的方法private static String Date()Date date=new Da

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服