仓库管理系统设计模板.doc
《仓库管理系统设计模板.doc》由会员分享,可在线阅读,更多相关《仓库管理系统设计模板.doc(115页珍藏版)》请在咨信网上搜索。
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 One 此课程设计共分为几个部份: 需求分析, 数据流程图, 数据字典, 全局ER图, 局部ER图, 关系模式, 建库和建表的SQL语句, 表的约束SQL语句, 建视图的SQL语句, 存储过程和触发器的SQL语句, 前台抓图,所有过程,决无抄袭。从中我们学到了很多, 对数据库这门课程有了更多了解。 注意:商品编号的编法前2位为部门编号,次两位位批次,后4位为商品名编号 数据流程图: 部门提出购买计划交给仓库, 仓库经过与现有库存作对比, 如有必要进货, 就将此购买计划交给采购员, 采购员负责与供应商进行谈价, 达成协议, 于是填写合同, 采购员带回的叫做预订单, 供应商留下的叫做订单。供应商带着订单送货到企业, 仓库拿出预订单核对, 经检查订单与预订单匹配则确认有效托收, 托收后进行检验入库, 入库同时填写好入库单作好登记。企业各个部门根据所需的物资设备总额和部门生产活动需求开出出库申请表。仓库根据现有的物资判断是否该出库, 如果能够就根据出库申请核对发放设备, 并填写好出库单作好登记。设备使用完毕后需要及时还库登记填写好还库单, 如有超期或损坏现象就要如实交罚金并登记。 数据字典: 1.对图中"采购",在数据字典中可对其作如下描述: 处理过程:确定订单 说明:采购员以购买计划为准,确定价格,数量,总金额,供应商,在采购过程中生成订单及订单. 输入:计划单编号 输出:订单 预订单 程序提要: A在购买计划表中查找是否在价格范围之内 B在价格范围之内,则单价乘以数量是否在总金额范围之内 C若A,B都满足,则添加一条记录 D处理完后,形成订单和预订单 2.对图中"检验",在数据字典中可对其作如下描述: 处理过程:核对物品信息后生成入库单 说明:送货员将物品送到后,管理员以预订单为准核对物品信息,确定无误后,登记入库单. 输入:预订单编号 输出:入库单 程序提要: A在预订单中查找物品(例如:M)信息进行核对 B如若无误,则在入库单中添加一条物品(M)记录 C核对完后,形成入库单 3.对图中"入库",在数据字典中可对其作如下描述: 处理过程:入库后修改(增加)现有库存表 说明:入库后增加现有库存表 输入:入库单编号 输出:现有库存表 程序提要: A在入库单中查找到每一种物品的数量,在现有库存表中相应增加 B处理完后,形成现有库存表 4.对图中"出库",在数据字典中可对其作如下描述: 处理过程:出库后登记入库单并修改(减少)现有库存表 说明:提货员提交出库申请,由管理员批准后,登记出库单并修改(减少)现有库存表 输入:出库申请编号 输出:出库单 现有库存表 程序提要:A在出库申请单中查找物品(例如:M)信息进行核对,出库数量是否超过库存或出库后数量小于最小库存 B如若无误,则在出库单中添加一条物品(M)记录 C核对完后,形成出库单 D在出库单中查找到每一种物品的数量,在现有库存表中相应加减少 E处理完后,形成现有库存表 5.对图中"对比",在数据字典中可对其作如下描述: 处理过程:核对归还物品信息后生成还库单 说明:将物品归还时,管理员以出库单为准核对物品信息,确定无误后,登记还库单,如若有误,登记惩罚表. 输入:出库单编号 输出:还库单 惩罚表 程序提要: A管理员在出库单中查找物品(例如:M)信息进行核对 B如若无误,则在还库单中添加一条物品(M)记 C核对完后,形成入库单 D如若有误,则登记惩罚表 E处理完后,形成惩罚表 6.对图中"归还入库",在数据字典中可对其作如下描述: 处理过程:还库后修改(增加)现有库存表 说明:还库后增加现有库存表 输入:还库单编号 输出:现有库存表 程序提要: A在还库单中查找到每一种物品的数量,在现有库存表中相应增加 B处理完后,形成现有库存表 关系模式: 购买计划表(计划编号,商品编号,商品名,数量,单价范围,所需部门,金额范围,部门经理签字,计划时间,); 订单(订单号,商品编号,商品名,数量,价格,供应商,所求单位,采购员,送货时间,计划编号); 预订单(预订单号,商品编号,商品名,数量,价格,供应商,所求单位,采购员,收货时间订单号); 入库单(入库单编号,商品号,商品名,数量,价格,入库时间,采购员,仓库管理人员,预订单号); 仓库现有库存表(商品编号,商品名,最大库存,最小库存,现有库存); 申请出库(申请表单号,商品编号,商品名,数量,价格,出库时间,还库时间,部门名称,部门经理签字); 出库单(出库表编号,出库数量 商品号 商品名,出库性质,所需部门,仓库管理员,提货人员,出库时间,还库时间,出库申请表号); 还库表(还库表单号,商品编号,商品名,数量,归还部门,出库时间,还库时间,仓库管理员,出库表编号); 惩罚表(惩罚表编号,所罚部门,商品编号,商品名,拖还时间,是否损坏,罚款额,罚款时间); 建库和建表SQL语句: create database 仓库管理系统 on ( name=仓库_dat, filename='e:\Microsoft SQL Server\MSSQL\Data\仓库.mdf', size=10, maxsize=150 ) Log on (name=仓库_log, filename='e:\Microsoft SQL Server\MSSQL\Data\仓库.ldf', size=10, maxsize=80 ) create table 购买计划表 ( 计划编号 char(10) primary key, 商品编号 char(12) not null, 商品名 char(16), 数量 float(8), 单价范围 float(8) , 所需部门 char(30), 金额范围 float(8), 部门经理签字 char(10), 计划时间 datetime, ); create table 订单 ( 订单号 char(10) primary key, 商品编号 char(12) not null, 商品名 char(16), 数量 float(8), 价格 money, 供应商 char(30), 所求单位 char(30), 采购员 char(16), 送货时间 datetime, 计划编号 char(10) references 购买计划表(计划编号) ); create table 预订单 ( 预订单号 char(10) primary key, 商品编号 char(12) not null, 商品名 char(16), 数量 float(8), 价格 money, 供应商 char(30), 所求单位 char(30), 采购员 char(16), 收货时间 datetime, 订单号 char(10) references 订单(订单号) ); create table 入库单 ( 入库单编号 char(10) primary key, 商品号 char(12) not null, 商品名 char(16), 数量 float(8), 价格 money, 入库时间 datetime, 采购员 char(16), 仓库管理人员 char(16), 预订单号 char(10) references 预订单 (预订单号) ); create table 出库申请 ( 出库申请表单号 char(10) primary key , 商品编号 char(12), 商品名 char(16), 数量 float(8), 价格 money, 出库时间 datetime, 还库时间 datetime, 部门名称 char(30), 部门经理签字 char(16) ); create table 出库单 ( 出库表编号 char(10)primary key, 出库数量 float(8), 商品号 char(10), 商品名 char(16), 出库性质 char(10), 所需部门 char(30), 仓库管理员 char(16), 提货人员 char(16), 出库时间 datetime, 还库时间 datetime, 出库申请表单号 char(10)references 出库申请 (出库申请表单号) ); create table 惩罚表 ( 惩罚表编号 char(10)primary key, 所罚部门 char(30), 商品编号 char(10), 商品名 char(16), 拖还时间 int, 是否损坏 char (4), 罚款额 float(8), 罚款时间 datetime ); create table 仓库现有库存表 ( 商品编号 char(10) primary key , 商品名 char(16), 最大库存 float(10), 最小库存 float(10), 现有库存 float(10) ); 表的约束SQL语言: /*将单价范围订在10到50之间*/ alter table 购买计划表 add constraint 单价范围 check(单价范围 between 10 and 50); /*金额范围必须小于50000*/ alter table 购买计划表 add constraint 金额范围 check(金额范围<50000); /*出库性质只能是'售出'或'借出'*/ alter table 出库单 add constraint 出库性质 check (出库性质 in('售出','借出')) /*是否损坏的范围是'是'或'否'*/ alter table 惩罚表 add constraint 是否损坏 check ( 是否损坏 in('是','否')) 建视图的SQL语言: /*1.部门计划月所需与实际所用物品的比较( 反映部门的发展状况) */ create view 计划_实际(所需部门,月计划总量,月出库总量,月份,商品名) as select 出库表.所需部门,sum(购买计划表.数量),sum(出库表.出库数量), month(出库时间),出库表.商品名 from 出库表,购买计划表 group by 出库表.商品名,month(出库时间),出库表.所需部门 /*2.可从视图上看到 企业每种商品月进货总量*/ create view 企业每种商品月进货总量( 商品号,商品名,商品月总进货数,月份) as select 入库单.商品号,商品名,sum(入库单.数量),month(入库时间) from 入库单 group by 商品号,商品名,month(入库时间) /*3.能够从视图上看到在如库,出库,还库过程中的现有库存修改后的信息*/ create view 现有库存(商品编号,商品名,现有库存,时间) AS SELECT 仓库现有库存表.商品编号,仓库现有库存表.商品名,(sum(现有库存)+sum(入库单.数量)+sum(还库表.数量)-sum(出库单.出库数量)),day(入库单.入库时间) FROM 入库单,出库单,还库表,仓库现有库存表 GROUP BY 仓库现有库存表.商品名,day(入库单.入库时间),仓库现有库存表.商品编号 存储过程的SQL语句: /*判断是否该出库(条件:现有库存-要求出库数量>最小库存)*/ create proc 判断是否该出库 @商品编号 char(10), @要求出库数量 float(8) as if exists (select *from 仓库现有库存表 where 商品编号=@商品编号) begin if exists(select*from 仓库现有库存表 where (现有库存-@要求出库数量)<最小库存) rollback transaction raiserror('你现在不能从仓库中取出商',16,10) end /*测试程序,在'',''中填入数据*/ execute 判断是否该出库 触发器的SQL语句: /*不准修改罚款金额的存储过程*/ create trigger [修改罚款金额] on [惩罚表] for update as if update(罚款额) begin rollback transaction raiserror('在未交罚金前不能修改罚款金额',16,10) insert into modify_log values (current_user,getdate()) select* from modify_log end /*为了预防超期不准修改还库时间的存储过程*/ create trigger [修改还库时间] on [出库单] for update as if update(还库时间) begin rollback transaction raiserror('在未交还库前不能修改还库时间',16,10) insert into modify_log values (current_user,getdate()) select* from modify_log end /*为了预防超期不准修改出库时间的存储过程*/ create trigger [修改出库时间] on [出库单] for update as if update(出库时间) begin rollback transaction raiserror('能修改出库时间',16,10) insert into modify_log values (current_user,getdate()) select* from modify_log end insert into 购买计划表(计划编号, 商品编号, 商品名 , 数量 ,单价范围 ,所需部门 , 金额范围 ,经理签字 ,计划时间 ) values(‘’,’’,’滑雪板’,’200’,’35’,’策划部’,’8000’,’李兴玉’,’ /6/1’) insert into 订单(订单号 ,商品编号,商品名 ,数量 ,价格 , 供应商 , 所求单委 ,采购员 ,送货时间 ,计划编号 ) values(‘’,’’,’ 滑雪板’,’200’,’30’,’谢仁公司’,’物资公司’,’谢海宁’,’ /6/2’,’’) insert into 预订单(预订单号 ,商品编号,商品名 ,数量 ,价格 , 供应商 , 所求单委 ,采购员 ,送货时间 ,订单号 ) values(‘’,’’, ’ 滑雪板’,’200’,’30’,’谢仁公司’,’物资公司’,’谢海宁’,’ /6/2’,’’) (因为我们数据的插入是手动生成的,现只给出三个表的数据插入) 前台抓图: 1.登录窗口(拥有两个登录方式,不同的方式访问权限不同) Two: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> struct Info { char num[20]; char name[20]; int price; int amount; }; char menu() /*菜单选择函数*/ { char n; /*n记录选择的菜单*/ system("cls"); puts("\t\t 欢迎来到仓库货物管理系统 "); puts("\t\t***********************MENU***********************\n"); puts("\t\t* 1.录入货物信息 *\n"); puts("\t\t* 2.显示货物信息 *\n"); puts("\t\t* 3.查找货物信息 *\n"); puts("\t\t* 4.修改货物信息 *\n"); puts("\t\t* 5.删除货物信息 *\n"); puts("\t\t* 6.退出系统 *\n"); puts("\t\t**************************************************\n"); puts("*********************************"); printf("* 请选择你要输入数(1-6): *\n"); puts("*********************************"); while(1) { n=getchar(); getchar(); if(n<'1'||n>'6') { puts("**********************************"); printf("* 出错了! 请再次输入(1-6): *\n"); puts("**********************************"); } else break; } return n; } void append() /*货物信息输入函数*/ { struct Info info; FILE * fp; char ch; if((fp=fopen("F:\\test\\filemolde\\123.txt","wb")) == NULL) { printf("******************\n"); printf("* 不能打开文件! *\n"); printf("******************\n"); getch(); exit(1); } do { printf("\tnum:"); gets(info.num); printf("\tname:"); gets(info.name); printf("\tprice:"); scanf("%d",&info.price); printf("\tamount:"); scanf("%d",&info.amount); getchar(); fwrite(&info,sizeof(info),1,fp); printf("***************************\n"); printf("* 还需要输入吗?(Y/N): *\n"); printf("***************************\n"); ch=getchar(); getchar(); }while(ch=='Y'||ch=='y'); fclose(fp); } void printf1() { printf("*************************************************************************\n"); printf("\t\t%-10s\t%-10s\t%-10s\t%-10s\n","num","name","price","amount\n"); printf("*************************************************************************\n"); } void printf2(struct Info info) { printf("-------------------------------------------------------------------------\n"); printf("\t\t%-10s\t%-10s\t%-10d\t%-10d\n",info.num,info.name,info.price,info.amount ); printf("-------------------------------------------------------------------------\n"); } void display() /*货物信息显示函数*/ { struct Info info; FILE * fp; int m=0; if((fp=fopen("F:\\test\\filemolde\\123.txt","rb"))==NULL) { printf("******************"); printf("* 不能打开文件! *"); printf("******************"); getch(); exit(1); } while(fread(&info,sizeof(info),1,fp)==1) { m++; if(m==1) printf1(); printf2(info); if((m!=0)&&(m%10==0)) { printf("*****************************\n"); printf("* 输入任何键继续 *"); printf("*****************************\n"); getch(); puts("\n\n"); printf1(); } } fclose(fp); printf("************************************\n"); printf("* 总共有%d条记录在其中! *\n",m); printf("************************************\n"); getch(); } void search() /*货物信息查询函数*/ { struct Info info; FILE * fp; int flag; /* flag为 1 按编号查询 ,flag为 2 按姓名查询*/ int total=0; /*记录符合条件的记录的个数*/ char ch[10]; char f; if((fp=fopen("F:\\test\\filemolde\\123.txt","rb")) == NULL) { printf("************************************\n"); printf("* \t 不能打开文件! *\n"); printf("************************************\n"); getch(); exit(1); } do { rewind(fp); printf("************************************\n"); printf("* 查询经过(1:编号 2:姓名): *\n"); printf("************************************\n"); while(1) { scanf("%d",&flag); getchar(); if(flag<1||flag>2) { printf("*****************************************\n"); printf("* 出错了! 请再次输入[1:编号][2: 姓名] *\n"); printf("*****************************************\n"); } else break; } if(flag==1) /*按编号进行查询*/ { printf("************************************\n"); printf("* 请输入你要查询的编号: *\n"); printf("************************************\n"); gets(ch); total=0; /*符合条件的记录数*/ while(fread(&info,sizeof(info),1,fp)==1) if(strcmp(ch,info.num)==0) { total++; if(total==1) printf1(); printf2(info); } } else /*按姓名进行查询*/ { printf("************************************\n"); printf("* 请输入你要查询的姓名: *\n"); printf("************************************\n"); gets(ch); total=0; while(fread(&info,sizeof(info),1,fp)==1) if(strcmp(ch,info.name)==0) { total++; if(total==1) printf1(); printf2(info); } } printf("************************************\n"); printf("* 总共有%d记录在其中! *\n",total); printf("************************************\n"); printf("************************************\n"); printf("* 还需要查询吗?(Y/N): *\n"); printf("************************************\n"); f=getchar(); getchar(); }while(f=='Y'||f=='y'); fclose(fp); } void modify() /*货物信息修改函数*/ { struct Info info; FILE * fp1,* fp2; int flag; char ch[10]; char f; do { if((fp1=fopen("F:\\test\\filemolde\\123.txt","rb")) == NULL) { printf("************************************\n"); printf(" * 不能打开文件! *\n"); printf("************************************\n"); getch(); exit(1); } if((fp2=fopen("F:\\test\\filemolde\\456.txt","wb")) == NULL) { printf("************************************\n"); printf(" * 不能打开文件! *\n"); printf("************************************\n"); getch(); exit(1); } printf("************************************\n"); printf("* 请输入你要修改的货物编号: *\n"); printf("************************************\n"); gets(ch); flag=0; while(fread(&info,sizeof(info),1,fp1)==1) { if(strcmp(ch,info.num)==0) { printf1(); printf2(info); printf("************************************\n"); printf("* 请输入新的信息: *\n"); printf("************************************\n"); printf("\tnum:"); gets(info.num); printf("\tname:"); gets(info.name); printf("\tprice:"); scanf("%d",&info.price); printf("\tamount:"); scanf("%d",&info.amount); getchar(); flag=1; } fwrite(&info,sizeof(info),1,fp2); } fclose(fp1); fclose(fp2); if(flag==1) { printf("************************************\n"); printf("* 修改成功! *\n"); printf("************************************\n"); remove("F:\\test\\filemolde\\123.txt"); rename("F:\\test\\filemolde\\456.txt","F:\\test\\filemolde\\123.txt"); } else { printf("************************************\n"); printf("* 不能找到这个记录! *\n"); printf("*****************************- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库 管理 系统 设计 模板
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文