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

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

作者: 就这样吧嘞 | 来源:发表于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. 食品编号未限制

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

相关文章

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

    运用集合类编写的食品库系统 分为主类 食品类 食品管理类 完整代码如下 测试结果: 目前发现的部分缺陷如下: 食品...

  • 电商后台:库存管理

    库存管理,简单的说,就是管理商品和数量之间的关系。库存系统是电商后台系统中不可或缺的一部分,文章对库存管理系统做了...

  • 银行家算法,死锁检测算法实践

    银行家算法实践 假设资源集合R = {A,B,C},资源类A有10个实例,B有5个实例,C有7个实例,系统某一时刻...

  • Python基础018--类的创建及实例化、类继承

    类的创建以及实例化、类继承 类的创建以及实例化定义:用来描述具有相同的属性和方法的对象的集合;它定义了该集合中每个...

  • 沃尔玛采用ABC分类法的必要性

    ABC分类管理是按照品种和占领首都的库存物品被分为特殊库存(A类),库存(B)的一般重要性和库存(C类)三个等级,...

  • 基于C语言实现的仓库管理系统

    1 题目要求 该系统用于实现仓库管理,系统应支持入库、出库、库存查询以及打印。用户可自定库存警戒值,库存低于警戒值...

  • 进程、线程、协程

    进程:正在运行的程序实例,是对资源管理的集合线程:系统调度的最小单位,是对执行指令的集合协程:用户态的线程,主动的...

  • 库存的ABC管理原则

    三:库存的ABC管理原则; A类物料的数量可能只占库存的10-15%,但价值可占库存的60-70%; B类物料的数...

  • SOFABolt 源码分析11 - Config 配置管理的设计

    如上图所示,SOFABolt 整个配置管理分为五部分: 系统变量管理类:ConfigManager,配置多个实例共...

  • 仓库管理系统设计

    一,仓库管理概述 仓库管理系统(WMS)通过出库,入库、库位调拨、库存调拨等功能,综合批次管理,物料对应、库存盘点...

网友评论

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

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