當前位置:首頁 » 編程語言 » c語言貨物管理系統

c語言貨物管理系統

發布時間: 2022-05-16 21:45:38

c語言課程設計-倉庫貨物管理系統

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct Info { char num[15]; char name[15]; double price; int number; }; char menu() { char x; puts("\t\t Welcome to Cargo Warehouse Management Systerm "); puts("\t\t************************ MENU ************************\n"); puts("\t\t\t\t1.Append inform\n"); puts("\t\t\t\t2.Display inform\n"); puts("\t\t\t\t3.Search inform\n"); puts("\t\t\t\t4.Modify inform\n"); puts("\t\t\t\t5.Delete inform\n"); puts("\t\t\t\t6.Exit\n"); puts("\t\t******************************************************\n"); printf("Choose your number(1-6):[ ]\b\b"); while(1) { x=getchar(); getchar(); if(x<'1'||x>'6') printf("Input error,please input again(1-6):[ ]\b\b"); else break; } return x; 這個只是目錄 具體的 你加 我

⑵ 倉庫貨物管理系統的程序怎麼編寫(用C語言)

將一個日期寫成結構
typedef struct _BaseDate{
int year;
int month;
int day;
int hour;
int minute;
int second;
}BaseDate, *pBaseDate;
將這個信息寫成一個結構如
typedef struct _BaseElem{
int nNumber;
char szName[256];
char szProctor[256];
BaseDate CreateTime;
BaseDate GoodTime;
int nProctStats;
_BaseElem *pNext;
}BaseElem, *pBaseElem;

然後應用此結構寫一個鏈表結構的存儲就可以了

⑶ C語言 倉庫庫存貨物管理系統

去搜北京富通維爾科技有限公司網站,有很多這方面的設計資料

Ware-WMS是一套廣泛適用於各種類型倉庫管理的通用軟體。該軟體結合維爾公司多年為物流企業信息化的經驗,從管理和操作角度出發,處處為倉儲業務設想,努力通過信息化手段,提高倉庫業務的操作效率、降低倉儲成本,為提高企業管理能力和行業競爭力奠定堅實的基礎。
Ware-WMS主要有以下特點:
1、快速安裝部署以及廣泛的適用性,能夠適用於多種行業多種類型的倉庫業務管理
2、全方位管理倉庫內部業務,從入庫、出庫、庫存、盤點,到自動補貨、自動報警功能
3、快速與其他倉庫信息化設備集成,如RF、RFID、立體貨架、電子標簽揀貨設備等
4、高度業務容錯功能,通過許可權配置、工作流設置、狀態履歷跟蹤,以及業務回退功能,層層把關,防止業務差錯發生。
5、靈活應用和快速定製化,能夠按照企業要求,快速定製出符合企業特殊業務的功能。
Ware-WMS主要功能:
1、倉庫要素管理:多倉庫、多貨主、 多包裝單位、立體貨位
商品屬性管理:生產日期、生產批號、顏色、尺寸、序列號、條形碼
2、訂單管理:入出庫單錄入/導入、 單據審核、單據查詢、訂單執行情況追蹤
3、入庫管理:進貨檢驗、允許分批入庫、自動碼放指令、允許自由混放、高度容錯
4、出庫管理:多種揀貨方式(按單進貨、波次揀貨)、先進先出、自由分配、高度容錯
5、庫內管理:庫間移動、貨位移動、盤點、次品管理等
6、流通加工:商品組裝拆分、填充與包裝、貼標簽
7、費用管理:倉儲租金、入出庫操作費、日常管理費、各種雜費等
8、其他:支持RF作業、支持電子標簽揀貨設備、支持RFID作業

⑷ C語言寫一個倉庫管理系統

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>#define max 32int ifempty=0;//標志,判斷鏈表是無否為空typedef struct dnode /* 定義雙向鏈表結構體 */ {int number; /* 貨物編號 */char name[max]; /* 貨物名稱 */ int counter; /* 貨物數量 */struct dnode *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);void search(dlnode *L);void print(dlnode *L);void searchnum(dlnode *L);void searchname(dlnode *L);void display(dlnode *L) ;void main(){int x;dlnode *L;if(!(L=(dlnode *)malloc(sizeof(dlnode)))) //分配空間{printf("\n");exit(1);}create(L);///調用函數,創建頭節點while(1){////////////////////////主菜單///////////////////////////printf(" ============================\n");printf(" 1. 貨物出庫和入庫\n");printf(" 2. 查找貨物表\n"); printf(" 3. 顯示倉庫貨物表\n");printf(" 4. 輸出到文件\n");printf(" 0. 退出\n");printf(" =============================\n");printf(" 選擇0--3:");scanf("%d",&x);switch(x){case 2:search(L);break;//調用查找函數case 1:current(L);break;//調用入庫出庫函數case 3:display(L);break;//調用顯示輸出函數case 4:print(L);break;//調用列印函數case 0:printf("\n bye!see you!\n");getchar();getchar();exit(0);//退出程序default:printf("\n Enter erreor!please input 0--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," "); return L;}void search(dlnode *L) ///查找的主要菜單{int y;if(ifempty==0){printf("沒有輸入貨物!\n");getchar();getchar();return;}else{while(1){printf("=====================\n");printf("1.按編號查詢\n");printf("2.按貨物名稱查詢\n");printf("0.返回上一層\n");printf("====================\n");printf("選擇0--2:");scanf("%d",&y);switch(y){case 1:searchnum(L);break;//調用按編號查找的函數case 2:searchname(L);break;//調用按名稱查找的函數case 0:return;//返回default:printf("enter error!Please input 0--2!\n\n");getchar();getchar();printf("\n\n");}}}}void searchnum(dlnode *L)///按編號查找的函數{int num,flag=0;//flag為是否找到的標志dlnode *head=L;if(ifempty==0){printf("沒有貨物被輸入\n");getchar();getchar();return;}printf("輸入你要查找的貨物編號:\n");scanf("%d",&num);while((L=L->next)!=head){if(L->number==num){ flag=1;//flag為1時表示找到printf("找到指定編號貨物 \n"); printf("\n編號:%d\n",L->number);printf("名稱:%s\n",L->name) ;printf("數量:%d\n\n",L->counter); } }if(flag==0)//flag為0時表示沒有找到printf("沒有找到指定編號貨物,請查看是否還有貨物。\n");getchar();getchar();}void searchname(dlnode *L)//按名稱查找的函數{int flag=0;//flag為是否找到的標志char na[32];dlnode *head=L;if(ifempty==0){printf("沒有貨物被輸入\n");getchar();getchar();return;}printf("輸入你要查找的貨物名稱\n");scanf("%s",&na);while((L=L->next)!=head){if(strcmp(L->name,na)==0){ flag=1;//flag為1時表示找到printf("找到指定名稱貨物 \n"); printf("\n編號:%d\n",L->number);printf("名稱:%s\n",L->name) ;printf("數量:%d\n\n",L->counter); } }if(flag==0)//flag為0時表示沒有找到printf("沒有找到指定編號貨物,請查看是否還有貨物。\n\n");getchar();getchar();}dlnode *current(dlnode *L)//貨物出庫入庫函數{int y;while(1){printf("========================\n");printf(" 1.貨物入庫\n");printf(" 2.貨物出庫\n");printf(" 0.返回上一層\n");printf("========================\n");printf(" 選擇0--2:");scanf("%d",&y);switch(y){case 1:input(L);break;//調用入庫函數case 2:output(L);break;//調用出庫函數case 0:return(L);//返回上一層default:printf("enter error!Please input 0--2!");getchar();getchar();printf("\n\n");}}}dlnode *input(dlnode *L)//定義入庫函數{dlnode *in,*head;head=in=(dlnode *)malloc(sizeof(dlnode));//分配空間head=L;printf("\n請輸入貨物數據:\n");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加1return(head);} }//輸入的編號比其它編號都小,則插到最後個節點,並首尾相連head->prior->next=in;in->prior=head->prior;head->prior=in;in->next=head;ifempty++; //ifempty加1} return head;}dlnode *output(dlnode *L)//出庫的函數{int y;dlnode *head=L;if(ifempty==0)//檢測是否有貨物輸入{printf("沒有貨物輸入系統\n");getchar();getchar();return(head);} while(1){printf("=============\n");printf("1.按編號出庫\n");printf("2.按名稱出庫\n");printf("0.返回上一層\n");printf("==============\n");printf("選擇0--2:");scanf("%d",&y);switch(y){case 1:outnum(L);break;//調用按編號出庫函數case 2:outname(L);break;//調用按名稱出庫函數case 0:return(L);default:printf("enter error!Please input 0--2!");getchar();getchar();printf("\n\n");}}} dlnode *outnum(dlnode *L)//按編號出庫函數{ int num;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();return head; } }printf("沒有此編號的貨物,請查看是否還有貨物。\n\n");getchar();getchar();return (head);}dlnode *outname(dlnode *L)//按名稱出庫函數{char na[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("沒有此名稱的貨物,請查看是否還有貨物。\n\n");getchar();getchar();return(head);} void display(dlnode *L)//顯示貨物清單{dlnode *head=L;if(ifempty==0){printf("沒有貨物可顯示\n");getchar();getchar();return;}L=L->next;do{ printf("\n編號:%d\n",L->number);printf("名稱:%s\n",L->name) ;printf("數量:%d\n\n",L->counter);}while((L=L->next)!=head);getchar();getchar(); }void print(dlnode *L){dlnode *head=L;L=L->next;char filename[max];FILE *out;if(ifempty==0){printf("沒有貨物可輸出\n");getchar();getchar();return;}printf("請輸入文件名稱:");scanf("%s",filename);if((out=fopen(filename,"w"))==NULL){printf("打開文件失敗!\n");getchar();getchar();return;}do{ fprintf(out,"編號:%d\n名稱:%s\n數量:%d\n\n",L->number,L->name,L->counter);}while((L=L->next)!=head);printf("輸出成功\n");getchar();getchar();fclose(out);}

⑸ 用c語言編寫一個倉庫貨物管理系統的程序

個人覺得,題主的題的難度不亞於一個C語言的課程設計哈,在這提問不太合適。
就提供給你思路吧。
職工信息可以存入一個結構體數組中,此結構體元素包含有貨物編號(unsigned int cargo_number;);貨物名稱(char cargo_name[10];);貨物價格(unsigned int cargo_price;);貨物數量(unsigned int cargo_price;)。。。其他元素,題主根據要求添加元素。
然後,構建函數用來添加貨物名稱:void add_cargo_info(...)(形參元素為結構體數組名),即手動添加貨物信息,完事後記得要將信息寫入磁碟文件中;
然後,構建函數顯示信息,這個簡單,void display_cargo_info(...)(形參為結構體數組名),用一個while循環輸出即可;
然後,查詢函數,void cargo_info_search(...)(形參可為多種,名字,編號。。。),同樣用while循環搞定;
然後,修改信息,void cargo_info_update(...)(形參同為結構體數組),調用查找函數,找到要修改的貨物,然後在此信息中修改即可;
然後,刪除信息,void cargo_info_delete(...)(形參同為結構體數組),也是首先找到要刪除的信息,然後要調用保存函數。
這個就是我的思路,題主可以參考,希望解決了題主的問題。

⑹ 急!C語言課程設計倉庫貨物管理系統(有代碼)

把你的數組改成鏈表就行了唄。。
無非就是增刪改查遍歷。。。

或者你隨便找個基本鏈表的代碼,然後改吧改吧就行了。。無非就是換個鏈表存的結構體的問題。

課程設計都大同小異,搞得很高級的樣子。

⑺ C語言倉庫管理系統

倉庫管理系統C語言C++數據結構鏈表課程設計
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>
#define MAX 64
typedef struct node{ /* 定義結構體類型dnode */ int number; /* 貨物編號 */ char name[MAX]; /* 貨物名稱 */ int counter; /* 貨物數量 */ struct node *prior,*next; /* 前驅和後繼指針 */}dnode;
dnode* head = NULL;
void output_one(dnode* n) /* 輸出一條記錄 */{ printf("%d\t%s\t%d\n", n->number, n->name, n->counter);}
void output() /* 輸出所有記錄 */{ dnode* pos = head; if(head == NULL) { return; } while (pos) { output_one(pos); /* 循環調用output_one */ pos = pos->next; }}
int insert() /* 插入一條數據 */{ dnode* pos = head; dnode* n = malloc(sizeof(dnode)); n->prior = NULL; n->next = NULL; printf("請輸入貨物編號:"); scanf("%d", &n->number); printf("請輸入貨物名稱:"); scanf("%s", n->name); printf("請輸入貨物數量:"); scanf("%d", &n->counter); if(head==NULL) /* 如果還沒有頭節點,就作為頭節點 */ { head = n; return 1; } while (pos) { if(pos->number > n->number) /* 按順序查找,如果找到比自己大的,就插在它前面 */ { if(pos->prior) pos->prior->next = n; n->prior = pos->prior; pos->prior = n; if(pos->next) pos->next->prior = n; n->next = pos; return 1; } else if(pos->number == n->number) { free(n); return 0; /* 有重復數據,插入不成功 */ } if (!pos->next) /* 如果已經到鏈表尾部,插入到後面 */ { pos->next = n; n->prior = pos; return 1; } pos = pos->next;
} return 1;}
void init(){ while (1) /* 初始化,循環插入 */ { insert(); printf("按任意鍵繼續輸入,按Esc停止輸入\n"); if(getch()==27) break; }}
int delete() /* 刪除一條記錄 */{ int num; dnode* pos = head; printf("請輸入要刪除的編號:"); scanf("%d", &num);
if(head == NULL) { return 0; } while (pos) { if(pos->number == num) /* 找到匹配的項 */ { if(pos->prior) pos->prior->next = pos->next; if(pos->next) pos->next->prior = pos->prior; free(pos); return 1; } pos = pos->next; } return 0; // 沒找到}
int amend() /* 修改數量 */{ int num, count; dnode* pos = head; printf("請輸入要修改的編號:"); scanf("%d", &num); printf("請輸入要修改的數量:"); scanf("%d", &count); if(head == NULL) { return 0; } while (pos) { if(pos->number == num) { if (count == 0) /* 如果數量是0,就刪除 */ { if(pos->prior) pos->prior->next = pos->next; if(pos->next) pos->next->prior = pos->prior; free(pos); return 1; } pos->counter = count; return 1; } pos = pos->next; } return 0; }
void search() /* 按編號查找 */{ int num; dnode* pos = head;
printf("請輸入要查找的編號:"); scanf("%d", &num);
if(head == NULL) { return; } while (pos) { if(pos->number == num) { output_one(pos); /* 找到就列印 */ return; } pos = pos->next; }}
void search_by_name() /* 按名稱查找 */{ char name[MAX]; dnode* pos = head; printf("請輸入要查找的名稱:"); scanf("%s", name);
if(head == NULL) { return; } while (pos) { if(!strcmp(pos->name, name)) output_one(pos); pos = pos->next; }}
int main(){ init(); while (1) { char ch; system("cls"); printf("\t\t\t\ti 增加新貨物\n"); printf("\t\t\t\td 刪除某種貨物\n"); printf("\t\t\t\ta 修改某種貨物的數量\n"); printf("\t\t\t\ts 查找指定的貨物\n"); printf("\t\t\t\to 輸出存貨信息\n"); printf("\t\t\t\tq 退出程序\n"); ch = getch(); switch (ch) { case 'i': case 'I': insert(); break;
case 'd': case 'D': delete(); break;
case 'a': case 'A': amend(); break;
case 's': case 'S': printf("1. 按編號查找\n2. 按名稱查找\n"); ch = getch(); if(ch == '1') { search(); } else if(ch == '2') { search_by_name(); } break;
case 'o': case 'O': output(); break;
case 'q': case 'Q': return 0; break; } printf("按任意鍵繼續...\n"); getch(); } return 0;}

⑻ C語言設計倉庫管理系統

c語言倉庫管理幫實現

⑼ C語言編程倉庫產品管理系統

這道題的難度不亞於一個C語言的課程設計哈,在這提問不太合適。
就提供給你思路吧。
職工信息可以存入一個結構體數組中,此結構體元素包含有貨物編號(unsigned int cargo_number;);貨物名稱(char cargo_name[10];);貨物價格(unsigned int cargo_price;);貨物數量(unsigned int cargo_price;)。。。其他元素,題主根據要求添加元素。
然後,構建函數用來添加貨物名稱:void add_cargo_info(...)(形參元素為結構體數組名),即手動添加貨物信息,完事後記得要將信息寫入磁碟文件中;
然後,構建函數顯示信息,這個簡單,void display_cargo_info(...)(形參為結構體數組名),用一個while循環輸出即可;
然後,查詢函數,void cargo_info_search(...)(形參可為多種,名字,編號。。。),同樣用while循環搞定;
然後,修改信息,void cargo_info_update(...)(形參同為結構體數組),調用查找函數,找到要修改的貨物,然後在此信息中修改即可;
然後,刪除信息,void cargo_info_delete(...)(形參同為結構體數組),也是首先找到要刪除的信息,然後要調用保存函數。
這個就是我的思路,題主可以參考,希望解決了題主的問題。

⑽ C語言編程:貨物管理系統

可以提供一個很類似的:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineN100
structhardware
{
intID;
charname[35];
intnum;
floatprice;
}output={0,"empty",0,0};
intmain()
{
voidinit(hardware*output);
voiddelect(void);
voidfoutput(void);
voidrenew(void);

inti=0,select;//記錄靜態鏈表的長度

do
{
printf("************************** ");
printf("*請輸入您要執行的操作:* ");
printf("*0------>創建商品文件* ");
printf("*1------>更新商品信息* ");
printf("*2------>列印商品文件* ");
printf("*3------>刪除商品信息* ");
printf("*4------>確定退出程序* ");
printf("************************** ");

printf("請輸入您的選擇:");
scanf("%d",&select);

if(select==4)
{
return0;
}
elseif(i==0&&select!=0)
{
printf("商品文件尚未建立,不能進行該操作! ");
select=5;
}

switch(select)
{
case0:init(&output);printf("文件commodity.dat已創建完成! ");i++;break;
case1:renew();printf("指定的信息已經更新完成. ");break;
case2:foutput();printf("指定的文件commodity.dat已經列印完成. ");break;
case3:delect();printf("庫存為零的商品已經刪除完成. ");break;
case4:break;
default:printf("輸入有誤!請重新輸入. ");
}

}while(select!=4);

return0;
}
voidrenew(void)
{
FILE*pf;
hardware*tem;
inti=0,j,num,ID;

if((tem=(hardware*)malloc(sizeof(hardware)))==NULL)
{
printf("memoryerror! ");
exit(0);
}

printf("請輸入您要您要更新的商品條數: ");
scanf("%d",&num);

while(i<num)
{
z:printf("請輸入需要更新的商品號: ");
scanf("%d",&ID);

if(ID>N||ID<1)
{
printf("輸入的商品號有誤,請重新輸入! ");
gotoz;
}

if((pf=fopen("D:\commodity.dat","rb+"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

for(j=0;j<N;j++)//讀出數據
{
if(!fread(tem,sizeof(hardware),1,pf))
{
printf("outputerror! ");
}

if(tem->ID==ID)
{
printf("記錄號:%d 工具名%s 數量%d 價格%.3f ",tem->ID,tem->name,tem->num,tem->price);
printf(" 請輸入新的商品信息: ");

printf("請輸入需要更新的第%d件的工具名: ",i+1);
scanf("%s",tem->name);
printf("請輸入需要更新的第%d件商品數量和價格(以空格隔開): ",i+1);
scanf("%d%f",&tem->num,&tem->price);

fseek(pf,-1L*sizeof(hardware),1);

if(!fwrite(tem,sizeof(hardware),1,pf))
{
printf("inputerror! ");
}

printf("第%d個商品數據更新成功! ",i+1);

break;
}//if
}//for

fclose(pf);
i++;

}//while
free(tem);
}
voidfoutput(void)
{
FILE*pf;
hardwaretem;
inti;

if((pf=fopen("D:\commodity.dat","rb"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

printf(" *********列印列表如下:********* ");

for(i=0;i<N;i++)//讀出數據
{

if(!fread(&tem,sizeof(hardware),1,pf))
{
printf("outputerror! ");
}

if(strcmp(tem.name,"empty"))//
{
printf("記錄號:%d 工具名%s 數量%d 價格%.3f ",tem.ID,tem.name,tem.num,tem.price);
}
}

fclose(pf);
}
voiddelect(void)
{
FILE*pf;
hardware*tem;
inti;

if((tem=(hardware*)malloc(sizeof(hardware)))==NULL)
{
printf("memoryerror! ");
exit(0);
}

if((pf=fopen("D:\commodity.dat","rb+"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

for(i=0;i<N;i++)//讀出數據
{
fseek(pf,0,1);

if(!fread(tem,sizeof(hardware),1,pf))
{
printf("outputerror! ");
}

if(tem->num==0)
{
strcpy(tem->name,"empty");//
tem->price=0;

fseek(pf,-1L*sizeof(hardware),1);

if(!fwrite(tem,sizeof(hardware),1,pf))
{
printf("inputerror! ");
}
}//if
}//for

fclose(pf);
free(tem);
}
voidinit(hardware*output)
{
FILE*pf;
inti;

if((pf=fopen("D:\commodity.dat","wb"))==NULL)
{
printf("openfileerror! ");
exit(0);
}

for(i=0;i<N;i++)//初始化100個元素
{
output->ID=i+1;

if(!fwrite(output,sizeof(hardware),1,pf))
{
printf("inputerror! ");
}
}

fclose(pf);//關閉文件,完成初始化的所有操作
}
熱點內容
優酷怎麼給視頻加密 發布:2025-05-14 19:31:34 瀏覽:633
夢三國2副本腳本 發布:2025-05-14 19:29:58 瀏覽:859
phpxmlhttp 發布:2025-05-14 19:29:58 瀏覽:432
Pua腳本 發布:2025-05-14 19:24:56 瀏覽:448
蘋果像素低為什麼比安卓好 發布:2025-05-14 19:13:23 瀏覽:460
安卓機微信怎麼設置紅包提醒 發布:2025-05-14 19:00:15 瀏覽:271
androidsystem許可權設置 發布:2025-05-14 18:56:02 瀏覽:970
mq腳本 發布:2025-05-14 18:45:37 瀏覽:25
仙境傳說ro解壓失敗 發布:2025-05-14 18:45:01 瀏覽:868
betweenand的用法sql 發布:2025-05-14 18:39:25 瀏覽:250