C語言實戰!!!:商城系統模擬
前言
你好哇!
今天我們先不更新課程了。有小夥伴私信我,我發現關注我的一些小夥伴們好像是老司機了吼,那麼看我的課程肯定多少會乏味,那麼我們們今天整個新活兒,我們來實戰一下!
如果你是跟著我的《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;
}
結尾
今天的內容就到這裡啦~大家喜歡這期視訊不妨點贊評論收藏轉發,最好再點個關注哦~
這裡是小人人,一個努力直起腰的熟稻子,至少在高考前會一直陪伴大家,祝大家財源廣進,碼運興隆。
點贊領取祝福完了嗎?好,謝謝!那麼拜拜啦~
相關文章
- 作業系統:程式狀態轉換模擬,C語言實現作業系統C語言
- C語言模擬試題1C語言
- C語言模擬試題2C語言
- C語言模擬試題3C語言
- C語言模擬試題4C語言
- C語言模擬試題5C語言
- C語言模擬試題6C語言
- C語言50題之模擬實現atof、atoiC語言
- 關於c語言模擬c++的多型C語言C++多型
- C語言上機測試模擬題-1C語言
- C語言上機測試模擬題2C語言
- c語言模擬Python的命名引數C語言Python
- 用java語言,模擬實現作業系統的銀行家演算法。Java作業系統演算法
- (C語言)簡單明瞭的 陣列模擬棧+ (C++)陣列模擬棧C語言陣列C++
- PAT-B 1059 C語言競賽【模擬】C語言
- c語言與字串相關的庫函式的模擬實現C語言字串函式
- 模擬實現不受限制的字串函式--C語言版字串函式C語言
- 資料結構之C語言模擬整數陣列實現資料結構C語言陣列
- C語言 16 系統庫C語言
- 學生資訊管理系統(c語言實訓)C語言
- Python爬蟲實戰之(四)| 模擬登入京東商城Python爬蟲
- 作業系統與c語言作業系統C語言
- C#模擬窗體系統選單C#
- 自己用C語言寫的一個模擬退火演算法C語言演算法
- java、.net、php等語言開發商城系統優劣勢JavaPHP
- 使用 C 語言實現一個虛擬機器虛擬機
- 作業系統實驗:銀行家演算法(C語言)作業系統演算法C語言
- 【作業系統】銀行家演算法實現(C語言)作業系統演算法C語言
- “c語言+結構體+連結串列”實現名片系統C語言結構體
- 簡單機器語言的模擬 (轉)
- C語言學生管理系統原始碼C語言原始碼
- C語言系統資源控制(getrlimit && setrlimit)C語言MIT
- C語言職工工資管理系統C語言
- 實戰:Mailivery 模擬登入AI
- Gpssworld模擬(二):並排排隊系統模擬
- Go 語言實戰 GraphQLGo
- C語言-超市倉庫管理系統的設計與實現C語言
- C 語言宏 + 內聯彙編實現 MIPS 系統呼叫