JAVA:超市后臺(tái)管理系統(tǒng)

一,數(shù)據(jù)初始化
1.創(chuàng)建項(xiàng)目ArticleManage筷厘,創(chuàng)建類Article(商品類)
(1).添加4個(gè)屬性:商品名稱(name)幻捏,商品庫(kù)存數(shù)量(amount),商品價(jià)格(price)殿遂,商品售出數(shù)量(number)


創(chuàng)建Article類
package eud.xcdq;

 * 商品類
   */
   public class Article {
   public String name;  //商品名稱
   public int amount;   //商品庫(kù)存數(shù)量
   public double price; //商品價(jià)格
   public int number;   //商品售出數(shù)量

   /**
    *商品信息展示
    */
    public void print (int index){
       System.out.println(index + "\t" + name + "\t" + price + "\t" + amount + "\t" +number);
   }
   }

(2).添加SetArticle屬性诈铛,與商品信息綁定

    public void setArticle(String mingzi , double danjia , int kucun , int yishuo){
        name = mingzi;//商品名稱
        price = danjia; //商品價(jià)格
        amount = kucun; //商品庫(kù)存數(shù)量
        number = yishuo; //商品售出數(shù)量
    }

2.創(chuàng)建ArticleSet,并定義1個(gè)長(zhǎng)度為50的數(shù)組保存商品墨礁。


創(chuàng)建ArticleSet類
package eud.xcdq;

public class ArticleSet {
    Article[] articles = new Article[50];
}

3.創(chuàng)建類ArticleManage幢竹,創(chuàng)建ArticleSet對(duì)象artcleSet,實(shí)現(xiàn)初始化數(shù)據(jù)的方法initial(),引用SetArticle的方法添加商品信息恩静。

package edu.xcdq.shop;

import java.util.Scanner;

/**
 * @author hongxiaozheng
 * @date 2021/4/6 16:38
 */
public class ArticleManage {
    ArticleSet articleSet = new ArticleSet();

    //倉(cāng)庫(kù)初始化焕毫,放入一些商品
    public void initial(){
        Article xiaomi11 = new Article();
        
        xiaomi11.setArticle("小米11",22221.29,50,0);
        
        Article xiaomi11Pro = new Article();
        xiaomi11Pro.setArticle("小米11Pro",2999,20,0);
        
        Article xiaomiUltra = new Article();
        xiaomiUltra.setArticle("小米至尊版",3999,20,0);
        
        articleSet.articles[0] = xiaomi11;
        articleSet.articles[1] = xiaomi11Pro;
        articleSet.articles[2] = xiaomiUltra;
        
        

二蹲坷,實(shí)現(xiàn)菜單切換
1,在ArticleManage類中邑飒,編寫(xiě)菜單和菜單切換的startMenu方法

//啟動(dòng)菜單
    public void startMenu(){
        boolean flag = true;  //是否繼續(xù)操作
        do {
            System.out.println("**************************");
            System.out.println("1 查看商品信息");
            System.out.println("2 新增商品信息");
            System.out.println("3 刪除商品信息");
            System.out.println("4 賣(mài)出商品");
            System.out.println("5 商品銷售排行榜");
            System.out.println("6 退出");
            System.out.println("**************************");
            System.out.println("請(qǐng)輸入功能編號(hào)");

            Scanner scanner = new Scanner(System.in);
            int funNo =  scanner.nextInt();
            switch (funNo){
                case 1:
                    System.out.println("查看商品信息");
                    
                    break;
                case 2:
                    System.out.println("2 新增商品信息");
                    
                    break;
                case 3:
                    System.out.println("3 刪除商品信息");
                    
                    break;
                case 4:
                    System.out.println("賣(mài)出商品");
                    
                    break;
                case 5:
                    System.out.println("排行榜");
                    
                    break;
                case 6:
                    System.out.println("謝謝循签,已退出");
                    System.out.println("系統(tǒng)已關(guān)閉");
                    flag = false;
                    break;
                default:
                    System.out.println("你輸入的功能編號(hào)有誤,請(qǐng)重新選擇");
                    break;

            }
        }while (flag);

2.創(chuàng)建測(cè)試類疙咸,在其中編寫(xiě)程序入口县匠,實(shí)列化ArticleManage類并實(shí)現(xiàn)initial方法和startMenu方法。

public class Demo {
    public static void main(String[] args) {
        ArticleManage articleManage = new ArticleManage();
        articleManage.initial();
        articleManage.startMenu();
    }
}

三罕扎,實(shí)現(xiàn)查看商品信息
1.在ArticleManage類中編寫(xiě)查看商品信息的chakan方法聚唐,并在startMenu方法中輸入1時(shí)調(diào)用search方法

private void chakan() {  //查看商品信息
        System.out.println("編號(hào)\t名字\t單價(jià)\t庫(kù)存\t已售");
        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i]!= null){
                articleSet.articles[i].print(i+1);
            }

        }
    }

2.在StartMenu方法中,輸入1時(shí)調(diào)用chakan方法

 switch (funNo){
                case 1:
                    System.out.println("查看商品信息");
                    chakan();
                    break;

四腔召,實(shí)現(xiàn)增加商品信息
1.在ArticleManage類中編寫(xiě)添加商品信息的add方法杆查,并在startMenu方法中輸入2時(shí)調(diào)用search方法。

private void add() {   //新增商品信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("請(qǐng)輸入商品的名稱:");
        String name = scanner.next();
        System.out.println("請(qǐng)輸入單價(jià):");
        double price = scanner.nextDouble();
        System.out.println("請(qǐng)輸入庫(kù)存:");
        int count = scanner.nextInt();
        System.out.println("請(qǐng)輸入已賣(mài)數(shù)量:");
        int number = scanner.nextInt();

        Article newArticle = new Article();
        newArticle.setArticle(name,price,count,number);

        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i] == null){
                articleSet.articles[i] = newArticle;  // 把新建的對(duì)象放在數(shù)組中的第一個(gè)空位置
                break; //后續(xù)的空位置直接跳過(guò)
            }

        }

    }

2.在stratMenu方法中輸入2時(shí)調(diào)用add方法

case 2:
                    System.out.println("2 新增商品信息");
                    add();
                    break;

五臀蛛,實(shí)現(xiàn)刪除商品信息
1.在ArticleManage類中編寫(xiě)刪除商品信息的delete方法

private void delete() {  //刪除商品信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("請(qǐng)輸入要?jiǎng)h除的商品編號(hào):");
        int bianhao = scanner.nextInt();
        boolean flag = true;
        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i]!= null && (i+1) == bianhao){
                int j = i;
                while (articleSet.articles[j+1]!=null ){
                    //后面的元素向前移動(dòng)
                    articleSet.articles[j] = articleSet.articles[j+1];
                    j++;
                }
                articleSet.articles[j] = null;
                flag = true;
                break; //后續(xù)的空數(shù)組元素沒(méi)有必要執(zhí)行
            }else {
                flag = false;
            }

        }
        if (flag){
            System.out.println("刪除成功");
        }else {
            System.out.println("刪除失敗");
        }

    }

2.在stratMenu方法中輸入3時(shí)調(diào)用delete方法

case 3:
                    System.out.println("3 刪除商品信息");
                    delete();
                    break;

六亲桦,實(shí)現(xiàn)商品銷售的業(yè)務(wù)處理
1.zaiArticleManage類中編寫(xiě)賣(mài)出商品的saleOut方法

private void saleOut() {   //賣(mài)出商品
    System.out.println("請(qǐng)輸入要售賣(mài)的商品名稱:");
    Scanner scanner = new Scanner(System.in);
    String name = scanner.next();
    for (int i = 0; i < articleSet.articles.length; i++) {
        if ((articleSet.articles[i].name).equals(name)){
            System.out.println("請(qǐng)輸入你要售賣(mài)的數(shù)量:");
            int shoumai = scanner.nextInt();
            if (shoumai < articleSet.articles[i].amount){
                articleSet.articles[i].amount = articleSet.articles[i].amount - shoumai;
                articleSet.articles[i].number = articleSet.articles[i].number + shoumai;
            }
            System.out.println("售賣(mài)成功");
            break;
        }
    }
}

2.在stratMenu方法中輸入4時(shí)調(diào)用saleOut方法

 case 4:
                    System.out.println("賣(mài)出商品");
                    saleOut();
                    break;

七,實(shí)現(xiàn)商品銷售排行榜
1浊仆,在ArticleManage類中編寫(xiě)商品銷售的排行榜的leadeBand方法

private void leadeBand() {    //銷量排行榜
    /*
        for ()  所有元素全部參與排序
            for () 當(dāng)前元素只和后面的元素比較
                if (當(dāng)前元素<后續(xù)的元素)
                    往后排
     */

    //排序
    for (int i = 0; i < articleSet.articles.length - 1; i++) {
        for (int j = 0; j < articleSet.articles.length - i - 1; j++) {
            if (articleSet.articles[j] != null && articleSet.articles[j+1] != null){  //數(shù)組中不為null才能參與排序
                if (articleSet.articles[j].number < articleSet.articles[j+1].number){

                    Article newTemp = articleSet.articles[j];  //新定義一個(gè)臨時(shí)變量客峭,實(shí)現(xiàn)兩個(gè)數(shù)據(jù)的交換位置
                    articleSet.articles[j] = articleSet.articles[j+1];
                    articleSet.articles[j+1] = newTemp;
                }
            }
        }
    }
//打印結(jié)果
        for (int i = 0; i < articleSet.articles.length; i++) {
            if (articleSet.articles[i] != null){
                System.out.println((i+1)+"\t" + articleSet.articles[i].name + "\t" + articleSet.articles[i].number );
            }
        }
    }

2.在stratMenu方法中輸入5時(shí)調(diào)用leaBand方法

case 5:
                    System.out.println("排行榜");
                    leadeBand();
                    break;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市抡柿,隨后出現(xiàn)的幾起案子舔琅,更是在濱河造成了極大的恐慌,老刑警劉巖洲劣,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件备蚓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡囱稽,警方通過(guò)查閱死者的電腦和手機(jī)郊尝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)战惊,“玉大人流昏,你說(shuō)我怎么就攤上這事⊥袒瘢” “怎么了况凉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)各拷。 經(jīng)常有香客問(wèn)我茎刚,道長(zhǎng),這世上最難降的妖魔是什么撤逢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任膛锭,我火速辦了婚禮粮坞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘初狰。我一直安慰自己莫杈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布奢入。 她就那樣靜靜地躺著筝闹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腥光。 梳的紋絲不亂的頭發(fā)上关顷,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音武福,去河邊找鬼议双。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捉片,可吹牛的內(nèi)容都是我干的平痰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼伍纫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宗雇!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起莹规,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赔蒲,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后良漱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嘹履,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年债热,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幼苛。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窒篱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舶沿,到底是詐尸還是另有隱情墙杯,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布括荡,位于F島的核電站高镐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏畸冲。R本人自食惡果不足惜嫉髓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一观腊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧算行,春花似錦梧油、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至量淌,卻和暖如春骗村,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呀枢。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工胚股, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人硫狞。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓信轿,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親残吩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子财忽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友泣侮。感恩相遇即彪!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì)活尊,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,568評(píng)論 0 11
  • 彩排完隶校,天已黑
    劉凱書(shū)法閱讀 4,222評(píng)論 1 3
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒蛹锰。表情可以傳達(dá)很多信息深胳。高興了當(dāng)然就笑了,難過(guò)就哭了铜犬。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,303評(píng)論 2 7