Java——電商管理系統(tǒng)

數(shù)組類

public class Demo02 {
    Article[] articles  =  new Article[30];
}

商品類

/*商品類蓝角,對商品屬性的封裝*/
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;
   }



}

代碼類

/*商品管理類*/
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("小米增強(qiáng)版", 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++) {  //讓當(dāng)前元素和他后面的元素對比
                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元素?zé)o需操作
            } 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,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缓待,居然都是意外死亡旋炒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來序宦,“玉大人潘明,你說我怎么就攤上這事厚宰。” “怎么了吓坚?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我强衡,道長感挥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮霉祸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奔穿。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布译打。 她就那樣靜靜地躺著,像睡著了一般哥谷。 火紅的嫁衣襯著肌膚如雪们妥。 梳的紋絲不亂的頭發(fā)上监婶,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天带污,我揣著相機(jī)與錄音报破,去河邊找鬼充易。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的自赔。 我是一名探鬼主播润脸,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铭段?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎筹误,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厨剪,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年钾唬,在試婚紗的時候發(fā)現(xiàn)自己被綠了抡秆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儒士。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡着撩,死狀恐怖匾委,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薯鳍,我是刑警寧澤挖滤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布斩松,位于F島的核電站觉既,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏反惕。R本人自食惡果不足惜秒际,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剩膘,春花似錦怠褐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至物邑,卻和暖如春茂嗓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝌矛。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工茅逮, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姨伟。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像伍玖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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