




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 设 计题目基于C#的仓库信息管理系统的设计与实现姓 名 刘莉 学 号 201304120053 系(院 信息工程系 班 级P13软件技术1班指导教师 职 称 二O一六 年 五 月 二十 日毕业设计(论文)答辩评审表课题名称C#仓库信息管理系统的设计与实现学生姓名刘莉答辩小组评分评语:答辩小组负责人签字: 年 月 日答辩小组成员签名毕业设计(论文)成绩评定表指导教师评分(30分)评阅人评分(30分)答辩评分(40分)综合成绩答辩委员会负责人签字: 年 月 日摘 要 随着现代工业的发展,计算机信息管理系统越来越受到企业重视。本文主要分析了库存管理系统的一些基本功能和组成情况,包括系统的需求分析、系统结构,功能模块划分以及数据库模式分析等,重点对应用程序的实际开发实现作了介绍。达到了数据的一致性和安全性,且应用程序功能完备,符合了库存管理系统作为典型的信息管理系统(MIS)的要求。同时简单介绍了Visual Studio 编程环境和SQL Server数据库管理系统的功能特点,库存管理系统是企业物流管理中不可或缺的一部分。关键词:库存管理,数据库,信息管理,VS目录第一章 绪论11.1本课题的研究背景11.2国内外研究现状11.3本课题的主要工作1第二章 系统相关技术介绍32.1 C#技术32.2 SQL技术3第三章 仓库信息管理系统的设计53.1系统需求分析53.2系统功能设计53.3系统数据库设计63.3.1 E-R图设计6第四章 仓库信息管理系统的实现104.1系统登录模块的实现104.2主窗体的实现124.3系统仓库基本档案及相关模块的实现134.4系统进出管理窗体的实现174.8查询管理模块实现284.9货物添加管理模块实现314.10员工添加管理模块实现32第五章 仓库信息管理系统的测试355.1功能测试355.2性能测试41第六章 总结44致谢45参考文献46淄博职业学院论文第一章 绪论1.1本课题的研究背景信息技术的日新月异,给仓库管理带来巨大的影响。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统,尽可能地减少仓库管理的重复性和低效性,已变得十分必要。计算机应用技术的发展,计算机硬件性能的不断改进,为仓库管理系统的开发提供了技术支持和经济可行性。管理系统的应用,可以将工作者从烦杂的劳动中解脱出来,极大提高工作效率,有着较好的营运可行性。课题以某仓库应用背景,通过研究当前仓库系统的管理现状、存在问题以及现实需求,设计一个针对仓库管理工作的管理信息系统。该系统能够提供较为完备的功能,对于提高工作效率、加快仓库管理的自动化具有较为重要的意义。1.2国内外研究现状现代企业的物流日趋复杂,高效的物流系统要求有效地对企业的库存进行管理。目前的仓库管理系统一般技术比较落后、性能较差且很不完备,人工干涉多,操作使用不方便,有的还故障率高而不实用。现阶段仓库管理的特点是信息处理量特别大,所管理的物资设备种类繁多,而且入库单、出库单、需求单等单据的发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。仓储管理部门越来越需要一套低成本、高性能、方便使用、功能完善的综合仓库管理信息系统。1.3本课题的主要工作本文尝试构建一个基于C#的仓库管理系统,尝试弥补现有网络监听系统的不足,实现系统的可扩展性和健壮性。本文的研究工作主要体现在以下几个方面。仓库管理系统主要研究实现以下内容: (1)员工信息管理:主要实现管理企业员工的基本信息管理,包括员工基本信息的录入、修改、删除等功能。(2)考勤管理:主要通过员工考勤信息处理模块实现员工考勤信息的录入、修改、删除操作及员工考勤信息的统计等信息。(3)查询管理:主要实现对企业员工的人事档案、考勤记录和员工信息等信息的模糊查询。 (5)系统管理:对系统信息进行设置。主要实现操作权限的设置、新用户的添加、用户密码的修改、公司部门设置和系统帮助信息。(6)退出系统:完成系统的退出。第二章 系统相关技术介绍2.1 C#技术C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。C#是一种安全的、稳定的、简单的、优雅的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。C#使得C+程序员可以高效的开发程序,且因可调用由 C/C+ 编写的本机原生函数,因此绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。 2.2 SQL技术结构化查询语言,是一种特殊目的之编程语言,用于数据库中的标准数据查询语言,IBM公司最早使用在其开发的数据库系统中。1986年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。系统的数据库访问过程实现主要通过六个步骤5:(1)建立数据库表,表中存储相应数据。(2)使用SqlConnection或OleDbConnection类建立数据库应用程序和数据库连接对象。(3)从数据库指定表中取出感兴趣的记录。(4)从数据库指定表中取出的感兴趣记录组成一个新表,填充到DataSet类对象中,可填充多个表,并可在DataSet类对象中指定表和表的关系。取出所感兴趣的记录后,断开数据库连接。(5)用支持数据库绑定控件(例如DataGrid控件)显示DataSet类对象中的数据,供用户浏览、查询和修改。(6)及时更新DataSet中内容,并把修改的数据存回源数据库。第三章 仓库信息管理系统的设计3.1系统需求分析仓库信息管理系统,对进出货物进行管理,货物由货物号作为主键,货物名称,货物价格,货物库存以及货物商等标识,以及仓库管理人员的添加,修改,删除,以及对密码的管理。需要对货物的添加,修改,删除,对货物的入库,出库,货物数量,以及进出时间进行记录,当货物进行入库出库操作时,则在数据库中会有相应改变,以达到仓库货物的管理。3.2系统功能设计仓库信息管理系统分三层,其中顶层的是系统的接口,供用户使用,第二层是一些基本的功能整体,包括货物维护、进出记录、人员维护、密码修改,系统的描绘了整个系统的功能;最下面一层就是每个基本功能模板的实现部分,具体的层次图和改进后的HIPO图请见下图图3.1 系统功能模块图3.3系统数据库设计3.3.1 E-R图设计本系统中,为了保证系统的安全性,在登录系统的时候用户需要输入正确的用户名和密码,并且通过不同的用户名和密码进入不同的管理界面。因此,需要一个数据库表用来记录用户的用户名和密码。登录表的实体E-R图,如图3.2所示。图3.2 登录表E-R图在仓库信息管理系统中,员工信息表属于其中最重要的一个表,在这个表中记录了员工的基本信息,因此表中涉及的员工信息字段太多,本实体E-R图只给出了部分字段。本系统的员工基本信息表E-R图,如图3.3所示。图3.3 员工基本信息E-R图在仓库信息管理系统中,货物添加表属于其中最重要的一个表,在这个表中记录了货物的基本信息,因此表中涉及的货物信息字段太多,本实体E-R图只给出了部分字段。本系统的货物基本信息表E-R图,如图3.4所示。图3.4 货物基本信息E-R图在仓库信息管理系统中,进出记录表属于其中最重要的一个表,在这个表中记录了货物的基本信息,因此表中涉及的货物信息字段太多,本实体E-R图只给出了部分字段。本系统的货物基本信息表E-R图,如图3. 5所示。图3.5 进出基本信息E-R图3.3.2 数据表设计根据上面设计的E-R图,便可以在数据库中创建相应的数据库表,本系统的各数据表的结构如下:(1)员工基本档案表用于保存员工的基本档案信息。包括员工工号、员工姓名、员工性别、员工电话、员工密码、员工住址等字段。其结构,如表3.1所示。表3.1 基本档案表1123男laoer河南677530042123女开发商鼎那劲1234563123女大范甘迪每季度1234564123女发的刚分手的人123456NullNullNullNullNullNull(2)货物添加表用于存放货物信息。包括货物号、货物名、货物价格、提供商、货物库存、说明等字段。其结构,如表3.2所示。表3.2货物添加信息表1001红塔山香烟70红塔山集团1701003雕牌洗衣粉3某厂 1001004方法 34放放风 5001005六神花露水3.5四川 1001001红塔山香烟70红塔山集团170NULLNULLNULLNULLNULL (3)进出记录表用来存放货物的信息。包括:记录编号、商品编号、出入数量、经手人、出入时间、出入类型和说明信息等字段。其结构表,如表3.3所示。表3.3 进出记录表32322323倒萨2015-10-10 13:12:04.000入库544334542015-10-10 13:12:04.000出库54512323倒萨2015-10-10 13:12:04.000入库321334倒萨2015-10-15 09:12:04.000入库32322323倒萨2015-10-15 09:12:04.000出库434123倒萨2015-10-2010:12:04.000入库32322323倒萨2015-10-2010:12:04.000出库001100150老猪2015-10-2010:12:04.000入库001100130刘国庆2015-10-23 09:12:04.000入库002100140倒萨2015-10-23 09:12:04.000入库32322323倒萨2015-10-23 09:12:04.000出库NullNullNullNullNullNull (4)密码修改表用于存放用户的信息及各用户的权限信息。包括用户名称、用户密码、确认新密码、旧密码等字段。其结构,如表3.4所示。表3.4 修改密码表51aspx 51aspxsystemzhu456userNULLNULLNULL第四章 仓库信息管理系统的实现4.1系统登录模块的实现仓库信息管理系统登录窗体,填写用户名及密码正确登录,如密码错误登陆时会显示异常,如图4.1所示。图4.1 管理程序登录窗体 private void Form1_Load(object sender, EventArgs e) this.CenterToParent(); SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettingscoon.ToString(); String sql = select * from User; SqlCommand comm = new SqlCommand(sql, conn); SqlDataAdapter da = new SqlDataAdapter(comm); DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); comboBox1.DataSource = ds.Tables0; comboBox1.ValueMember = UserName; private void label2_Click(object sender, EventArgs e) private void textBox1_TextChanged(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) int n = 0; String str1 = comboBox1.SelectedValue.ToString().Trim(); String str2 = textBox2.Text.ToString().Trim(); SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettingscoon.ToString(); String sql = select * from User; if (ConnectionState.Closed = conn.State) conn .Open(); SqlCommand comm = new SqlCommand(sql, conn); SqlDataReader read = comm.ExecuteReader(); while (read.Read() if (read0.ToString().Trim() = str1) & (read1.ToString().Trim() = str2)/Trim()函数是将字符串开头和结尾的空格去除 /DialogResult = DialogResult.OK; /this.Close(); 主界面 frm2 = new 主界面(); frm2.ShowDialog(); n = 1; break; if (n=0) MessageBox.Show(对不起,您的用户名/密码不正确,请重新输入); private void button2_Click(object sender, EventArgs e) Application.Exit();/退出系统 4.2主窗体的实现本窗体用了四个按钮来进行实行认证,一个按钮点击进出会实行相应的程序,弹出相应的对话框,如图4.2所示。图4.2 主窗体其实现的重点代码如下: public 主界面() InitializeComponent(); private void 主界面_Load(object sender, EventArgs e) this.CenterToParent(); private void button1_Click(object sender, EventArgs e) 货物添加 ga= new 货物添加(); ga.Show(); private void button2_Click(object sender, EventArgs e) 进出记录 gm = new 进出记录(); gm.Show(); private void button3_Click(object sender, EventArgs e) 员工 Users = new 员工(); Users.Show(); private void button4_Click(object sender, EventArgs e) 修改密码 cpd = new 修改密码(); cpd.Show(); 4.3系统仓库基本档案及相关模块的实现仓库基本档案及相关模块用来对货物和员工的基本档案、货物信息、密码修改、进出记录等进行添加、修改、删除的操作。为了更好的进行查询操作,本界面设计了模糊查询的功能,窗体运行结果图。 图4.3案管理窗体具体实现的重点代码如下: public partial class 员工 : Form public 员工() InitializeComponent(); private void Users_Load(object sender, EventArgs e) RefreshList(); private void RefreshList() String str = ConfigurationSettings.AppSettingscoon.ToString(); SqlConnection conn = new SqlConnection(str); if (ConnectionState.Closed = conn.State) conn.Open(); String myselect = select * from Users; SqlDataAdapter adap = new SqlDataAdapter(myselect, conn); DataSet dts = new DataSet(); adap.Fill(dts); dataGridView1.DataSource = dts.Tables0; conn.Close(); private void button2_Click(object sender, EventArgs e) 员工添加 uadd = new 员工添加(); uadd.Show(); private void button3_Click(object sender, EventArgs e) 员工维护 umodify = new 员工维护(); umodify.Show(); private void button4_Click(object sender, EventArgs e) 删除信息 udel = new 删除信息(); udel.Show(); private void button1_Click(object sender, EventArgs e)/查询 String str = ConfigurationSettings.AppSettingscoon.ToString(); SqlConnection conn = new SqlConnection(str); if (ConnectionState.Closed = conn.State) conn.Open(); String myselect = select * from Users where UID= + comboBox1.Text + ; SqlCommand comm = new SqlCommand(myselect, conn); SqlDataReader reader = comm.ExecuteReader(); while (reader.Read() textBox1.Text = reader0.ToString(); textBox2.Text = reader1.ToString(); textBox3.Text = reader2.ToString(); textBox4.Text = reader3.ToString(); textBox5.Text = reader4.ToString(); textBox6.Text = reader5.ToString(); private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) try textBox1.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells0.Value.ToString(); textBox2.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells1.Value.ToString(); textBox3.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells2.Value.ToString(); textBox4.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells3.Value.ToString(); textBox5.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells4.Value.ToString(); textBox6.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells5.Value.ToString(); catch (Exception es) Console.Write(es.ToString(); private void textBox2_TextChanged(object sender, EventArgs e) private void label2_Click(object sender, EventArgs e) private void textBox3_TextChanged(object sender, EventArgs e) private void textBox4_TextChanged(object sender, EventArgs e) private void textBox5_TextChanged(object sender, EventArgs e) private void textBox6_TextChanged(object sender, EventArgs e) private void button5_Click(object sender, EventArgs e) RefreshList(); 4.4系统进出管理窗体的实现本窗体实现的功能包括:查询每一物品记录,由于这里的查询连接的是基本档案的数据库,所有可以查询出该部门的所有货物。在此情况下,便设计了货物信息按查询的功能的实现。图4.4 货物进出信息管理窗体具体实现的重点代码如下public partial class 进出记录 : Form public 进出记录() InitializeComponent(); private void RefreshList() String str = ConfigurationSettings.AppSettingscoon.ToString(); SqlConnection conn = new SqlConnection(str); if (ConnectionState.Closed = conn.State) conn.Open(); String myselect = select * from Record; SqlDataAdapter adap = new SqlDataAdapter(myselect, conn); DataSet dts = new DataSet(); adap.Fill(dts); dataGridView1.DataSource = dts.Tables0; conn.Close(); private void label4_Click(object sender, EventArgs e) private void label5_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) String sql=null,sql1=null; if (textBox1.Text = | textBox2.Text = | textBox3.Text = | textBox4.Text = ) MessageBox.Show(请输入数据,进行添加); else String str = ConfigurationSettings.AppSettingscoon.ToString(); SqlConnection conn = new SqlConnection(str); SqlConnection con = new SqlConnection(str); if (ConnectionState.Closed = conn.State) conn.Open(); if (ConnectionState.Closed = con.State) con.Open(); SqlDataAdapter d = new SqlDataAdapter(); if (radioButton1.Checked = true) sql = INSERT INTO Record(RecordID,RecordGoodID,RecordQuantity,RecordManager,RecordTime,RecordType)Values( + textBox1.Text + ,+ + textBox2.Text + , + textBox3.Text + , + textBox4.Text + , + dateTimePicker1.Value + , + radioButton1.Text + ); sql1 = update Goods set GoodQuantity=GoodQuantity+ + textBox3.Text + where GoodID=+textBox2.Text+; else if (radioButton2.Checked = true) sql1 = update Goods set GoodQuantity=GoodQuantity- + textBox3.Text + where GoodID=+textBox2.Text+; sql = INSERT INTO Record(RecordID,RecordGoodID,RecordQuantity,RecordManager,RecordTime,RecordType)Values( + textBox1.Text + ,+ + textBox2.Text + , + textBox3.Text + , + textBox4.Text + , + dateTimePicker1.Value + , + radioButton2.Text + ); d.InsertCommand = new SqlCommand(sql, conn); d.InsertCommand.ExecuteNonQuery(); SqlCommand com = new SqlCommand(sql1,con); com.ExecuteNonQuery(); conn.Close(); MessageBox.Show(已提交完毕); RefreshList(); private void button2_Click(object sender, EventArgs e) Close(); private void GoodsModify_Load(object sender, EventArgs e) CenterToParent(); RefreshList(); private void dataGridView1_CurrentCellChanged(object sender, EventArgs e) try textBox1.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells0.Value.ToString(); textBox2.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells1.Value.ToString(); textBox3.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells2.Value.ToString(); textBox4.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells3.Value.ToString(); dateTimePicker1.Text = dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells4.Value.ToString(); if (dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells4.Value.ToString() = 入库) radioButton1.Checked = true; else radioButton2.Checked = true; catch (Exception es) Console.Write(es.ToString(); 4.5系统员工管理模块的实现在本窗体中,最重要的是员工维护的实现。员工的实现是一个将查询出来的数据添加到员工维护数据库的过程;员工录入实现的也是一个员工信息数据库添加的操作。具体实现过程为:员工输入相应的部门信息和查询年月,点击查询之后搜索出相应的部门工资信息,在通过发工资按钮将工资添加到数据库。工资录入界面实现起来比较简单,输入工资数据化,单击添加,数据便录入相应数据库。为方便管理,本窗体还添加了打印的相关功能。其运行界面如图4.5所示。图4.5 系统员工修改窗体具体实现的重点代码如下 public 员工维护() InitializeComponent(); private void UserModify_Load(object sender, EventArgs e) private void but
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医保药店人员管理制度
- 卫生诊所消毒管理制度
- 公司销售渠道管理制度
- DB62T 4501-2022 枣 银枣1号规范
- DB62T 4336-2021 龙芽草生产技术规程
- 专项维护方案么(3篇)
- 商铺开卖方案(3篇)
- 厨具施工方案(3篇)
- 汽车支架安置方案(3篇)
- 消防孤岛营救课件
- 深圳2025年深圳市住房公积金管理中心员额人员招聘8人笔试历年参考题库附带答案详解
- 2025CSCOCSCO宫颈癌的诊疗指南更新
- 委托投资协议范本
- 厂房物业托管协议书
- 2022联合国电子政务调查报告(中文版)
- 物业费结算及社区养老服务机构合作协议
- 2025人工智能工程师笔试题及答案
- 语文中考文学类文本托物言志专题复习教学设计
- 安徽省合肥市2025届高三下学期5月教学质量检测(三模)英语试卷(含音频)
- 贵州国企招聘2025贵州乌江煤层气勘探开发有限公司招聘16人笔试参考题库附带答案详解
- 放射科出科试题 及答案
评论
0/150
提交评论