仓库管理系统设计(论文)题目基于C#的仓库管理系统专业信息管理与信息系统班级 08信本1班姓名张译心 222008362063023林俊臣 222008362063004摘要仓库管理也叫仓储管理,英文Warehouse Management,简称WM,指的是对仓储货物的收发、结存等活动的有效控制,其目的是为企业保证仓储货物的完好无损,确保生产经营活动的正常进行,并在此基础上对各类货物的活动状况进行分类记录,以明确的图表方式表达仓储货物在数量、品质方面的状况,以及目前所在的地理位置、部门、订单归属和仓储分散程度等情况的综合管理形式。
关键词:WM 仓库管理生产经营活动前言仓库管理系统是现代仓储企业进行货物管理和处理的业务操作系统。
它可以实现本地一个或几个仓库的精细化管理,也可实现制造企业、物流企业、连锁业在全国范围内、异地多点仓库的管理;它可以对货物存储和出货等进行动态安排,可以对仓储作业流程的全过程进行电子化操作;可以与客服中心建立数据接口使客户通过互联网实现远程货物管理,可以与企业的ERP系统实现无缝连接。
在现代企业中,仓库管理是一项繁琐复杂的工作,每天要处理大量的单据数据。
为及时结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全,库管人员要花费大量人力物力和时间来作数据记录统计工作。
本系统正是根据仓库管理的专业特点而开发的,用现代电子技术提高库管工作的质量和效率。
适用于小型企业库管以及储运业务,界面直观,操作简便,运用鼠标,在窗口的不同部位单击左健,双击左健,单击右健,系统会弹出相应窗口,供使用者录入和查询统计。
本论文设计的系统是软件产品仓库管理系统,所用的开发工具是美国Microsoft公司推出的Visual C#语言以及SQL sever数据库。
该系统主要用的是模块化设计,主要包含登记信息,单据管理,查询统计,输出管理和维护设置几个模块。
各模块的主要功能有:登记信息的主要功能:登记货物信息,登记供应商信息,登记往来客户信息,登记仓库信息。
单据管理的主要功能:对入库单据,出库单据,借入单据,借出单据,调拨单据,报损单据六个单据进行管理。
查询统计的主要功能:实现单据查询,库存查询,职员操作查询,货物出入查询,对管理员还可以实现用SQL语句进行高级查询。
输出管理的主要功能:可以对入库单据,出库单据,借入单据,借出单据,调拨单据,报损单据六个单据进行输出管理。
以及输出时对单据进行页面设置等功能维护设置的主要功能:可以查看操作日志,管理公司信息,管理职员信息,对该系统的使用人员进行管理。
本系统设计的目标是对大学所学习的内容进行综合的应用和时间,培养理论联系实践的能力,分析问题和解决问题的能力,以及对所掌握知识的宽度进行检验。
通过学生和指导教师的共同努力,设计出该系统,并对系统作出初步的评价。
系统概述1,通过基本信息管理功能管理人员、属性、商品、客户、供应商的基本信息;通过操作管理功能实行商品的入库、出库操作,以及入库单和出库单的相关查询;通过信息查询及报表统计功能,查询库存信息及制作各个基本信息的报表。
2,仓库管理系统的总目标是:在数据库和先进的开发平台上,利用现有资源,开发一个体系结构完善的、易扩充的、易维护的、具有良好人机交互界面的仓库管理系统,实现仓库的计算机管理,提供完善的功能,为仓库管理人员提供便利的工作方式。
3,系统实现后,提高仓库管理人员的工作效率,降低其工作量、减少手工操作的差错率、提高库存的准确率开发技术本系统采用visual c#和SQL Sever进行开发。
选用理由:(1)Visual C#不仅是C#语言的集成开发环境,而且与WIN32紧密相连, 所以,利用Visual C#开发系统可以完成各种各样应用程序的开发;而且Visual C#也为大型复杂软件的开发提供了有效的排错手段. Visual C#提供了多种数据库连接方式,包括ODBC、ADO、DAO等等。
连接数据库不需要用户自己编写复杂连接数,只需要调用它提供的连接函数即可使用,非常方便。
利用此次设计的机会可以对Visual C#作一个全面的学习。
(2)SQL是一个非过程化的语言,可用于所有用户的数据库活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。
基本的SQL命令只需要很少时间就能学会,最高级的命令在几天内便可掌握。
SQL Server功能很强大,很多信息管理系统都是用SQL Server作后台;而且所有的SQL编写的程序都是可以移植的。
功能模块⏹基本信息管理:供应商信息管理、顾客信息管理、商品信息管理⏹供应商信息管理: 添加供应商信息、修改供应商信息、删除供应商信息、查询供应商信息⏹顾客信息管理: 添加顾客信息、修改顾客信息、删除顾客信息、查询顾客信息⏹商品信息管理: 添加商品信息、修改商品信息、删除商品信息⏹入库管理: 添加入库商品信息、修改入库商品信息、删除入库商品信息、查询入库商品信息⏹出库管理: 添加出库商品信息、修改出库商品信息、删除出库商品信息、查询出库商品信息整个系统主要由三大模块组成:1.基本信息管理模块包括:(1)商品信息管理描述:商品的各项信息定义:商品信息=名称+规格+单位(2)客户信息管理描述:仓库货物客户的基本信息定义:客户信息=公司名称+联系人姓名+联系人地址+城市名称+地区名称+邮政编码+联系电话+传真号码+公司主页(3)供应商信息管理描述:仓库货物供应商的基本信息定义:供应商信息=公司名称+联系人姓名+联系人地址+城市名称+地区名称+邮政编码+联系电话+传真号码+公司主页2.出入库操作模块包括:(1)制订入库单描述:记录入库商品入库单信息=入库单号+供应商+制单人+入库时间+库管员+经办人+是否入库+数量+仓库(2)制订出库单描述:记录出库商品出库单信息=出库单号+客户+制单人+出库时间+库管员+经办人+是否出库+数量+仓库(3)入库单查询描述:查询入库记录(4)出库单查询描述:查询出库记录3.信息查询及报表统计:(1)库存商品查询描述:查询仓库中库存的商品(2)商品信息报表描述:列出所有商品信息(3)出库商品信息报表描述:列出所有出库商品信息(4)入库商品信息报表描述:列出所有入库商品信息(5)供货单位信息报表描述:列出供货单位信息(6)客户信息报表描述:列出客户信息使用人员通过基本信息管理管理供应商、顾客、商品的基本信息。
基本操作包括添加、删除、修改和查询。
这些基本信息放建立的表放在数据库当中。
系统访问数据库,并且完成用户的这些操作需求。
以表单的形式显示出来,方便用户查看。
用户通过库存管理来完成入库和出库操作,同样,入库操作和出库操作也包括添加、删除、修改和查询。
入库商品信息和出库商品信息也放在数据库中,当用户有入库和出库操作时,系统访问数据库,生成入库单和出库单,以表单的形式显示出来,方便用户查看、处理。
入库功能实现可分为以下几个部分:(1)定制入库单由操作人员输入最基本的信息,从商品信息表中获取商品相关信息,从供应商信息表中获取供应商的相关信息。
(2)输入入库单对应的商品信息入库商品与入库单自动关联,从商品信息表中获取商品的相关信息。
出库功能实现可分为以下几个部分:(1)定制出库单由操作人员输入最基本的信息,从商品信息表中获取商品相关信息,从客户信息表中获取客户相关信息。
(2)输入出库单对应的商品信息出库商品与出库单自动关联,从商品信息表中获取商品的相关信息。
关系数据库设计是要遵守一定的规则的,尤其是数据库设计范式,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入、删除和更新操作异常。
反之则是乱七八糟,可能存储了大量不需要的冗余信息。
与数据库设计相关的通常有三大范式:第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。
这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况)。
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式(所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。
)代码如下:private void IniteBmp(int maxnum){g_g = this.CreateGraphics();for (int i = 0; i < MAPWIDTH; i++)for (int j = 0; j < MAPHEIGHT; j++)gmap[i, j] = 0;IniteRandomMap(ref gmap, maxnum);AI = new Kernal(ref gmap);for (int i = 0; i < maxnum; i++){ResourceManager rm = new ResourceManager("LLK.data", Assembly.GetExecutingAssembly());img[i]= (Image)rm.GetObject(i.ToString()+".bmp");//img[i] = (Image)Bitmap.FromFile("Images\\"+(i+1).ToString()+".bmp");}for (int i = 0; i < 6; i++){//bombimg[i] = (Image)Bitmap.FromFile("Images\\B"+(i+1).ToString()+".bmp"); }}private bool CheckWin(ref int[,] map){bool Win = true;for (int i = 0; i < MAPWIDTH; i++)for (int j = 0; j < MAPHEIGHT; j++)if (map[i, j] != 0)Win = false;return Win;}private void IniteRandomMap(ref int[,] map,int num) {Random r=new Random();while (num > 0){for (int i = 0; i < multipic; i++){int xrandom = r.Next(19) ;int yrandom = r.Next(11) ;if (map[xrandom, yrandom] == 0){map[xrandom, yrandom] = num;}elsei--;}num--;}}private void FreshMap(ref int[,] map){Random r = new Random();for(int i=0;i<MAPWIDTH;i++)for (int j = 0; j < MAPHEIGHT; j++){if (gmap[i, j] != 0){int x = r.Next(19);int y = r.Next(11);int temp = gmap[x, y];gmap[x, y] = gmap[i, j];gmap[i, j] = temp;}}TransportMap(ref gmap);}private void TransportMap(ref int[,] map){for(int i=0;i<MAPWIDTH;i++)for (int j = 0; j < MAPHEIGHT; j++){AI.GiveMapValue(i, j, map[i, j]);}}private void Draw(Graphics g, Image scrImg, int PicX,int PicY){g.DrawImage(scrImg, new Point(PicX, PicY));}private void Form1_Paint(object sender, PaintEventArgs e){g_g.DrawLine(new Pen(new SolidBrush(Color.DeepSkyBlue), 5), 0, 11 * 34 + 5, 19 * 34, 11 * 34 + 5);if (bStart){for (int i = 0; i < MAPWIDTH; i++)for (int j = 0; j < MAPHEIGHT; j++){if (gmap[i, j] != 0)}Draw(g_g, img[gmap[i, j] - 1], i * PICWIDTH, j * PICHEIGHT);}}}}总结本仓库管理系统针对仓库管理的系统化,规范化和自动化的特点,它使计算机技术与现代的管理技术相互配合,来更加准确、高速地完成工业企业日常的仓库管理工作。