q->;next product = p;
q=p
}
}
退貨ok;
}//ProductInsert
void ProQuantity _ add(sqmountlink & amp;l,char pkindname 1[],char pname 1[],int n)
{//在序列表中添加壹個鏈接到鏈表的產品的總量,要添加的產品總量為n。
int i,k;
plink list p;
for(I = 0;我& lt長度;i++)
{
if(strcmp(L.kindelem[i])。pkindname,pkindname 1)!=0)
繼續;
其他
打破;
}
如果(我& lt長度)
{
for(p=L .金德萊姆[i])。第壹產品;p!= NULLp = p-& gt;下壹產品)
{
k = strcnp(p-& gt;pname . pname);
如果(k==0)
{
p->;totalquantity=p->總量+n;
Printf("查看添加產品的輸出:% s% d% d,% d% d,% d % d \ n ",p-pname,p-> totalquantity,(p-& gt;goodsdate)。年,(p->;goodsdate)。月,(p->;商品)。天,
p->;銷售質量。銷售時間)。年,(p->;銷售時間)。月,(p->;銷售時間)。天);
}
}
}
}//ProQuantity_add
無效訪問(sqmountlink & ampl,char pkindname3[],char pname3[])
{//查詢序列表的鏈表L中屬於某個產品類別的產品信息。
int i,k;
plink list p;
for(I = 0;我& lt長度;i++)
{
if(strcmp((L.kindelem[i]),pkindname.pkindname3)!=0)
繼續
其他
打破;
}
如果(我& lt長度)
{
for(p=L .金德萊姆[i])。第壹產品;p!= NULLp = p-& gt;nextproducy)
{
k = strcmp(p-& gt;pname . pname 3);
如果(k==0)
打破;
}
如果(k!=0)
Printf("該產品不存在:\n ")
其他
{
Printf("用查詢輸出產品的各種信息:\ n ");
printf(" % s % s %d %d % d,% d,%d %d %d,% d,%d\n ",(L.kindelem[i])。pkindname,p-& gt;pname,p->總量,(p->;goodsdate)。年,(p->;goodsdate)。月,(p->;goodsdate)。天,
p->;銷售數量。銷售時間)。年,(p->;銷售時間)。月,(p->;銷售時間)。天);
}
}
}//訪問
void顯示列表(sqmountlink & ampl)
{//顯示每個產品的產品類別、產品名稱、產品總數量、購買日期、銷售數量、銷售時間。
int I;
plink list p;
Printf("產品購買日期、銷售數量和銷售時間\n ")
for(I = 0;我& lt長度;i++)
{
如果(!(金德萊姆[i],第壹產品)
printf("%s\n ",(L.kindelem[i])。pkindname);
for(p=L .金德萊姆[i])。第壹產品;p;p = p-& gt;下壹產品)
printf(" % s % s %d %d % d,% d,%d %d %d,% d,%d \n ",(L.kindelem[i])。pkindname,p-& gt;pname,p->總量,(p->;goodsdate)。年,(P->;goodsdate)。月,(p->;goodsdate)。天,p-& gt;銷售數量,(p->銷售時間)。年,(p->;銷售時間)。月,(p->;銷售時間)。天);
}
}//顯示列表
void DestoryMountList(sqmountlink & amp;l)
{//銷毀已有的序列表鏈表l。
int I;
kindl node * p;
for(I = l . length;我& gt=0;
{
p = & amp(l .金德萊姆[I]);
if(*p)。firstproduct==NULL)
免費(p);
其他
{
while((*p)。第壹產品;q->;nextproductq = q-& gt;next product);
免費(q);
}
免費(q);
}
}
}//DestroyMountList
void menu_operation()
{//操作菜單
printf("-輸入要執行的操作:- \ n ")
printf("-添加產品類別:1-\ n ");
printf("-產品添加:2-\ n ");
printf("-增加產品數量:3-\ n ");
Printf(" -查詢每個產品的產品類別、產品總數量、購買日期、銷售數量、銷售時間:4 - \ n ")。
printf("-釋放L占用的內存空間,退出程序:0-\ n ");
}//菜單_操作
/* -主程序*/
無效總管(無效)
{
int順序,
int i,n;
char a[30];
char b[30];
sqmount link L;
InitMountList(L);
Printf(" -創建初始產品類和產品序列表鏈表L);
CreatMuntList(L);
顯示列表(L);
Printf(" -初始產品類和產品序列表鏈表L已創建);
menu _ operation();
循環:
printf(" Enter command:");
scanf("%d ",& amp訂單);
開關(順序)
{
案例1:
Printf("要添加的產品類別數:");
scanf("%d ",& ampI);
kindinsert(L,I);
Printf("輸出修改後的產品庫存管理表:\ n ");
顯示列表(L);
轉到循環;
案例二:
Printf("產品所屬的產品類別名稱:")
scanf("%s ",& ampa);
Printf("要添加到該產品類別的產品數量:");
scanf("%d ",& ampI);
ProductInsert(L,a,I);
Printf("輸出修改後的產品庫存管理表:\ n ");
顯示列表(L);
轉到循環;
案例三:
Printf("輸入要添加的數量所屬的產品類別名稱:");
scanf("%s ",& ampa);
Printf("輸入要添加的產品名稱:");
scanf("%d ",& ampn);
ProQuantity_add(L,a,b,n);
Printf("輸出修改後的產品庫存管理表:\ n ");
顯示列表(L);
轉到循環;
案例4:
Printf("輸入要查詢的產品所屬的產品類別名稱:");
scanf("%s ",& ampb);
Printf("輸入要查詢的產品名稱:");
scanf(%s ",& ampb);
訪問(L & lta,b);
轉到循環;
案例():
DestroyMountList(L);
退出(0);
}
}