C語言實戰!!!:商城系統模擬

小人人發表於2020-11-28

前言

你好哇!
今天我們先不更新課程了。有小夥伴私信我,我發現關注我的一些小夥伴們好像是老司機了吼,那麼看我的課程肯定多少會乏味,那麼我們們今天整個新活兒,我們來實戰一下!

如果你是跟著我的《C語言實戰教學》學的,那麼對不住了哈,下期更新,這期不用看,徹頭徹尾的超綱。

另外多說一句,我建了一個技術交流QQ群:745337151 大家一起交流,一起進步!如果有什麼事的話可以聯絡我的郵箱2465265747@qq.com,或者直接在CSDN私信我,這個QQ郵箱的QQ號只是用來當郵箱的,一般不開啟,所以大家不用加這個QQ號,加了我也看不到。

專案介紹

好!讓我們步入正題,今天我們做的內容是商城模擬系統,要求有商業活動的基本特徵,也就是資料間的自由交換,過程中有情況有在一定限度內的提示。

搭建框架

開始之前,框架當然是要先搞明白的,我們來分析一下,做這個專案我們需要什麼。

首先一個購物平臺要有什麼?對!使用者和商品,答對的同學給這篇文章點個贊,就當是給自己的鼓勵,hhh。

這兩個東西可以用我們喜聞樂見的struct結構語句來搞定,
一個商品的組成部分需要有:商品ID、商品名稱、庫存、單價還有商家對商品的介紹,在莫寶等網購平臺還有商品圖片,我們這裡就先不弄圖片,弄個文字的就行。
好,開始寫。

typedef struct _prop//商品結構
{
    int id;//商品ID
    char name[50];//商品名稱
    int stock;//商品庫存
    double price;//商品單價
    char desc[200];//商品介紹
}Prop;

緊接著,就是使用者,使用者的組成部分為:使用者名稱、餘額,大家如果弄多個使用者的話要弄個使用者ID,還可以加個密碼,做一個登入系統,我在這就不做了,我這是商城模擬系統的最低標準

typedef struct _user//使用者
{    
    char name[50];//使用者名稱    
    double RMB;//使用者餘額
}User;

接下來是初始化了,大家開一下腦洞,寫的時候要注意程式碼可讀性哦。

static Prop prop1[]= {
    {1,"生髮劑",10,200,"千萬程式設計師首選品牌"},    
    {2,"豎屏螢幕",12,1000,"讓您的程式碼更加美麗"} ,     
    {3,"格子衫",3,300,"讓程式設計師引領潮流"},    
    {4,"無聲耳機",15,400,"此時無聲勝有聲"}
    };
static User coder{"小人人",1000000};

各種函式

準備工作做完,接下來分析,我們需要什麼功能,寫什麼函式:列印初始化值的函式(商品、使用者)、交易函式(用來控制資料)

列印使用者的函式可以不用寫,但是我還是建議你寫一下,那條語句還是挺長的,在實際專案中肯定不是隻需要你寫一次的,更何況,還有可能是多個使用者。

我們先列印

void ShowProps(void)
{    
    for(int i=0; i<propscount; i++)    
        printf("%s:\nID:%d\n庫存:%-5d單價:%-5.2lf¥\n介紹:%s\n\n",prop1[i].name,prop1[i].id,prop1[i].stock,prop1[i].price,prop1[i].desc);    
        printf("\n");
}
void ShowUsers(void){    
    printf("使用者:%s\n餘額:%.2lf¥\n",coder.name,coder.RMB);
}

之後寫交易函式

void Trade(int propid)
{
    Prop *trade=NULL;    
    for(int i=0; i<propscount;i++)    
    {     
       if(propid==prop1[i].id)      
       trade=&prop1[i];    
    }
    if(coder.RMB<=0)
    {     
       printf("餘額為零,請充值");    
       return;   
    }    
     if(trade->stock<=0)    
     {    
         printf("賣光啦,下次來早點吧~/n");        
         return;  
     }    
     trade->stock--;    
     coder.RMB-=trade->price;
}

這裡有幾個注意的點,定義指標的時候,最好養成一個習慣,將它志向null,要不然它就是個野指標,指不定那一天鬧出什麼么蛾子。
注意指標指向結構的時候,訪問結構元素要用->,要不然會報錯。
寫這個的時候不要忘了寫幾個特殊情況的提示,不要只操控資料,你不寫提示,用起來就會很怪,然後提示完就立馬return。

然後把他們寫到main函式裡再加個迴圈就大功告成啦!

int main(void)
{  
    for(;;)    
    {  
       int propid;   
       ShowProps();   
       ShowUsers();  
       printf("\n");  
       printf("請輸入您要購買的商品ID:\n");    
       scanf("%d",&propid); 
       Trade(propid);
   }   
      return 0;
}

結尾

今天的內容就到這裡啦~大家喜歡這期視訊不妨點贊評論收藏轉發,最好再點個關注哦~

這裡是小人人,一個努力直起腰的熟稻子,至少在高考前會一直陪伴大家,祝大家財源廣進,碼運興隆。

點贊領取祝福完了嗎?好,謝謝!那麼拜拜啦~

相關文章