1、版权所有人:李蒙 学士后java 第一单元,超市收银系统,代码 首先分为4个包 9个类 一个源文件 首先源文件 起名 sys.properties 源文件内容: HOST= localhost PORT=8888 Clientjiemian类的内容: import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Scanner; import publiClass.Datas;
2、 import publiClass.SysConstants; import datas.Shangpin; import datas.Yuangong; public class ClientJiemian { //控制台输入对象 private static Scanner input = new Scanner(System.in); //客户端业务对象 private static ClientYehu clientyehu =new ClientYehu(); public static void main(String[] arg
3、s) { System.out.println("**************************************************************************************************"); System.out.println("\t\t\t\t\t欢迎使用青鸟超市管理系统"); do { System.out.println("1. 登陆\n2. 退出系统"); System.out.println("=========================
4、请选择1/2=============================================="); String a = input.next(); if (a.equalsIgnoreCase("1")) { createLoginView(); break; } else if (a.equalsIgnoreCase("2")) { System.out.println("系统退出成功!"); break; } else System.out.printl
5、n("您选择有误!请重新选择"); } while (true); }//实现客户端登陆视图的生成 public static void createLoginView(){ do { System.out.println("请输入用户名:"); String name = input.next(); System.out.println("请输入密码:"); String password = input.next(); Datas datas = clientyehu.doLogin(name, passw
6、ord); //判断是管理员还是收银员 if (datas.getFlag().equals(SysConstants.SYS_ADMIN)) { createAdminView(); break; } else if (datas.getFlag().equals(SysConstants.SYS_USER)) { createUserView(); break; } else { System.out.println("用户名或密码有误,请重新输入"); } } while (true);
7、 } //实现客户端超市库存管理系统视图的生成 private static void createAdminView() { System.out .println("***********************************欢迎登陆青鸟超市库存管理系统*******************************************"); do { System.out .println("请选择进行的操作:1. 商品入库\t2. 商品出库\t3. 新增商品\t4. 查看全部商品\t5. 按编号查询商品\t
8、6. 退出"); String option = input.next(); // 商品入库 if (option.equals("1")) { String id = null; int num = 0; System.out.print("请输入商品编号:"); id = input.next(); if (clientyehu.doFind(id).getFlag() .equals(SysConstants.SYS_ERROR)) { System.out.println("没有
9、此商品,请选择3:新增商品!"); look(clientyehu.doFindAll()); } else { System.out.print("请输入入库数量:"); num = input.nextInt(); if (num > 0) { if (clientyehu.doRuku(id, num).getFlag() .equals(SysConstants.SYS_SUCCESS)) { System.out.println("入库成功!"); look(cl
10、ientyehu.doFindAll()); } } else { System.out.println("入库失败!数量必须大于0"); } } } else if (option.equals("2")) { String id = null; int num = 0; do { System.out.print("请输入商品编号:"); id = input.next(); Datas data = clientyehu.doFind(id);
11、 if (data.getFlag().equals(SysConstants.SYS_ERROR)) { System.out.println("没有此商品!"); } else { System.out.print("请输入出库数量:"); num = input.nextInt(); if (num > 0) { Datas datas = clientyehu.doChuku(id, num); if (datas.getFlag().equals(SysConstants.S
12、YS_LACK)) { System.out.println("库存不足,请核实,出库失败"); perlook(data); break; } else { System.out.println("出库成功!"); look(clientyehu.doFindAll()); break; } } else { System.out.println("出库失败!数量必须大于0"); break;
13、} } } while (true); } /** * 新增商品 */ else if (option.equals("3")) { do { System.out.print("请输入编号"); String id = input.next(); if (clientyehu.doFind(id).getFlag() .equals(SysConstants.SYS_SUCCESS)) { System.out.println("此商品编号已存在!
14、"); } else { System.out.print("请输入商品名称:"); String name = input.next(); System.out.print("请输入商品价格:"); double d = input.nextDouble(); System.out.print("请输入商品单位:"); String w = input.next(); System.out.print("请输入商品数量:"); Shangpin shangpin = n
15、ew Shangpin(id, name, d, w, input.nextInt()); clientyehu.doAdd(shangpin); System.out.println("新增商品成功!"); look(clientyehu.doFindAll()); break; } } while (true); } // 查看全部商品 else if (option.equals("4")) { look(clientyehu.doFindAll()); } /
16、/ 编号查询商品 else if (option.equals("5")) { System.out.print("请输入商品编号:"); String id = input.next(); Datas data = clientyehu.doFind(id); if (data.getFlag().equals(SysConstants.SYS_SUCCESS)) perlook(data); else { System.out.println("对不起,没有此商品!"); } } /
17、/ 退出系统 else if (option.equals("6")) { System.out.println("系统退出成功!"); return; } else { System.out.println("您输入有误!"); } } while (true); } //实现客户端超市收银管理系统视图的生成 private static void createUserView() { System.out .println("*************************
18、欢迎登陆青鸟超市收银系统*******************************************"); do { System.out.println("请选择进行的操作: 1. 扫描商品\t2. 修改数量\t3. 结账\t4. 退出"); String option = input.next(); if (option.equals("1")) { System.out.print("请输入商品编号:"); String id = input.next(); if (clientyehu.doFin
19、d(id).getFlag() .equals(SysConstants.SYS_SUCCESS)) { System.out.println("扫描成功"); show(clientyehu.doScan(id)); } else { System.out.println("对不起,没有此商品,扫描失败!"); show(clientyehu.doResult()); } } // 修改商品 else if (option.equals("2")) { if (
20、clientyehu.doResult().getFlag() .equals(SysConstants.SYS_ERROR)) { System.out.println("您还没有扫描商品!"); continue; } do { System.out.print("请输入要修改的商品编号:"); String id = input.next(); if (hasGoods(id)) { System.out.print("请输入修改数量:"); Datas data
21、s = null; if (input.hasNextInt()) { int a = input.nextInt(); if (a > 1) { datas = clientyehu.doUpDate(id, a); if (datas.getFlag().equals( SysConstants.SYS_LACK)) { System.out.println("数量不足!请确认!!"); perlook(clientyehu.doFind(id))
22、 continue; } else { System.out.println("修改成功!"); show(clientyehu.doResult()); break; } } else { System.out.println("数量必须大于0!"); continue; } } else { input.next(); System.out.println("请
23、输入正确格式!"); continue; } } System.out.println("对不起,还没有扫描此商品!"); } while (true); } // 结账 else if (option.equals("3")) { createover(); } else if (option.equals("4")) { return; } else { System.out.println("您输入有误,请确认!"); } } whi
24、le (true); } private static void createover() { double price = sum(clientyehu.doResult()); if (price != 0) { System.out.println("总金额为: " + price); System.out.println("请选择: 1. 普通结账\t2. 会员结账"); String a = input.next(); if (a.equals("1")) { System.out.print("请输入金额:");
25、 int money = 0; do { Scanner input = new Scanner(System.in); if (input.hasNextInt()) { money = input.nextInt(); if (money < 0) { System.out.print("请输入正确金额:"); } if (money < price) { System.out.print("金额不足!请确认:"); } if (m
26、oney >= price) { createResult(money, price); break; } } else { System.out.print("请输入正确格式:"); } } while (true); } else if (a.equals("2")) { System.out.print("请输入您的会员卡号:"); String vip = input.next(); if (vip.equals("2012")) {
27、 System.out.print("会员卡号正确,请输入您要支付的金额:"); int money = 0; do { Scanner input = new Scanner(System.in); if (input.hasNextInt()) { money = input.nextInt(); if (money < 0) { System.out.println("请输入正确金额:"); } if (money < price) {
28、 System.out.println("金额不足!请确认:"); } if (money >= price) { createvipResult(money, price); break; } } else { System.out.print("请输入正确格式:"); } } while (true); } else { System.out.println("对不起,会员卡号错误!"); createov
29、er(); } } else { System.out.println("您输入有误!"); } } else { System.out.println("您还没有扫描商品"); } } private static void perlook(Datas data) { System.out .println("------------------------------------------------------------------------------------------------");
30、 System.out.println("商品编号\t\t商品名称\t\t商品单价\t\t单位\t\t数量"); System.out.println(data.getShangpin().getSerialNumber() + "\t\t" + data.getShangpin().getName() + "\t" + data.getShangpin().getPrice() + "\t\t" + data.getShangpin().getUnit() + "\t\t" + data.getShangpin().getStock()); S
31、ystem.out .println("------------------------------------------------------------------------------------------------"); } private static void look(Datas doFindAll) { System.out .println("------------------------------------------------------------------------------------------------
32、");
ArrayList
33、tUnit() + "\t\t" + goods.getStock()); } System.out .println("------------------------------------------------------------------------------------------------"); } private static void createResult(int money, double price) { System.out .println("*************************
34、"); System.out.println("\t\t\t\t青鸟超市"); System.out.println("收银员:1001\t小票号:" + ticket()); display(); System.out.println("总数量:" + clientyehu.doResult().getBuyArray().size() + "\t\t应收: " + price); System.out
35、println("实收: " + money + "\t\t找零: " + (money - price)); System.out.println(date()); System.out.println("此小票是您退换货及核对积分的凭证,请妥善保存!"); System.out .println("=================================================================================================="); clientyehu.doClear(); }
36、
private static String date() {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/ hh/mm/ss");
String dat = sdf.format(date);
return dat;
}
private static void display() {
ArrayList
37、out.println("序\t\t商品名称\t\t\t\t数量\t\t单位\t\t金额"); System.out .println("------------------------------------------------------------------------------------------------"); for (int i = 0; i < list.size(); i++) { System.out.println(i + 1 + "\t\t" + "[" + list.get(i).getSerialNumber() +
38、"]" + list.get(i).getName() + list.get(i).getUnit() + "\t\t" + list.get(i).getStock() + "\t\t" + list.get(i).getPrice() + "\t\t" + list.get(i).getStock() * list.get(i).getPrice()); } System.out .println("-------------------------------------------------------------------
39、"); } private static String ticket() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmm"); String ticket = sdf.format(date) + (int) (Math.random() * 1000); return ticket; } private static void createvipResult(dou
40、ble money, double price) { System.out .println("***************************************************************************************************"); System.out.println("\t\t\t青鸟超市"); System.out.println("收银员:1001\t小票号:" + ticket()); display(); System.out.println("总数量:" + clien
41、tyehu.doResult().getBuyArray().size() + "\t\t应收: " + price); System.out.println("实收: " + money + "\t\t找零: " + (money - price)); System.out.println("本次累计积分成功\t 卡号:2012"); System.out.println("当前积分+本次消费积分+消费后积分"); System.out.println("2000+" + price + "=" + (2000 + price)); System.ou
42、t.println(date()); System.out.println("此小票是您退换货及核对积分的凭证,请妥善保存!"); System.out .println("================================================================================================"); clientyehu.doClear(); } private static double sum(Datas doResult) { if (doResult.getFlag
43、).equals(SysConstants.SYS_SUCCESS)) {
ArrayList
44、oods(String id) {
if (clientyehu.doResult().getFlag().equals(SysConstants.SYS_SUCCESS)) {
ArrayList
45、turn false;
}
private static void show(Datas doScan) {
if (doScan.getFlag().equals(SysConstants.SYS_SUCCESS)) {
ArrayList
46、"); for (int i = 0; i < list.size(); i++) { System.out.println("[" + list.get(i).getSerialNumber() + "]" + list.get(i).getName() + list.get(i).getUnit() + "\t\t" + list.get(i).getStock() + "\t\t" + list.get(i).getPri
47、ce() + "\t\t" + list.get(i).getPrice() * list.get(i).getStock()); } System.out .println("------------------------------------------------------------------------------------------------"); } } } Clientyehu类的内容 import java.io.IOException; import java.io.ObjectIn
48、putStream; import java.io.ObjectOutputStream; import .Socket; import .UnknownHostException; import publiClass.Datas; import publiClass.SysConstants; import publiClass.Tools; import datas.Shangpin; import datas.Yuangong; //用socket实现它与服务器的交互 public class ClientYehu { //创建socket实例 Soc
49、ket socket =new Socket(); //创建输入流对象 ObjectInputStream objectInputStream =null; //创建输出流对象 ObjectOutputStream objectOutputStream =null; private void initSocket(){ //实例化socket关联对象 String hostname = Tools.getVlaue(SysConstants.SYS_HOSTNAME); int port = Integer.parseInt(Tools.getVlaue(SysConstants.SYS_LISTENERPORT)); try { socket = new Socket(hostname,port); //?????? objectInputStream =new ObjectInputStream(socket.getInputStream()); objectOutputStream=new ObjectOutputStream(socket.getOutputStream()); } catch (UnknownHostExcept






