资源描述
ASP.NET程序设计
实验报告
设计题目: 仓库管理系统
指引教师: 王斌斌 郭力求 蔡照鹏
班 级: 0844131
学 号:
学生姓名: 谢伊豪
同组人员: 王瑛婕,张哲
成绩:
评语:
计算机科学与工程学院
11月30日
目录
一. 需求分析 3
1.1开发背景 3
1.2开发意义 3
二. 总体概述 4
2.1 系统功能 4
2.1.1登录模块 4
2.1.2管理员模块 5
2.1.3系统管理员模块 6
2.2 界面设计 7
2.2.1 登录界面 7
2.2.2 系统管理员界面 7
2.2.3 管理员界面 7
三. 数据库设计 8
3.1 数据库概念设计 8
3.2 数据表设计与实现 9
四. 系统公共类布置 9
五. 重要功能模块实现 9
5.1 管理员模块 9
5.1.1 基本信息模块 10
5.1.2 货品信息模块 10
5.1.3 出库入库模块 10
5.1.4 信息查询模块 10
5.1.5 报警功能模块 10
5.1.6 信息导出模块 10
5.2 系统管理员模块 10
5.2.1 管理员信息模块 10
5.2.2 采购员信息模块 10
5.2.3 提货员信息模块 10
六. 网站发布 10
七. 谢伊豪心得与体会 10
八. 王瑛婕心得与体会 12
九. 王瑛婕心得与体会 14
十. 参照文献 15
一. 需求分析
1.1开发背景
随着信息技术发展和国内外互联网技术应用水平逐渐提高,在公司管理过程中,老式工作方式和管理模式已经难以满足当代社会必然需求,实现公司当代化综合管理已经是提高国家政府机关和企事业单位各部门工作效率、规范化管理必然发展趋势。随着经济全球化、信息网络化和物流当代化进程全面推动,仓储供需量呈现爆炸式增长,老式仓库管理模式和管理系统,已主线满足不了当代社会全面信息化严峻挑战,如何加强以信息化为指引当代仓库管理技术已成为物流当代化走向成功有效途径,如何将互联网技术和仓储物流信息化技术紧密结合起来,开发出适应当前社会发展需要、先进当代化物流仓储管理技术平台,是当代化物流发展技术中一项基本、又是很核心、特别值得研究子课题。ASP技术是面向对象编程技术,可实现复杂数据库操作;用ASP开发Web应用程序安装在网络服务器上,运营在网络服务器上,因而ASP源程序隐密安全系数性高;而ASP又是基于B/S模型架构、开放式Web服务器应用程序开发技术,因而,采用ASP技术开发运营在服务器端仓库管理信息系统平台是众多软件设计与开发人士首要选取。本文比较全面地阐述了与ASP、ADO、B/S模式关于理论技术,为构建Web仓库管理信息系统提供了必要理论支持。一方面分析了ASP技术优势、特点及其工作原理,剖析了ASP工作核心内涵,搭建了ASP技术工作环境,为开发系统功能提供必须技术运营环境;分析了当前Web数据库最佳访问组件ADO技术对象与数据集之间关系,直接搭建了Web应用程序与数据库访问联系梁;依照当代仓储市场需求特点,对拟开发系统功能进行了细致地分析与设计,建立了仓储数据管理E-R模型图、数据库构造,分析了B/S架构模式三层框架,构建了以该框架为模型仓库管理信息系统,重点分析简介了关于功能模块ASP实现过程,成功地实现了基于ASP运营环境仓库管理信息系统开发与设计;并对本系统各项功能进行了测试与分析,发现系统运营状态良好,人机交互和谐,程序设计实现合理,达到了项目设计目和规定。最后,对本次项目设计进行了总结与展望,发现了系统构架模式关系着程序开发效率,对开发系统有着重要影响意义,好马配好鞍,先进软件必然有先进构架。作为软件开发设计人员既要努力学好软件技术又要注重有关模式学习,这样,就能达到事半功倍效果,设计开发出更加先进应用系统来。
1.2开发意义
仓库管理系统是典型信息管理系统(MIS),其开发重要涉及后台数据库建立和维护,以及前端应用程序开发两个方面。对于前者规定建立起数据一致性和完整性强、数据安全性好库,而对于后者则规定应用程序功能完备、易使用等特点。通过度析,咱们使用Microsoft公司数据库开发工具SQL Server和Microsoft Visual Studio ,运用其提供各种面向对象开发工具和数据库结合比较以便,咱们开发了这套库存管理系统,涉及仓库管理、入库管理、出库管理、库存管理以及查询等模块。仓库管理可用于配备公司仓库信息;出库、入库管理可以使管理人员管理各种类型货品进出;库存管理可提供便捷库存查询管理。仓库管理系统实现了公司对货品管理,用来控制存储货品数量,以保证稳定货品支持正常运转,但又最小限度地占用资本。它是一种有关、动态及真实库存控制系统。它可以结合、满足有关部门需求,随时间变化动态地调节库存,精准地反映库存现状,加强库存环节管理,有效地控制货品收发,减少了库存,优化了库存构造;可以及时理解货品状态,全方位仓库管理可以及时理解货品分布,避免了货品短缺、积压、过期变质,及时理解货品收发成本,货品数据共享。
二. 总体概述
2.1 系统功能
系统要具备如下功能:登录界面统一,顾客登录系统时进行身份验证,如不是系统顾客则禁止登录; 添加新员工时,通过系统管理员进行添加,并能采集员工基本信息;仓库货品信息管理,系统涉及仓库管理、入库、出库和某些记录查询等几某些构成。仓库管理系统实现对货品信息管理和总体记录等,仓库信息,供货单位和操作员信息查看及维护。仓库管理人员可以浏览、查询、添加、删除等产品基本信息。
2.1.1登录模块
登录模块可以分为系统管理员登录和管理员登录。如果顾客要进行登陆时,系统会进去数据库进行帐号密码匹配,同步也要进行权限匹配,如果匹配成功才可以登录。依照其选取顾客不同,输入不同顾客与密码,接入不同顾客界面,管理不同界面。
2.1.2管理员模块
管理员登录:基本信息管理(仓库基本信息,客户基本信息,操作员基本信息)
货品信息管理(对货品信息添加,删除,修改等功能)
仓库货品管理(进行出库和入库操作及其信息记录)
查询信息管理(对仓库,货品,客户等信息查询)
仓库警报功能(当库存信息局限性时进行提示功能)
信息导出功能(导出货品信息,入库信息,出库信息)
2.1.3系统管理员模块
系统管理员登录:管理员信息管理(对管理员信息添加,修改,删除)
采购员信息管理(对采购员信息添加,修改,删除)
提货员信息管理(对提货员信息添加,修改,删除)
2.2 界面设计
2.2.1 登录界面
2.2.2 系统管理员界面
2.2.3 管理员界面
三. 数据库设计
3.1 数据库概念设计
1.E-R图设计办法
1).属性必要是不可分数据项。
2).属性不能与其她实体具备联系,联系只能发生在实体之间。
2.全局E-R图
3.2 数据流图
3.3 数据表设计与实现
(1)仓库表
字段名称
数据类型
描述
仓库编号
nchar(10)
仓库编号,主键
仓库名称
nvarchar(50)
仓库名称
仓库地址
nvarchar(50)
仓库地址
仓库大小
Int
仓库大小
(2)入库表
字段名称
数据类型
描述
货品编号
nchar(10)
货品编号
采购员编号
nchar(10)
采购员编号
采购日期
datetime
采购日期
采购数量
Int
采购数量
管理员编号
nchar(10)
管理员编号
仓库编号
nchar(10)
仓库编号
(3)出库表
字段名称
数据类型
描述
货品编号
nchar(10)
货品编号
提货员编号
nchar(10)
采购员编号
出库日期
datetime
采购日期
出库数量
Int
采购数量
仓库编号
nchar(10)
仓库编号
(4)客户表
字段名称
数据类型
描述
客户号
varchar(10)
客户号,主键
客户名
varchar(50)
客户名
客户类型
varchar(50)
客户类型
联系地址
varchar(50)
联系地址
邮政编号
varchar(10)
邮政编号
联系电话
varchar(30)
联系电话
备注
varchar(100)
备注
(5)库存表
字段名称
数据类型
描述
货品编号
nchar(10)
货品编号
仓库编号
nchar(10)
仓库编号
货品数量
Int
货品数量
清点时间
timestamp
清点时间
(6)提货员表
字段名称
数据类型
描述
提货员编号
nchar(10)
提货员编号,主键
提货员姓名
nchar(10)
提货员姓名
提货员性别
nchar(10)
提货员性别
提货员联系方式
nvarchar(50)
提货员联系方式
提货员联系地址
nvarchar(50)
提货员联系地址
部门
nvarchar(50)
部门
(7)顾客表
字段名称
数据类型
描述
顾客名
nchar(10)
顾客名
密码
nchar(10)
密码
权限
Int
权限
(8)管理员表
字段名称
数据类型
描述
管理员编号
nchar(10)
管理员编号,主键
管理员姓名
nchar(10)
管理员姓名
管理员性别
nchar(10)
管理员性别
管理员联系方式
nvarchar(50)
管理员联系方式
(9)货品表
字段名称
数据类型
描述
货品编号
nchar(10)
货品编号
货品名称
nchar(10)
货品名称
仓库编号
nchar(10)
仓库编号
生产日期
datetime
生产日期
生产厂家
nvarchar(50)
生产厂家
采购员编号
nchar(10)
采购员编号
货品单价
int
货品单价
入库时间
datetime
入库时间
(10)采购员表
字段名称
数据类型
描述
采购员编号
nchar(10)
提货员编号,主键
采购员姓名
nchar(10)
提货员姓名
采购员性别
nchar(10)
提货员性别
采购员联系方式
nvarchar(50)
提货员联系方式
采购员联系地址
nvarchar(50)
提货员联系地址
四. 系统公共类布置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
public class Class1
{
public Class1()
{
}
public static SqlConnection myconn()
{
return new SqlConnection("Server=.;DataBase=CangKu;Integrated Security=True;");
}
}
五. 重要功能模块实现
5.1 管理员模块
管理员模块是一种学校学生信息系统中最为核心一种环节,管理员能操作操作系统内任何信息,详细该系统基本权限,是可以对系统内信息进行维护,对系统进行操作。
5.1.1 基本信息模块
基本信息模块包括仓库基本信息,客户基本信息,操作员基本信息。仓库基本信息设立有修改和删除功能。客户基本信息设立了添加,删除和修改功能。操作员基本信息设立了修改功能。由于客户信息为常变实体属性,因而设立了添加,修改和删除功能。仓库信息为不常变实体属性,因而设立了修改和删除属性。操作员由于是管理员,不能修改同一级别权限信息,因而只给添加了修改基本信息功能。
添加客户信息核心代码
protected void Button1_Click(object sender,EventArgs e)
{
SqlCommand mycomm = new SqlCommand("insert into 客户values('" + this.TextBox1.Text.ToString() + "','" + this.TextBox2.Text.ToString() + "','" + this.TextBox3.Text.ToString() +
"','" + this.TextBox4.Text.ToString() + "','" + this.TextBox5.Text.ToString() + "','" + this.TextBox6.Text.ToString() + "','" + this.TextBox7.Text.ToString() + "')",conn);
conn.Open();
mycomm.ExecuteNonQuery();
conn.Close();
SqlCommand my = new SqlCommand("select * from 客户where 客户号='" + this.TextBox1.Text.ToString() + "'",conn);
conn.Open();
SqlDataReader recu = my.ExecuteReader();
if (recu.Read())
{
Response.Write("<script>alert(\"添加成功!!!\");</script>");
}
else
{
Response.Write("<script>alert(\"添加失败!!! \");</script>");
}
conn.Close();
}
5.1.2 货品信息模块
货品信息模块包括对货品信息添加,货品信息删除,货品信息修改相应现实世界引进新货品,货品信息更新和清仓解决。
添加货品信息核心代码
protected void Button1_Click(object sender,EventArgs e)
{
SqlCommand mycomm = new SqlCommand("insert into 货品 values('" + this.TextBox1.Text.ToString() + "','" + this.TextBox2.Text.ToString() + "','" + this.TextBox3.Text.ToString() +
"','" + this.TextBox4.Text.ToString() +"','" + this.TextBox5.Text.ToString()+"','" + this.TextBox6.Text.ToString()+"','" + this.TextBox7.Text.ToString()+"','" + this.TextBox8.Text.ToString()+"')",conn);
conn.Open();
mycomm.ExecuteNonQuery();
conn.Close();
SqlCommand my = new SqlCommand("select * from 货品 where 货品编号='" + this.TextBox1.Text.ToString() + "'",conn);
conn.Open();
SqlDataReader recu = my.ExecuteReader();
if (recu.Read())
{
Response.Write("<script>alert(\"添加成功!!!\");</script>");
}
else
{
Response.Write("<script>alert(\"添加失败!!! \");</script>");
}
conn.Close();
}
5.1.3 出库入库模块
出库入库模块包括了货品出库和入库模块。对于入库信息来说,当系统开始入库时,先判断货品与否存在,如果不存在话这直接将货品信息插入库存表,然后在入库表中插入记录,提示入库成功。如果货品存在话则看相应仓库与否存在如果存在话则在本来货品基本上只更新货品数量提示入库成功,如果仓库不匹配话则插入该货品信息,然后在入库表中插入记录,提示入库成功。
出库信息,当系统开始出库时,先判断货品与否存在如果存在话则看需要出货仓库与否存在,如果存在话再看货品数量与否满足出货数,如果满足则出库成功同步对库存表和出库表进行更新,提示出库成功,否则则出库失败。
入库核心代码
protected void Button1_Click(object sender,EventArgs e)
{
SqlCommand my = new SqlCommand("select * from 库存where 货品编号='" + this.TextBox1.Text.ToString() + "'and 仓库编号='"+this.TextBox6.Text.ToString() + "'",conn);
conn.Open();
SqlDataReader recu = my.ExecuteReader();
if (recu.Read())
{
conn.Close();
SqlCommand my1 = new SqlCommand("update 库存 SET 货品数量=(货品数量+" + this.TextBox4.Text + ") where 货品编号='" + this.TextBox1.Text.ToString() + "'and 仓库编号='" + this.TextBox6.Text.ToString() + "'",conn);
conn.Open();
my1.ExecuteNonQuery();
conn.Close();
}
else
{
conn.Close();
SqlCommand my2 = new SqlCommand("insert into 库存(货品编号,仓库编号,货品数量) values('" + this.TextBox1.Text.ToString() + "','" + this.TextBox6.Text.ToString() + "'," + this.TextBox4.Text+ ")",conn);
conn.Open();
my2.ExecuteNonQuery();
conn.Close();
}
SqlCommand my3 = new SqlCommand("select * from 库存where 货品编号='" + this.TextBox1.Text.ToString() + "'and 仓库编号='" + this.TextBox6.Text.ToString() + "'",conn);
conn.Open();
SqlDataReader recu1 = my.ExecuteReader();
if (recu1.Read())
{
conn.Close();
SqlCommand mycomm = new SqlCommand("insert into 入库a values('" + this.TextBox1.Text.ToString() + "','" + this.TextBox2.Text.ToString() + "','" + this.TextBox3.Text.ToString() +
"','" + this.TextBox4.Text + "','" + this.TextBox5.Text.ToString() + "','" + this.TextBox6.Text.ToString() + "')",conn);
conn.Open();
mycomm.ExecuteNonQuery();
conn.Close();
Response.Write("<script>alert(\"添加成功!!! \");</script>");
}
else
{
conn.Close();
Response.Write("<script>alert(\"添加失败!!!\");</script>");
}
}
出库核心代码
protected void Button1_Click(object sender,EventArgs e)
{
SqlCommand my = new SqlCommand("select * from 库存where ( 货品编号='" + this.TextBox1.Text.ToString() + "'and 货品数量>=" + this.TextBox5.Text+" and 仓库编号='" + this.TextBox2.Text.ToString() + "')" ,conn);
conn.Open();
SqlDataReader recu = my.ExecuteReader();
if (recu.Read())
{
conn.Close();
SqlCommand mycomm = new SqlCommand("insert into 出库 values('" + this.TextBox1.Text.ToString() + "','" + this.TextBox2.Text.ToString() + "','" + this.TextBox3.Text.ToString() +
"','" + this.TextBox4.Text + "','" + this.TextBox5.Text.ToString() + "','" + this.TextBox6.Text.ToString() + "')",conn);
conn.Open();
mycomm.ExecuteNonQuery();
conn.Close();
SqlCommand my1 = new SqlCommand("update 库存 SET 货品数量=(货品数量-" + this.TextBox5.Text + ") where (货品编号='" + this.TextBox1.Text.ToString() + "'and 仓库编号='" + this.TextBox2.Text.ToString() + "')",conn);
conn.Open();
my1.ExecuteNonQuery();
conn.Close();
Response.Write("<script>alert(\"出库成功!!!\");</script>");
}
else
{
conn.Close();
Response.Write("<script>alert(\"货品不存在或者货品不出库失败!!\");</script>");
}
}
5.1.4 信息查询模块
信息查询模块包括货品信息查询,仓库信息查询,客户信息查询。通过对客户表,仓库表和货品表主键进行匹配唯一拟定一行数据反回GridView进行显示。
查询仓库信息核心代码
protected void BindGrid()
{
SqlDataAdapter dataAdapter2 = new
SqlDataAdapter("select * from 仓库 where 仓库编号='" + TextBox1.Text.ToString() + "'",myConn);
DataSet setS = new DataSet();
dataAdapter2.Fill(setS,"AAA");
this.GridView1.DataSource = setS.Tables["AAA"];
this.GridView1.DataBind();
}
5.1.5 报警功能模块
警报信息功能,是当库存中货品数量少于10时候自动提示管理员要进行及时补货,以免货品短缺,导致损失。
警报信息核心代码
protected void Button1_Click(object sender,EventArgs e)
{
Label1.Text = "如下货品库存局限性,请及时补充";
SqlDataAdapter dataAdapter2 = new
SqlDataAdapter("select * from 库存 where 货品数量<=10",conn);
DataSet setS = new DataSet();
dataAdapter2.Fill(setS,"AAA");
this.GridView1.DataSource = setS.Tables["AAA"];
this.GridView1.DataBind();
}
5.1.6 信息导出模块
信息导出模块包括了导出货品信息,导出出库信息,导出入库信息功能,以便仓库人员进行报表打印和仓库流水信息。
导出货品信息核心代码
public override void VerifyRenderingInServerForm(Control control)
{ }
protected void Button1_Click(object sender,EventArgs e)
{
Response.Clear();
Response.BufferOutput = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=Statement.doc");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-word";
GridView1.EnableViewState = false;
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter stringWriter = new System.IO.StringWriter(cultureInfo);
System.Web.UI.HtmlTextWriter textWriter = new System.Web.UI.HtmlTextWriter(stringWriter);
GridView1.RenderControl(textWriter);
Response.Write(stringWriter.ToString());
Response.End();
}
5.2 系统管理员模块
系统管理员模块,是仓库管理系统重要某些,她拥有系统最高权限,可以管理系统任何事物,能进行,管理员,采购员,提货员添加,修改和删除。
5.2.1 管理员信息模块
管理员信息模块包括对管理员添加修改和删除功能,由于仓库管理系统由管理员进行管理,因而当添加管理员信息时,在给管理员表添加基本信息同步也给顾客表中添加了信息,帐号为管理员编号,密码默以为123.
添加管理员信息核心代码
protected void Button1_Click(object sender,EventArgs e)
{
SqlCommand mycomm = new SqlCommand("insert into 管理员values('"+this.TextBox1.Text.ToString()+"','"+this.TextBox2.Text.ToString()+"','"+DropDownList1.SelectedValue.ToString()+"','"+this.TextBox3.Text.ToString()+"')",conn);
SqlCommand mycomm1 = new SqlCommand("insert into 顾客 values('" + this.TextBox1.Text.ToString() + "','123','1')",conn);
conn.Open();
mycomm.ExecuteNonQuery();
mycomm1.ExecuteNonQuery();
conn.Close();
SqlCommand my = new SqlCommand("select * from 顾客where 顾客名='" + this.TextBox1.Text.ToString()+"'",conn);
conn.Open();
SqlDataReader recu = my.ExecuteReader();
if (recu.Read())
{
Response.Write("<script>alert(\"添加成功!!! \");</script>");
}
Else
{
Response.Write("<script>alert(\"添加失败!!! \");</script>");
}
conn.Close();
}
5.2.2 采购员信息模块
采购员信息管理(对采购员信息添加,修改,删除)
5.2.3 提货员信息模块
提货员信息管理(对提货员信息添加,修改,删除)
六. 网站发布
(1)顾客登录界面
(2)客户基本信息管理
(3)客户信息添加
(4)仓库基本信息管理
(5)操作员基本信息管理
(6)货品信息添加
(7)货品修改和删除信息
(8)入库出库操作
(9)查询信息
(10)警报信息
(11)导出入库信息
七. 谢伊豪心得与体会
课程设计是培养学生综合运用所学知识,发现提出分析和解决实际问题,锻炼实践能力重要环节是对学生实际工作能力详细训练和考察过程本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课知识学就不够夯实,本次课程设计,在设计过程中遇到了诸多问题,刚开始要设计时候,还真不懂得从哪里下手但最后在图书、同窗和教师协助下都得到理解决,让我学会了好多课本上没有东西,通过本次课程设计我也能将课本上知识融会贯通,起到了较好辅助学习效果,但是我发现我学到知识比整整一种学期学到都多。理论和实践相结合是学习最有效办法。在设计过程中发现了自己局限性之处,对此前所学过知识理解得不够深刻,掌握得不够牢
展开阅读全文