㈠ 求一個只用c語言編寫的倉庫管理系統
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#definemax32
intifempty=0;//標志,判斷鏈表是無否為空
typedefstructdnode/*定義雙向鏈表結構體*/
{
intnumber;/*貨物編號*/
charname[max];/*貨物名稱*/
intcounter;/*貨物數量*/
structdnode*prior,*next;
/*定義兩指針,分別指向其前驅和後繼*/
}dlnode;
dlnode*create(dlnode*L);
dlnode*input(dlnode*L);
dlnode*output(dlnode*L);
dlnode*outnum(dlnode*L);
dlnode*outname(dlnode*L);
dlnode*current(dlnode*L);
voidsearch(dlnode*L);
voidprint(dlnode*L);
voidsearchnum(dlnode*L);
voidsearchname(dlnode*L);
voiddisplay(dlnode*L);
voidmain()
{
intx;
dlnode*L;
if(!(L=(dlnode*)malloc(sizeof(dlnode))))//分配空間
{
printf(" ");
exit(1);
}
create(L);///調用函數,創建頭節點
while(1)
{////////////////////////主菜單///////////////////////////
printf("============================ ");
printf("1.貨物出庫和入庫 ");
printf("2.查找貨物表 ");
printf("3.顯示倉庫貨物表 ");
printf("4.輸出到文件 ");
printf("0.退出 ");
printf("============================= ");
printf("選擇0--3:");
scanf("%d",&x);
switch(x)
{
case2:search(L);break;//調用查找函數
case1:current(L);break;//調用入庫出庫函數
case3:display(L);break;//調用顯示輸出函數
case4:print(L);break;//調用列印函數
case0:printf(" bye!seeyou! ");
getchar();getchar();exit(0);//退出程序
default:printf(" Entererreor!pleaseinput0--4!");
getchar();getchar();
}
}
}
dlnode*create(dlnode*L)//創建鏈表頭節點
{
printf("歡迎使用我的倉庫管理系統");
getchar();
ifempty=0;
///////初始化頭節點的值////////
L->next=NULL;L->prior=NULL;
L->number=L->counter=0;
strcpy(L->name,"");
returnL;
}
voidsearch(dlnode*L)///查找的主要菜單
{
inty;
if(ifempty==0)
{
printf("沒有輸入貨物! ");
getchar();getchar();
return;
}
else
{
while(1)
{
printf("===================== ");
printf("1.按編號查詢 ");
printf("2.按貨物名稱查詢 ");
printf("0.返回上一層 ");
printf("==================== ");
printf("選擇0--2:");
scanf("%d",&y);
switch(y)
{
case1:searchnum(L);break;//調用按編號查找的函數
case2:searchname(L);break;//調用按名稱查找的函數
case0:return;//返回
default:printf("entererror!Pleaseinput0--2! ");
getchar();getchar();printf(" ");
}
}
}
}
voidsearchnum(dlnode*L)///按編號查找的函數
{
intnum,flag=0;//flag為是否找到的標志
dlnode*head=L;
if(ifempty==0)
{
printf("沒有貨物被輸入 ");
getchar();getchar();
return;
}
printf("輸入你要查找的貨物編號: ");
scanf("%d",&num);
while((L=L->next)!=head)
{
if(L->number==num)
{flag=1;//flag為1時表示找到
printf("找到指定編號貨物 ");
printf(" 編號:%d ",L->number);
printf("名稱:%s ",L->name);
printf("數量:%d ",L->counter);
}
}
if(flag==0)//flag為0時表示沒有找到
printf("沒有找到指定編號貨物,請查看是否還有貨物。 ");
getchar();getchar();
}
voidsearchname(dlnode*L)//按名稱查找的函數
{
intflag=0;//flag為是否找到的標志
charna[32];
dlnode*head=L;
if(ifempty==0)
{
printf("沒有貨物被輸入 ");
getchar();getchar();
return;
}
printf("輸入你要查找的貨物名稱 ");
scanf("%s",&na);
while((L=L->next)!=head)
{
if(strcmp(L->name,na)==0)
{flag=1;//flag為1時表示找到
printf("找到指定名稱貨物 ");
printf(" 編號:%d ",L->number);
printf("名稱:%s ",L->name);
printf("數量:%d ",L->counter);
}
}
if(flag==0)//flag為0時表示沒有找到
printf("沒有找到指定編號貨物,請查看是否還有貨物。 ");
getchar();getchar();
}
dlnode*current(dlnode*L)//貨物出庫入庫函數
{
inty;
while(1)
{
printf("======================== ");
printf("1.貨物入庫 ");
printf("2.貨物出庫 ");
printf("0.返回上一層 ");
printf("======================== ");
printf("選擇0--2:");
scanf("%d",&y);
switch(y)
{
case1:input(L);break;//調用入庫函數
case2:output(L);break;//調用出庫函數
case0:return(L);//返回上一層
default:printf("entererror!Pleaseinput0--2!");
getchar();getchar();
printf(" ");
}
}
}
dlnode*input(dlnode*L)//定義入庫函數
{
dlnode*in,*head;
head=in=(dlnode*)malloc(sizeof(dlnode));//分配空間
head=L;
printf(" 請輸入貨物數據: ");
printf("編號:");scanf("%d",&in->number);
printf("名稱:");scanf("%s",&in->name);
printf("數量:");scanf("%d",&in->counter);
if(L->next==NULL)//如果只有頭節點,
{//把剛輸入的in節點
L->next=in;//跟在頭節點後面
L->prior=in;//
in->next=L;//
in->prior=L;//
ifempty++;//ifempty加1
}
else
{//如果當前L的下一個節點不是頭節點
while((L=L->next)!=head)
{//如果輸入的數大於L->number,則插到L的前面
if(L->number<in->number)
{
in->next=L;
in->prior=L->prior;
L->prior->next=in;
L->prior=in;
ifempty++;//ifempty加1
return(head);
}
}
//輸入的編號比其它編號都小,則插到最後個節點,並首尾相連
head->prior->next=in;
in->prior=head->prior;
head->prior=in;
in->next=head;
ifempty++;//ifempty加1
}
returnhead;
}
dlnode*output(dlnode*L)//出庫的函數
{
inty;
dlnode*head=L;
if(ifempty==0)//檢測是否有貨物輸入
{
printf("沒有貨物輸入系統 ");
getchar();getchar();
return(head);
}
while(1)
{
printf("============= ");
printf("1.按編號出庫 ");
printf("2.按名稱出庫 ");
printf("0.返回上一層 ");
printf("============== ");
printf("選擇0--2:");scanf("%d",&y);
switch(y)
{
case1:outnum(L);break;//調用按編號出庫函數
case2:outname(L);break;//調用按名稱出庫函數
case0:return(L);
default:printf("entererror!Pleaseinput0--2!");
getchar();getchar();printf(" ");
}
}
}
dlnode*outnum(dlnode*L)//按編號出庫函數
{
intnum;
dlnode*head=L;
printf("請輸入出庫貨物的編號:");
scanf("%d",&num);
while((L=L->next)!=head)
{//如果找到就刪除節點
if(L->number==num)
{
L->prior->next=L->next;
L->next->prior=L->prior;
ifempty--;//ifempty減1
printf("編號為%d的貨物成功出庫",num);
getchar();getchar();
returnhead;
}
}
printf("沒有此編號的貨物,請查看是否還有貨物。 ");
getchar();getchar();
return(head);
}
dlnode*outname(dlnode*L)//按名稱出庫函數
{
charna[32];
dlnode*head=L;
printf("請輸入出庫貨物的名稱:");
scanf("%s",&na);
while((L=L->next)!=head)
{//如果找到就刪除節點
if(strcmp(L->name,na)==0)
{
L->prior->next=L->next;
L->next->prior=L->prior;
ifempty--;//ifempty減1
printf("名稱為%s的貨物成功出庫",na);
getchar();getchar();
return(head);
}
}
printf("沒有此名稱的貨物,請查看是否還有貨物。 ");
getchar();getchar();
return(head);
}
voiddisplay(dlnode*L)//顯示貨物清單
{
dlnode*head=L;
if(ifempty==0)
{
printf("沒有貨物可顯示 ");
getchar();getchar();
return;
}
L=L->next;
do
{
printf(" 編號:%d ",L->number);
printf("名稱:%s ",L->name);
printf("數量:%d ",L->counter);
}while((L=L->next)!=head);
getchar();getchar();
}
voidprint(dlnode*L)
{
dlnode*head=L;
L=L->next;
charfilename[max];
FILE*out;
if(ifempty==0)
{
printf("沒有貨物可輸出 ");
getchar();getchar();
return;
}
printf("請輸入文件名稱:");
scanf("%s",filename);
if((out=fopen(filename,"w"))==NULL)
{
printf("打開文件失敗! ");
getchar();getchar();
return;
}
do{
fprintf(out,"編號:%d 名稱:%s 數量:%d ",L->number,L->name,L->counter);
}while((L=L->next)!=head);
printf("輸出成功 ");getchar();getchar();
fclose(out);
}
㈡ C語言課程設計,倉庫管理系統
已經私信你了 可以解決
㈢ 求高手用c語言編寫個簡單的倉庫管理系統
去論壇看看吧 有源碼 下了就能用。
㈣ 求C語言編寫倉庫管理系統
這種程序寫完幾百行,全靠別人你能學會什麼啊,把每個功能做成函數,一個函數一個函數調,就是結構體,鏈表什麼的。很常規,耐心些就好了
㈤ 怎麼用C語言設計一個小型倉庫管理系統
你是要接別人的活兒,還是在做課程設計,如果不是必須用c語言的話,還是建議你用VC加資料庫,這樣更簡單 。如果必須只用c語言來做,那你就得定義一系列的結構體,然後把數據存儲在文件里。
如何在使用文件函數讀寫。
你的圖有點模糊,只能大體說一下思路。
㈥ 跪求高手用C語言寫一個簡單的倉庫管理系統
去開發網站看下。有些網友會分享的。
㈦ C語言設計倉庫管理系統
c語言倉庫管理幫實現
㈧ 求一個c語言編寫的倉庫管理系統,只用c,
c語言編寫的倉庫管理系統
以前寫過,現在還保留住 不知合適你用不
㈨ 編寫C語言倉庫管理系統
有答案的也發下我郵箱[email protected] 謝謝啦
㈩ 如何用C語言編一個小型的倉庫管理系統,作為課程設計的 謝了哈
可以完成源代碼的編制