包结构四个包,九个类,一个资源文件客户端类packagecom.supermarket.Client;/***客户端界面*/importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.Scanner;importcom.supermarket.Tools.Datas;importcom.supermarket.Tools.SysConstans;importcom.supermarket.entity.Goods;publicclassClient{//定义扫描器,用于键盘输入publicstaticScannerinput=newScanner(System.in);//创建客户端业务类对象,调用方法publicstaticClientBcb=newClientB();publicstaticvoidmain(String[]args){do{System.out.println(***********欢迎使用青鸟超市系统*************);System.out.println(1.登录+\n2.退出);System.out.println(***********请选择1/2*************);Stringchoice=input.next();if(choice.equals(1)){//登录视图createLoginView();break;}elseif(choice.equals(2)){//退出System.exit(0);}else{//输入有误,报错System.out.println(无此选项!);}}while(true);System.out.println(***********谢谢使用青鸟超市系统*************);}/***登录视图*通过输入的用户名与密码验证用户身份,管理员则进入管理界面,收银员则进入收银界面,都不是则提示错误,并重新进行输入*/publicstaticvoidcreateLoginView(){do{//提示登录信息System.out.println(请输入用户名:);Stringname=input.next();System.out.println(请输入密码:);Stringpassword=input.next();//调用客户端登录方法,接收返回值,判断登录者的身份Datasdatas=cb.doLogin(name,password);//判断是管理员还是收银员if(datas.getFlag().equals(SysConstans.SYS_ADMIN)){createAdminView();break;}elseif(datas.getFlag().equals(SysConstans.SYS_CASHIER)){createCashierView();break;}else{System.out.println(用户名或密码有误,请重新输入);}}while(true);}/***管理员菜单*实现管理员功能:*1.商品入库2.商品出库3.新增商品4.查询全部商品5.按编号查询商品6.退出*/privatestaticvoidcreateAdminView(){//循环操作//管理员菜单System.out.println(管理员登录成功,进入管理员界面);do{System.out.println(***********欢迎进入青鸟超市库存管理系统*************);System.out.println(1.商品入库\t2.商品出库\t3.新增商品\t4.查询全部商品\t5.按序号查询商品\t6.退出);//提示用户选择System.out.println(请输入您的选择);intchoice=input.nextInt();switch(choice){//商品入库,调入库方法case1://提示输入要入库的编号System.out.println(请输入入库商品编号:);//定义变量接收输入的编号Stringgoodnum=input.next();//调用方法判断库存中是否有要入库的商品if(cb.Find(goodnum).getFlag().equals(SysConstans.SYS_SUCCESS)){System.out.println(请输入入库数量:);intcount=input.nextInt();if(count=0){Datasdatas=cb.RuKu(goodnum,count);if(datas.getFlag().equals(SysConstans.SYS_SUCCESS)){System.out.println(入库成功!);showList(cb.FindAll());}}else{System.out.println(入库数量必须大于0);}}else{System.out.println(无此商品,请选择3新增);}break;//商品出库,调出库方法case2:do{//提示输入出库商品编号System.out.println(请选择出库商品编号:);//定义变量接收编号Stringgoodid=input.next();//先查询是否由此商品if(cb.Find(goodid).getFlag().equals(SysConstans.SYS_SUCCESS)){//提示输入出库数量System.out.println(请输入出库数量:);intcount=input.nextInt();if(count0){Datasdatas=cb.ChuKu(goodid,count);if(datas.getFlag().equals(SysConstans.SYS_LACK)){System.out.println(库存不足!);showGood(datas);break;}else{System.out.println(出库成功!);showList(datas);break;}}else{System.out.println(出库数量必须大于0!);}}else{System.out.println(库存中无此商品,请选择3新增);break;}}while(true);break;case3://新增商品,调新增方法do{//提示输入新增商品编号System.out.println(请输入新增商品的编号:);Stringnewgoodid=input.next();if(cb.Find(newgoodid).getFlag().equals(SysConstans.SYS_SUCCESS)){System.out.println(商品已存在);break;}else{System.out.println(请输入商品名称:);Stringname=input.next();System.out.println(请输入商品单价:);doubleprice=input.nextDouble();System.out.println(请输入商品单位:);Stringunit=input.next();System.out.println(请输入商品数量:);intcount=input.nextInt();Goodsgood=newGoods(newgoodid,(name+\t),price,unit,count);//把要新增的商品通过调用方法传给业务类,并接收返回值Datasdatas=cb.Add(good);System.out.println(新增商品成功!);//打印商品列表showList(cb.FindAll());break;}}while(true);break;//查询全部商品的方法case4://查询商品,调用showList方法参数为Datas类型,是FindAll传回来的showList(cb.FindAll());break;//按编号查询商品,调按编号查询方法case5://提示输入编号System.out.println(请输入要查询的编号:);//定义变量接收输入Stringid=input.next();//判断库存中是否存在编号为goodid的商品Datasdatas=cb.Find(id);//如果存在,调用方法,打印商品if(datas.getFlag().equals(SysConstans.SYS_SUCCESS)){showGood(datas);}else{System.out.println(没有此商品);}break;case6://退出System.out.println(管理员退出成功!);System.exit(0);default://提示无此选项System.out.println(无此选项,请重新输入:);}}while(true);}/***收银员管理界面.*实现收银员的功能:*1.扫描商品2.修改购买商品的数量3.结账4.退出*///收银员管理界面privatestaticvoidcreateCashierView(){//循环操作收银界面while(true){System.out.println(收银员登录成功,进入收银员界面);System.out.println(***********欢迎进入青鸟超市收银管理系统*************);System.out.println(1.扫描商品\t2.修改数量\t3.结账\t4.退出);//提示用户输入操作选项System.out.println(请输入您的选择:);intchoice=input.nextInt();switch(choice){case1://调用扫描方法do{//提示输入扫描编号System.out.println(请输入要扫描的商品编号:);Stringscannum=input.next();//如果查询到编号,说明商品存在,否则商品不存在if(cb.Find(scannum).getFlag().equals(SysConstans.SYS_SUCCESS)){//如果商品存在,调用扫描的方法Datasdatas=cb.scan(scannum);//判断返回的标识if(datas.getFlag().equals(SysConstans.SYS_SUCCESS)){System.out.println(扫描成功);showScan(datas);break;}else{System.out.println(扫描失败);//showScan(datas);break;}}else{System.out.println(商品不存在!);break;}}while(true);break;case2://修改数量的方法//判断购买列表是否为空if(cb.result().getFlag().equals(SysConstans.SYS_ERROR)){System.out.println(购买列表中还没有购买物品!);continue;}//循环操作数据do{//提示用户输入要修改的编号,并判断购买列表中是否存在此编号System.out.println(请输入要修改的商品编号:);Stringchangeid=input.next();Datasdatas=newDatas();//调用方法判断是否存在商品编号if(hasid(changeid)){//存在,提示修改数量System.out.println(请输入修改后的数量);intchangenum=input.nextInt();if(changenum1){datas=cb.ChangeCount(changeid,changenum);if(datas.getFlag().equals(SysConstans.S