C語(yǔ)言實(shí)現(xiàn)倉(cāng)庫(kù)物資管理系統(tǒng)
前言
此系統(tǒng)為博主大一上學(xué)期C語(yǔ)言課程設(shè)計(jì)的大作業(yè),由于當(dāng)時(shí)初步接觸C語(yǔ)言,現(xiàn)在來(lái)看程序?qū)懙奶珷€了,簡(jiǎn)直不忍直視……但是還是想通過(guò)博客的形式記錄下來(lái),也可以給剛接觸學(xué)習(xí)C語(yǔ)言的人一些參考吧!
系統(tǒng)功能設(shè)計(jì)
倉(cāng)庫(kù)初始化
查詢庫(kù)存
*按電器名查詢
*按品牌名查詢
*按送貨人查詢
*按提貨人查詢
*按電器名稱由大到小順序輸出所有庫(kù)存
*按庫(kù)存數(shù)量由高到低輸出所有庫(kù)存
物資存入
物資取出
統(tǒng)計(jì)物資
*入庫(kù)電器總價(jià)值
*出庫(kù)電器總利潤(rùn)
*統(tǒng)計(jì)某月每種電器的出庫(kù)數(shù)目
*統(tǒng)計(jì)某月每種品牌的電器的出庫(kù)數(shù)目
代碼
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//------------------------------------------------------結(jié)構(gòu)體區(qū)域
typedef struct
{
char name[20]; //電器名稱
char brandName[20]; //品牌名稱
int num; //庫(kù)存數(shù)量
int unitPrice; //單價(jià)
int year;
int month;
int day;
char manName[20];
}stock; //庫(kù)存
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)建倉(cāng)庫(kù)函數(shù)
void find(void);//查詢庫(kù)存函數(shù)
void findPart(void);//部分查詢函數(shù)
void findOne(void); //按電器名查詢
void findTwo(void); //按品牌名查詢
void findThree(void); //按提貨人查詢
void findFour(void); //按送貨人查詢
void findFive(void); //按電器名稱大小順序輸出所有庫(kù)存
void findSix(void); //按庫(kù)存數(shù)量由高到低輸出所有庫(kù)存
void deposit(void);//存入倉(cāng)庫(kù)函數(shù)
void takeout(void);//取出倉(cāng)庫(kù)函數(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);//讀取庫(kù)存記錄文件中所有結(jié)構(gòu)體的數(shù)目
int readFile1(void);//讀取入庫(kù)記錄文件中所有結(jié)構(gòu)體的數(shù)目
int readFile2(void);//讀取出庫(kù)記錄文件中所有結(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(" -----*****歡 迎 使 用 倉(cāng) 庫(kù) 物 資 管 理 系 統(tǒng) ! *****----- \n");
printf(" \n");
printf("============================================================\n");
printf(" \n");
printf(" 您可以進(jìn)行以下操作: \n");
printf(" \n");
printf(" 1. 倉(cāng)庫(kù)初始化 \n");
printf(" \n");
printf(" 2. 查詢庫(kù)存 \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("沒(méi)有此選項(xiàng)!\n 請(qǐng)重新輸入!\n");
}
}
}
void write(void) //right
{
FILE *fp;
int i,n;
fp=fopen("庫(kù)存記錄.dat","wb");
rewind(fp);
printf("============================================================\n");
printf("請(qǐng)輸入倉(cāng)庫(kù)中電器信息的組數(shù)!\n ps:相同電器但是不同品牌電器算多種!\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("開(kāi)始寫(xiě)入第%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í)間: <年月日之間用空格隔開(kāi)>例: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)前庫(kù)存記錄:(請(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("電器信息寫(xiě)入完成!\n 請(qǐng)按回車(chē)鍵返回主界面!\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,庫(kù)存數(shù)量:%d,電器單價(jià):%d,入庫(kù)時(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("抱歉,本倉(cāng)庫(kù)中無(wú)此電器!\n");
}
printf("\n是否繼續(xù)查詢?<y/n>\n");
ch=getchar();
}while(ch=='y'||ch=='Y');
printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車(chē)鍵確認(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,庫(kù)存數(shù)量:%d,電器單價(jià):%d,入庫(kù)時(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("抱歉,本倉(cāng)庫(kù)中無(wú)此電器!\n");
}
printf("\n是否繼續(xù)查詢?<y/n>\n");
ch=getchar();
}while(ch=='y'||ch=='Y');
printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車(chē)鍵確認(rèn)!\n");
getchar();getchar();
system("CLS");
findPart();
}
void findThree(void) // 按送貨人查詢 入庫(kù)
{
char manName[10],ch='y';
int i,k,n,bn1;
bn1=readFile1();
FILE *fp1;
fp1=fopen("入庫(kù)記錄.dat","rb+");
if(fp1==NULL)
{
printf("該倉(cāng)庫(kù)中未添加任何電器!\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,庫(kù)存數(shù)量:%d,電器單價(jià):%d,入庫(kù)時(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("抱歉,本倉(cāng)庫(kù)中無(wú)此存貨人存入的電器!\n");
}
printf("\n是否繼續(xù)查詢?<y/n>\n");
ch=getchar();
}while(ch=='y'||ch=='Y');
printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車(chē)鍵確認(rèn)!\n");
getchar();getchar();
system("CLS");
findPart();
}
void findFour(void) //按提貨人查詢 出庫(kù)
{
char manName[10],ch='y';
int i,k,n,bn2;
bn2=readFile2();
FILE *fp2;
fp2=fopen("出庫(kù)記錄.dat","rb+");
if(fp2==NULL)
{
printf("該倉(cāng)庫(kù)中未提出任何電器!\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,庫(kù)存數(shù)量:%d,電器單價(jià):%d,出庫(kù)時(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("抱歉,本倉(cāng)庫(kù)中無(wú)此提貨人提出的電器!\n");
}
printf("\n是否繼續(xù)查詢?<y/n>\n");
ch=getchar();
}while(ch=='y'||ch=='Y');
printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車(chē)鍵確認(rèn)!\n");
getchar();getchar();
system("CLS");
findPart();
}
void findFive(void) //電器名稱大小順序輸出所有庫(kù)存
{
int bn;
bn=readFile();
printf("============================================================\n");
FILE *fp;
fp=fopen("庫(kù)存記錄.dat","rb+");
if(fp==NULL)
{
printf("該倉(cāng)庫(kù)中無(wú)庫(kù)存!\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,庫(kù)存數(shù)量:%d,電器單價(jià):%d,入庫(kù)時(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)按回車(chē)鍵返回上一級(jí)!\n");
getchar();getchar();
system("CLS");
findPart();
}
void findSix(void) //按庫(kù)存數(shù)量由高到低輸出所有庫(kù)存
{
int bn;
bn=readFile();
printf("============================================================\n");
FILE *fp;
fp=fopen("庫(kù)存記錄.dat","rb+");
if(fp==NULL)
{
printf("該倉(cāng)庫(kù)中無(wú)庫(kù)存!\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,庫(kù)存數(shù)量:%d,電器單價(jià):%d,入庫(kù)時(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)按回車(chē)鍵返回上一級(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. 按電器名稱由大到小順序輸出所有庫(kù)存\n");
printf("6. 按庫(kù)存數(shù)量由高到低輸出所有庫(kù)存\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("沒(méi)有此選項(xiàng)!\n 請(qǐng)重新輸入!\n");
}
}
void find(void)
{
int i,bn;
FILE *fp;
fp=fopen("庫(kù)存記錄.dat","rb+");
if(fp==NULL)
{
printf("該倉(cāng)庫(kù)中無(wú)庫(kù)存!\n");
exit(0);
}
rewind(fp);
bn=readFile();
fread(&t,sizeof(stock),bn,fp);
getchar();
findPart();
fclose(fp);
}
void deposit(void) //入庫(kù)
{
printf("============================================================\n");
int bn,bn1;
stock jia;
FILE *fp1,*fp;
int i=0,j,n=0;
char ch='y';
printf("請(qǐng)輸入要加入倉(cāng)庫(kù)的電器信息:\n");
do
{
fp1=fopen("入庫(kù)記錄.dat","ab+");
if(fp1==NULL)
{
printf("該倉(cāng)庫(kù)中未添加任何電器!\n");
exit(0);
}
fp=fopen("庫(kù)存記錄.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: 年月日之間用空格隔開(kāi)> 例: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)按回車(chē)鍵確認(rèn)!\n");
getchar();
system("CLS");
menu();
}
void takeout(void) //出庫(kù)
{
stock jian;
printf("==============================================================\n");
int bn,bn2,i,j;
char ch='y';
FILE *fp,*fp2;
bn=readFile();
bn2=readFile2();
printf("請(qǐng)輸入要提出倉(cāng)庫(kù)的電器信息:\n");
do
{
fp=fopen("庫(kù)存記錄.dat","rb+");
if(fp==NULL)
{
printf("無(wú)法打開(kāi)此文件!\n");
exit(0);
}
for(i=0;i<bn;i++)
{
fread(&s[i],sizeof(stock),1,fp);
}
fclose(fp);
fp2=fopen("出庫(kù)記錄.dat","wb+");
if(fp2==NULL)
{
printf("無(wú)法打開(kāi)此文件!\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: 年月日之間用空格隔開(kāi)> 例: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("庫(kù)存不足!無(wú)法提出!\n");
printf("請(qǐng)按回車(chē)鍵返回!");
getchar();
system("CLS");
menu();
}
}
}
fopen("庫(kù)存記錄.dat","wb+");
for(i=0;i<bn;i++)
{
fwrite(&s[i],sizeof(stock),1,fp);
}
fclose(fp);
printf("\n出庫(kù)完成! 是否繼續(xù)輸入?<y/n>\n");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
printf("將返回上一級(jí)菜單!\n 請(qǐng)按回車(chē)鍵確認(rèn)!\n");
getchar();
system("CLS");
menu();
}
void tongji(void)
{
int n;
system("CLS");
printf("==============================================================\n");
printf("1. 入庫(kù)電器總價(jià)值\n");
printf("2. 出庫(kù)電器總利潤(rùn)\n");
printf("3.統(tǒng)計(jì)該月每種電器的出庫(kù)數(shù)目\n");
printf("4.統(tǒng)計(jì)該月每種品牌的電器的出庫(kù)數(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("沒(méi)有此選項(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("出庫(kù)記錄.dat","rb+");
if(fp==NULL)
{
printf("無(wú)法打開(kāi)此文件!\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出庫(kù)數(shù)目:%d\n",s[i].name,s[i].brandName,s[i].num);
k+=1;
}
}
if(k==0)
printf("庫(kù)存記錄中不存在此種電器!\n");
fclose(fp);
printf("統(tǒng)計(jì)完成,請(qǐng)按回車(chē)鍵返回!\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("出庫(kù)記錄.dat","rb+");
if(fp==NULL)
{
printf("無(wú)法打開(kāi)此文件!\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出庫(kù)數(shù)目:%d\n",s[i].name,s[i].num);
k+=1;
}
}
if(k==0)
printf("庫(kù)存記錄中不存在此種電器!\n");
fclose(fp);
printf("統(tǒng)計(jì)完成,請(qǐng)按回車(chē)鍵返回!\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("入庫(kù)記錄.dat","rb+");
if(fp==NULL)
{
printf("無(wú)法打開(kāi)此文件!\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)按回車(chē)鍵返回!\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("庫(kù)存記錄.dat","rb+");
if(fp1==NULL)
{
printf("無(wú)法打開(kāi)此文件!\n");
exit(0);
}
for(i=0;i<bn;i++)
{
fread(&s[i],sizeof(stock),1,fp1);
}
fclose(fp1);
fp2=fopen("出庫(kù)記錄.dat","rb+");
if(fp2==NULL)
{
printf("無(wú)法打開(kāi)此文件!\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("總利潤(rùn)為%d\n",money);
printf("統(tǒng)計(jì)完成,請(qǐng)按回車(chē)鍵返回!\n");
getchar();
system("CLS");
tongji();
}
void end(void)
{
printf("==============================================================\n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" 感 謝 使 用 本 系 統(tǒng) ! \n");
printf(" \n");
printf(" 再 見(jiàn) ! \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf("==============================================================\n");
}
int readFile(void)//庫(kù)存記錄文件中結(jié)構(gòu)體的個(gè)數(shù)
{
FILE *fb;
int bn=0;
fb=fopen("庫(kù)存記錄.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)//入庫(kù)記錄文件中結(jié)構(gòu)體的個(gè)數(shù)
{
FILE *fb;
int bn1=0;
fb=fopen("入庫(kù)記錄.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)//出庫(kù)記錄文件中結(jié)構(gòu)體的個(gè)數(shù)
{
FILE *fb;
int bn2=0;
fb=fopen("出庫(kù)記錄.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é)
兩年前寫(xiě)的程序了,大體運(yùn)行了一下,存在一點(diǎn)小bug,還有一些設(shè)計(jì)不合理的地方以及沒(méi)有解決非法輸入的問(wèn)題。
更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開(kāi)發(fā)》。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:Qt自定義控件實(shí)現(xiàn)簡(jiǎn)易儀表盤(pán)
欄 目:C語(yǔ)言
本文標(biāo)題:C語(yǔ)言實(shí)現(xiàn)倉(cāng)庫(kù)物資管理系統(tǒng)
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/30.html
您可能感興趣的文章
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用函數(shù)刪除字符
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)式函數(shù)庫(kù)
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)數(shù)怎么表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段函數(shù)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排序法函數(shù)
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段函數(shù)
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎么打出三角函數(shù)的值
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求階乘


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery


