资源描述
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
3.3 数据表设计和实现 11
四. 系统公共类布署 14
五. 关键功效模块实现 14
5.1 管理员模块 14
5.1.1 基础信息模块 14
5.1.2 货物信息模块 15
5.1.3 出库入库模块 16
5.1.4 信息查询模块 17
5.1.5 报警功效模块 18
5.1.6 信息导出模块 18
5.2 系统管理员模块 19
5.2.1 管理员信息模块 19
5.2.2 采购员信息模块 20
5.2.3 提货员信息模块 20
六. 网站公布 21
七. 心得和体会 24
八. 参考文件 28
一. 需求分析
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)导出入库信息
七. 心得和体会
谢伊豪心得体会:
课程设计是培养学生综合利用所学知识,发觉提出分析和处理实际问题,锻炼实践能力关键步骤是对学生实际工作能力具体训练和考察过程此次课程设计即使很辛劳,实在是受益匪浅。原来这门课知识学就不够扎实,此次课程设计,在设计过程中碰到了很多问题,刚开始要设计时候,还真不知道从哪里下手但最终在图书、同学和老师帮助下全部得到了处理,让我学会了好多书本上没有东西,经过此次课程设计我也能将书本上知识融会贯通,起到了很好辅助学习效果,不过我发觉我学到知识比整整一个学期学到全部多。理论和实践相结合是学习最有效方法。在设计过程中发觉了自己不
展开阅读全文