c实训设计——货物管理系统

来源:互联网 发布:mac打开finder快捷键 编辑:程序博客网 时间:2024/06/05 16:42

货物管理系统

一:本系统的功能:

1)本系统包括:货物入库、货物出库、货物查询、货物修改、货物显示、清空仓库等主要功能。

2)包括函数:hwrk(g);——货物入库、hwck(g);——货物出库、findhw(g);——货物查询、hwcg(g);——货物修改、output();——货物显示、qk();——清空仓库、getg(Goods *g);——调取货物信息、input(Goods *g,int n);——货物信息保存、jl(Goods *g,int n);——货物信息更新、menu();——主页面

3)本系统特点:文件利用较多,能够在关闭程序后再打开程序原本输入的信息依旧存在,实现了基本的货物管理,除非进行了清空仓库操作,当然货物出库也就是删除操作也能够删除信息。

二:操作截屏:

1)主页面:

2)货物入库:

3)货物出库:

4)货物查询:

5)信息修改:

6)货物显示:

7)清空仓库:

再货物显示:

再货物入库:

显示:

退出程序:

重新打开并显示信息:

再入库:

再显示:

再执行任何功能无改变,演示完毕。


#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>//#define SIZE 100struct Goods{    char k[20];//编号    char name[30];//货品名称    int n;//货品数量    double pri;//进货价格}g[200];int getg(Goods *g)//调取货物信息{    FILE *fp;    int i,n=0;    if((fp=fopen("goods.txt","a+"))==NULL)    {        printf("open file error\n");        return 0;    }    fseek(fp,0,2);    int w=ftell(fp);    fseek(fp,0,0);    for(i=0;w!=ftell(fp);i++)    {        fread(&g[i],sizeof(struct Goods),1,fp);        n=n+1;        //printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);    }    fclose(fp);    return n;}void input(Goods *g,int n)//货物信息保存{    FILE *fp;    int i;    if((fp=fopen("goods.txt","a"))==NULL)    if((fp=fopen("goods.txt","w"))==NULL)    {        printf("open file error\n");        return;    }    for(i=0;i<n;i++)    {        if(fwrite(&g[i],sizeof(struct Goods),1,fp)!=1)        {            printf("file write error");        }    }    fclose(fp);}void jl(Goods *g,int n)//货物信息更新{    FILE *fp;    int i;    if((fp=fopen("goods.txt","w"))==NULL)    {        printf("open file error\n");        return;    }    for(i=0;i<n;i++)    {        if(fwrite(&g[i],sizeof(struct Goods),1,fp)!=1)        {            printf("file write error");        }    }    fclose(fp);}void qk()//清空仓库{    FILE *fp;    system("cls");    if((fp=fopen("goods.txt","w"))==NULL)    {        printf("open file error\n");        return;    }    fclose(fp);    printf("\n按任意键返回!");    getch();}void output()//货物显示{    FILE *fp;    int i;    system("cls");    if((fp=fopen("goods.txt","r"))==NULL)    {        printf("open file error\n");        return;    }    printf("货物编号\t货物名称\t货物数量\t货物进货价格\n");    fseek(fp,0,2);    int w=ftell(fp);    fseek(fp,0,0);    for(i=0;w!=ftell(fp);i++)    {        fread(&g[i],sizeof(struct Goods),1,fp);            printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);    }    fclose(fp);    printf("\n按任意键返回!");    getch();}void hwcg(Goods *g)//货物信息修改{    int i,k,j,l,m,n;    char q[30];    n=getg(g);    system("cls");    printf("请选择查找的方式\n");    printf("1:按货物编号查找并修改信息\n");    printf("2:按货物名称查找并修改信息\n");    scanf("%d",&k);    m=n;    if(k==1)    {        printf("请输入要修改信息的货物编号\n");        scanf("%s",q);        for(i=0;i<n;i++)        {            if(strcmp(q,g[i].k)==0)            {                printf("已找到,输出该货物信息:\n");                printf("货物编号  货物名称  货物数量  货物进货价格\n");                printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);                printf("是否选择修改货物信息\n");                printf("1:yes\t2:no\n");                scanf("%d",&l);                if(l==1)                {                    printf("请输入修改后的货物编号\t货物名称\t货物数量\t货物进货价格\n");                    scanf("%s %s %d %lf",&g[i].k,&g[i].name,&g[i].n,&g[i].pri);                    jl(g,n);                    printf("已修改货物信息\n");                }                break;            }        }        if(i==m)        {            printf("不存在该货物\n");        }    }    if(k==2)    {        printf("请输入要修改信息的货物名称\n");        scanf("%s",q);        for(i=0;i<n;i++)        {            if(strcmp(q,g[i].name)==0)            {                printf("已找到,输出该货物信息:\n");                printf("货物编号  货物名称  货物数量  货物进货价格\n");                printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);                printf("是否选择修改货物信息\n");                printf("1:yes\t2:no\n");                scanf("%d",&l);                if(l==1)                {                    printf("请输入修改后的货物编号\t货物名称\t货物数量\t货物进货价格\n");                    scanf("%s %s %d %lf",&g[i].k,&g[i].name,&g[i].n,&g[i].pri);                    jl(g,n);                    printf("已修改货物信息\n");                }                break;            }        }        if(i==m)        {            printf("不存在该货物\n");        }    }    printf("\n按任意键返回!");    getch();}void findhw(Goods *g)//货物查询{    int i,k,n;    char q[30];    n=getg(g);    system("cls");    printf("请选择查找的方式\n");    printf("1:按货物编号查找\n");    printf("2:按货物名称查找\n");    scanf("%d",&k);    if(k==1)    {        printf("请输入要查找的货物编号\n");        scanf("%s",q);        for(i=0;i<n;i++)        {            if(strcmp(q,g[i].k)==0)            {                printf("已找到,输出该货物信息:\n");                printf("货物编号\t货物名称\t货物数量\t货物进货价格\n");                printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);                break;            }        }        if(i==n)        {            printf("不存在该货物\n");        }    }    if(k==2)    {        printf("请输入要查找的货物名称\n");        scanf("%s",q);        for(i=0;i<n;i++)        {            if(strcmp(q,g[i].name)==0)            {                printf("已找到,输出该货物信息:\n");                printf("货物编号\t货物名称\t货物数量\t货物进货价格\n");                printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);                break;            }        }        if(i==n)        {            printf("不存在该货物\n");        }    }    printf("\n按任意键返回!");    getch();}void hwck(Goods *g)//货物出库{    int i,k,j,l,m,n;    char q[30];    n=getg(g);    system("cls");    printf("请选择查找的方式\n");    printf("1:按货物编号查找并出库\n");    printf("2:按货物名称查找并出库\n");    scanf("%d",&k);    m=n;    if(k==1)    {        printf("请输入要出库的货物编号\n");        scanf("%s",q);        for(i=0;i<n;i++)        {            if(strcmp(q,g[i].k)==0)            {                printf("已找到,输出该货物信息:\n");                printf("货物编号  货物名称  货物数量  货物进货价格\n");                printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);                printf("是否选择出库\n");                printf("1:yes\t2:no\n");                scanf("%d",&l);                if(l==1)                {                    for(j=i;j<n-1;j++)                    {                        g[j]=g[j+1];                    }                    n=n-1;                    jl(g,n);                    printf("已删除\n");                }                break;            }        }        if(i==m)        {            printf("不存在该货物\n");        }    }    if(k==2)    {        printf("请输入要出库的货物名称\n");        scanf("%s",q);        for(i=0;i<n;i++)        {            if(strcmp(q,g[i].name)==0)            {                printf("已找到,输出该货物信息:\n");                printf("货物编号  货物名称  货物数量  货物进货价格\n");                printf("%s %s %d %.2lf\n",g[i].k,g[i].name,g[i].n,g[i].pri);                printf("是否选择出库\n");                printf("1:yes\t2:no\n");                scanf("%d",&l);                if(l==1)                {                    for(j=i;j<n-1;j++)                    {                        g[j]=g[j+1];                    }                    n=n-1;                    jl(g,n);                    printf("已删除\n");                }                break;            }        }        if(i==m)        {            printf("不存在该货物\n");        }    }    printf("\n按任意键返回!");    getch();}void hwrk(Goods *g)//货物入库{    int n,i;    system("cls");    printf("请输入入库货物种类数量\n");    scanf("%d",&n);    for(i=0;i<n;i++)    {        printf("请输入货物编号\t货物名称\t货物数量\t货物进货价格\n");        scanf("%s %s %d %lf",&g[i].k,&g[i].name,&g[i].n,&g[i].pri);    }    input(g,n);//货物保存    printf("\n按任意键返回!");    getch();}void menu()//主页面{printf("\n\n\n\t\t\t 欢迎使用货物管理系统\n\n\n");printf("\t\t\t***************************\n");printf("\t\t\t*          主菜单         *\n");printf("\t\t\t***************************\n\n\n");printf("\t\t         1 货物入库   2 货物出库\n\n");printf("\t\t         3 货物查询   4 信息修改\n\n");printf("\t\t         5 货物显示   6 清空仓库\n\n");printf("\t\t         7 退出系统\n\n");printf("\t\t         请选择[1/2/3/4/5/6/7/8]:\n");}int main(){int j,n;n=getg(g);while(1){   system("cls");menu();scanf("%d",&j);switch(j){case 1:hwrk(g);break;case 2:hwck(g);break;case 3:findhw(g);break;case 4:hwcg(g);break;case 5:output();break;case 6:qk();break;case 7:exit(0);default:printf("输入错误,请重新输入!\n");}}return 0;}
刚刚大一学完c实训写的一个实训程序,写的马虎还望见谅。如有问题可以评论或qq1057076049

原创粉丝点击