當前位置:編程學習大全網 - 編程語言 - 簡單的C語言題目 水果庫存題

簡單的C語言題目 水果庫存題

流程圖我就不畫了,大致流程:開始-> 定義商店結構變量->調用入庫函數錄入庫存商品信息->循環調用打印商品信息的函數及購買函數,顯示庫存商品菜單,用戶輸入購買信息完成購買

->單個水果購買數量不足,購買失敗重新選擇。

->總水果數量不足,提示關店結束程序。

#include?<stdio.h>

#include?<string.h>

#define?goodsNum?10//商品總類最大個數

struct?shop

{

char?goodsName[goodsNum][11];

int?goods[goodsNum];

int?sum;

}sp;

int?gn=0;//實際入庫的商品總類個數

void?storage();//入庫函數

void?updateSum();//更新總數

void?printfGoods();//展示庫存信息

int?buy();//購買函數,返回1購買成功,返回0超出商品庫存

int?main()

{

storage();

while(1)

{

printfGoods();

if(sp.sum==0)

{

printf("所有水果已售空,關店休息!\n");

return?0;

}

if(buy())

printf("購買成功!\n");

}

return?0;

}

void?printfGoods()

{

int?i;

printf("--當前庫存信息--\n");

printf("編號?名稱?個數個\n");

for(i=0;i<gn;i++)

printf("%d、?%s?%d個\n",i+1,sp.goodsName[i],sp.goods[i]);

}

void?updateSum()

{

int?i;

sp.sum=0;

for(i=0;i<gn;i++)

sp.sum=sp.sum+sp.goods[i];

}

void?storage()

{

char?name[10];

int?n;

printf("--商品入庫--\n");

while(1)

{

printf("請錄入商品%d的名稱及個數(名稱不超10個字符,輸入0結束錄入):",gn+1);

scanf("%s",name);

if(name[0]=='0'?&&?name[1]==0)

break;

scanf("%d",&n);

strcpy(sp.goodsName[gn],name);

sp.goods[gn]=n;

gn++;

}

updateSum();

}

int?buy()

{

int?id,n;

printf("請輸入要購買的商品編號及數量:\n");

scanf("%d%d",&id,&n);

if(n>sp.goods[id-1])

{

printf("購買失敗,數量超出庫存!\n");

return?0;

}

sp.goods[id-1]=sp.goods[id-1]-n;

updateSum();

return?1;

}

  • 上一篇:中職物聯網專業課程設置
  • 下一篇:圍棋入門:圍棋的基本規則和玩法。
  • copyright 2024編程學習大全網