java面向对象商品管理系统

实现效果:


1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出

/*
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
1
查看商品信息
编号  名字     价格        库存      售出
1     小米11      1111.0      1111      11
2     小米12      2222.0      2222      22
3     小米13      3333.0      3333      33
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
2
新增商品信息
请输入新增的商品名称:
小米14
请输入商品价格:
1999
请输入商品库存:
1111
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
1
查看商品信息
编号  名字     价格        库存      售出
1     小米11      1111.0      1111      11
2     小米12      2222.0      2222      22
3     小米13      3333.0      3333      33
4     小米14      1999.0      1111      0
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
3
删除商品信息
请输入要删除的商品编号:
4
删除成功
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
1
查看商品信息
编号  名字     价格        库存      售出
1     小米11      1111.0      1111      11
2     小米12      2222.0      2222      22
3     小米13      3333.0      3333      33
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
4
卖出商品
请输入你要卖出商品的名称:
小米13
请输入你要卖出的数量:
33
卖出成功
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
1
查看商品信息
编号  名字     价格        库存      售出
1     小米11      1111.0      1111      11
2     小米12      2222.0      2222      22
3     小米13      3333.0      3300      66
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
5
销售排行榜
名次  商品  售出数量
1   小米13    66
2   小米12    22
3   小米11    11
******************************
1 查看商品信息
2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出
******************************
请输入你要执行的操作:
6
谢谢使用,系统即将退出!
*/

请输入你要执行的操作:

思路:

创建商品类:

代码如下:

package ArticleManage;

/**
 * @author 王艺博
 * @date 2021/4/8 8:10
 */
public class Article {
    // 名字 单价 库存 售出数量
    public String name;
    public double price;
    public int amount;
    public int number;

    public void print(int index) {
        System.out.println(index + "\t  " + name + "  \t" + price + "  \t" + amount + "\t  " + number);
    }

    public void setArticle(String mingzi,double danjia,int kucun,int xiaoshou) {
        name = mingzi;
        price = danjia;
        amount = kucun;
        number = xiaoshou;
    }

}

创建仓库类:(创建一个用来储存Article对象的数组)

代码如下:

package ArticleManage;

/**
 * @author 王艺博
 * @date 2021/4/8 8:21
 */
public class ArticleSet {
    // 商品仓库
    Article[] article = new Article[50];
}

创建仓库管理类:(

仓库管理类用来管理ArticleSet类,来实现这六个功能

1 查看商品信息

2 新增商品信息
3 删除商品信息
4 卖出商品信息
5 销售排行榜
6 退出)

代码如下:

package ArticleManage;



import javax.management.monitor.StringMonitor;
import java.util.Scanner;

/**
 * @author 王艺博
 * @date 2021/4/8 8:24
 */
public class ArticleManage {
    ArticleSet articleSet = new ArticleSet();
    Scanner scanner = new Scanner(System.in);
    // 初始化商品
    public void initial() {
        Article xiaomi11 = new Article();
        xiaomi11.setArticle("小米11",1111,1111,11);

        Article xiaomi11Pro = new Article();
        xiaomi11Pro.setArticle("小米12",2222,2222,22);

        Article xiaomi11Ultra = new Article();
        xiaomi11Ultra.setArticle("小米13",3333,3333,33);

        articleSet.article[0] = xiaomi11;
        articleSet.article[1] = xiaomi11Pro;
        articleSet.article[2] = xiaomi11Ultra;
    }
    //  提示菜单
    public void startMneu(){
        boolean flag = true;
        do {
            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("6 退出");
            System.out.println("******************************");
            System.out.println("请输入你要执行的操作:");
            int funNO = scanner.nextInt();
            switch ( funNO ) {
                case 1:
                    System.out.println("查看商品信息");
                    chakan();
                    break;
                case 2:
                    System.out.println("新增商品信息");
                    add();
                    break;
                case 3:
                    System.out.println("删除商品信息");
                    delete();
                    break;
                case 4:
                    System.out.println("卖出商品");
                    sell();
                    break;
                case 5:
                    System.out.println("销售排行榜");
                    paihangbang();
                    break;
                case 6:
                    System.out.println("谢谢使用,系统即将退出!");
                    flag = false;
                    break;
            }
        }while(flag);

    }
    // 产看商品
    private void chakan() {
        System.out.println("编号 \t名字 \t   价格 \t\t 库存 \t 售出");
        for (int i = 0; i < articleSet.article.length; i++) {
            if ( articleSet.article[i] != null) {
                articleSet.article[i].print(i+1);
            }
        }
    }
    // 新增商品
    private void add() {
        /*
            定义键盘扫描器
            提示用户输入商品名称
            接收用户输入  商品名称
            提示输入价格 库存
            接收以上数据
         */
        System.out.println("请输入新增的商品名称:");
        String name = scanner.next();
        System.out.println("请输入商品价格:");
        double price = scanner.nextDouble();
        System.out.println("请输入商品库存:");
        int amount = scanner.nextInt();
        int number = 0;
        // 新建Article对象,并用 setArticle()方法传入用户输入的值
        Article addArticle = new Article();
        addArticle.setArticle(name,price,amount,number);
        // 将新输入的商品用for循环打印到商品仓库中
        for (int i = 0; i < articleSet.article.length; i++) {
            if ( articleSet.article[i] == null) {
                articleSet.article[i] = addArticle;
                break;
            }
        }
    }
    // 删除商品
    private void delete() {
        boolean flag = true;
        System.out.println("请输入要删除的商品编号:");
        int card = scanner.nextInt();
        for (int i = 0; i < articleSet.article.length; i++) {
            if ( articleSet.article[i] != null && (i+1) == card ) {
                // 删除i位置的元素(具体操作:把后面的元素向前移动,覆盖掉要删除的元素)
                int j = i;
                while ( articleSet.article[j+1] != null) {
                    articleSet.article[j] = articleSet.article[j+1];// 把后面的元素向前移动,覆盖掉要删除的元素
                    j++;
                }
                articleSet.article[j] = null;
                flag = true;
                break;
            }else {
                flag = false;
            }
        }
        if (flag) {
            System.out.println("删除成功");
        }else {
            System.out.println("删除失败,暂无商品信息");
        }
    }
    // 卖出商品
    private void sell() {
        boolean flag = true;
        System.out.println("请输入你要卖出商品的名称:");
        String name = scanner.next();
        for (int i = 0; i < articleSet.article.length; i++) {
            if ( articleSet.article[i] != null && articleSet.article[i].name.equals(name)) {
                System.out.println("请输入你要卖出的数量:");
                int number = scanner.nextInt();
                if ( number <= articleSet.article[i].amount ) {
                    articleSet.article[i].amount = articleSet.article[i].amount - number;
                    articleSet.article[i].number = articleSet.article[i].number + number;
                }
                System.out.println("卖出成功");
                break;
            }
        }
    }
    // 排行榜
    private void paihangbang() {
        /*
           升序排序

            for () 所有元素参与排序
                for () 当前元素只和后面的元素比较
                    if (当前元素 < 后面的元素) {
                        交换位置
                    }
         */
        // 排序(冒泡排序)
        for (int i = 0; i < articleSet.article.length-1; i++) {
            for (int j = 0; j < articleSet.article.length-i-1; j++) {
                if ( articleSet.article[j] != null && articleSet.article[j+1] != null) { // 只有不为null的元素才能参与排序
                    if ( articleSet.article[j].number < articleSet.article[j+1].number ) {
                        Article newTemp = articleSet.article[j];// 新定义一个临时变量,实现两个数据的交换位置
                        articleSet.article[j] = articleSet.article[j+1];
                        articleSet.article[j+1] = newTemp;


                        /*
                        冒泡排序算法
                        // 1 用空间换时间
                        int temp = a[j];
                        a[j] = a[j+1];
                        a[j+1] = temp;
                        // 2 省空间
                        a[j] = a[j] + a[j+1];
                        a[j+1] = a[j] - a[j+1];
                        a[j] = a[j] - a[j+1];
                        // 3 完美
                        a[j] = a[j] ^ a[j+1];  // 1^0  相同为0  不同为1
                        a[j+1] = a[j] ^ a[j+1];
                        a[j] = a[j] ^ a[j+1];
                        */
                    }
                }
            }
        }
        // 打印结果
        System.out.println("名次" + "\t" + "商品" + "\t" + "售出数量");
        for (int i = 0; i < articleSet.article.length; i++) {
            if ( articleSet.article[i] != null ) {
                System.out.println( (i+1) + "\t" + articleSet.article[i].name + "\t" + articleSet.article[i].number);
            }
        }
    }

}

创建启动管理系统类(用来启动系统)

package ArticleManage;

/**
 * @author 王艺博
 * @date 2021/4/8 9:23
 */
public class Demo {
    public static void main(String[] args) {
        ArticleManage articleManage = new ArticleManage();
        articleManage.initial();
        articleManage.startMneu();
    }
}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • 系统述 查看商品信息概 新增商品信息 删除商品信息 卖出商品 商品销售排行榜 步骤1:初始化 package ed...
    张古董阅读 591评论 0 0
  • 需求:增删改查 查看商品 新增商品 删除商品 商品销售 商品销售排行榜 1查看商品:根据商品数组中的下表,显示商品...
    Chinawrm阅读 237评论 0 1
  • Java的项目案例:电商管理系统 需求:增删改查 查看商品 新增商品 删除商品 商品销售 商品销售排行榜 1...
    代码小鲜肉阅读 779评论 0 1
  • package com.company; import java.util.Scanner; /* * 商品管理员...
    李银龙阅读 193评论 0 0
  • ``` package com.company; public class Article { //把常用的属...
    宋梓民阅读 274评论 0 0