#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<windows.h>
#define Money 500000
#define N 100
struct xinxi
{
char bh[30];
char bhstr[30];
float jinjia;
float shoujia;
int kucun;
}s[N];
void jinhuo();
void tuihuo();
void spxs();
void xxcx();
void spxxpx();
int menu();
int main()
{
printf("*************************************************************\n");
printf(" 歡迎進入簡易超市管理系統 \n");
printf("*************************************************************\n");
int n;
while(1)
{
switch(menu())
{
case 1 : jinhuo();
break;
case 2 : tuihuo();
break;
case 3 : spxs();
break;
case 4 : xxcx();
break;
case 5 : spxxpx();
break;
case 6 : return 0;
}
}
}
int menu()
{
int choice;
printf("\n*********************簡易超市管理系統*********************\n");
printf(" 1:進貨處理\n");
printf(" 2:退貨處理\n");
printf(" 3:商品銷售\n ");
printf(" 4:商品資訊查詢\n");
printf(" 5:商品資訊瀏覽\n");
printf(" 6:退出系統\n");
printf("****************************************************************\n");
printf("請選擇對應數字1~6 \n");
do
{
printf("\n choice(1-6):");
scanf("%d",&choice);
} while(choice<1||choice>6);
return choice;
}
void jinhuo()
{
char str[30];
int i, a=2,b;
b=3;
while (a==2)
{
printf("請輸入商品的名稱:");
scanf("%s",str) ;
for(i=0;i<b;i++)
if(strcmp(str,s[i].bhstr)==0)
{
printf("編號:%s,進價:%5.lf,售價: %5.lf,庫存數量:%d\n",s[i].bh,s[i].jinjia,s[i].shoujia,s[i].kucun);
printf("請輸入新庫存數量:");
scanf("%d",&s[i].kucun);
printf("庫存資訊修改完成\n");
break;
}
if(i>=b)
{
printf("添加商品資訊:\n");
printf("請輸入商品編號:");
scanf("%s",s[i].bh);
printf("請輸入商品名稱:");
scanf("%s",s[i].bhstr);
printf("請輸入商品進價:");
scanf("%f",&s[i].jinjia);
printf("請輸入商品售價:");
scanf("%f",&s[i].shoujia);
printf("請輸入商品庫存數量:");
scanf("%d",&s[i].kucun);
printf("商品資訊添加完成。\n");
b++;
}
printf("請選擇:");
printf("1.回傳開始選單");
printf("2.繼續進行進貨處理");
scanf("%d",&a);
}
}
void tuihuo()
{
int i,a,c=2,d,b;
char str[30];
while(c==2)
{
printf("請輸入要退的商品名稱:");
scanf("%s",str);
for(i=0;i<b;i++)
if(strcmp(str,s[i].bhstr)==0)
{
printf("請輸入要退商品的數量:");
scanf("%d",&d);
printf("請選擇是否要退貨:");
printf("1.是");
printf("2.否");
scanf("%d",&a);
if(a==1)
{
s[i].kucun=s[i].kucun-d;
printf("退貨已成功\n");
}
if(s[i].kucun==0)
{
printf("本商品庫存為0,請選擇是否洗掉本商品 ");
printf("1.是");
printf("2.否");
scanf("%d",&a);
if(a==1)
{
strcpy(s[i].bh,"該商品不存在");
strcpy(s[i].bhstr,"該商品不存在");
s[i].jinjia=0;
s[i].shoujia=0;
s[i].kucun=0;
printf("本商品已洗掉\n");
}
}
}
printf("請選擇:");
printf("1.回傳開始選單");
printf("2.繼續進行退貨處理");
scanf("%d",&c);
}
}
void spxs()
{
char str[30];
int i, sl, a=2, c,b;
float je,jez, ssje,zl;
jez=0;
while(a==2)
{
printf("請輸入購買的商品的編號:");
scanf("%s",str);
for(i=0;i<b;i++)
if(strcmp(str,s[i].bh)==0)
{
printf("請輸入要購買的數量:");
scanf("%d",&sl);
while(sl>s[i].kucun)
{
printf("商品庫存數量不足,請重新輸入要購買的數量:");
scanf("%d",&sl);
}
printf("應收金額為:");
je=sl*s[i].shoujia;
printf("%5.lf\n",je);
s[i].kucun=s[i].kucun-sl;
printf("應收總金額為:");
jez=jez+je;
printf("%5.lf\n",jez);
break;
}
if(i>=b)
printf("對不起,未找到該商品\n");
printf("請選擇:");
printf("1.結賬 ");
printf("2.繼續購買商品");
scanf("%d",&a);
if(a==1)
{
printf("請輸入實收金額:");
scanf("%f",&ssje);
while(ssje<jez)
{
printf("金額不足,請選擇:");
printf("1.重新付款");
printf("2.取消購買");
scanf("%d",&c);
if(c==1)
{
printf("請輸入實收金額:");
scanf("%f",&ssje);
}
else
{
printf("請輸入取消購買商品的編號:");
scanf("%s",str);
for(i=0;i<b;i++)
if(strcmp(str,s[i].bh)==0)
{
printf("請輸入取消購買的數量");
scanf("%d",&sl);
s[i].kucun=s[i].kucun+sl;
jez=jez-sl*s[i].shoujia;
printf("取消購買成功\n");
}
}
}
zl=ssje-jez;
printf("找零:%5.lf\n",zl);
printf("購買成功\n");
}
if(a!=2)
{
printf("請選擇:");
printf("1.回傳開始選單");
printf("2.繼續購買商品");
scanf("%d",&a);
jez=0;
}
}
}
void xxcx()
{
char str[30];
int i,a=2,b;
while(a==2)
{
printf("請輸入要查詢商品的編號或名稱:");
scanf("%s",str);
for(i=0;i<b;i++)
{
if((strcmp(str,s[i].bh)==0)||strcmp(str,s[i].bhstr)==0)
{
printf("商品編號:%s\n",s[i].bh);
printf("商品名稱:%s\n",s[i].bhstr);
printf("商品進價:%5.1f\n",s[i].jinjia);
printf("商品售價:%5.1f\n",s[i].shoujia);
printf("商品庫存:%d\n",s[i].kucun);
break;
}
}
if(i>=b)
{
printf("對不起,未找到該商品\n");
}
printf("請選擇:");
printf("1.回傳開始選單");
printf("2.繼續查詢商品");
scanf("%d",&a);
}
}
void spxxpx()
{
int i ,j ,t5,b;
float t3,t4;
char t1[30], t2[30], a;
for(j=1;j<b-1;j++)
for(i=0;i<b-j;i++)
if(strcmp(s[i].bh,s[i+1].bh)>0)
{
strcpy(t1,s[i].bh);
strcpy(t2,s[i].bhstr);
t3=s[i].jinjia;
t4=s[i].shoujia;
t5=s[i].kucun;
strcpy(s[i].bh,s[i+1].bh);
strcpy(s[i].bhstr,s[i+1].bhstr);
s[i].jinjia=s[i+1].jinjia;
s[i].shoujia=s[i+1].shoujia;
s[i].kucun=s[i+1].kucun;
strcpy(s[i+1].bh,t1);
strcpy(s[i+1].bhstr,t2);
s[i+1].jinjia=t3;
s[i+1].shoujia=t4;
s[i+1].kucun=t5;
}
printf("按編號依次輸出商品資訊:\n");
for(i=0;i<b;i++)
printf("商品編號: %s\n商品名稱: s%\n商品進價: %5.lf\n商品售價: %5.lf\n商品庫存: %d\n\n",s[i].bh,s[i].bhstr,s[i].jinjia,s[i].shoujia,s[i].kucun);
printf("請輸入任意字符回傳開始選單");
scanf("%s",&a);
}
uj5u.com熱心網友回復:
一直存不進去對這句描述的不清楚,是存不進陣列?還是存不進檔案?
一般這類題肯定得有個保存檔案的模塊,不然每次都要重新輸入。
uj5u.com熱心網友回復:
檔案操作是必須的。庫存資料要保存在檔案中,每次修改資料要先從檔案中讀出,修改之后再寫入檔案。uj5u.com熱心網友回復:
怎么把檔案和陣列關聯起來呢
uj5u.com熱心網友回復:
用檔案保存資料,然后將檔案中的資料讀入到陣列中,當退出的時候(或者資料修改之后),將陣列中的資料寫入檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/39496.html
標籤:新手樂園
上一篇:資料結構(c++)
下一篇:二叉樹非遞回存盤型別
