仓库物资管理涉及三方面的记录:库存记录、入库记录和出库记录。
假设仓库中存放的物资为家用电器,库存记录应包括以下信息:电器名称、品牌名称(或生产厂家)、型号、库存数量、价值。
入库记录应包括以下信息:电器名称、品牌名称、型号、入库数量、单价、入库时间(年..日)、送货人姓名。
出库记录应包括以下信息:电器名称、品牌名称、型号、出库数量、出库时间(年..日)、提货人姓名。
系统的主要功能包括:
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小时内删除。