




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package com.mm.entity;import java.io.*;/商品类SuppressWarnings(serial)public class Goods implements Serializable private int No;/商品编号private String name;/商品名称private double price;/商品单价private int amount;/商品数量private String unit;/商品单位public int getNo() return No;public void setNo(int no) No = no;public String getUnit() return unit;public void setUnit(String unit) this.unit = unit;public String getName() return name;public void setName(String name) = name;public double getPrice() return price;public void setPrice(double price) this.price = price;public int getAmount() return amount;public void setAmount(int amount) this.amount = amount;public Goods()public Goods(int No,String name,double price,String unit,int amount)this.No=No;=name;this.price=price;this.amount=amount;this.unit=unit;=package com.mm.entity;import java.util.Scanner;import com.mm.manager.*;/菜单类public class Menu /商品库存管理菜单public static final void goodsMenu()System.out.println(*欢迎登录青鸟超市管理系统*);Scanner input=new Scanner(System.in);GoodsManger gm=new GoodsManger();boolean result=true;while(result)System.out.print(请选择进行的操作:);System.out.print( 1.商品入库);System.out.print( 2.商品出库);System.out.print( 3.新增商品);System.out.print( 4.查询全部商品);System.out.print( 5.按序查询号查询);System.out.print( 6.退出n);switch(input.nextInt()case 1:gm.inStorage();break;case 2:gm.outStorage();break;case 3:gm.add();break;case 4:gm.check();break;case 5:gm.checkByNo();break;case 6: result=false;break;default:System.out.println(t您的选择有误。);/收银管理菜单public static final void orderMenu()System.out.println(*欢迎登录青鸟超市管理系统*);Scanner input=new Scanner(System.in);OrderManager om=new OrderManager();boolean result=true;while(result)System.out.print(请选择进行的操作:);System.out.print( 1.扫描商品);System.out.print( 2.修改数量);System.out.print( 3.结账);System.out.print( 4.退出n);switch(input.nextInt()case 1:om.scan();/执行扫描break;case 2:om.modify();/修改数量break;case 3:om.account();/结账break;case 4: result=false;break;default:System.out.println(t您的选择有误。);=package com.mm.entity;/* * 订单类 */public class Order private String name;/所购商品名称:(编号)+名称+单位private int count;/所购商品数量private double price;/单价public String getName() return name;public void setName(String name) = name;public int getCount() return count;public void setCount(int count) this.count = count;public double getPrice() return price;public void setPrice(double price) this.price = price;public Order()public Order(String name,int count,double price)=name;this.count=count;this.price=price;=package com.mm.entity;import java.io.Serializable;/* *会员类:主要记录积分和会员号 */SuppressWarnings(serial)public class Vip implements Serializableprivate int vipNo;private int score;public int getVipNo() return vipNo;public void setVipNo(int vipNo) this.vipNo = vipNo;public int getScore() return score;public void setScore(int score) this.score = score;public Vip()public Vip(int vipNo,int score)this.vipNo=vipNo;this.score=score;=package com.mm.initialize;/通过这个类给本地初始化一个原始商品信息表(创建仓库)import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.util.ArrayList;import com.mm.entity.Goods;public class GoodsList SuppressWarnings(unchecked)public static void main(String args) Goods goo0=new Goods(1001,脉动水蜜桃 ,7.0,1.5L,50);Goods goo1=new Goods(1002,旺仔苹果Q糖 ,2.5,70g,70);Goods goo2=new Goods(1003,吉百芝麻油 ,9.5,125ml,20);Goods goo3=new Goods(1004,雀巢奶香咖啡,1.5,13g,200);Goods goo4=new Goods(1005,白玉内酯豆腐,1.0,400g,15);Goods goo5=new Goods(1006,桃李熟切片 ,6.5,400g,10);Goods goo6=new Goods(1007,白玉黄豆芽 ,2.4,350g,20);Goods goo7=new Goods(1008,喜之郎果冻 ,10.5,125g,50);ArrayList list = new ArrayList();try ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(D:goods.txt);list.add(goo0);list.add(goo1);list.add(goo2);list.add(goo3);list.add(goo4);list.add(goo5);list.add(goo6);list.add(goo7);oos.writeObject(list);oos.close(); catch (IOException e) e.printStackTrace();=package com.mm.initialize;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.util.ArrayList;import com.mm.entity.Vip;/* * 用来创建一个存储会员信息的库 */public class VipList public static void main(String args) throws FileNotFoundException, IOException Vip v1=new Vip(2001,200);Vip v2=new Vip(2002,800);Vip v3=new Vip(2003,2000);Vip v4=new Vip(2004,2100);Vip v5=new Vip(2005,1200);Vip v6=new Vip(2006,3200);Vip v7=new Vip(2007,290);ArrayList list=new ArrayList();list.add(v1);list.add(v2);list.add(v3);list.add(v4);list.add(v5);list.add(v6);list.add(v7);ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(D:vip.txt);oos.writeObject(list);oos.close();=package com.mm.client;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import .Socket;import .UnknownHostException;import java.util.Scanner;import com.mm.entity.Menu;public class MrgClient public static String username;public static void main(String args) throws UnknownHostException, IOException Scanner input=new Scanner(System.in);Socket socket=new Socket(localhost,10001);BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream();BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream();System.out.println(请输入用户名:);username=input.next();System.out.println(请输入密码:);String password=input.next();bw.write(username+password);bw.flush();socket.shutdownOutput();String reply=br.readLine();if(reply.equals(登录成功)System.out.println(reply);/进入库管员界面 Menu.goodsMenu();else if(reply.equals(load successed!)System.out.println(reply);/进入收银员界面Menu.orderMenu();elseSystem.out.println(reply);bw.close();br.close();socket.close();=package com.mm.server;import java.io.IOException;import .ServerSocket;import .Socket;public class MgrServer public static void main(String args) throws IOException ServerSocket ss=new ServerSocket(10001);Socket socket=null;/搞个死循环,让服务器一直监听端口while(true)socket=ss.accept();MgrThread st=new MgrThread(socket);/启动一次程序创建一个线程st.start();=package com.mm.server;import java.io.*;import .Socket;public class MgrThread extends Threadprivate Socket socket;public MgrThread(Socket socket)this.socket=socket;public void run()tryBufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream();BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream();String admin = br.readLine();System.out.println(有用户请求登录);if(admin.equals(admin1+888888)|admin.equals(admin2+888888)|admin.equals(admin3+888888)bw.write(登录成功);bw.flush();else if(admin.equals(1001+888888)|admin.equals(1002+888888)|admin.equals(1003+888888)bw.write(load successed!);bw.flush();elsebw.write(用户名或者密码错误!);bw.flush();bw.close();br.close();socket.close();catch(IOException e)e.printStackTrace();=package com.mm.manager;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;import java.util.ArrayList;import java.util.Scanner;import com.mm.entity.Goods;/* * 商品管理类,包括对商品的入库,出库,新增,删除,按编号查询,全部商品查询等 * author Administrator * */SuppressWarnings(serial)public class GoodsManger implements Serializable public static final File f = new File(D:goods.txt);public static ArrayList list=null;/ 定义一个ArrayList类变量,接收从本地读来的ArrayList对象/获取本地库存列表SuppressWarnings(unchecked)public synchronized static ArrayList getList() ObjectInputStream ois=null;try ois = new ObjectInputStream(new FileInputStream(f);if(ois.available()!=-1)list = (ArrayList) ois.readObject();/ 从本地读取商品库存信息列表else ois.close();catch (ClassNotFoundException e) e.printStackTrace();catch (IOException e) e.printStackTrace();finallyif(ois!=null)try ois.close(); catch (IOException e) e.printStackTrace();return list;/ 查询全部商品public void check()list=getList();/ 打印菜单表头System.out.println(商品编号t + 商品名称ttt + 商品单价tt + 单位tt+数量);/ 打印菜单列表-遍历读来的ArrayList集合for (Goods s : list) if(s.getName().length()5)System.out.println(s.getNo() + t + s.getName() + ttt + s.getPrice()+tt+s.getUnit()+tt+ s.getAmount();elseSystem.out.println(s.getNo() + t + s.getName() + tt + s.getPrice()+tt+s.getUnit()+tt+ s.getAmount();/ 商品入库(要传入编号)public synchronized void inStorage()list =getList();ObjectOutputStream oos=null;try oos = new ObjectOutputStream(new FileOutputStream(f); catch (FileNotFoundException e1) e1.printStackTrace(); catch (IOException e1) e1.printStackTrace();/ 遍历ArrayList若送来的商品在库中存在则改变 :原有数量=原有数量+新增数量,否则提示选择新增商品boolean contain = false;/ 作为原库中是否包含有此新增商品的标记,默认不包含/ 包含就只改变数目System.out.println(请输入商品编号:);Scanner input =new Scanner(System.in);int No=input.nextInt();for (int i = 0; i list.size(); i+) if (contain=(No=list.get(i).getNo() System.out.print(入库数量: );int amount=input.nextInt();(list.get(i).setAmount(list.get(i).getAmount()+amount);/ 更新原有数量=原有数量+新增数量System.out.println(入库成功!);try oos.writeObject(list);oos.flush(); catch (IOException e) e.printStackTrace();break;if(!contain)System.out.println(请选择编号3:新增商品);/ 商品出库(要传入编号)public synchronized void outStorage()list =getList();ObjectOutputStream oos=null;try oos = new ObjectOutputStream(new FileOutputStream(f); catch (FileNotFoundException e1) e1.printStackTrace(); catch (IOException e1) e1.printStackTrace();boolean contain = false;/ 作为原库中是否包含有此新增商品的标记,默认不包含Scanner input =new Scanner(System.in);doSystem.out.println(请输入商品编号:);int No=input.nextInt();for (int i = 0; i list.size(); i+) Goods good=list.get(i);if (contain=(No=good.getNo() System.out.print(出库数量: );int amount=input.nextInt();if(good.getAmount()amount)System.out.println(库存不足,请核实,出库失败!);System.out.println(商品编号tt + 商品名称tt + 商品单价tt + 单位tt+数量);System.out.println(good.getNo() + tt + good.getName() + tt + tt + good.getPrice()+good.getUnit()+tt+ good.getAmount();break;elsegood.setAmount(good.getAmount()-amount);/ 更新原有数量=原有数量+新增数量System.out.println(入库成功!);check();try oos.writeObject(list);oos.flush(); catch (IOException e) e.printStackTrace();break;if(!contain)System.out.println(没有此商品!);while(!contain);/如果不存在继续输入编号/ 新增商品public synchronized void add() Scanner input =new Scanner(System.in);list =getList();ObjectOutputStream oos = null;try oos = new ObjectOutputStream(new FileOutputStream(f); catch (FileNotFoundException e) System.out.println(找不到文件!); catch (IOException e) e.printStackTrace();boolean contain = false;/ 作为原库中是否包含有此新增商品的标记,默认不包含Goods good=null;doSystem.out.print(输入商品编号: );int No=input.nextInt();for (int i = 0; i list.size(); i+) good=list.get(i);if (contain =(No=(good.getNo()/ 查找原库存中是否有此编号System.out.println(此编号已存在!);break;/若原库中无此编号,则此编号有效,可以入库if(!contain)System.out.print(输入商品名称:);String name=input.next();System.out.print(输入商品价格:);double price=input.nextDouble();System.out.print(输入商品单位:);String unit=input.next();System.out.print(输入商品数量:);int amount=input.nextInt();list.add(new Goods(No,name,price,unit,amount);/构造一个Goods对象加入库存表中try oos.writeObject(list);oos.flush(); catch (IOException e) e.printStackTrace();while(contain);/ 按查询号查询商品public void checkByNo()list = getList();boolean contain = false;/ 作为原库中是否包含有此新增的商品,默认不包含Scanner input = new Scanner(System.in);System.out.print(输入商品编号:);int No=input.nextInt();for (int i = 0; i list.size(); i+) Goods good=list.get(i);if (contain =(No=good.getNo() System.out.println(商品编号tt + 商品名称tt + 商品单价tt + 单位tt+数量);System.out.println(good.getNo() + tt + good.getName() + t + good.getPrice()+ tt+good.getUnit()+tt+ good.getAmount();break;if (!contain) System.out.println(对不起,没有此商品!);=package com.mm.manager;import java.io.*;import java.text.SimpleDateFormat;import java.util.*;import com.mm.entity.*;/订单管理public class OrderManager public static double sum=0;/总金额public static int number=0;/购物总数量Scanner input =new Scanner(System.in);ArrayListlist=GoodsManger.getList();HashMap orderMap=new HashMap();/扫描商品public void scan()System.out.print(输入要扫描的商品编号:);int No=input.nextInt();Goods good=null;boolean contain = false;/ 作为原库中是否包含有此商品编号,默认不包含for (int i = 0; i list.size(); i+) good=list.get(i);if (contain =(No=good.getNo() String orderName=(+good.getNo()+)+good.getName()+good.getUnit();Order order=new Order(orderName,1,good.getPrice();System.out.println(扫描成功!);orderMap.put(good.getNo(), order);break;if (!contain) System.out.println(对不起,没有此商品!);/显示已扫描商品Set keySet=orderMap.keySet();System.out.println(商品名称ttt数量t单价t金额);System.out.println(-);sum=0;for(int key:keySet)Order order=orderMap.get(key);System.out.println(order.getName()+t+order.getCount()+t+order.getPrice()+t+order.getCount()*order.getPrice();sum+=order.getCount()*order.getPrice();/结算System.out.println(-);/修改数量public void modify()sum=0;Set keySet=orderMap.keySet();System.out.print(输入要修改的商品编号:);int No=input.nextInt();boolean contain = false;/ 作为原库中是否包含有此新增的商品,默认不包含for (int i = 0; i list.size(); i+) Order order=orderMap.get(No);if (contain =(order!=null) System.out.print(输入修改数量:);int count=input.nextInt();order.setCount(count);System.out.println(商品名称ttt + 数量t + 单价t+金额);System.out.println(-);for(int key:keySet)Order o=orderMap.get(key);System.out.println(o.getName()+t+o.getCount()+t+o.getPrice()+t+o.getCount()*o.getPrice();sum+=o.getCount()*o.getPrice();/结算System.out.println(-);break;if (!contain) System.out.println(没有扫描此商品!);/打印小票public void ticket()Set keySet=orderMap.keySet();int s=1;/序号Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat(yyyyMMddHHmmss);/小票编号格式System.out.println(ttt青鸟超市);System.out.println(收银员:+com.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瓷砖五一活动宣传方案策划
- 建筑平台景观处理方案设计
- 长沙心理咨询方案
- 湖北水塔滑模施工方案
- 全面预算咨询方案书
- 学校读书角活动方案策划
- 设计咨询利润处理方案
- 五一美容活动促销方案策划
- 建筑方案设计现场勘察报告
- 咨询方案出错
- 储能电站项目进度控制与质量管理方案
- 2025年水发集团有限公司招聘(216人)考试模拟试题及答案解析
- 3.1 生活在新型民主国家(教学课件) 2025-2026学年度道德与法治 九年级上册
- 2025年安徽省政府采购评审专家考试真题库(带答案)
- 急性白血病课件
- 木粉尘防爆安全培训课件
- GB/T 46142-2025智慧城市基础设施智慧交通快速响应矩阵码应用指南
- 场景速写课件讲解
- 2025广东惠州惠城区招聘社区工作站工作人员66人笔试备考题库及答案解析
- 2025年秋二年级上册数学人教版教学计划含教学进度表
- 餐饮四个人合伙合同协议
评论
0/150
提交评论