java 項目——電商管理系統(tǒng)

java 項目——電商管理系統(tǒng)

商品類

public class Article {
    public String name;   //  商品的名稱
    public int amount; //庫存
    public double price;//單價
    public int number;//售出的數(shù)量
    public  void print(int index){          //打悠膛Α: 為了便于查看商品類的詳情
        System.out.println(index+"\t" + name+ "\t" + amount +" \t" + price+"\t" +number);
    }
    //初始化商品信息
    public void setArticle(String mingzi,int kucun, double danjia,int shouchu){
        name = mingzi;
        amount = kucun;
        price = danjia;
        number = shouchu;
    }


}

數(shù)組類:

/* 商品的集合(倉庫)*/
public class Demo02 {
    Article[] articles  =  new Article[30];
}

代碼類:

public class ArticleMange {
    //創(chuàng)建一個實體的倉庫對象 并實體化
    Demo02 articleSet = new Demo02();

    //初始化倉庫,并放入起始商品
    public void inital() {
        Article xiaomi11 = new Article();
        xiaomi11.setArticle("小米11", 30, 1999, 0);
        Article xiaomi11pro = new Article();
        xiaomi11pro.setArticle("小米11pro", 40, 2999, 0);
        Article xiaomiUltra = new Article();
        xiaomiUltra.setArticle("小米增強版", 50, 3999, 0);
        articleSet.articles[0] = xiaomi11;
        articleSet.articles[1] = xiaomi11pro;
        articleSet.articles[2] = xiaomiUltra;
    }

    public void startMenu() {
        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("請輸入你要執(zhí)行的功能編號");
            Scanner scanner = new Scanner(System.in);
            int gongnengbianhao = scanner.nextInt();
            switch (gongnengbianhao) {
                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("商品銷售排行榜");
                    leaderboard();
                    break;
                case 6:
                    System.out.println("退出");
                    flag = false;
                default:
                    System.out.println("你輸入的編號有無");
                    break;
            }
        } while (flag);
    }

    //
    //    //排行榜
    //銷售排行榜
    public void leaderboard() {
        int count = 0;  // 統(tǒng)計原始數(shù)組使用的長度
        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i] != null) {
                count++;
            }
        }
        //根據(jù)使用的長度臨時新建一個數(shù)組街夭,這個數(shù)組元素存滿
        Article[] newTemp = new Article[count];
        // 吧就數(shù)組中的元素全部拷貝到新數(shù)組中,尋數(shù)組裝滿元素
        for (int i = 0; i < count; i++) {
            newTemp[i] = articleSet.articles[i];
        }
//        排序(冒泡排序)
        for (int i = 0; i < newTemp.length - 1; i++) {  // 讓所有元素參與排序
            for (int j = 0; j < newTemp.length - i - 1; j++) {  //讓當前元素和他后面的元素對比
                if (newTemp[j + 1] != null) {// 保證下一個要對比的元素存在
                    if (newTemp[j].number < newTemp[j + 1].number) {
                        //兩個元素交換位置靡挥,需要借助第三方臨時變量存儲
                        Article temp = newTemp[j];
                        newTemp[j] = newTemp[j + 1];
                        newTemp[j + 1] = temp;
                    }
                }
            }
        }
//        顯示名次
        System.out.println("名次:\t銷售數(shù)量 \t 商品名稱");
        for (int i = 0; i < newTemp.length; i++) {
            System.out.println(i + 1 + "\t" + newTemp[i].number + "\t" + newTemp[i].name);
        }
    }

    //賣出商品
    public void sell() {
        boolean flag = true;
        System.out.println("請輸入你要賣出的商品的名字");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.next();
        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i] != null && articleSet.articles[i].name.equals(name)) {
                System.out.println("請輸入要賣出的數(shù)量");
                int maichu = scanner.nextInt();
                if (maichu < articleSet.articles[i].amount) {  //賣出數(shù)量要小于庫存數(shù)
                    //新庫存等于就庫存
                    articleSet.articles[i].amount = articleSet.articles[i].amount - maichu;
                    //新售出 = 就售出 + 賣出數(shù)量
                    articleSet.articles[i].number = articleSet.articles[i].number + maichu;
                    flag = true;
                } else {
                    flag = false;
                    System.out.println("庫存不夠了");
                }
                break; //找到對應(yīng)的位置萝究,已經(jīng)完成了修改,就緒的元素直接跳過驯妄,終端循環(huán)
            } else {
                flag = false;
            }
        }
        if (flag) {
            System.out.println("賣出成功");
        } else {
            System.out.println("賣出失敗");
        }
    }

    //查看商品信息
    public void chakan() {
        System.out.println("編號\t 名稱 \t 庫存 \t 價格 \t 售出數(shù)量");
        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i] != null) {
                articleSet.articles[i].print(i + 1);
            }
        }
    }

    //新增商品
    public void add() {
        //接受用戶的輸入
        Scanner scanner = new Scanner(System.in);

        System.out.println("請輸入商品的名字:");
        String name = scanner.next();

        System.out.println("價格:");
        double price = scanner.nextDouble();

        System.out.println("庫存");
        int kucun = scanner.nextInt();

        System.out.println("售出數(shù)量");
        int number = scanner.nextInt();

        //把接收到的數(shù)據(jù)封裝到對象中
        Article newArticle = new Article();
        newArticle.setArticle(name, kucun, price, number);
        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i] == null){  //從前往后遍歷數(shù)組,找到第一個沒有元素的位置
                articleSet.articles[i] = newArticle;// 找到空位置合砂,吧新商品存入
                break;  //后續(xù)的位置不加入
            }
        }
    }

    //刪除商品
    public void delete() {
        boolean flag = true;
        System.out.println("輸入你要刪除的商品編號");
        Scanner scanner = new Scanner(System.in);
        int delNo = scanner.nextInt();

        for (int i = 0; i < articleSet.articles.length; i++) {
            if (delNo == (i + 1) && articleSet.articles[i] != null) {
                int j = i;  // 備份要刪除元素的下表
                while (articleSet.articles[j + 1] != null) {
                    articleSet.articles[j] = articleSet.articles[j + 1];
                }
                articleSet.articles[j] = null;
                flag = true;
                j++;

                break;  //  操作完成 直接中斷for循環(huán)   后續(xù)的null元素無需操作
            } else {
                flag = false;
            }
        }
        if (flag) {
            System.out.println("刪除成功");
        } else {
            System.out.println("刪除失斍嗳印!");
        }
    }
}

測試類:

public class Demo {
    public static void main(String[] args) {
         ArticleMange articleMange = new ArticleMange();
         articleMange.inital();
         articleMange.startMenu();
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市微猖,隨后出現(xiàn)的幾起案子谈息,更是在濱河造成了極大的恐慌,老刑警劉巖凛剥,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侠仇,死亡現(xiàn)場離奇詭異,居然都是意外死亡犁珠,警方通過查閱死者的電腦和手機逻炊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盲憎,“玉大人嗅骄,你說我怎么就攤上這事胳挎”恚” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵慕爬,是天一觀的道長窑眯。 經(jīng)常有香客問我,道長医窿,這世上最難降的妖魔是什么磅甩? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮姥卢,結(jié)果婚禮上卷要,老公的妹妹穿的比我還像新娘。我一直安慰自己独榴,他們只是感情好僧叉,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棺榔,像睡著了一般瓶堕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上症歇,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天郎笆,我揣著相機與錄音,去河邊找鬼忘晤。 笑死宛蚓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的设塔。 我是一名探鬼主播苍息,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了竞思?” 一聲冷哼從身側(cè)響起表谊,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盖喷,沒想到半個月后爆办,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡课梳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年距辆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狠持,靈堂內(nèi)的尸體忽然破棺而出恳啥,到底是詐尸還是另有隱情,我是刑警寧澤某残,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響背犯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盅抚,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一漠魏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧妄均,春花似錦柱锹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至烫沙,卻和暖如春匹层,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锌蓄。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工升筏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瘸爽。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓您访,卻偏偏與公主長得像,于是被迫代替她去往敵國和親剪决。 傳聞我的和親對象是個殘疾皇子灵汪,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 夜鶯2517閱讀 127,720評論 1 9
  • 版本:ios 1.2.1 亮點: 1.app角標可以實時更新天氣溫度或選擇空氣質(zhì)量檀训,建議處女座就不要選了,不然老想...
    我就是沉沉閱讀 6,898評論 1 6
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月享言,有人笑有人哭峻凫,有人歡樂有人憂愁,有人驚喜有人失落览露,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,536評論 28 53
  • 兔子雖然是枚小碩 但學(xué)校的碩士四人寢不夠 就被分到了博士樓里 兩人一間 在學(xué)校的最西邊 靠山 兔子的室友身體不好 ...
    待業(yè)的兔子閱讀 2,604評論 2 9