超市管理系统日常功能实现

模拟真实的库存管理逻辑,完成超市管理系统的日常功能的实现
——————————欢迎光临itcast超市——————————
1:货物清单 2:添加新货物 3:删除货物 4:修改货物 5:退出系统
请您输入要操作的功能序号:
————————————————————
输入1:货物清单
——————————商品库存清单——————————
商品编号 商品名称 商品单价
9001 少林寺酥饼核桃 120.0
9002 尚康杂粮牡丹饼 20.0
9003 新疆原产哈密瓜 7.0

输入2:添加新货物
请输入新水果的名称:斯柯达苹果醋
请输入新水果的编号:9523
请输入新水果的单价:19.9

输入3:删除货物
请输入您要删除的水果编号:9523
水果信息删除完毕!

输入4:修改货物
请输入你要修改信息的水果编号:9002
请输入新的水果编号:2002
请输入新的水果名称:味道好凤梨干
请输入新的水果单价:6.5
水果信息更新完成!

输入5.退出系统

——
案例需求分析
1.完成超市商品初始化。创建商品,将商品添加到集合
2.显示来到超市能做的操作,也就是显示主菜单
3.根据收到的功能选项,执行对应的功能
3.1.库存货物查询
3.2.添加新货物
3.3.删除货物
3.4.修改货物
3.5.推出系统,结束main方法的运行
4.循环,回到 2.显示主菜单
源代码

import java.util.*;

/*
 * 超市管理系统主类
 * 实现:
 * 1.商品数据的初始化
 * 2.用户的菜单选择
 * 3.根据选择实现不同的功能
 *  3.1 Rrad   查看商品
 *  3.2 Create 添加商品
 *  3.3 Delete 删除商品
 *  3.4 Update 修改商品
 *
 *  所有功能,必须定义方法实现
 *  主方法main     调用作用
 */
public class Shoop {

    public static void main(String[] args) {
        //创建ArrayList集合,存储商品类型,存储数据类型FruitItem类型
        ArrayList<FruitItem> array = new ArrayList<FruitItem>();
        //调用商品初始化方法,传递集合
        init(array);
        while(true){
            //调用菜单方法
            mainMenu();
            //调用用户选择序号方法
            int choose = chooseFunction();
            switch (choose){
            case 1:
                showFruitList(array);
                //调用货物清单
                break;

            case 2:
                addFruit(array);
                //添加货物
                break;

            case 3:
                deleteFruit(array);
                //删除货物
                break;

            case 4:
                updateFruit(array);
                //修改货物
                break;

            case 5:
                //退出
                break;

            default:
                System.out.println("输入的序号没有");
                break;
            }
        }
    }

    /*
     * 定义方法,实现商品的修改功能
     * 返回值:无
     * 参数:集合
     * 提示用户选择的是修改功能
     * 提示用户输入需要修改的商品编号
     * 遍历集合,获取每个FruitItem变量
     * 变量调用ID属性,属性和用户输入的编号比较
     * 如果相同:
     *  修改掉FruitItem中的属性值
     *  键盘输入
     */

    public static void updateFruit(ArrayList<FruitItem> array){
        System.out.println("选择的是修改功能");
        System.out.println("请输入商品的编号");

        Scanner sc = new Scanner(System.in);
        int ID =sc.nextInt();
        //遍历集合,获取每个FruitItem变量
        for( int i = 0 ; i < array.size() ; i++ ){
            FruitItem item = array.get(i);
            //获取FruitItem的属性ID,和用户输入的ID比较
            if(item.ID == ID){
                System.out.println("请你输入新的商品编号");
                item.ID = sc.nextInt();

                System.out.println("请你输入新的商品名字");
                item.name = sc.next();

                System.out.println("请你输入新的商品价格");
                item.price = sc.nextDouble();
                System.out.println("商品修改成功!");
                return;
            }
        }
        System.out.println("您输入的编号不存在!");
    }


    /*
     * 定义方法,实现商品的删除功能
     * 返回值:无
     * 参数:集合
     * 
     * 删除依靠的是商品的编号
     * 提示用户选择的是删除功能
     * 键盘输入商品的编号
     * 遍历集合,获取集合中的每个FruitItem变量
     * 变量调用属性 ID,和用户的输入的编号进行对比,相同就删除
     * 
     */
    public static void deleteFruit(ArrayList<FruitItem> array ){
        System.out.println("选择的是删除功能");
        System.out.println("请输入商品的编号");
        Scanner sc = new Scanner(System.in);

        int ID = sc.nextInt();
        //遍历集合
        for(int i = 0 ; i < array.size() ; i++){
            //获取到每个FruitItem变量
            FruitItem item = array.get(i);
            //变量,调用ID属性,和用户输入的编号比较
            if( item.ID == ID){
                //移除集合中的元素
                //集合的方法remove实现
                array.remove(i);
                System.out.println("删除成功");
                return;
            }

        }
        System.out.println("您输入的编号不存在");
    }



    /*
     * 定义方法,实现商品的添加功能
     * 返回值:无
     * 参数:集合
     * 提示用户选择的是添加商品的功能
     * 
     * 提示用户输入的是什么
     * 
     * 创建FruitItem变量,变量调用的属性
     * 将输入的每个商品属性进行赋值
     */
    public static void addFruit(ArrayList<FruitItem> array ){
        System.out.println("选择的是添加商品功能");
        //创建Scanner变量
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入商品的编号");
        //输入商品的编号
        int ID = sc.nextInt();

        System.out.println("请输入商品的名字");
        String name = sc.next();

        //输入商品的单价
        System.out.println("输入商品的单价");
        double price = sc.nextDouble();

        //创建FruitItem变量
        FruitItem item = new FruitItem();

        //item.ID
        item.ID = ID;
        item.name = name;
        item.price = price;
        array.add(item);
    }




    /*
     * 定义方法,实现显示货物清单的功能
     * 返回值:无
     * 参数:集合
     * 遍历集合,获取集合中的每个FruitItem变量,调用属性
     */
    public static void showFruitList(ArrayList<FruitItem> array){
        System.out.println();
        System.out.println("==========商品库存清单==========");
        System.out.println("商品编号          商品名称          商品单价 ");
        //遍历集合
        for(int i = 0 ; i < array.size(); i++  ){
            //集合get方法,取出每个FruitItem变量,可以使用FruitItem接受get结果
            FruitItem item  =  array.get(i);
            //变量item调用类中属性
            System.out.println(item.ID +"  "+item.name+"   "+item.price);
        }
    }



    /*
     * 定义方法,实现接受用户的键盘输入
     * 返回编号
     */
    public static int chooseFunction(){
        Scanner sc = new Scanner(System.in);
        return sc.nextInt();
    }

    /*
     * 定义方法,实现主菜单
     * 提示用户有哪些选择 rang用户选择序号
     * 返回值:无
     * 参数:无
     */
    public static void mainMenu(){
        System.out.println("==========欢迎光临ItCast超市==========");
        System.out.println("1: 货物清单  2:添加货物  3:删除货物  4:修改货物  5:退出");
        System.out.println("请您输入要操作的功能序号");
    }

    /*
     * 定义方法,实现商品数据的初始化
     * 先将一部分数据,存储集合中
     * 返回值:无
     * 参数:集合
     * 方法名:init
     */
    public static void init(ArrayList<FruitItem> array){
        FruitItem f1 = new FruitItem();
        f1.ID = 9527;
        f1.name = "少林寺酥饼核桃";
        f1.price = 12.7;

        FruitItem f2 = new FruitItem();
        f2.ID = 9008;
        f2.name = "尚康杂粮牡丹饼";
        f2.price = 5.6;

        FruitItem f3 = new FruitItem();
        f3.ID = 9879;
        f3.name = "新疆原产哈密瓜";
        f3.price = 599.6;

        //创建的3个FruitItem类型变量,存储到集合中
        array.add(f1);
        array.add(f2);
        array.add(f3);      
    }
}
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一,开源说明 这是一套如此完整的代码,它包括了一个软件开发过程中,从设计到实现的所有文档,资源以及完整源代码。也许许多人不清楚怎么以一个软件工程的思想去完成软件开发,这就是我发布所有源代码的目的。软件=文档+程序,这是许多人都知道的;履行这个思想,便是本套程序的开发守则。但由于这个课程设计的时间太短,才2周,有些地方做得比较马虎,或出现某些错误;但对大多数学习VB的朋友,还是有许多借鉴的地方的。 我不希望这套程序被某些朋友用于交差般地去应付他自己的课程设计,这样我会很生气;也不希望被用于一些异常的场合,这样我会很郁闷。感谢play78里面的demon给予我的帮助。 二,使用说明 您需要安装 MS SQL Server 2000 以及 Visual Basic 6.0 SP6 ,否则也许会有某些地方出现问题,甚至无法调试。另外,您还需要进行以下步骤,才能顺利地调试源代码: 1) 进入“数据新建”目录,运行程序 数据新建.exe。该程序提供了一个简单的方法去新建程序需要的数据库和测试数据。在程序中填写正确的SQL服务器信息即可。 2) 前台程序不是我开发的,是一个刚学习VB的同学开发的。我个人建议前台不用去看了,没有值得花费时间的地方。 3) 进入“后台管理”目录,先注册 XPMenu.ocx,否则代码运行时会发生错误哟。调试的时候,必须在登陆界面设置 SQL 服务器地址,否则会连接不上,出现假死哟(因为没有加超时控制^_^)。其他的不再多说,学习过VB的朋友自然知道怎么办。 默认管理员帐号:admin 密码:admin 4) 文档里面有完整的需求说明书,详细设计说明书,测试文档等,另外附带有活动、时序图的源设计文件,需要 Power Designer 11 才能打开。 三,代码说明 大家也许留意到程序中的 FatCombo、FTextBox、XButton 和 XPButton。前3个是我原创的代码(绝对是原创),分别实现XP风格的Combo,TextBox,和Button。以前好像在某些地方发布过这些控件的源代码,但那些都是老版本了,这个程序集成了3个最新版本的XP风格控件,呵呵,应该能令大家满意了吧。最后一个 XPButton 是网上流行的XP按钮,不过遗憾是这个按钮的代码太多了,功能太强大了,好像有点杀鸡用牛刀的感觉,只是一直没有找到可以代替的。另外,朋友也许会问为什么没有见到 XPMenu.ocx 的源代码,我回答是没有必要。该 XPMenu.ocx 也是网上来的,很流行的HookMenu,但居然不支持MDI窗体(无法显示图标),实在令人失望。 这个代码完整的实现了 Office XP 风格界面,虽然许多地方都是模拟的,但往往最简单的方法就是最好的,反正个人感觉没有比这个更好的OXP界面风格了。最后宣传一下我的个人软件“音速启动(VStart)”,卖卖广告,不要砸我鸡蛋啊^_^~~

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值