日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

物资管理系统c语言课程设计,C语言实现仓库物资管理系统

發布時間:2023/12/1 windows 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 物资管理系统c语言课程设计,C语言实现仓库物资管理系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

此系統為博主大一上學期C語言課程設計的大作業,由于當時初步接觸C語言,現在來看程序寫的太爛了,簡直不忍直視……但是還是想通過博客的形式記錄下來,也可以給剛接觸學習C語言的人一些參考吧!

系統功能設計

倉庫初始化

查詢庫存

*按電器名查詢

*按品牌名查詢

*按送貨人查詢

*按提貨人查詢

*按電器名稱由大到小順序輸出所有庫存

*按庫存數量由高到低輸出所有庫存

物資存入

物資取出

統計物資

*入庫電器總價值

*出庫電器總利潤

*統計某月每種電器的出庫數目

*統計某月每種品牌的電器的出庫數目

代碼

#include

#include

#include

//------------------------------------------------------結構體區域

typedef struct

{

char name[20]; //電器名稱

char brandName[20]; //品牌名稱

int num; //庫存數量

int unitPrice; //單價

int year;

int month;

int day;

char manName[20];

}stock; //庫存

stock s[10000],t[10000],x[10000],y[10000],in[10000],out[10000],no[10000],no1[10000],no2[10000]; //全局變量

//-------------------------------------------------------函數聲明區域

void menu(void);//主菜單函數

void write(void);//創建倉庫函數

void find(void);//查詢庫存函數

void findPart(void);//部分查詢函數

void findOne(void); //按電器名查詢

void findTwo(void); //按品牌名查詢

void findThree(void); //按提貨人查詢

void findFour(void); //按送貨人查詢

void findFive(void); //按電器名稱大小順序輸出所有庫存

void findSix(void); //按庫存數量由高到低輸出所有庫存

void deposit(void);//存入倉庫函數

void takeout(void);//取出倉庫函數

void tongji(void);//統計函數

void tongji1(void);//第一種統計函數

void tongji2(void);//第二種統計函數

void tongji3(void);//第三種統計函數

void tongji4(void);//第四種統計函數

int readFile(void);//讀取庫存記錄文件中所有結構體的數目

int readFile1(void);//讀取入庫記錄文件中所有結構體的數目

int readFile2(void);//讀取出庫記錄文件中所有結構體的數目

void end(void);//結束退出函數

//-------------------------------------------------------主函數

int main()

{

menu();

return 0;

}

void menu(void)

{

int n,l=0;

printf("============================================================\n");

printf(" \n");

printf(" -----*****歡 迎 使 用 倉 庫 物 資 管 理 系 統 ! *****----- \n");

printf(" \n");

printf("============================================================\n");

printf(" \n");

printf(" 您可以進行以下操作: \n");

printf(" \n");

printf(" 1. 倉庫初始化 \n");

printf(" \n");

printf(" 2. 查詢庫存 \n");

printf(" \n");

printf(" 3. 物資存入 \n");

printf(" \n");

printf(" 4. 物資取出 \n");

printf(" \n");

printf(" 5. 統計物資 \n");

printf(" \n");

printf(" 0. 退出系統 \n");

printf(" \n");

printf(" \n");

printf("============================================================\n");

printf("現在請選擇您要進行的操作:(請輸入操作前的數字)");

while(scanf("%d",&n)!=EOF)

{

switch(n)

{

case 1:system("CLS");write();break;

case 2:system("CLS");find();break;

case 3:system("CLS");deposit();break;

case 4:system("CLS");takeout();break;

case 5:system("CLS");tongji();break;

case 0:system("CLS");end();exit(0);

default :printf("沒有此選項!\n 請重新輸入!\n");

}

}

}

void write(void) //right

{

FILE *fp;

int i,n;

fp=fopen("庫存記錄.dat","wb");

rewind(fp);

printf("============================================================\n");

printf("請輸入倉庫中電器信息的組數!\n ps:相同電器但是不同品牌電器算多種!\n");

scanf("%d",&n);

for(i=0;i

{

printf("開始寫入第%d組\n",i+1);

printf("請輸入電器名稱:");

scanf("%s",s[i].name);

printf("請輸入電器品牌名稱:");

scanf("%s",s[i].brandName);

printf("請輸入電器數量:");

scanf("%d",&s[i].num);

printf("請輸入電器單價:");

scanf("%d",&s[i].unitPrice);

printf("請輸入存貨時間: 例:2016 12 01\n");

scanf("%d%d%d",&s[i].year,&s[i].month,&s[i].day);

printf("請輸入存貨人:");

scanf("%s",s[i].manName);

}

fwrite(s,sizeof(stock),n,fp);

fclose(fp);

printf("當前庫存記錄:(請仔細核對)\n");

for(i=0;i

{

printf("%s\n%s\n%d\n%d\n%d.%d.%d\n%s\n",s[i].name,s[i].brandName,s[i].num,s[i].unitPrice,s[i].year,s[i].month,s[i].day,s[i].manName);

}

printf("電器信息寫入完成!\n 請按回車鍵返回主界面!\n");

getchar();getchar();

system("CLS");

menu();

}

void findOne(void)

{

char name[10],ch='y';

int i,k,n,bn;

bn=readFile();

do

{

system("CLS");

printf("============================================================\n");

printf("請輸入要查詢的電器名稱:\n");

getchar();

gets(name);

k=-1;

for(i=0;i

{

if(strcmp(t[i].name,name)==0)

{

printf("該電器信息如下:\n");

k=i;

printf("電器名稱:%s,電器品牌:%s,庫存數量:%d,電器單價:%d,入庫時間:%d.%d.%d,存貨人:%s\n",t[k].name,t[k].brandName,t[k].num,t[k].unitPrice,t[k].year,t[k].month,t[k].day,t[k].manName);

}

}

if(k==-1)

{

printf("抱歉,本倉庫中無此電器!\n");

}

printf("\n是否繼續查詢?\n");

ch=getchar();

}while(ch=='y'||ch=='Y');

printf("將返回上一級菜單!\n 請按回車鍵確認!\n");

getchar();getchar();

system("CLS");

findPart();

}

void findTwo(void)

{

char brandName[10],ch='y';

int i,k,n,bn;

bn=readFile();

do

{

system("CLS");

printf("============================================================\n");

printf("請輸入要查詢的品牌名稱:\n");

getchar();

gets(brandName);

k=-1;

for(i=0;i

{

if(strcmp(t[i].brandName,brandName)==0)

{

printf("該電器信息如下:\n");

k=i;

printf("電器名稱:%s,電器品牌:%s,庫存數量:%d,電器單價:%d,入庫時間:%d.%d.%d,存貨人:%s\n",t[k].name,t[k].brandName,t[k].num,t[k].unitPrice,t[k].year,t[k].month,t[k].day,t[k].manName);

}

}

if(k==-1)

{

printf("抱歉,本倉庫中無此電器!\n");

}

printf("\n是否繼續查詢?\n");

ch=getchar();

}while(ch=='y'||ch=='Y');

printf("將返回上一級菜單!\n 請按回車鍵確認!\n");

getchar();getchar();

system("CLS");

findPart();

}

void findThree(void) // 按送貨人查詢 入庫

{

char manName[10],ch='y';

int i,k,n,bn1;

bn1=readFile1();

FILE *fp1;

fp1=fopen("入庫記錄.dat","rb+");

if(fp1==NULL)

{

printf("該倉庫中未添加任何電器!\n");

exit(0);

}

fread(&y,sizeof(stock),bn1,fp1);

fclose(fp1);

do

{

system("CLS");

printf("============================================================\n");

printf("請輸入要查詢的存貨人:\n");

getchar();

gets(manName);

k=-1;

for(i=0;i

{

if(strcmp(y[i].manName,manName)==0)

{

printf("該電器信息如下:\n");

k=i;

printf("電器名稱:%s,電器品牌:%s,庫存數量:%d,電器單價:%d,入庫時間:%d.%d.%d,存貨人:%s\n",y[k].name,y[k].brandName,y[k].num,y[k].unitPrice,y[k].year,y[k].month,y[k].day,y[k].manName);

}

}

if(k==-1)

{

printf("抱歉,本倉庫中無此存貨人存入的電器!\n");

}

printf("\n是否繼續查詢?\n");

ch=getchar();

}while(ch=='y'||ch=='Y');

printf("將返回上一級菜單!\n 請按回車鍵確認!\n");

getchar();getchar();

system("CLS");

findPart();

}

void findFour(void) //按提貨人查詢 出庫

{

char manName[10],ch='y';

int i,k,n,bn2;

bn2=readFile2();

FILE *fp2;

fp2=fopen("出庫記錄.dat","rb+");

if(fp2==NULL)

{

printf("該倉庫中未提出任何電器!\n");

exit(0);

}

fread(&x,sizeof(stock),bn2,fp2);

fclose(fp2);

do

{

system("CLS");

printf("============================================================\n");

printf("請輸入要查詢的提貨人:\n");

getchar();

gets(manName);

k=-1;

for(i=0;i

{

if(strcmp(x[i].manName,manName)==0)

{

printf("該電器信息如下:\n");

k=i;

printf("電器名稱:%s,電器品牌:%s,庫存數量:%d,電器單價:%d,出庫時間:%d.%d.%d,提貨人:%s\n",x[k].name,x[k].brandName,x[k].num,x[k].unitPrice,x[k].year,x[k].month,x[k].day,x[k].manName);

}

}

if(k==-1)

{

printf("抱歉,本倉庫中無此提貨人提出的電器!\n");

}

printf("\n是否繼續查詢?\n");

ch=getchar();

}while(ch=='y'||ch=='Y');

printf("將返回上一級菜單!\n 請按回車鍵確認!\n");

getchar();getchar();

system("CLS");

findPart();

}

void findFive(void) //電器名稱大小順序輸出所有庫存

{

int bn;

bn=readFile();

printf("============================================================\n");

FILE *fp;

fp=fopen("庫存記錄.dat","rb+");

if(fp==NULL)

{

printf("該倉庫中無庫存!\n");

exit(0);

}

fread(&s,sizeof(stock),bn,fp);

int i,j;

for(i=0;i

for(j=0;j

{

if(s[j].name

{

t[1]=s[j+1];

s[j+1]=s[j];

s[j]=t[1];

}

}

for(i=0;i

printf("%d. 電器名稱:%s,電器品牌:%s,庫存數量:%d,電器單價:%d,入庫時間:%d.%d.%d,存貨人:%s\n",i+1,s[i].name,s[i].brandName,s[i].num,s[i].unitPrice,s[i].year,s[i].month,s[i].day,s[i].manName);

printf("\n輸出完成!請按回車鍵返回上一級!\n");

getchar();getchar();

system("CLS");

findPart();

}

void findSix(void) //按庫存數量由高到低輸出所有庫存

{

int bn;

bn=readFile();

printf("============================================================\n");

FILE *fp;

fp=fopen("庫存記錄.dat","rb+");

if(fp==NULL)

{

printf("該倉庫中無庫存!\n");

exit(0);

}

fread(&s,sizeof(stock),bn,fp);

int i,j;

for(i=0;i

for(j=0;j

{

if(s[j].num

{

t[1]=s[j+1];

s[j+1]=s[j];

s[j]=t[1];

}

}

for(i=0;i

printf("%d. 電器名稱:%s,電器品牌:%s,庫存數量:%d,電器單價:%d,入庫時間:%d.%d.%d,存貨人:%s\n",i+1,s[i].name,s[i].brandName,s[i].num,s[i].unitPrice,s[i].year,s[i].month,s[i].day,s[i].manName);

printf("\n輸出完成!請按回車鍵返回上一級!\n");

getchar();getchar();

system("CLS");

findPart();

}

void findPart(void)

{

int n;

printf("============================================================\n");

printf("1. 按電器名查詢\n");

printf("2. 按品牌名查詢\n");

printf("3. 按送貨人查詢\n");

printf("4. 按提貨人查詢\n");

printf("5. 按電器名稱由大到小順序輸出所有庫存\n");

printf("6. 按庫存數量由高到低輸出所有庫存\n");

printf("0. 返回主菜單\n");

while(scanf("%d",&n)!=EOF)

switch(n)

{

case 1:system("CLS");findOne();break;

case 2:system("CLS");findTwo();break;

case 3:system("CLS");findThree();break;

case 4:system("CLS");findFour();break;

case 5:system("CLS");findFive();break;

case 6:system("CLS");findSix();break;

case 0:system("CLS");menu();break;

default :printf("沒有此選項!\n 請重新輸入!\n");

}

}

void find(void)

{

int i,bn;

FILE *fp;

fp=fopen("庫存記錄.dat","rb+");

if(fp==NULL)

{

printf("該倉庫中無庫存!\n");

exit(0);

}

rewind(fp);

bn=readFile();

fread(&t,sizeof(stock),bn,fp);

getchar();

findPart();

fclose(fp);

}

void deposit(void) //入庫

{

printf("============================================================\n");

int bn,bn1;

stock jia;

FILE *fp1,*fp;

int i=0,j,n=0;

char ch='y';

printf("請輸入要加入倉庫的電器信息:\n");

do

{

fp1=fopen("入庫記錄.dat","ab+");

if(fp1==NULL)

{

printf("該倉庫中未添加任何電器!\n");

exit(0);

}

fp=fopen("庫存記錄.dat","ab+");

bn=readFile();

bn1=readFile1();

printf("請輸入電器名稱:");

scanf("%s",jia.name);

printf("請輸入電器品牌:");

scanf("%s",jia.brandName);

printf("請輸入電器數量:");

scanf("%d",&jia.num);

printf("請輸入電器單價:");

scanf("%d",&jia.unitPrice);

printf("請輸入送貨時間: 例:2016 12 01\n");

scanf("%d%d%d",&jia.year,&jia.month,&jia.day);

printf("請輸入送貨人:");

scanf("%s",jia.manName);

fwrite(&jia,sizeof(stock),1,fp1);

fwrite(&jia,sizeof(stock),1,fp);

fclose(fp1);fclose(fp);

printf("是否繼續輸入?\n");

getchar();

ch=getchar();

}while(ch=='y'||ch=='Y');

printf("將返回上一級菜單!\n 請按回車鍵確認!\n");

getchar();

system("CLS");

menu();

}

void takeout(void) //出庫

{

stock jian;

printf("==============================================================\n");

int bn,bn2,i,j;

char ch='y';

FILE *fp,*fp2;

bn=readFile();

bn2=readFile2();

printf("請輸入要提出倉庫的電器信息:\n");

do

{

fp=fopen("庫存記錄.dat","rb+");

if(fp==NULL)

{

printf("無法打開此文件!\n");

exit(0);

}

for(i=0;i

{

fread(&s[i],sizeof(stock),1,fp);

}

fclose(fp);

fp2=fopen("出庫記錄.dat","wb+");

if(fp2==NULL)

{

printf("無法打開此文件!\n");

exit(0);

}

printf("請輸入電器名稱:");

scanf("%s",jian.name);

printf("請輸入電器品牌:");

scanf("%s",jian.brandName);

printf("請輸入電器數量:");

scanf("%d",&jian.num);

printf("請輸入電器單價:");

scanf("%d",&jian.unitPrice);

printf("請輸入提貨時間: 例:2016 12 01\n");

scanf("%d%d%d",&jian.year,&jian.month,&jian.day);

printf("請輸入提貨人:");

scanf("%s",jian.manName);

getchar();

fwrite(&jian,sizeof(stock),1,fp2);

fclose(fp2);

for(i=0;i

{

if((strcmp(jian.name,s[i].name)==0)&&(strcmp(jian.brandName,s[i].brandName)==0))

{

if(jian.num<=s[i].num)

{

s[i].num=s[i].num-jian.num;

}

else

{

printf("庫存不足!無法提出!\n");

printf("請按回車鍵返回!");

getchar();

system("CLS");

menu();

}

}

}

fopen("庫存記錄.dat","wb+");

for(i=0;i

{

fwrite(&s[i],sizeof(stock),1,fp);

}

fclose(fp);

printf("\n出庫完成! 是否繼續輸入?\n");

getchar();

ch=getchar();

}while(ch=='y'||ch=='Y');

printf("將返回上一級菜單!\n 請按回車鍵確認!\n");

getchar();

system("CLS");

menu();

}

void tongji(void)

{

int n;

system("CLS");

printf("==============================================================\n");

printf("1. 入庫電器總價值\n");

printf("2. 出庫電器總利潤\n");

printf("3.統計該月每種電器的出庫數目\n");

printf("4.統計該月每種品牌的電器的出庫數目\n");

printf("0. 返回主菜單\n");

printf("請選擇要進行的操作:(0到4)\n");

scanf("%d",&n);

getchar();

while(n!=0&&n!=1&&n!=2&&n!=3&&n!=4)

{

printf("沒有此選項!\n 請重新輸入!\n");

scanf("%d",&n);

getchar();

}

switch(n)

{

case 1:tongji3();break;//第三種統計函數

case 2:tongji4();break;//第四種統計函數

case 3:tongji1();break;//第一種統計函數

case 4:tongji2();break;//第二種統計函數

case 0:system("CLS");menu();break;

}

}

void tongji2(void)//第二種統計函數

{

FILE *fp;

int bn1,i,year,month,k=0;

bn1=readFile1();

system("CLS");

printf("==============================================================\n");

fp=fopen("出庫記錄.dat","rb+");

if(fp==NULL)

{

printf("無法打開此文件!\n");

exit(0);

}

for(i=0;i

{

fread(&s,sizeof(stock),bn1,fp);

}

printf("請輸入一個日期(年 月 如 2017 01):\n");

scanf("%d%d",&year,&month);

for(i=0;i

{

if((s[i].year==year)&&(s[i].month==month))

{

printf("電器名稱:%s\n品牌名稱:%s\n出庫數目:%d\n",s[i].name,s[i].brandName,s[i].num);

k+=1;

}

}

if(k==0)

printf("庫存記錄中不存在此種電器!\n");

fclose(fp);

printf("統計完成,請按回車鍵返回!\n");

getchar();

getchar();

system("CLS");

tongji();

}

void tongji1(void)//第一種統計函數

{

FILE *fp;

int bn1,i,year,month,k=0;

bn1=readFile1();

system("CLS");

printf("==============================================================\n");

fp=fopen("出庫記錄.dat","rb+");

if(fp==NULL)

{

printf("無法打開此文件!\n");

exit(0);

}

for(i=0;i

{

fread(&s,sizeof(stock),bn1,fp);

}

printf("請輸入一個日期(年 月 如 2017 01 ):\n");

scanf("%d%d",&year,&month);

for(i=0;i

{

if((s[i].year==year)&&(s[i].month==month))

{

printf("電器名稱:%s\n出庫數目:%d\n",s[i].name,s[i].num);

k+=1;

}

}

if(k==0)

printf("庫存記錄中不存在此種電器!\n");

fclose(fp);

printf("統計完成,請按回車鍵返回!\n");

getchar();

getchar();

system("CLS");

tongji();

}

void tongji3(void)//第三種統計函數

{

FILE *fp;

int bn1,i;

long long int total=0;

bn1=readFile1();

system("CLS");

printf("==============================================================\n");

fp=fopen("入庫記錄.dat","rb+");

if(fp==NULL)

{

printf("無法打開此文件!\n");

exit(0);

}

for(i=0;i

{

fread(&s[i],sizeof(stock),1,fp);

}

fclose(fp);

for(i=0;i

{

total+=(s[i].num*s[i].unitPrice);

}

printf("商品總價值為%d\n",total);

printf("統計完成,請按回車鍵返回!\n");

getchar();

system("CLS");

tongji();

}

void tongji4(void)//第四種統計函數

{

FILE *fp1,*fp2;

int bn,bn2,i;

long long int money=0;

bn=readFile();

bn2=readFile2();

system("CLS");

printf("==============================================================\n");

fp1=fopen("庫存記錄.dat","rb+");

if(fp1==NULL)

{

printf("無法打開此文件!\n");

exit(0);

}

for(i=0;i

{

fread(&s[i],sizeof(stock),1,fp1);

}

fclose(fp1);

fp2=fopen("出庫記錄.dat","rb+");

if(fp2==NULL)

{

printf("無法打開此文件!\n");

exit(0);

}

for(i=0;i

{

fread(&t[i],sizeof(stock),1,fp2);

}

fclose(fp2);

for(i=0;i

{

money+=((t[i].unitPrice-s[i].unitPrice)*t[i].num);

}

printf("總利潤為%d\n",money);

printf("統計完成,請按回車鍵返回!\n");

getchar();

system("CLS");

tongji();

}

void end(void)

{

printf("==============================================================\n");

printf(" \n");

printf(" \n");

printf(" \n");

printf(" 感 謝 使 用 本 系 統 ! \n");

printf(" \n");

printf(" 再 見 ! \n");

printf(" \n");

printf(" \n");

printf(" \n");

printf(" \n");

printf("==============================================================\n");

}

int readFile(void)//庫存記錄文件中結構體的個數

{

FILE *fb;

int bn=0;

fb=fopen("庫存記錄.dat","rb+");

if(fb==NULL)

{

return bn;

}

while(!feof(fb))

{

if(fread(&no[bn],sizeof(stock),1,fb))

bn++;

}

fclose(fb);

return bn;

}

int readFile1(void)//入庫記錄文件中結構體的個數

{

FILE *fb;

int bn1=0;

fb=fopen("入庫記錄.dat","rb+");

if(fb==NULL)

{

return bn1;

}

while(!feof(fb))

{

if(fread(&no1[bn1],sizeof(stock),1,fb))

bn1++;

}

fclose(fb);

return bn1;

}

int readFile2(void)//出庫記錄文件中結構體的個數

{

FILE *fb;

int bn2=0;

fb=fopen("出庫記錄.dat","rb+");

if(fb==NULL)

{

return bn2;

}

while(!feof(fb))

{

if(fread(&no2[bn2],sizeof(stock),1,fb))

bn2++;

}

fclose(fb);

return bn2;

}

總結

以上是生活随笔為你收集整理的物资管理系统c语言课程设计,C语言实现仓库物资管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。