ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:21.48KB ,
资源ID:12476676      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12476676.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(仓库物资管理报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

仓库物资管理报告.docx

1、仓库物资管理报告程序设计基础课程设计设计题目:仓库物资管理系统班 级: 计 1110 姓 名: 黄 秀 美 学 号: 20111221095 2012年9月6日1课程设计目的和要求我们课程设计的主要目的是为了让我们贯穿大一一年所学的C语言知识,让我们能应用自如,为我们后面的学习奠下更坚实的基础。课程设计要求每个同学根据自己所学的知识对课程题目进行思索并编程,然后通过交流和查找,设计出一个现实可实施的C语言代码。2系统总体设计设计主要包括了6大功能:1. 创建库存记录文件,根据提示输入若干电器的信息,并将信息保存至一个文件中。2. 物资入库管理,创建一个入库记录文件,每次有物资入库,则按入库记录

2、要求输入各项信息,并将该次的入库信息添加到文件中,同时修改相应的库存记录文件。3. 物资出库管理,创建一个出库记录文件,每次有物资出库,则按出库记录要求输入各项信息,并将该次的出库信息添加到文件中,同时修改相应的库存记录文件。注意:物资出库时要检查出库数量的合法性(即出库数量必须小于库存数量)。4. 按不同条件进行查询操作,输出满足条件的物资信息。(1) 输入电器名称,在库存记录文件中查找相应的物资信息并输出。(2) 输入品牌名称,在库存记录文件中查找该品牌的所有电器信息并输出。(3) 输入提货人姓名,输出该提货人对应的出库记录。(4) 输入送货人姓名,输出该送货人对应的入库记录。5. 按不同

3、条件对物资信息进行统计工作。(1) 输入一个日期(年.月),统计该月每种电器的出库数目,并输出。(2) 输入一个日期(年.月),统计该月每种品牌电器的出库数目,并输出。(3) 统计该仓库的商品总价值。(所有入库记录中入库价格 * 入库数量)(4) 计算该仓库的总利润。 (出库价格 所有入库记录价格) *出库数量)6. 按不同条件对信息进行排序并输出(1) 根据电器名称,对库存信息从小到大进行排序(注:电器名称使用字符串比较函数strcmp比较大小),并输出排序后的电器品牌名称。(2) 根据库存数量,对库存信息进行排序,并按库存量从高到低的顺序输出电器信息。2.1 系统功能模块图 printf(

4、t=n); printf(t= 仓库物资管理系统 =n);printf(t= 1、创建库存记录文件 =n);printf(t= 2、物资入库管理 =n);printf(t= 3、物资出库管理 =n);printf(t= 4、查询物资信息 =n);printf(t= 5、统计物资信息 =n);printf(t= 6、排序物资信息 =n);printf(t= 请选择功能(1-6) =n);printf(t=n);2.2 数据结构设计对全局变量,结构体类型等进行定义和说明 #include#include struct goods char nameN; char brandN; int numbe

5、r; /*库存商品struct date int year; int month; int day; /*日期struct in_goods char nameN; char brandN; int in_num; float in_money; struct date in_day; /结构体的镶套定义 char in_peo_nameN; /*入库商品struct out_goods char nameN; char brandN; int out_num; float out_money; struct date out_day ; char out_peo_nameN; ; /*出库商

6、品 3系统详细设计#include#include #define N 10#define LEN 20struct goods char nameN; char brandN; int number; /*库存商品struct date int year; int month; int day; /*日期struct in_goods char nameN; char brandN; int in_num; float in_money; struct date in_day; /结构体的镶套定义 char in_peo_nameN; /*入库商品struct out_goods char

7、nameN; char brandN; int out_num; float out_money; struct date out_day ; char out_peo_nameN; /*出库商品; void Build(); /创建库存文件void In_control(); /创建入库文件void Out_control(); /创建出库文件void Select_Message(); /查询信息void Statistic_Message(); /排序信息void Sort_Name(); /以电器名称排序void Sort_Num(); /以电器存量排序void Sort_Messag

8、e(); /统计信息void Statistic_Name_Num(); /以电器名称统计void Statistic_Brand_Num(); /以品牌名称统计void Statistic_All_Money(); /统计总价格void Statistic_Profit(); /统计总收益void Selet_Name(); /以电器名称查询void Selet_Brand(); /以品牌名称查询void Selet_Out_Peo_Name(); /以提货人查询void Selet_in_Peo_Name(); /以送货人查询/=void main() /*目录入口* 在主函数中建立主菜单

9、 int i=0; char ch=y; do printf(t=n); printf(t= 仓库物资管理系统 =n);printf(t= 1、创建库存记录文件 =n);printf(t= 2、物资入库管理 =n);printf(t= 3、物资出库管理 =n);printf(t= 4、查询物资信息 =n);printf(t= 5、统计物资信息 =n);printf(t= 6、排序物资信息 =n);printf(t= 请选择功能(1-6) =n);printf(t=n); scanf(%d,&i); switch(i) case 1:Build();break; case 2:In_contro

10、l();break; case 3:Out_control();break; case 4:Select_Message();break; case 5:Statistic_Message();break; case 6:Sort_Message();break; printf(t是否继续操作(Y/N)?n); /getchar(); ch=getchar(); while(ch=Y|ch=y); /判断为真时执行循环体/=创建库存文件=void Build() FILE *fp; int size=0,i=0; if(fp=fopen(库存记录.txt,w)=NULL) printf(不能打

11、开此记录,请核实n); return; printf(t请输入本次输入的库存记录条数(单次输入最大为20条)n); scanf(%d,&size); struct goods gLEN; printf(t请逐条输入电器的基本信息n); for (i=0;isize;i+) printf(t 电器名称 品牌名称 库存数量n); scanf(%s%s%d,&gi.name,&gi.brand,&gi.number); fwrite(&gi,sizeof(struct goods),1,fp); fclose(fp); getchar(); /=创建入库文件=void In_control() FI

12、LE *fp1,*fp2; int size=0; int i,j; struct goods temp=0,0,0; char a1=0; if(fp1=fopen(入库记录.txt,a+)=NULL) printf(不能打开此记录,请核实n); return; printf(t请输入本次输入的入库记录条数(单次输入最大为20条)n); scanf(%d,&size); struct in_goods igLEN; printf(t请逐条输入电器的基本信息n); for (i=0;isize;i+) printf(t 电器名称 品牌名称 入库数量 单价 日期(年/月/日)送货人姓名 n);

13、scanf(%s%s%d%f%d%d%d%s,&igi.name,&igi.brand,&igi.in_num,&igi.in_money,&igi.in_day.year,&igi.in_day.month,&igi.in_day.day,&igi.in_peo_name); fwrite(&igi,sizeof(struct in_goods),1,fp1); if(fp2=fopen(库存记录.txt,r+)=NULL) printf(不能打开此记录,请核实n); return; struct goods gLEN=0; for(i=0;iLEN;i+) fread(&gi,sizeof

14、(struct goods),1,fp2); for(j=0;jsize;j+) if(strcmp(gi.name,igj.name)=0&strcmp(gi.brand,igj.brand)=0) gi.number=gi.number+igj.in_num; /修改库存信息 rewind(fp2); for (i=0;iLEN;i+) if(strcmp(gi.name,a)!=0) fwrite(&gi,sizeof(struct goods),1,fp2); /将g中的一个数据写入文件 /更新库存文件 fclose(fp1); fclose(fp2); getchar();/=创建出

15、库文件=void Out_control() FILE *fp1,*fp2; int size=0; int i,j=0; struct goods gLEN; struct out_goods ogLEN; if(fp1=fopen(出库记录.txt,a+)=NULL) printf(不能打开此记录,请核实n); return; if(fp2=fopen(库存记录.txt,r+)=NULL) printf(不能打开此记录,请核实n); return; printf(t请输入本次输入的出库记录条数(单次输入最大为20条)n); scanf(%d,&size); printf(t请逐条输入电器的

16、基本信息n); for (i=0;igj.number) printf(出库数量大于库存数量,请核实后重新输入n); printf(t 电器名称 品牌名称 出库数量 单价 日期(年/月/日)提货人姓名 n); scanf(%s%s%d%f%d%d%d%s,&ogi.name,&ogi.brand,&ogi.out_num,&ogi.out_money,&ogi.out_day.year,&ogi.out_day.month,&ogi.out_day.day,&ogi.out_peo_name); gj.number=gj.number-ogi.out_num; /越界判定(重新输入正确的信息)

17、 else gj.number=gj.number-ogi.out_num; else if (strcmp(gj.name,ogi.name)!=0&strcmp(gj.brand,ogi.brand)!=0) printf(该货物不存在,请核实n); printf(t 电器名称 品牌名称 出库数量 单价 日期(年/月/日)提货人姓名 n); scanf(%s%s%d%f%d%d%d%s,&ogi.name,&ogi.brand,&ogi.out_num,&ogi.out_money,&ogi.out_day.year,&ogi.out_day.month,&ogi.out_day.day,

18、&ogi.out_peo_name); gj.number=gj.number-ogi.out_num; j+; if(ji) break; rewind(fp2); /将文件位置重新指向文件开头 rewind(fp1); rewind(fp2); for(i=0;ij;i+) /更新库存记录 fwrite(&gi,sizeof(struct goods),1,fp2); for(i=0;isize;i+) /更新出库文件记录 fwrite(&ogi,sizeof(struct out_goods),1,fp1); fclose(fp1); fclose(fp2); getchar();/=查

19、询信息目录=void Select_Message() int i=0; char ch=y; do printf(t请选择查询方式n); printf(t1、输入电器名称,在库存记录文件中查找相应的物资信息并输出n); printf(t2、输入品牌名称,在库存记录文件中查找该品牌的所有电器信息并输出n); printf(t3、输入提货人姓名,输出该提货人对应的出库记录n); printf(t4、输入送货人姓名,输出该送货人对应的入库记录n); scanf(%d,&i); switch(i) case 1:Selet_Name();break; case 2:Selet_Brand();bre

20、ak; case 3:Selet_Out_Peo_Name();break; case 4:Selet_in_Peo_Name();break; printf(是否选择其他查询方式继续查询?n); ch=getchar(); getchar(); while(ch=Y|ch=y);/=以电器名称查询=void Selet_Name() FILE *fp; struct goods gLEN; /建立库存数组 int i=0; char ch=y; char tnameN; if(fp=fopen(库存记录.txt,r)=NULL) printf(不能打开此记录,请核实n); return; d

21、o printf(t请输入要查询的电器名称n); scanf(%s,&tname); getchar(); while(!feof(fp) /当源文件未结束时进行循环 fread(&gi,sizeof(struct goods),1,fp); if(strcmp(tname,gi.name)=0) printf(电器名称:%sn品牌名称:%sn库存数量:%dn,gi.name,gi.brand,gi.number); i+; printf(t是否继续查询?(Y/N)n); ch=getchar(); rewind(fp); while(ch=y|ch=Y); getchar(); /=以品牌名

22、称查询=void Selet_Brand() FILE *fp; struct goods gLEN; int i=0; char ch=y; char tbrandN; if(fp=fopen(库存记录.txt,r)=NULL) printf(不能打开此记录,请核实n); return; do printf(t请输入要查询的品牌名称n); scanf(%s,tbrand); getchar(); printf(t%s的电器有:n,tbrand); while(!feof(fp) fread(&gi,sizeof(struct goods),1,fp); if(strcmp(tbrand,gi

23、.brand)=0) printf(t电器名称:%sn库存数量:%dn,gi.name,gi.number); i+; printf(t是否继续查询?(Y/N)n); ch=getchar(); getchar(); rewind(fp); while(ch=y|ch=Y); getchar();/=以提货人姓名查询=void Selet_Out_Peo_Name() FILE *fp; struct out_goods ogLEN; char tinameN; char ch=y; int i=0; if(fp=fopen(出库记录.txt,r)=NULL) printf(t不能打开此记录,请核实n); return; do printf(t请输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1