欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)倉庫物資管理系統(tǒng)

 更新時(shí)間:2019年12月26日 16:47:02   作者:code_oxygen  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)倉庫物資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

此系統(tǒng)為博主大一上學(xué)期C語言課程設(shè)計(jì)的大作業(yè),由于當(dāng)時(shí)初步接觸C語言,現(xiàn)在來看程序?qū)懙奶珷€了,簡直不忍直視……但是還是想通過博客的形式記錄下來,也可以給剛接觸學(xué)習(xí)C語言的人一些參考吧!

系統(tǒng)功能設(shè)計(jì)

倉庫初始化

查詢庫存

*按電器名查詢
*按品牌名查詢
*按送貨人查詢
*按提貨人查詢
*按電器名稱由大到小順序輸出所有庫存
*按庫存數(shù)量由高到低輸出所有庫存

物資存入

物資取出

統(tǒng)計(jì)物資

*入庫電器總價(jià)值
*出庫電器總利潤
*統(tǒng)計(jì)某月每種電器的出庫數(shù)目
*統(tǒng)計(jì)某月每種品牌的電器的出庫數(shù)目

代碼

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//------------------------------------------------------結(jié)構(gòu)體區(qū)域
typedef struct
{
 char name[20];       //電器名稱
 char brandName[20];    //品牌名稱
 int num;          //庫存數(shù)量
 int unitPrice;       //單價(jià)
 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];        //全局變量
//-------------------------------------------------------函數(shù)聲明區(qū)域
void menu(void);//主菜單函數(shù)
void write(void);//創(chuàng)建倉庫函數(shù)
void find(void);//查詢庫存函數(shù)
void findPart(void);//部分查詢函數(shù)
void findOne(void);  //按電器名查詢
void findTwo(void);  //按品牌名查詢
void findThree(void); //按提貨人查詢
void findFour(void);  //按送貨人查詢
void findFive(void);  //按電器名稱大小順序輸出所有庫存
void findSix(void);  //按庫存數(shù)量由高到低輸出所有庫存
void deposit(void);//存入倉庫函數(shù)
void takeout(void);//取出倉庫函數(shù)
void tongji(void);//統(tǒng)計(jì)函數(shù)
void tongji1(void);//第一種統(tǒng)計(jì)函數(shù)
void tongji2(void);//第二種統(tǒng)計(jì)函數(shù)
void tongji3(void);//第三種統(tǒng)計(jì)函數(shù)
void tongji4(void);//第四種統(tǒng)計(jì)函數(shù)
int readFile(void);//讀取庫存記錄文件中所有結(jié)構(gòu)體的數(shù)目
int readFile1(void);//讀取入庫記錄文件中所有結(jié)構(gòu)體的數(shù)目
int readFile2(void);//讀取出庫記錄文件中所有結(jié)構(gòu)體的數(shù)目
void end(void);//結(jié)束退出函數(shù)
//-------------------------------------------------------主函數(shù)
int main()
{
 menu();
 return 0;
}
void menu(void)
{
 int n,l=0;
 printf("============================================================\n");
 printf("                              \n");
 printf(" -----*****歡 迎 使 用 倉 庫 物 資 管 理 系 統(tǒng) ! *****----- \n");
 printf("                              \n");
 printf("============================================================\n");
 printf("                              \n");
 printf(" 您可以進(jìn)行以下操作:                    \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.  統(tǒng)計(jì)物資                   \n");
 printf("                              \n");
 printf("     0.  退出系統(tǒng)                   \n");
 printf("                              \n");
 printf("                              \n");
 printf("============================================================\n");
 printf("現(xiàn)在請(qǐng)選擇您要進(jìn)行的操作:(請(qǐng)輸入操作前的數(shù)字)");
 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("沒有此選項(xiàng)!\n 請(qǐng)重新輸入!\n");
    }
  }







}
void write(void)    //right
{
 FILE *fp;
 int i,n;
 fp=fopen("庫存記錄.dat","wb");
 rewind(fp);
 printf("============================================================\n");
 printf("請(qǐng)輸入倉庫中電器信息的組數(shù)!\n    ps:相同電器但是不同品牌電器算多種!\n");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
 printf("開始寫入第%d組\n",i+1);
 printf("請(qǐng)輸入電器名稱:");
 scanf("%s",s[i].name);
 printf("請(qǐng)輸入電器品牌名稱:");
 scanf("%s",s[i].brandName);
 printf("請(qǐng)輸入電器數(shù)量:");
 scanf("%d",&s[i].num);
 printf("請(qǐng)輸入電器單價(jià):");
 scanf("%d",&s[i].unitPrice);
 printf("請(qǐng)輸入存貨時(shí)間: <年月日之間用空格隔開>例:2016 12 01\n");
 scanf("%d%d%d",&s[i].year,&s[i].month,&s[i].day);
 printf("請(qǐng)輸入存貨人:");
 scanf("%s",s[i].manName);
 }
 fwrite(s,sizeof(stock),n,fp);
 fclose(fp);
 printf("當(dāng)前庫存記錄:(請(qǐng)仔細(xì)核對(duì))\n");
 for(i=0;i<n;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 請(qǐng)按回車鍵返回主界面!\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("請(qǐng)輸入要查詢的電器名稱:\n");
 getchar();
 gets(name);
 k=-1;
 for(i=0;i<bn;i++)
 {
  if(strcmp(t[i].name,name)==0)
  {
  printf("該電器信息如下:\n");
  k=i;
  printf("電器名稱:%s,電器品牌:%s,庫存數(shù)量:%d,電器單價(jià):%d,入庫時(shí)間:%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是否繼續(xù)查詢?<y/n>\n");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車鍵確認(rè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("請(qǐng)輸入要查詢的品牌名稱:\n");
 getchar();
 gets(brandName);
 k=-1;
 for(i=0;i<bn;i++)
 {
  if(strcmp(t[i].brandName,brandName)==0)
  {
  printf("該電器信息如下:\n");
  k=i;
  printf("電器名稱:%s,電器品牌:%s,庫存數(shù)量:%d,電器單價(jià):%d,入庫時(shí)間:%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是否繼續(xù)查詢?<y/n>\n");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車鍵確認(rè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("請(qǐng)輸入要查詢的存貨人:\n");
 getchar();
 gets(manName);
 k=-1;
 for(i=0;i<bn1;i++)
 {
  if(strcmp(y[i].manName,manName)==0)
  {
  printf("該電器信息如下:\n");
  k=i;
  printf("電器名稱:%s,電器品牌:%s,庫存數(shù)量:%d,電器單價(jià):%d,入庫時(shí)間:%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是否繼續(xù)查詢?<y/n>\n");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車鍵確認(rè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("請(qǐng)輸入要查詢的提貨人:\n");
 getchar();
 gets(manName);
 k=-1;
 for(i=0;i<bn2;i++)
 {
  if(strcmp(x[i].manName,manName)==0)
  {
  printf("該電器信息如下:\n");
  k=i;
  printf("電器名稱:%s,電器品牌:%s,庫存數(shù)量:%d,電器單價(jià):%d,出庫時(shí)間:%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是否繼續(xù)查詢?<y/n>\n");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車鍵確認(rè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<bn-1;i++)
 for(j=0;j<bn-1-i;j++)
 {
  if(s[j].name<s[j+1].name)
  {
  t[1]=s[j+1];
  s[j+1]=s[j];
  s[j]=t[1];
  }
 }
 for(i=0;i<bn;i++)
 printf("%d. 電器名稱:%s,電器品牌:%s,庫存數(shù)量:%d,電器單價(jià):%d,入庫時(shí)間:%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輸出完成!請(qǐng)按回車鍵返回上一級(jí)!\n");
 getchar();getchar();
 system("CLS");
 findPart();
}
void findSix(void)    //按庫存數(shù)量由高到低輸出所有庫存
{
 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<bn-1;i++)
 for(j=0;j<bn-1-i;j++)
 {
  if(s[j].num<s[j+1].num)
  {
  t[1]=s[j+1];
  s[j+1]=s[j];
  s[j]=t[1];
  }
 }
 for(i=0;i<bn;i++)
 printf("%d. 電器名稱:%s,電器品牌:%s,庫存數(shù)量:%d,電器單價(jià):%d,入庫時(shí)間:%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輸出完成!請(qǐng)按回車鍵返回上一級(jí)!\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. 按庫存數(shù)量由高到低輸出所有庫存\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("沒有此選項(xiàng)!\n 請(qǐng)重新輸入!\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("請(qǐng)輸入要加入倉庫的電器信息:\n");
 do
 {
 fp1=fopen("入庫記錄.dat","ab+");
 if(fp1==NULL)
 {
  printf("該倉庫中未添加任何電器!\n");
  exit(0);
 }
 fp=fopen("庫存記錄.dat","ab+");
 bn=readFile();
 bn1=readFile1();
 printf("請(qǐng)輸入電器名稱:");
 scanf("%s",jia.name);
 printf("請(qǐng)輸入電器品牌:");
 scanf("%s",jia.brandName);
 printf("請(qǐng)輸入電器數(shù)量:");
 scanf("%d",&jia.num);
 printf("請(qǐng)輸入電器單價(jià):");
 scanf("%d",&jia.unitPrice);
 printf("請(qǐng)輸入送貨時(shí)間: <ps: 年月日之間用空格隔開> 例:2016 12 01\n");
 scanf("%d%d%d",&jia.year,&jia.month,&jia.day);
 printf("請(qǐng)輸入送貨人:");
 scanf("%s",jia.manName);
 fwrite(&jia,sizeof(stock),1,fp1);
 fwrite(&jia,sizeof(stock),1,fp);
 fclose(fp1);fclose(fp);
 printf("是否繼續(xù)輸入?<y/n>\n");
 getchar();
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車鍵確認(rè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("請(qǐng)輸入要提出倉庫的電器信息:\n");
 do
 {
 fp=fopen("庫存記錄.dat","rb+");
 if(fp==NULL)
 {
  printf("無法打開此文件!\n");
  exit(0);
 }
 for(i=0;i<bn;i++)
 {
  fread(&s[i],sizeof(stock),1,fp);
 }
 fclose(fp);
 fp2=fopen("出庫記錄.dat","wb+");
 if(fp2==NULL)
 {
  printf("無法打開此文件!\n");
  exit(0);
 }
 printf("請(qǐng)輸入電器名稱:");
 scanf("%s",jian.name);
 printf("請(qǐng)輸入電器品牌:");
 scanf("%s",jian.brandName);
 printf("請(qǐng)輸入電器數(shù)量:");
 scanf("%d",&jian.num);
 printf("請(qǐng)輸入電器單價(jià):");
 scanf("%d",&jian.unitPrice);
 printf("請(qǐng)輸入提貨時(shí)間: <ps: 年月日之間用空格隔開> 例:2016 12 01\n");
 scanf("%d%d%d",&jian.year,&jian.month,&jian.day);
 printf("請(qǐng)輸入提貨人:");
 scanf("%s",jian.manName);
 getchar();
 fwrite(&jian,sizeof(stock),1,fp2);
 fclose(fp2);
 for(i=0;i<bn;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("請(qǐng)按回車鍵返回!");
   getchar();
   system("CLS");
   menu();
  }
  }
 }
 fopen("庫存記錄.dat","wb+");
 for(i=0;i<bn;i++)
 {
  fwrite(&s[i],sizeof(stock),1,fp);
 }
 fclose(fp);

 printf("\n出庫完成! 是否繼續(xù)輸入?<y/n>\n");
 getchar();
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車鍵確認(rèn)!\n");
 getchar();

 system("CLS");
 menu();

}
void tongji(void)
{
 int n;
 system("CLS");
 printf("==============================================================\n");
 printf("1. 入庫電器總價(jià)值\n");
 printf("2. 出庫電器總利潤\n");
 printf("3.統(tǒng)計(jì)該月每種電器的出庫數(shù)目\n");
 printf("4.統(tǒng)計(jì)該月每種品牌的電器的出庫數(shù)目\n");
 printf("0. 返回主菜單\n");
 printf("請(qǐng)選擇要進(jìn)行的操作:(0到4)\n");
 scanf("%d",&n);
 getchar();
 while(n!=0&&n!=1&&n!=2&&n!=3&&n!=4)
 {

 printf("沒有此選項(xiàng)!\n 請(qǐng)重新輸入!\n");
 scanf("%d",&n);
    getchar();
  }
  switch(n)
 {
  case 1:tongji3();break;//第三種統(tǒng)計(jì)函數(shù)
  case 2:tongji4();break;//第四種統(tǒng)計(jì)函數(shù)
  case 3:tongji1();break;//第一種統(tǒng)計(jì)函數(shù)
  case 4:tongji2();break;//第二種統(tǒng)計(jì)函數(shù)
  case 0:system("CLS");menu();break;
 }
}
void tongji2(void)//第二種統(tǒng)計(jì)函數(shù)
{
   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<bn1;i++)
 {
 fread(&s,sizeof(stock),bn1,fp);
 }
  printf("請(qǐng)輸入一個(gè)日期(年 月 如 2017 01):\n");
 scanf("%d%d",&year,&month);

    for(i=0;i<bn1;i++)
    {
      if((s[i].year==year)&&(s[i].month==month))
      {
        printf("電器名稱:%s\n品牌名稱:%s\n出庫數(shù)目:%d\n",s[i].name,s[i].brandName,s[i].num);
        k+=1;
      }
    }
      if(k==0)
      printf("庫存記錄中不存在此種電器!\n");


  fclose(fp);
  printf("統(tǒng)計(jì)完成,請(qǐng)按回車鍵返回!\n");
 getchar();
 getchar();
 system("CLS");
 tongji();

}
void tongji1(void)//第一種統(tǒng)計(jì)函數(shù)
{
  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<bn1;i++)
 {
 fread(&s,sizeof(stock),bn1,fp);
 }
  printf("請(qǐng)輸入一個(gè)日期(年 月 如 2017 01 ):\n");
 scanf("%d%d",&year,&month);

    for(i=0;i<bn1;i++)
    {
      if((s[i].year==year)&&(s[i].month==month))
      {
        printf("電器名稱:%s\n出庫數(shù)目:%d\n",s[i].name,s[i].num);
        k+=1;
      }
    }
      if(k==0)
      printf("庫存記錄中不存在此種電器!\n");



  fclose(fp);
  printf("統(tǒng)計(jì)完成,請(qǐng)按回車鍵返回!\n");
 getchar();
 getchar();
 system("CLS");
 tongji();


}
void tongji3(void)//第三種統(tǒng)計(jì)函數(shù)
{
 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<bn1;i++)
 {
 fread(&s[i],sizeof(stock),1,fp);
 }
 fclose(fp);
 for(i=0;i<bn1;i++)
 {
 total+=(s[i].num*s[i].unitPrice);
 }
 printf("商品總價(jià)值為%d\n",total);
 printf("統(tǒng)計(jì)完成,請(qǐng)按回車鍵返回!\n");
 getchar();
 system("CLS");
 tongji();
}
void tongji4(void)//第四種統(tǒng)計(jì)函數(shù)
{

 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<bn;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<bn2;i++)
 {
 fread(&t[i],sizeof(stock),1,fp2);
 }
 fclose(fp2);

 for(i=0;i<bn2;i++)
 {
 money+=((t[i].unitPrice-s[i].unitPrice)*t[i].num);
 }
 printf("總利潤為%d\n",money);
 printf("統(tǒng)計(jì)完成,請(qǐng)按回車鍵返回!\n");
 getchar();
 system("CLS");
 tongji();
}
void end(void)
{
 printf("==============================================================\n");
 printf("                               \n");
 printf("                               \n");
 printf("                               \n");
 printf("      感 謝 使 用 本 系 統(tǒng) !              \n");
 printf("                               \n");
 printf("       再 見 !                     \n");
 printf("                               \n");
 printf("                               \n");
 printf("                               \n");
 printf("                               \n");
 printf("==============================================================\n");
}
int readFile(void)//庫存記錄文件中結(jié)構(gòu)體的個(gè)數(shù)
{
 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)//入庫記錄文件中結(jié)構(gòu)體的個(gè)數(shù)
{
 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)//出庫記錄文件中結(jié)構(gòu)體的個(gè)數(shù)
{
 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;
}

運(yùn)行截圖

總結(jié)

兩年前寫的程序了,大體運(yùn)行了一下,存在一點(diǎn)小bug,還有一些設(shè)計(jì)不合理的地方以及沒有解決非法輸入的問題。

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • c++中stack、queue和vector的基本操作示例

    c++中stack、queue和vector的基本操作示例

    這篇文章主要給大家介紹了關(guān)于c++中stack、queue和vector基本操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • C++中cout的格式使用詳細(xì)介紹

    C++中cout的格式使用詳細(xì)介紹

    cout 是C++中 ostream 類型的對(duì)象,該類被封裝在 < iostream > 庫中,該庫定義的名字都在命名空間 std 中,所以 cout 全稱是 std::cout 。本文重點(diǎn)給大家介紹C++中cout的格式使用,需要的朋友參考下吧
    2021-06-06
  • 《戰(zhàn)狼》中兩軍作戰(zhàn)入侵代碼竟然是輸出星期幾的!

    《戰(zhàn)狼》中兩軍作戰(zhàn)入侵代碼竟然是輸出星期幾的!

    這篇文章主要介紹了《戰(zhàn)狼》中兩軍作戰(zhàn)入侵代碼竟然是輸出星期幾的,喜歡戰(zhàn)狼和編程的同學(xué)可以了解下。
    2017-11-11
  • c++重載的詳細(xì)總結(jié)

    c++重載的詳細(xì)總結(jié)

    作為成員函數(shù)重載符,對(duì)于雙目操作符重載函數(shù)只需一個(gè)形參,對(duì)于單目操作符重載函數(shù)不需要形參
    2013-09-09
  • C語言文件操作詳情(二)

    C語言文件操作詳情(二)

    這篇文章主要介紹了C語言文件操作詳情,文章基于上一篇文章的內(nèi)容繼續(xù)展開C語言文件操作的相關(guān)詳情,需要的小伙伴可以參考一下
    2022-04-04
  • C++實(shí)現(xiàn)LeetCode(45.跳躍游戲之二)

    C++實(shí)現(xiàn)LeetCode(45.跳躍游戲之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(45.跳躍游戲之二),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++?STL容器詳解之紅黑樹部分模擬實(shí)現(xiàn)

    C++?STL容器詳解之紅黑樹部分模擬實(shí)現(xiàn)

    本文主要對(duì)紅黑樹進(jìn)行了詳細(xì)介紹,并對(duì)其核心功能進(jìn)行了模擬實(shí)現(xiàn)。文中的代碼對(duì)我們的學(xué)習(xí)或工作有一定的價(jià)值,感興趣的小伙伴可以了解一下
    2021-12-12
  • C語言實(shí)現(xiàn)單詞助手功能

    C語言實(shí)現(xiàn)單詞助手功能

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)單詞小助手,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C語言實(shí)題講解快速掌握單鏈表下

    C語言實(shí)題講解快速掌握單鏈表下

    單鏈表是后面要學(xué)的雙鏈表以及循環(huán)鏈表的基礎(chǔ),要想繼續(xù)深入了解數(shù)據(jù)結(jié)構(gòu)以及C語言,我們就要奠定好這塊基石!接下來就和我一起學(xué)習(xí)吧
    2022-04-04
  • C++深淺拷貝和string類的兩種寫法詳解

    C++深淺拷貝和string類的兩種寫法詳解

    這篇文章主要為大家詳細(xì)介紹了C++深淺拷貝和string類的兩種寫法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評(píng)論