仓库管理系统报告.docx

上传人:rrsccc 文档编号:9426914 上传时间:2021-02-25 格式:DOCX 页数:26 大小:117.33KB
返回 下载 相关 举报
仓库管理系统报告.docx_第1页
第1页 / 共26页
仓库管理系统报告.docx_第2页
第2页 / 共26页
仓库管理系统报告.docx_第3页
第3页 / 共26页
仓库管理系统报告.docx_第4页
第4页 / 共26页
仓库管理系统报告.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《仓库管理系统报告.docx》由会员分享,可在线阅读,更多相关《仓库管理系统报告.docx(26页珍藏版)》请在三一文库上搜索。

1、仓库管理系统报告Project2(GUI+SQL2005)实习报告选题名称:仓库治理系统专业:运算机科学与技术(软件工程方向)班级:软件 1092姓名:王伟剑学号:1091305220指导教师:冯万利于长辉高尚兵 庄军2011年06 月 11 日Project2(GUI+SQL2005)实习任务书课题仓库治理系统名称1. 把握面向对象的程序设计技术和方法;设计目的2. 学习用 C#设计 GUI 程序解决实际咨询题;3. 熟悉 VS.NET 开发平台,能使用 .NET 平台进行程序设计及程序调试;4.能使用 ADO.NET 进行数据库系统设计与开发。实验环境1. Windows XP 操作系统2

2、. Visual Studio 开发平台3. SQL Server2005 数据库治理系统任务要求1利用 C#编程思想进行可视化编程,完成系统的设计。突出体现C#语言与其他语言的不同。2按照课题需要自主创建sql 数据库,表内数据关联紧密,数据合理且规范化,幸免数据冗余。3能合适的选择高级控件(如:菜单栏 ,工具栏 ,dataGridView,treeView等 )完成课题内容,窗口布局合理。4每个学生从所给题目中任选一题,必须独立完成,不能相互抄袭。工作进度打算序号起止日期工作内容12011-4-11 2011-6-5需求分析22011-6-6 2011-6-6系统设计32011-6-7

3、2011-6-9系统实现42011-6-9 2011-6-9撰写实习报告52011-6-10 2011-6-10实习答辩指导教师(签章):2011年06月日摘要:随着现代工业的进展,运算机信息治理系统越来越受到企业的重视。本文要紧分析介绍了仓库治理系统的一些差不多功能和组成情形,包括系统的需求分析、系统结构、功能模块划分以及数据库模式分析等,重点对应用程序的实际开发实现作了介绍。达到了数据的一致性和安全性,且应用程序功能完备,符合了库存治理系统作为典型的信息治理系统 (MIS) 的要求。同时简单介绍了 Visual Studio 2008 编程环境和 SQL 数据库治理系统的功能特点,库存治理

4、系统是企业物流治理中不可或缺的的一部分。本系统利用 ASO 三层架构,完成系统登录, 注销,修改密码的差不多功能,仓库入库登记,出库登记,仓库物资预警,仓库内物资盘点的要紧功能。本系统并不复杂,要紧完成通过 GUI 开发,利用关键字对数据库进行增删改查等操作。关键词:仓库治理;数据库;信息治理;Visual Studio 2008目 录1 需求分析 2 1.1 系统概述 21.2系统总体需求21.3可行性分析22 概要设计 32.1 E-R 图32.2 有关讲明33 详细设计 43.1 数据库表定义43.2GUI 框架设计44编码实现 55总结 201 需求分析1.1系统概述仓库存放的物资品种

5、繁多,堆放方式以及处理过程也专门复杂。随着业务量的增加,仓库治理者需要处理的信息量会大幅上升,因此往往专门难及时准确的把握整个仓库的运作状态。针对这一情形,本系统在满足仓库的差不多治理功能基础上发挥信息系统的智能化,减轻仓库治理人员和操作人员的工作负担。系统要紧实现目标是监控整个仓库的运作情形;提供完整的打算任务功能,由整个操作系统的指令中心来安排进出任务,确认任务的开始,进货治理和出货治理按其指令执行即可;实时监控所有物资的在线运动的情形,实时提供仓库变化的信息。1.2 系统总体需求按照详细的需求分析,企业在库存中面临的要紧咨询题体现在:库存量大,库存资金周转慢,不能及时统计库存物料;库房人

6、员重复工作多,效率低;不明白库存物资积压时刻长短。系统输入繁琐,极易产生输入错误,缺少智能化输入功能,如:产品名称输入过程中,产品名称和产品代码不能够相互和谐,易产生不匹配现象。另外,整个系统运行较慢,数据处理能力不够,进行一个查询往往需要等待专门长时刻。该系统还缺少通用库存治理理功能,物资组成条目差不多上通过手工运算的,工作量专门大,且容易产生错误,有一个小错误,核对都需要花费专门大的精力,换句话讲,当前没有通用库存治理系统。本系统从最初的采购到储备和出库,仓库治理将决定企业是否兑现其承诺。从仓库打算到仓库操作和交叉运输,优化的仓库将有助于大幅度减少企业的库存量和和物资成本,因为企业将能保持

7、较低的库存货水平,优化入库,保管和出库活动,同时和谐载货量。1.3 可行性分析技术上可行:该系统所需硬件设备,市场上销售且价格较低,甚至能够使用原有的设备,软件上,操作系统采纳Windows 系列操作系统,数据库治理系统采纳 Visual Studio 2008,这些软件在 GUI 开发中已被大量应用,技术上都比较成熟。因此在技术上是可行的。2 概要设计2.1E-R 图输入账号密 码登 录N账号密码符合要求重新输入Y修改密码注销退出要紧功能要紧功能入库登记出库登记仓库预警库存盘点输入物资详情输入物资详情输入预警数量显示库内物资详情数据库,信息数据库,信息显 示 数 量 不栏同步修改栏同步修改足

8、物资详情2.2 有关讲明登录系统:账号密码均储备于SQL 数据库中。输入账号及账号对应密码,即可登录系统。修改密码:需输入一次原密码,输入两次新密码相同即可修改。密码修改同步于SQL 数据库。注销:登录账号退出,返回登陆界面。退出系统:系统退出。入库登记:输入产品ID ,即可直截了当获得产品的有关信息,现在输入入库数量就能够完成物资的入库操作,如果现在产品为新产品,需输入产品的详细信息,就能够完成物资的入库操作。入库操作同步更新 SQL 数据库。出库登记:输入产品ID ,即可直截了当获得产品的有关信息,现在输入出库数量就能够完成物资的出库操作, 入库操作同步更新SQL数据库。仓库预警:输入预警

9、数量,点击确定按钮,现在显示数据库中,物资数量小于预警数量的物资总数和物资详细信息。商品查询:显示仓库中所有物资的详细信息,能够输入产品ID 和产品名称进行物资查询,支持模糊查找。3 详细设计3.1 数据库表定义Users 表(用户信息表)Goods 表(物资详情表)Worehouses表(仓库信息表)3.2GUI 框架设计1 用户系统2 主菜单3 密码修改4 物资入库5 物资出库6 库存预警7 商品查询4 编码实现登录系统publicstatic string pwd;public static string pid;private void button1_Click(objectsend

10、er, EventArgs e)pwd = this.textBox1.Text;pid = this.textBox2.Text;Logs l = new Logs();if (int.Parse (l.isPassword(this.textBox2.Text,this.textBox1.Text).ToString () )= 1)this.Hide();Management m = new Management();m.ShowDialog();elseDialogResult dr = MessageBox.Show(请检查您的用户名和密码 , 登录失败 , MessageBoxBu

11、ttons.YesNo); if (DialogResult.No=dr)Application.Exit();private void button2_Click(object sender, EventArgs e)Application.Exit();主菜单public partial class Management : Formpublic Management()InitializeComponent();private void ChangeToolStripMenuItem_Click(object sender,EventArgs e)ChangePassword cp =

12、new ChangePassword(); cp.ShowDialog();private void LogoutToolStripMenuItem_Click(object sender, EventArgs e)DialogResult dr = MessageBox.Show(您确定要注销吗? , 注销 , MessageBoxButtons.YesNo);if (dr = DialogResult.Yes)Application.Exit();private void OutToolStripMenuItem_Click(object sender, EventArgs e)Appli

13、cation.Exit();private void Management_Load(object sender, EventArgs e)this.goodsTableAdapter.Fill(this.wmsDataSet.Goods);private void Management_FormClosed(object sender, FormCl osedEventArgs e)Application.Exit();private void InputF2ToolStripMenuItem_Click(object sender,EventArgs e)InputWHForm iwh =

14、 new InputWHForm(); iwh.ShowDialog ();private void Management_Activated(object sender, EventArgse)this.goodsTableAdapter.Fill(this.wmsDataSet.Goods);private void OutF6ToolStripMenuItem_Click(object sender, EventArgs e)OutWHForm owh = new OutWHForm();owh.ShowDialog ();private void WarningToolStripMen

15、uItem_Click(object sender,EventArgs e)Warning w = new Warning();w.ShowDialog();private void GoodsDetailsToolStripMenuItem_Click(object sen der, EventArgs e)this.goodsTableAdapter.Fill(this.wmsDataSet.Goods);private void WareHouseDetailsToolStripMenuItem_Click(object sender, EventArgs e)this.warehous

16、esTableAdapter.Fill(this.wmsDataSet1.Warehouses);private void SearchToolStripMenuItem_Click(object sender, EventArgs e)Search s = new Search();s.Show();private void fillByToolStripButton_Click(objectsender, EventArgs e)trythis.goodsTableAdapter.FillBy(this.wmsDataSet.Goods);catch (System.Exception e

17、x)System.Windows.Forms.MessageBox.Show(ex.Message);入库登记public partial class InputWHForm : Formpublic InputWHForm()InitializeComponent();private void InputWHForm_Load(object sender, EventArgs e)/ TODO: 这行代码将数据加载到表 “wmsDataSet4.Good s”中。您能够按照需要移动或移除它。this.goodsTableAdapter.Fill(this.wmsDataSet4.Goods)

18、;private void button6_Click(object sender, EventArgs e)this.Close();public void SendToInput()GoodsDetails s = new GoodsDetails();s.GID = int.Parse(this.textBox1.Text);s.Gprice = float.Parse(this.textBox3.Text);s.Count = SqlHelper.DefiniteCount(this.textBox1.Text) + int.Parse(this.textBox2.Text);SqlH

19、elper.AddGoods(s);private void button5_Click(object sender, EventArgs e)SendToInput();this.Close();private void textBox1_TextChanged(object sender, EventArgse)GoodsDetails g = SqlHelper.Bind(this.textBox1.Text); this.textBox3.Text = g.Gprice.ToString ();出库登记public partial class OutWHForm : Formpubli

20、c OutWHForm()InitializeComponent();private void button2_Click(object sender, EventArgs e)this.Close();private void button1_Click(object sender, EventArgs e)SentToOutput();this.Close();private void SentToOutput()GoodsDetails s = new GoodsDetails();s.GID = int.Parse(this.textBox1.Text);s.Gprice = floa

21、t.Parse(this.textBox3.Text);s.Count = SqlHelper.DefiniteCount(this.textBox1.Text) - i nt.Parse(this.textBox2.Text);SqlHelper.OutGoods(s);private void OutWHForm_Load(object sender, EventArgs e)/ TODO: 这行代码将数据加载到表 “wmsDataSet2.Good s”中。您能够按照需要移动或移除它。this.goodsTableAdapter.Fill(this.wmsDataSet2.Goods);

22、private void textBox1_TextChanged(object sender, EventArgse)GoodsDetails g = SqlHelper.Bind(this.textBox1.Text); this.textBox3.Text = g.Gprice.ToString ();库存预警public partial class Warning : Formpublic Warning()InitializeComponent();private void button3_Click(object sender, EventArgs e)this.listBox1.

23、Items.Clear();List g = new List(); g = SqlHelper.WarningBind(this.textBox2.Text);int i = 0;for ( i=0;i g.Count();i+ )this.listBox1.Items.Add(gi.GID.ToString().PadLeft(4)+ gi.GName.PadLeft(20) + gi.Count.ToString().PadLeft(10) + gi.GPro vider1.PadLeft(20) + gi.GProvider2.PadLeft(10);this.textBox1.Tex

24、t = i.ToString();物资查询public partial class Search : Formpublic Search()InitializeComponent();private void button1_Click(object sender, EventArgs e)this.Close();private void Search_Load(object sender, EventArgs e)/ TODO: 这行代码将数据加载到表 “wmsDataSet5.Good s”中。您能够按照需要移动或移除它。this.goodsTableAdapter.Fill(this.

25、wmsDataSet5.Goods);private void button2_Click(object sender, EventArgs e)this.textBox1.Text = g.GID.ToString();this.textBox3.Text = g.Gprice.ToString();this.textBox2.Text = g.Count.ToString();private void button3_Click(object sender, EventArgs e)GoodsDetails g = SqlHelper.Bind(this.textBox1.Text); t

26、his.textBox3.Text = g.Gprice.ToString(); this.textBox2.Text = g.Count.ToString();数据库连接public static void ChangeDBPassword(int p,string p2)SqlConnection co = new SqlConnection(ConnectionString.con);SqlCommand cmd = new SqlCommand(string.Format(u pdate Users set Upassword=0 where UID=1, p,p2), co);co.

27、Open();var i = (int)cmd.ExecuteNonQuery ();MessageBox.Show(密码修改成功 );co.Close();public static void AddGoods(GoodsDetails g)SqlConnection co = new SqlConnection(ConnectionString.con);SqlCommand cmd3 = new SqlCommand(string.Format(s elect count(*) from Goods where 产品 ID=0, g.GID), co);co.Open ();int j=

28、(int)cmd3.ExecuteScalar ();if(j=0)SqlCommand cmd2 = new SqlCommand(string.Format(insert into Goods values(0,1,2,3,4,5,6,7), g.G ID ,g.GName ,g.Gprice,g.Count ,g.GProvider1 ,g.GProvider2 ,g.GDescribe, g.Wname ), co);int i = (int)cmd2.ExecuteNonQuery();MessageBox.Show(添加成功 );co.Close();elseSqlCommand

29、cmd1 = new SqlCommand(string.For mat(update Goods set 产品名称 =1, 产品价格 =2, 仓库所剩数量 =3, 厂商 =4, 厂商 =5, 备注 =6, 收货仓库 ID=7 where 产品 ID=0, g. GID, g.GName, g.Gprice, g.Count , g.GProvider1, g.GProvider2, g.GDescri be,g.Wname ), co);int i = (int)cmd1.ExecuteNonQuery();MessageBox.Show(更新成功 );co.Close();public s

30、tatic void OutGoods(GoodsDetails g)SqlConnection co = new SqlConnection(ConnectionString.con);trySqlCommand cmd1 = new SqlCommand(string.Format(update Goods set 产品名称 =1, 产品价格 =2, 仓库所剩数量 =3, 厂商 =4, 厂商 =5, 备注 =6, 收货仓库 ID=7 where 产品 ID=0, g. GID, g.GName, g.Gprice, g.Count, g.GProvider1, g.GProvider2,

31、g.GDescrib e,g.Wname ), co);co.Open();int i = (int)cmd1.ExecuteNonQuery();co.Close();MessageBox.Show(仓库出库记录完成 );catch (SqlException)MessageBox.Show(出库失败 );public static int DefiniteCount(string p)SqlConnection co = new SqlConnection(ConnectionString.con);SqlCommand cmd = new SqlCommand(string.Format

32、(select 仓库所剩数量 from Goods where 产品 ID=0,p), co);SqlCommand cmd1 = new SqlCommand(string.Format(select count(*) from Goods where 产品 ID=0,p), co);co.Open();int i=0;if (int)cmd1.ExecuteScalar()= 1)i = (int)cmd.ExecuteScalar();co.Close();return i;public static GoodsDetails Bind(string p)SqlConnection co

33、 = new SqlConnection(ConnectionString.con);SqlCommand cmd = new SqlCommand(string.Format(se lect * from Goods where 产品 ID=0, p), co);co.Open();var i = cmd.ExecuteReader();GoodsDetails g = new GoodsDetails();while (i.Read()g.GName = i1.ToString();g.Gprice = float.Parse(i2.ToString();g.GProvider1 = i4

34、.ToString();g.GProvider2 = i5.ToString();g.GDescribe = i6.ToString();g.Count = (int)i3;g.Wname = (int)i7;return g;public static List WarningBind(string p)SqlConnection co = new SqlConnection(ConnectionString.con);SqlCommand cmd = new SqlCommand(string.Format (s elect * from Goods where 仓库所剩数量 0,p),

35、co);co.Open();var i = cmd.ExecuteReader();List gd = new List();while (i.Read()GoodsDetails g = new GoodsDetails();g.GName = i1.ToString();g.GProvider1 = i4.ToString();g.GProvider2 = i5.ToString();g.Count = (int)i3;g.Wname = (int)i7;gd.Add(g);return gd;public static GoodsDetails BindVague(string p)Sq

36、lConnection co = new SqlConnection(ConnectionString.con);SqlCommand cmd = new SqlCommand(string.Format(se lect * from Goods where 产品名称 like %0%, p), co);co.Open();var i = cmd.ExecuteReader();GoodsDetails g = new GoodsDetails();while (i.Read()g.GID = (int)i0;g.GName = i1.ToString();g.Gprice = float.P

37、arse(i2.ToString();g.GProvider1 = i4.ToString();g.GProvider2 = i5.ToString();g.GDescribe = i6.ToString();g.Count = (int)i3;g.Wname = (int)i7;return g;5 总结在这次课程设计中,让我学到了专门多在课堂和书本上学不到的知识,我在这次课程设计中最大的收成有以下几个方面:一、领会到了数据库设计在运算机领域的重要性。数据库作为一个永久储备形式在应用中发挥着重要的作用。在数据库设计中,我明白了数据库设计中不是范式越高越好的。我们要按照我们的应用来决定,一切应

38、该以需求为首要选择。二、对变成环境、一些控件的使用和界面的美化方面更加熟悉。因为仓库治理系统中涉及到专门多控件的使用,只有专门好的使用这些控件才能够给出一个专门好的界面出现在用户的面前。如此更有利于数据库和用户之间的交流。那个地点就要涉及一些平常不太常见的控件的使用咨询题。为了更好的在系统中利用这些控件,我上网查询了一些关于控件使用的资料,最要紧的是 MSDN 上面、还有借了一些这方面的书籍。在界面的美化方面,我了解了一些 WINDOWS 自定义界面的知识,现在的软件事实上好多面向用户的时候用户第一看的确实是一个软件的界面是否有好,是否漂亮。事实上,界面美化是专门重要的。因为美,是人一直追求的。要紧知识有:自定义窗口形状,按钮的 3D 成效,控件的自定义等等。这些差不多上通过面向对象编程的一些特性实现的,又得是通过多态,又得是通过类的继承。三、利用软件工程学开发系统。尽管那个仓库治理系统是一个小的系统,但只有从这些小的项目中就利用软件工程学的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1