仓库物资管理涉及三方面的记录:库存记录、入库记录和出库记录。
假设仓库中存放的物资为家用电器,库存记录应包括以下信息:电器名称、品牌名称(或生产厂家)、型号、库存数量、价值。
入库记录应包括以下信息:电器名称、品牌名称、型号、入库数量、单价、入库时间(年.月.日)、送货人姓名。
出库记录应包括以下信息:电器名称、品牌名称、型号、出库数量、出库时间(年.月.日)、提货人姓名。
系统的主要功能包括:
1. 创建库存记录文件,根据提示输入若干电器的信息,并将信息保存至一个文件中。
2. 物资入库管理,创建一个入库记录文件,每次有物资入库,则按入库记录要求输入各项信息,并将该次的入库信息添加到文件中,同时修改相应的库存记录文件。
3. 物资出库管理,创建一个出库记录文件,每次有物资出库,则按出库记录要求输入各项信息,
并将该次的出库信息添加到文件中,同时修改相应的库存记录文件。注意:物资出库时要检查出库数量的合法性(即出库数量必须小于库存数量)。
4. 按不同条件进行查询操作,输出满足条件的物资信息。
(1) 输入电器名称,在库存记录文件中查相应的物资信息并输出。
(2) 输入品牌名称,在库存记录文件中查该品牌的所有电器信息并输出。
(3) 输入一个日期(年.月.日),输出该天的入库记录和出库记录。
(4) 输入电器名称和型号,输出该电器的所有入库记录和出库记录。
5. 按不同条件对物资信息进行统计工作。
(1) 输入电器名称,在库存记录文件中统计该电器的现有库存总量。
(2) 输入电器名称,在入库记录文件中统计该电器的入库次数。
(3) 输入一个日期(年.月),在出库记录文件中统计该月的出库记录次数。
(4) 设置一个库存数量警戒值,输出库存数量小于该警戒值的所有库存电器的信息。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 10
struct goods
{
char name[10];
char brand[10];
char style[10];
int num;
float money;
}ku[SIZE];
struct date
{
int year;
int month;
int day;
};
struct entrance
{
char name[10];
char brand[10];
char style[10];
int num;
float money;
struct date time;
char people[10];
}ruku[SIZE];
struct exit
{
char name[10];
char brand[10];
char style[10];
int num;
struct date time;
char people[10];
}chuku[SIZE];
void save_1();
void save_2();
void save_3();
void change_1();
void change_2();
void found_1();
void found_2();
void main()
{ int i;
printf("*************************************************************************\n");
printf("************** 欢迎进入物资管理系统 ****************\n\n\n");
printf(" 请输入电器信息: \n");
printf(" ** 电器名称 品牌名称 型号 库存数量 价值\n");
for(i=0;i<SIZE;i++)
{
scanf("%s %s %s %d %d",ku[i].name,ku[i].brand,ku[i].style,&ku[i].num,&ku[i].money);
}
save_1(); //创建库存记录//
FILE *fp;
fp=fopen("库存记录.txt","rb");
for(i=0;i<SIZE;i++)
{
fread(&ku[i],sizeof(struct goods),1,fp);
printf("%s %s %s %d %d",ku[i].name,ku[i].brand,ku[i].style,ku[i].num,ku[i].money);
printf("\n");
} //读出信息//
fclose(fp);
printf("请输入入库信息:\n");
printf("** 电器名称 品牌名称 型号 入库数量 单价 入库时间 送货人姓名\n");
for(i=0;i<SIZE;i++)
scanf("%s %s %s %d %f %d %d %d %s",ruku[i].name,ruku[i].brand,ruku[i].style,&ruku[i].num,&ruku[i].money,&ruku[i].ar,&ruku[i].h,&ruku[i].time.day,ruku[i].people);
save_2(); //创建入库文件//
change_1(); //修改相应的库存记录文件//
printf("请输入出库信息\n");
printf(" ** 电器名称 品牌名称 型号 出库数量 出库时间 提货人姓名\n");
scanf("%s %s %s %d %d %d %d %s",chuku[i].name,chuku[i].brand,chuku[i].style,&chuku[i].num,&chuku[i].ar,&chuku[i].h,&chuku[i].time.day,chuku[i].people);
for(i=0;i<SIZE;i++)
{
if(chuku[i].num>ku[i].num)
{
printf("the error number!please input again!\n");
break;
}
else
{
save_3();//创建出库文件//
printf怎么加两个条件 change_2(); //修改相应的库存记录文件//
}
}
found_1();
found_2();
}
void save_1()
{
FILE *fp;
int i;
if((fp=fopen("库存记录.txt","wb"))==NULL)
{
printf("connot open the file\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&ku[i],sizeof(struct goods),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
void save_2()
{
FILE *fp;
int i;
if((fp=fopen("入库记录.txt","wb"))==NULL)
{
printf("connot open the file\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&ruku[i],sizeof(struct entrance),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
void change_1()
{
int i;
for(i=0;i<SIZE;i++)
{
if(strcmp(ku[i].name,ruku[i].name)==0&&strcmp(ku[i].brand,ruku[i].brand)==0&&strcmp(ku[i].style,ruku[i].style)==0)
{
ku[i].num=ku[i].num+ruku[i].num;
}
}
save_1();
}
void save_3()
{
FILE *fp;
int i;
if((fp=fopen("出库记录.txt","wb"))==NULL)
{
printf("connot open the file\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&chuku[i],sizeof(struct exit),1,fp)!=1)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论