Java模拟公司置办货物系统(二)
採用MVC风格,将数据写入文件,模拟公司置办货物系统。 
A类表示普通员工,B类表示部门精力,C类表示採购部,D类表示资源管理部。
订单状态 1.表示申请状态 2.表示通过审批 3.表示未通过审批 4.表示订单完毕,购物完毕
第三步:创建Po类,代表採购部批准的订单类.
package com.jereh14;
public class Po implements java.io.Serializable{
    public int getPor_no() {
        return por_no;
    }
    public void setPor_no(int por_no) {
        this.por_no = por_no;
    }
    public String getPart_desc() {
        return part_desc;
    }
    public int getPo_no() {
        return po_no;
    }
    public void setPo_no(int po_no) {
        this.po_no = po_no;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public String getComp() {
        return comp;
    }
    public void setComp(String comp) {
        this.comp = comp;
    }
    public String getOrd_date() {
        return ord_date;
    }
    public void setOrd_date(String ord_date) {
        this.ord_date = ord_date;
    }
    public String getOrd_emp() {
        return ord_emp;
    }
    public void setOrd_emp(String ord_emp) {
        this.ord_emp = ord_emp;
    }
    public void setPart_desc(String part_desc) {
        this.part_desc = part_desc;
    }
    public String getPart_type() {
        return part_type;
    }
    public void setPart_type(String part_type) {
        this.part_type = part_type;
    }
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
    public String getPnd() {
        return pnd;
    }
    public void setPnd(String pnd) {
        this.pnd = pnd;
    }
    public int getStus() {
        return stus;
    }
    public void setStus(int stus) {
        this.stus = stus;
    }
    private int po_no;
    private int por_no;
    private String part_desc;
    private String part_type;
    private int count;
    private double price;
    private String comp;
    private String pnd;
    private String ord_date;
    private String ord_emp;
    private int stus;
}
定义PoBiz类,实现购买的物品入库方法.
package com.jereh14;
import java.io.*;
import java.util.*;
public class PoBiz {
private List<Po> list = new ArrayList<Po>();
    public void addPo(Po po){
        readDb();
        list.add(po);
        writeDb();
    }
    public void showPo(){
        readDb();
        Iterator<Po> i = list.iterator();
            while(i.hasNext()){
                Po p = i.next();
                System.out.println(p.getPo_no()+"\t"+p.getPor_no()+"\t"+p.getPart_desc()+"\t"+p.getPart_type()+"\t"+
                        p.getCount()+"\t"+p.getPrice()+"\t"+p.getStus()+"\t"+p.getComp()+"\t"+p.getPnd()+"\t"+p.getOrd_date()+"\t"+
                        p.getOrd_emp());
            }
        writeDb();
    }
    public boolean check(int por_no){
        Iterator<Po> i = list.iterator();
        boolean bool = false;
        while(i.hasNext()){
            Po p = i.next();
            if(p.getPor_no() == por_no){
                bool = true;
                break;
            }else{
                bool = false;
            }
        }
        return bool;
    }
    public void readDb(){
        FileInputStream fis  = null;
        ObjectInputStream is = null;
        try {
            fis = new FileInputStream("F:\\test\\Po.txt");
            is = new ObjectInputStream(fis);
            list = (List<Po>) is.readObject();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    public void writeDb(){
        FileOutputStream fos  = null;
        ObjectOutputStream os = null;
        try {
            fos = new FileOutputStream("F:\\test\\Po.txt");
            os  = new ObjectOutputStream(fos);
            os.writeObject(list);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                os.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}定义PoView类,用于採购部确定经过审批的界面。订单状态变为4。
package com.jereh14;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class PoView {
    private int i = 0;
    public void showInfoView(){
        Scanner scn = new Scanner(System.in);
        PorBiz pb   = new PorBiz();
        PoBiz  pbz  = new PoBiz();
        Po po = null;
        Por por = null;
        System.out.println("=======================================订单审批=======================================\n");
        System.out.println("编号\t名称\t型号\t数量\t用途\t须要日期\t申请日期\t状态\t申请者\t批准日期\t审核者\n");
        pb.showPor(3);
        while(true){
            System.out.println("\n******************************1、选单订货\t\t2、退出*******************************");
            System.out.print("请选择您的操作:");
            int chooseNum = scn.nextInt();
            int porId = -1;
            switch(chooseNum){
            case 1:
                System.out.print("请输入您要操作的单号:");
                porId = scn.nextInt();
                if((por=pb.getPor(porId))!=null){
                    System.out.print("请输入订货数量:");
                    int por_num = scn.nextInt();
                    System.out.print("请输入单位价格:");
                    double price = scn.nextDouble();
                    System.out.print("请输入供应商:");
                    String comp = scn.next();
                    Date date = new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
                    po = new Po();
                    po.setPo_no(i++);
                    po.setPor_no(por.getPor_no());
                    po.setPart_desc(por.getPart_desc());
                    po.setPart_type(por.getPart_type());
                    po.setCount(por_num);
                    po.setPrice(price);
                    po.setComp(comp);
                    po.setPnd(por.getPnd());
                    po.setOrd_date(sdf.format(date));
                    po.setOrd_emp(por.getRgdt_emp());
                    po.setStus(4);
                    pbz.addPo(po);
                    pb.changeStuts(porId, 3);
                    if(pb.check(porId)){
                        System.out.println("--加入成功!
--");
                    }else{
                        System.out.println("--加入失败!
--");
                    }
                }else{
                    System.out.println("--该订单不存在。--\n");
                }
                break;
            case 2:
                System.exit(0);
                System.out.println("谢谢您的使用!");
                break;
                default:
                    System.out.println("--输入有误。--");
                    break;
            }
        }
    }
}
定义PoCfView类,用来仓库物品查询.
package com.jereh14;
import java.util.Scanner;
public class PoCfView {
    public void showInfoView(){
        Scanner scn = new Scanner(System.in);
        PorBiz pb   = new PorBiz();
        PoBiz  pbz  = new PoBiz();
        while(true){
            System.out.println("=======================================仓库查询=======================================\n");
            System.out.println("========================请选择您的操作:1、查看仓库\t\t2、退出======================");
            int chooseNum = scn.nextInt();
            switch(chooseNum){
            case 1:
                System.out.println("\n订货编号\t申请编号\t名称\t型号\t数量\t单位价格\t状态\t供应商\t须要日期\t订货日期\t订货者\n");
                pbz.showPo();
                System.out.println("\n************************************************************************************");               break;
            case 2:
                System.out.println("谢谢您的使用。");
                System.exit(0);
                break;
                default:
                    System.out.println("--输入有误!
--");
                    break;
            }
        }
    }
}执行效果图:
第四歩:定义Test类将各个View组合起来。
package com.jereh14;
import java.util.Scanner;
public class Test {
    public static void main(String[] args){
        Scanner scn      = new Scanner(System.in);
        EmployeerBiz elb = new EmployeerBiz();
        EmployeerView elv = new EmployeerView();
        PorView prv       = new PorView();
        PorCfView pcv    = new PorCfView();
        PoCfView pfv      = new PoCfView();
        PoView pv        = new PoView();
        System.out.println("==========================欢迎来到大冰公司===========================");
        while(true){
            System.out.print("\n\t\t\t请输入工号:");
            int userId = scn.nextInt();
            System.out.print("\t\t\t请输入密码:");
            String password = scn.next();
            String type = elb.searchPor(userId, password);
            if(type!=null){
                char ch = type.charAt(0);
                switch(ch){
                case 'A':
                    System.out.println("\n经检測,你的身份是普通员工,能够进行订单申请\n");
                    prv.porView();
                    break;
                case 'B':
                    System.out.println("\n经检測。你的身份是部门经理,能够进行订单处理\n");
                    pcv.showInfoView();
                    break;
                case 'C':
                    System.out.println("\n经检測,你的身份是採购部人员,能够将批准的订单\n");
                    pv.showInfoView();
                    break;
                case 'D':
                    System.out.println("\n经检測,你的身份是资源管理部人员\n");
                    pfv.showInfoView();
                    break;
                    default:
                        break;
                }
            }else if(userId==0&&password.equals("0")){
                System.out.println("\n经检測您是尊贵的管理员\n");
                elv.empView();
            }else{
                System.out.println("你不是本公司员工!
");
            }
        }
    }
}Java模拟公司置办货物系统(二)的更多相关文章
- Java模拟登录系统抓取内容【转载】
		没有看考勤的习惯,导致我的一天班白上了,都是钱啊,系统也不发个邮件通知下.... 为了避免以后还有类似状况特别写了个java模拟登录抓取考勤内容的方法(部分代码来自网络),希望有人修改后也可以 ... 
- Java模拟登录带验证码的教务系统(原理详解)
		一:原理 客户端访问服务器,服务器通过Session对象记录会话,服务器可以指定一个唯一的session ID作为cookie来代表每个客户端,用来识别这个客户端接下来的请求. 我们通过Chrome浏 ... 
- 北京一家JAVA开发公司面试题(留给后人)
		1.jsp有哪些内置对象?作用分别是什么? 2.描述一下servlet的生命周期和基本架构. 3.多线程有几种实现方法,都是什么? 同步有几种实现方法,都是什么? 4.作用域public priv ... 
- Java高级面试题解析(二):百度Java面试题前200页(精选)
		基本概念 操作系统中 heap 和 stack 的区别 heap是堆,stack是栈,是两种不同的数据结构.堆是队列优先,先进先出:栈是先进后出. 在java多线程中,每个线程都有自己的栈:不同的线程 ... 
- java模拟post请求发送json
		java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main ... 
- 语言模拟ATM自动取款机系统
		C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ... 
- [Java] 模拟HTTP的Get和Post请求
		在之前,写了篇Java模拟HTTP的Get和Post请求的文章,这篇文章起源与和一个朋友砍飞信诈骗网站的问题,于是动用了Apache的comments-net包,也实现了get和post的http请求 ... 
- [Java聊天室server]实战之二 监听类
		前言 学习不论什么一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的"多谋善断":本系列尽管涉及的是socket相关的知识,但学习之前,更 ... 
- 上curl java 模拟http请求
		最近,我的项目要求java模拟http请求,获得dns解决 tcp处理过的信息特定的连接. java api提供urlConnection apache提供的httpClient都不能胜任该需求,二次 ... 
随机推荐
- Eclipse NDK 配置,不用安装Cygwin
			一.关于NDK:NDK全称:Native Development Kit.1.NDK是一系列工具的集合.NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用 ... 
- 使用Struts2服务端与android交互
			转自:http://www.cnblogs.com/android-html5/archive/2011/09/25/2534107.html android--使用Struts2服务端与androi ... 
- SHA1算法实现及详解
			1 SHA1算法简介 安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digit ... 
- ASP.NET 5 的Roadmap(转)
			这次随 Visual Studio 2015 发布的 ASP.NET 版本是 ASP.NET 4.6 与 ASP.NET 5 beta5.在 VS2015 发布的同时,微软也发布了 ASP.NET 5 ... 
- DICOM中的入门概念
			DICOM标准是医学影像界技术人员逃不掉的标准.本系列专题是JATI对DICOM标准的阐述,力图使PACS管理员和软件工程师都能理解. DICOM标准的提出者DICOM标准委员会是ISO组织的合作者. ... 
- mongodb聚合管道用法
			基本用法 db.collection.aggregate( [ { <stage> }, ... ] ) stage如下 名称 描述 $addFields 将新的字段添加到文档中,输出的文 ... 
- 实现微信小程序的3rd_session
			function 3rd_session($len) { $fp = @fopen('/dev/urandom','rb'); $result = ''; if ($fp !== FALSE) { $ ... 
- Framework元数据向导错误之BMT-MD-6001与BMT-IMP-0002
			1:错误BMT-MD-6001的两种处理方法 在Framework中创建Project后,运行元数据向导从数据库连接中向物理层导入数据表,报错如下 环境如下:Framework版本:10.2.0,Co ... 
- Libsvm和Liblinear的使用经验谈
			原文:http://blog.sina.com.cn/s/blog_5b29caf7010127vh.html Libsvm和Liblinear都是国立台湾大学的Chih-Jen Lin博士开发的,L ... 
- Java保存简单偏好的类
			该类利用Preferences保存文本,数字等简单数据,在Windows平台下,它就保存到了系统注册表中,而Linux中它存在于用户目录下的一个隐藏文件中. public class Pref{ ... 
