c語言倉庫管理
① c語言倉庫管理系統
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define max 32
int 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加1
return(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語言寫一個倉庫管理系統
#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語言倉庫管理系統源代碼
學籍管理的程序,你自己改改吧
#include<stdio.h>
#include<windows.h>
#include<conio.h>
int add();
int amend();
int remove();
int show_student();
int show_class();
struct info //定義結構體info,用於存儲學生信息
{
char name[20]; //姓名
char sex[20]; //性別
char idcard[20]; //身份證號碼
char stuid[10]; //學號
char academe[20]; //學院
char specialty[20]; //專業
char classid[20]; //班級
char home[20]; //生源地
}stu[100];
int j=0;
int main(void) //主函數
{
/*登陸界面設計*/
char gongnengxuanzhe;
int flag=1;
system("cls");
printf("\n");
printf("\t\t\t\t 歡迎\n");
printf("\n\n\t尊敬的用戶, 非常感謝您使用本系統 , 您的完美體驗將是我們前進的方向 !\n\n\n");
printf("\t系統功能簡介:\n\n\n");
printf("\t\t①:通過鍵盤輸入某位學生的學生證信息。\n\n");
printf("\t\t②:給定學號,顯示某位學生的學生證信息。\n\n");
printf("\t\t③:給定某個班級的班號,顯示該班所有學生的學生證信息。\n\n");
printf("\t\t④:給定某位學生的學號,修改該學生的學生證信息。\n\n");
printf("\t\t⑤:給定某位學生的學號,刪除該學生的學生證信息。\n\n");
printf("\t\t⑥:按出生日期對全班學生的信息進行排序。\n\n\n");
printf("\t按任意鍵進入系統......");
getch();
do
{
system("cls");
printf("\n\n\n");
printf(" 尊敬的用戶 ,歡迎您使用本系統 !\n");
printf("\n\n\n");
printf(" 1.增加學生信息\n\n");
printf(" 2.修改學生信息\n\n");
printf(" 3.刪除學生信息\n\n");
printf(" 4.顯示單個學生信息\n\n");
printf(" 5.顯示整個班級學生信息\n\n");
printf(" 0.退出系統\n\n\n\n");
printf(" 請選擇您需要使用的功能:");
gongnengxuanzhe=getch();
switch(gongnengxuanzhe)
{
case '1':add();break;
case '2':amend();break;
case '3':remove();break;
case '4':show_student();break;
case '5':show_class();break;
case '0':flag=0;break;
default:
{
printf("\n\n 您的輸入有誤,請仔細閱讀使用說明!");
printf("\n 任意鍵繼續...");
getch();
}
}
}while(flag==1);
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\t尊敬的用戶,非常感謝您的使用,您對於完美的追求是我們唯一的動力!");
printf("\n\n\t\t\t 按任意鍵退出系統......");
getch();
return 0;
}
int add() //增加學生信息函數
{
char flag='1';
do
{
system("cls");
printf("\n\t姓名:");
scanf("%s",&stu[j].name);
printf("\n\n\t性別:");
scanf("%s",&stu[j].sex);
printf("\n\n\t身份證號:");
scanf("%s",&stu[j].idcard);
printf("\n\n\t學院:");
scanf("%s",&stu[j].academe);
printf("\n\n\t專業:");
scanf("%s",&stu[j].specialty);
printf("\n\n\t班級:");
scanf("%s",&stu[j].classid);
printf("\n\n\t學號:");
scanf("%s",&stu[j].stuid);
printf("\n\n\t生源地:");
scanf("%s",&stu[j].home);
j++;
printf("\n\t繼續增加請鍵入1,返回請鍵入其他任意鍵:");
getchar();
flag=getchar();
}while(flag=='1');
return 0;
}
int amend() //修改學生信息函數
{
if(j==0)
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\t\t 系統無任何可以修改的記錄,請先行輸入數據!");
printf("\n\n\t\t\t 按任意鍵返回......");
getch();
return 0;
}
char a[20];
int z;
int flag=0;
do
{
system("cls");
printf("\n\t需要修改的學生學號:");
scanf("%s",a);
for(z=0;z<j;z++)
{
if(strcmp(stu[z].stuid,a)==0)
{
flag=1;
break; //break退出後,z++不會執行
}
}
if(flag==0)
{
printf("\t對不起,你請求學生信息不存在,請核實後重試!\n");
printf("\t按任意鍵繼續......");
getch();
}
}while(flag==0);
system("cls");
printf("\n\t姓名:");
scanf("%s",&stu[z].name);
printf("\n\n\t性別:");
scanf("%s",&stu[z].sex);
printf("\n\n\t身份證號:");
scanf("%s",&stu[z].idcard);
printf("\n\n\t學院:");
scanf("%s",&stu[z].academe);
printf("\n\n\t專業:");
scanf("%s",&stu[z].specialty);
printf("\n\n\t班級:");
scanf("%s",&stu[z].classid);
printf("\n\n\t學號:");
scanf("%s",&stu[z].stuid);
printf("\n\n\t生源地:");
scanf("%s",&stu[z].home);
return 0;
}
int remove() //刪除學生信息函數
{
if(j==0)
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\t\t 系統無任何可以刪除的記錄,請先行輸入數據!");
printf("\n\n\t\t\t 按任意鍵返回......");
getch();
return 0;
}
char a[20];
int z;
int x;
int flag=0;
do
{
system("cls");
printf("\n\t需要刪除的學生學號:");
scanf("%s",a);
for(z=0;z<j;z++)
{
if(strcmp(stu[z].stuid,a)==0)
{
flag=1;
for(x=z;x<j;x++)
{
strcpy(stu[x].name,stu[x+1].name);
strcpy(stu[x].sex,stu[x+1].sex);
strcpy(stu[x].idcard,stu[x+1].idcard);
strcpy(stu[x].academe,stu[x+1].academe);
strcpy(stu[x].specialty,stu[x+1].specialty);
strcpy(stu[x].classid,stu[x+1].classid);
strcpy(stu[x].stuid,stu[x+1].stuid);
strcpy(stu[x].stuid,stu[x+1].stuid);
}
j--;
printf("\n\t刪除成功!");
printf("\n\t按任意鍵返回上級菜單......");
getch();
}
}
if(flag==0)
{
printf("\t對不起,你請求學生信息不存在,請核實後重試!\n");
printf("\t按任意鍵繼續......");
getch();
}
}while(flag==0);
return 0;
}
int show_student() //單個顯示學生信息函數
{
if(j==0)
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\t\t 系統無任何可以顯示的記錄,請先行輸入數據!");
printf("\n\n\t\t\t 按任意鍵返回......");
getch();
return 0;
}
char a[20];
int z;
int flag=0;
do
{
system("cls");
printf("\n\t需要顯示的學生學號:");
scanf("%s",a);
for(z=0;z<j;z++)
{
if(strcmp(stu[z].stuid,a)==0)
{
flag=1;
system("cls");
printf("\n\t姓名:%s",stu[z].name);
printf("\n\n\t性別:%s",stu[z].sex);
printf("\n\n\t身份證號:%s",stu[z].idcard);
printf("\n\n\t學院:%s",stu[z].academe);
printf("\n\n\t專業:%s",stu[z].specialty);
printf("\n\n\t班級:%s",stu[z].classid);
printf("\n\n\t學號:%s",stu[z].stuid);
printf("\n\n\t生源地:%s",stu[z].home);
printf("\n\n\t按任意鍵返回上級菜單......");
getch();
}
}
if(flag==0)
{
printf("\t對不起,你請求顯示的學生信息不存在,請核實後重試!\n");
printf("\t按任意鍵繼續......");
getch();
}
}while(flag==0);
return 0;
}
int show_class() //顯示整個班級學生信息函數
{
if(j==0)
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\t\t 系統無任何可以顯示的記錄,請先行輸入數據!");
printf("\n\n\t\t\t 按任意鍵返回......");
getch();
return 0;
}
char a[20];
int z;
int x;
int flag=0;
do
{
system("cls");
printf("\n\t需要顯示的班級號碼:");
scanf("%s",a);
for(z=0;z<j;z++)
{
if(strcmp(stu[z].classid,a)==0)
{
flag=1;
system("cls");
printf("\t%s %s 基本信息\n",stu[z].specialty,stu[z].classid);
for(x=0;x<j;x++)
{
if(strcmp(stu[x].classid,a)==0)
{
printf("\n\n\t姓名:%s",stu[z].name);
printf("\n\t性別:%s",stu[z].sex);
printf("\n\t身份證號:%s",stu[z].idcard);
printf("\n\t學院:%s",stu[z].academe);
printf("\n\t專業:%s",stu[z].specialty);
printf("\n\t班級:%s",stu[z].classid);
printf("\n\t學號:%s",stu[z].stuid);
printf("\n\t生源地:%s",stu[z].home);
}
}
printf("\n\n\t按任意鍵返回上級菜單......");
getch();
}
}
if(flag==0)
{
printf("\t對不起,你請求顯示的班級信息不存在,請核實後重試!\n");
printf("\t按任意鍵繼續......");
getch();
}
}while(flag==0);
return 0;
}
有疑問聯系我,[email protected]
請採納。
④ 編寫C語言倉庫管理系統
有答案的也發下我郵箱[email protected] 謝謝啦
⑤ 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語言編一個小型的倉庫管理系統,作為課程設計的 謝了哈
可以完成源代碼的編制
⑦ C語言的倉庫管理程序
/*
由於linux 下有些函數不一樣,暫且水段代碼,你自己再改改吧,祝你好運
*/
#include <stdio.h>
#define MaxSize 30
//倉庫能裝軍訓服裝的最大容量
struct uniform
{
char size[20];
char sex[20];
char cato[20];
};
struct uniform muni[MaxSize];//所有軍訓服裝的信息
int num;//當前軍訓服裝的數量
void getUninfo()
{
printf("請輸入軍訓服裝的屬性\n");
printf("大小(大,中,小):");
scanf("%s", muni[num].size);
printf("性別(男女):");
scanf("%s", muni[num].sex);
printf("種類(輸入一個字串):");
scanf("%s", muni[num].cato);
if( num >= MaxSize)
{
printf("倉庫溢滿。\n");
}
else
{
num++;
}
}
void showMenu()
{
printf("1.輸入軍訓服裝信息(敲入『1』):\n");
printf("2.查看軍訓服裝的套數(敲入『2』):\n");
printf("3.顯示所有軍訓服裝的信息(敲入'3'):\n");
printf("4.退出系統請敲入『n』 or 'N'\n");
}
void showUnifnum()
{
printf("倉庫中有%d套軍訓服裝。\n", num);
}
void showAll()
{
int i;
for(i=0; i<num; i++)
{
printf("第%d件服裝:\n", i+1);
printf("大小:%s\n", muni[i].size);
printf("男女:%s\n", muni[i].sex);
printf("種類:%s\n\n", muni[i].cato);
}
}
int main()
{
char op = ' ';
while( op!='n' && op!='N')
{
showMenu();
op = getchar();
if( op == '1')
{
getUninfo();
getchar();
}
else if( op=='2')
{
showUnifnum();
getchar();
}
else if( op=='3')
{
showAll();
}
else if( op=='n' || op=='N')
{
printf("Good Bye!\n");
getchar();
}
else
{
printf("錯誤選項。\n");
getchar();
}
}
return 0;
}
⑧ 求一個只用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語言的課程設計哈,在這提問不太合適。
就提供給你思路吧。
職工信息可以存入一個結構體數組中,此結構體元素包含有貨物編號(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(...)(形參同為結構體數組),也是首先找到要刪除的信息,然後要調用保存函數。
這個就是我的思路,題主可以參考,希望解決了題主的問題。