美文网首页
训练实例——食品库存管理系统(集合类)

训练实例——食品库存管理系统(集合类)

作者: 就这样吧嘞 | 来源:发表于2019-01-24 23:18 被阅读0次

    运用集合类编写的食品库系统

    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    

    分为主类 食品类 食品管理类

    完整代码如下

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.*;
    public class Main {
        public static void main(String[] args) throws Exception {//主类
            SPGL spgl=new SPGL();
            BufferedReader shuru =new BufferedReader (new InputStreamReader(System.in));
            //InputStreamReader输入流 通过BufferedReader导入
            
            
        while(true) {//死循环 除非按0
            System.out.println("按照提示输入序号");
            System.out.println("1 食品列表");
            System.out.println("2 添加食品");
            System.out.println("3 查找食品");
            System.out.println("4 修改价格");
            System.out.println("5 删除食品");
            System.out.println("0 退出");
            
            String xuhao=shuru.readLine();//读取一行 readLine() 必须为String类型 而且会要求异常处理为 throws
            if(xuhao.equals("1")) {//输出列表
                spgl.splb();
            }
            else if(xuhao.equals("2")) {//添加食品
                System.out.println("食品编号");
                String bianhao=shuru.readLine();
                System.out.println("食品名称");
                String mincheng=shuru.readLine();
                System.out.println("食品价格");
                float jiage=Float.parseFloat(shuru.readLine());
                SP x = new SP(bianhao,mincheng,jiage); //建立一个食品类对象x 并附上属性
                spgl.addsp(x);        //将x加入到集合类aa中
            }
            
            else if(xuhao.equals("3")) {//查找商品
                System.out.println("请输入食品编号");
                String bianhao=shuru.readLine();
                spgl.spcx(bianhao);
            }
            
            else if(xuhao.equals("4")) {//修改价格
                System.out.println("请输入食品编号");
                String bianhao=shuru.readLine();
                spgl.spcx(bianhao);
                System.out.println("请输入修改价格");
                float jiage=Float.parseFloat(shuru.readLine());
                spgl.spjgxg(bianhao, jiage);
            }
            
            else if(xuhao.equals("5")) {//删除商品
                System.out.println("请输入食品编号");
                String bianhao=shuru.readLine();
                spgl.spsc(bianhao);
            }
            
            else if(xuhao.equals("0")) {//退出系统
                System.out.println("谢谢使用,再见");
                System.exit(0);//系统关闭 此系统只有一个while循环,也可用break;
                //break;
            }
            
            else {
                System.out.println("输入有误");
            }
        }
            
            
            
            
            
        }
    }
    
    class SPGL {//食品管理类
        private ArrayList aa=null;   //建立一个集合类aa 为空
        SPGL(){
            aa=new ArrayList();//初始化    aa  
        }
        
        
        public void addsp(SP i) {//添加食品
            aa.add(i);
            System.out.println("添加成功");
        }
        
        public void splb() {//食品列表
            System.out.println(" 食品编号     "+"  "+" 食品名称     "+"  "+" 食品价格     ");
            for(int i=0;i<aa.size();i++) {
                SP sp=(SP) aa.get(i);
                shuchusp(sp);
            }
        }
        
        
        public void spcx(String bh) {//食品查询(编号)
            if(aa.size()==0) {
                System.out.println("食品列表里没有食品");
            }
            int i;
            for(i=0;i<aa.size();i++) {
                SP sp=(SP) aa.get(i);//局部变量sp=遍历某个食品
                if(sp.getbianhao().equals(bh)) {  //**此处可能不能用==**
                    System.out.println(" 食品编号     "+"  "+" 食品名称     "+"  "+" 食品价格     ");
                    shuchusp(sp);
                    break;
                }
            }
            if(i==aa.size()&&(i!=0)) {  //当i累加到         aa.size()  时,说明遍历完还没找到,此时if在for外面,所以i要在for外定义              
                System.out.println("未查询到此食品");
            }   
        }
        
        
        public void spsc(String bh) {//食品删除(编号)
            if(aa.size()==0) {
                System.out.println("食品列表里没有食品");
            }
            int i;
            for(i=0;i<aa.size();i++) {
                SP sp=(SP) aa.get(i);//局部变量sp=遍历某个食品
                if(sp.getbianhao().equals(bh)) {  //**此处可能不能用==**
                    aa.remove(i);                 //删除
                    System.out.println("食品已删除成功");
                    break;
                }
            }
            if(i==aa.size()&&(i!=0)) {  //
                System.out.println("未找到到此食品,删除失败");
            }
        }
        
        
        public void spjgxg(String bh,float jg) {//食品价格修改
            if(aa.size()==0) {
                System.out.println("食品列表里没有食品");
            }
            int i;
            for(i=0;i<aa.size();i++) {
                SP sp=(SP) aa.get(i);//局部变量sp=遍历某个食品
                if(sp.getbianhao().equals(bh)) { //**此处可能不能用==**
                    sp.setjiage(jg);
                    System.out.println("价格修改成功");
                    break;
                }
            }
            if(i==aa.size()&&(i!=0)) {  //当i累加到         aa.size()  时,说明遍历完还没找到,此时if在for外面,所以i要在for外定义              
                System.out.println("未找到到此食品,价格修改失败");
            }
        }
        
        
        public void shuchusp(SP x) {//打印食品
            System.out.println(x.getbianhao()+"  "+x.getmingcheng()+"  "+x.getjiage());
        }
    }
    
    
    
    class SP{//食品类
        private String bianhao;
        private String mingcheng;
        private float jiage;
    
        SP(String bianhao,String mingcheng,float jiage) {
            this.bianhao=bianhao;
            this.mingcheng=mingcheng;
            this.jiage=jiage;
        }
        public String getbianhao() {
            return bianhao;
            
        }
        public String getmingcheng() {
            return mingcheng;
            
        }
        public float getjiage() {
            return jiage;
            
        }
        public void setbianhao(String i) {
            this.bianhao=i;
        }
        public void setmingcheng(String i) {
            this.mingcheng=i;
        }
        public void setjiage(float i) {
            this.jiage=i;
        }
    }
    

    测试结果:

    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    2
    食品编号
    001
    食品名称
    wertyui
    食品价格
    99
    添加成功
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    2
    食品编号
    002
    食品名称
    cvghui
    食品价格
    38
    添加成功
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    2
    食品编号
    003
    食品名称
    udjssxcf
    食品价格
    67
    添加成功
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    1
     食品编号        食品名称        食品价格     
    001  wertyui  99.0
    002  cvghui  38.0
    003  udjssxcf  67.0
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    3
    请输入食品编号
    002
     食品编号        食品名称        食品价格     
    002  cvghui  38.0
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    4
    请输入食品编号
    001
     食品编号        食品名称        食品价格     
    001  wertyui  99.0
    请输入修改价格
    98
    价格修改成功
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    5
    请输入食品编号
    002
    食品已删除成功
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    1
     食品编号        食品名称        食品价格     
    001  wertyui  98.0
    003  udjssxcf  67.0
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    
    输入有误
    按照提示输入序号
    1 食品列表
    2 添加食品
    3 查找食品
    4 修改价格
    5 删除食品
    0 退出
    0
    谢谢使用,再见
    

    目前发现的部分缺陷如下:

    1. 食品列表未增加空判断
    2. 食品编号未限制

    总结:目的主要熟练集合类的使用,目的达成。通过之后界面完善,可以更加接近真实系统。目前缺陷不影响程序运行。

    相关文章

      网友评论

          本文标题:训练实例——食品库存管理系统(集合类)

          本文链接:https://www.haomeiwen.com/subject/cimejqtx.html