物资管理系统c语言运行程序,c语言仓库物资管理系统亲测可用.docx

253b171540df25e1b84436cbe50dfc72.gifc语言仓库物资管理系统亲测可用.docx

c语言 仓库物资管理系统 亲测可用 includestdio.hincludestdlib.hincludestring.hvoid menuvoid;显示系统主菜单void kucunvoid;库存记录void rukuvoid;入库记录void chukuvoid;出库记录void chaxunvoid;查询操作void tunjivoid;统计工作void paixuvoid;排序工作struct riqi日期int year;int month;int daystruct cun库存记录char dname20;电器名称char pname20;品牌名称 int num;库存数量;struct in入库记录char dname20;电器名称char pname20;品牌名称int rnum;入库数量int rcharge;单价struct riqi r;入库时间char sname20;送货人姓名;struct out出库记录char dname20;电器名称char pname20;品牌名称int cnum;出库数量int ccharge;单价struct riqi c;出库时间char tname20;提货人姓名;void mainint select;while1menu;调用menu函数,显示菜单scanfd,select;一般情况在gets之前,做过scanf之类的,scanf处理了数据,却把换行符留在那里没有处理getchar;switchselect对select进行多分支选择case 1kucun;调用kucun函数break;case 2ruku;调用ruku函数break;case 3chuku;调用chuku函数break;case 4chaxun;调用chaxun函数break;case 5tunji;调用tunji函数break;case 6paixu;调用paixu函数break;case 0printf谢谢使用,再见;exit0;defaultprintf按键错误,请重新选则;功能显示系统菜单参数无返回无主要思路用printf函数输出菜单void menuvoidprintfn;printf_ _ _ _ _ _ _ _ _ _ _ _ _ _n;printf* *n;printf* 欢迎使用仓库物资管理系统*n;printf* *n;printf_ _ _ _ _ _ _ _ _ _ _ _ _ _n;printfn;printf请选择您要进行的操作n;printf1.创建库存记录文件n;printf2.物资入库管理n;printf3.物资出库管理n;printf4.按不同条件进行查询n;printf5.按不同条件对物资信息进行统计工作n;printf6.按不同条件对信息进行排序并输出n;printf0.退出系统n;printf请选择按键0-6;功能创建库存文件记录参数无返回无主要思路应用文件,根据提示输入电器信息,并将信息保存到一个文件中void kucunvoidstruct cun a100;struct in dq100;int t0,i0;char ch;有疑问,为什么用字符输入不行FILE *fp,*fp1;iffpcun.txt,wNULL以写的方式打开cun.txt文件,printfcan not open file;exit0;iffp1ruku.txt,wNULL以写的方式打开cun.txt文件,printf can not open file;exit0;doprintf输入电器名称;getsdqi.dname;strcpyai.dname,dqi.dname;printf输入品牌名称;getsdqi.pname;strcpyai.pname,dqi.pname;printf输入库存数量;scanfd,dqi.rnum;ai.numdqi.rnum;printf入库单价;scanfd,dqi.rcharge;printf入库时间;scanfddd,dqi.r.year,dqi.r.month,dqi.r.day;getchar;printf请输入送货人姓名;getsdqi.sname;i;printf继续输入其它电器吗;scanfd,t;chgetchar;getchar;whilet1;fort0;ti;tfwritedqt,sizeofstruct in,1,fp1;将一个结构体变量的内容写到文件中fwriteat,sizeofstruct cun,1,fp;将一个结构体变量的内容写到文件中fclosefp;关闭文件fclosefp1;关闭文件功能物资入库管理参数无返回无主要思路创建一个入库记录文件,每次有物资入库,则按入库记录要求输入各项信息,并将入库信息添加到文件中,同时修改库存记录void rukuvoidstruct in ru;FILE *fp1,*fp2;int m,n,i0,j0;struct cun c100;iffp1ruku.txt,aNULL以追加的方式打开ruku.txt文件printfcan not open file;exit0;iffp2cun.txt,rNULL以只读的形式打开cun.txt文件printfcan not open a file;exit0;whilefeoffp2当源文件未结束时进行循环iffreadci,sizeofstruct cun,1,fp2i;fclosefp2;doprintf请输入电器名称;getsru.dname;printf请输入品牌名称;getsru.pname;printf请输入入库数量;scanfd,ru.rnum;printf请输入单价;scanfd,ru.rcharge;printf请输入入库时间;scanfddd,ru.r.year,ru.r.month,ru.r.day;getchar;printf请输入送货人姓名;getsru.sname;有疑问,为什么输不进去送货人姓名fwriteru,sizeofstruct in,1,fp1;forn0;ni;nifstrcmpru.dname,cn.dname0strcmpru.pname,cn.pname0cn.numcn.numru.rnum;j;ifj0strcpycn.dname,ru.dname;strcpycn.pname,ru.pname;cn.numru.rnum;i;fwriteru,sizeofstruct in,1,fp1;printf是否还有电器入库;scanfd,m;getchar;whilem1;iffp2cun.txt,wNULL以只写的形式打开cun.txt文件printfcan not open a file;exit0;forn0;ni;nfwritecn,sizeofstruct cun,1,fp2;将一个结构体变量的内容写到文件中fclosefp1;fclosefp2;功能物资出库管理参数无返回无主要思路创建一个出库记录文件,将出库 的各项信息添加到文件中,同时修改相应的库存记录文件void chukuvoidstruct out chu;struct cun dq;struct cun dqc100;FILE *fp1,*fp2;int i,j0,k0,m;iffp1chuku.txt,aNULL以追加的形式打开chuku.txtprintfcan not open a fle;exit0;iffp2cun.txt,rNULL以读写形式打开cun.txt文件printfcan not open a file;exit0;whilefeoffp2freaddqcj,sizeofstruct cun,1,fp2;j;fclosefp2;dom0;printf请输入电器名称;getschu.dname;printf请输入品牌名称;getschu.pname;fork0;kj;kifstrcmpchu.dname,dqck.dname0strcmpchu.pname,dqck.pname0m1;printf请输入出库数量;scanfd,um;scanf是回车结束的但是不会被本身吸收掉getchar;umdqck.numprintf请输入售出单价;scanfd,chu.ccharge;getchar;printf请输入出库时间;scanfddd,chu.c.year,chu.c.month,chu.c.day;getchar;printf请输入提货人姓名;getschu.tname;fwritechu,sizeofstruct out,1,fp1;完成出库记录dqck.numdqck.num-um;elseprintf没有足够的库存数量;ifm0printf库存内没有该电器;printf是否还要有电器出库;scanfd,i;getchar;whilei1;iffp2cun.txt,wNULL以只写的形式打开cun.txt文件printfcan not open a file;exit0;fork0;kj;kfwritedqck,sizeofstruct cun,1,fp2;将一个结构体变量的内容写到文件中fclosefp1;fclosefp2;功能查询操作参数无返回无主要思路根据输入的条件,输出满足条件的物资信息void chaxunvoidstruct cun dqc100;struct out chuc100;struct in ruc100;char str120,str220,str320,str420;int i,j,k0,l0,m0,n,p,b,d,a0,s0,r0,w0;FILE *fp1,*fp2,*fp3;iffp1cun.txt,rNULLprintfcan not open a file;exit0;iffp2ruku.txt,rNULLprintfcan not open a file;exit0;iffp3chuku.txt,rNULLprintfcan not open a file;exit0;whilefeoffp1freaddqck,sizeofstruct cun,1,fp1;whilefeoffp2freadrucl,sizeofstruct in,1,fp2;whilefeoffp3freadchucm,sizeofstruct out,1,fp3;k;l;m;doprintf请输入i;scanfd,i;getchar;switchicase 1printf请输入电器名称;按电器名称查询getsstr1;forn0;nk;nifstrcmpstr1,dqcn.dname0字符串不能直接比较大小printf 品牌名;printfs,dqcn.pname;printf数量;printfd,dqcn.num;a;printf ;ifa0printf库存内没有该电器;break;case 2printf请输入品牌名称;按品牌名称查询getsstr2;forp0;pk;pifstrcmpstr2,dqcp.pname0printf电器名;printfs,dqcp.dname;printf数量;printfd,dqcp.num;s;printf ;ifs0printf库存内没有该品牌;break;case 3printf请输入提货人姓名;按提货人查询getsstr3;forb0;bm;bifstrcmpstr3,chucb.tname0printf电器名;printfs,chucb.dname;printf品牌名;printfs,chucb.pname;printf数量;printfd,um;printf提货价格;printfd,chucb.ccharge;printf提货时间;printfddd,chucb.c.year,chucb.c.month,chucb.c.day;w;printf ;ifw0printf没有该提货人姓名;break;case 4printf输入送货人姓名;按送货额人查询getsstr4;ford0;dl;difstrcmpstr4,rucd.sname0printf品牌名;printfs,rucd.dname;printf电器名;printfs,rucd.dname;printf数量;printfd,rucd.rnum;printf送货单价;printfd,rucd.rcharge;printf送货时间;printfddd,rucd.r.year,rucd.r.month,rucd.r.day;r;printf ;ifr0printf没有该送货人;break;defaultprintf没有该服务。;printf是否还要进行查询;scanfd,j;getchar;whilej1;fclosefp1;fclosefp2;fclosefp3;功能用不同条件对物资信息进行统计工作参数无返回无主要思路打开文件,然后在文件中进行统计工作void tunjivoidFILE *fp1,*fp2;struct in rut100;struct out chut100;struct riqi t;int i,num10,num20,num30,num40,num50,num60;int m0,n0;int p,q,d,f;int total0,total10,total2;int lirun0;int b;iffp1ruku.txt,rNULLprintfcan not open a file;exit0;iffp2chuku.txt,rNULLprintfcan not open a file;exit0;whilefeoffp1freadrutm,sizeofstruct in,1,fp1;whilefeoffp2freadchutn,sizeofstruct out,1,fp2;doprintf请输入i;scanfd,i;getchar;switchicase 1printf请输入年月;输入年月,统计该月每种电器的出库数目,并输出。scanfdd,t.year,t.month;getchar;forp0;pn;pifchutp.c.yeart.yearchutp.c.month t.monthifchutp.dname电视各种电器的出库数目num1;elseifchutp.dname冰箱num2;elseifchutp.dname笔记本num3;printf请输出每种电器的出库数目;printf电视;printfd,num1;printf冰箱;printfd,num2;printf笔记本;printfd,num3;break;case 2printf请输入年月;scanfdd,t.year,t.month;getchar;forq0;qm;qifchutq.c.yeart.yearchutq.c.montht.monthifchutp.pname长红各种品牌电器的出库数目num4;elseifchutp.pname美菱num5;elseifchutp.pname康佳num6;printf长红;printfd,num4;printf美菱;printfd,num5;printf康佳;printfd,num6;break;case 3商品总价值forq0;qm;qtotal1rutq.rcharge*rutq.rnum;printf商品总价值;printfd,total;break;case 4ford0;dm;dtotaltotalrutd.rcharge*rutd.rnum;forf0;fn;ftotal2total2chutf.ccharge*um;liruntotal2-total;printf仓库总利润;printfd,lirun;break;printf请输入b;scanfd,b;getchar;whileb1;fclosefp1;fclosefp2;功能按不同条件对信息进行排序并输出参数无返回;无主要思路根据电器名称和库存数量进行排序void paixuvoidFILE *fp;int i0;int j,k,n,m,l,t,x,b;struct cun dqp20,str,p;iffpcun.txt,rNULLprintfcan not open file.;exit0;whilefeoffp当源文件未结束时进行循环freaddqpi,sizeofstruct cun,1,fp;ii-1;多读了一个文件结束符冒泡排序法,实现对库存信息由小到大排序根据电器名称doprintf请输入x;scanfd,x;switchxcase 1forj0;ji-1;j,控制排序轮数fork0;ki-1-j;k控制每轮比较的次数ifstrcmpdqpk.dname,dqpk1.dname0strdqpk;dqpkdqpk1;dqpk1str;printf输出排序后的品牌名称;forn0;ni;nprintfs,dqpn.pname;break;根据库存数量冒泡排序case 2form0;mi;mforl0;li-m-1;lifdqpl.numdqpl1.numpdqpl;dqpldqpl1;dqpl1p;printf按库存数量由高到低的顺序输出电器信息;fort0;ti;tprintf电器名称;printfs,dqpt.dname;printf电器品牌;printfs,dqpt.pname;printf库存数量;printfd,dqpt.num;break;printf是否还要进行排序 并输出;scanfd,b;whileb1;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值