资源描述
WEB程序设计设计报告
目 录
第一章 绪论…………………………………………………………………………1
1 系统开发背景……………………………………………………………………1
2 系统开发环境……………………………………………………………………1
第二章 系统需求分析………………………………………………………………3
1 系统功能概述……………………………………………………………………3
2 系统功能需求……………………………………………………………………3
3 用例分析…………………………………………………………………………4
4 类图分析…………………………………………………………………………5
5 系统性能要求……………………………………………………………………6
5.1 系统时间特性要求…………………………………………………………6
5.2 系统灵活性…………………………………………………………………6
第三章 系统设计……………………………………………………………………8
1 系统设计概要……………………………………………………………………8
2 系统活动图设计………………………………………………………………10
3 系统数据库设计………………………………………………………………11
3.1 数据库需求分析…………………………………………………………11
3.2 数据库概念设计…………………………………………………………11
3.3 数据库表的设计…………………………………………………………14
4 数据库创建……………………………………………………………………18
第四章 系统模块实现……………………………………………………………19
1 系统登录模块…………………………………………………………………19
2 商品信息管理模块……………………………………………………………20
3 职工信息管理模块……………………………………………………………22
4 添加销售管理模块……………………………………………………………25
5 添加进货信息模块……………………………………………………………27
6 存信息管理模块………………………………………………………………29
7 限设置管理模块………………………………………………………………31
第五章 技术实现方法……………………………………………………………32
1 身份验证………………………………………………………………………32
2 自动编号………………………………………………………………………32
3 设置文本框只能输入字符型字符串…………………………………………33
结 论………………………………………………………………………………34
参考文献……………………………………………………………………………35
WEB程序设计设计报告
超市管理系统的设计与实现
第一章 绪论
1. 系统开发背景
随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。
而作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的信息处理方式和管理方法,因此加快超市的信息化进程是必可少的。
小超市形态本身具有种种特点,在原先状况下不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。小超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。
为了适应日趋激烈的市场竞争,各类型的超市需要对自身的经营状况有充分的了解,并通过有效的管理不断提高效率。为此,超市管理系统便显得尤为重要了,依靠现代化的计算机信息处理技术来管理超市,是对超市整体信息的管理成为提高经营效率的一个重要途径。
2. 系统开发环境
由于计算机发展迅速,为将来升级的考虑,这里所提供的硬件设备要比能够运行该系统所需要的最低硬件标准高出一些。
软件环境:
操作系统:采用Windows XP或Windows 2003以上;
开发工具:Microsoft SQL Server 2005 ;C#
硬件环境:
CPU:Intel Pentium(R) 4以上;内存:512M;硬盘:80G;网卡:100M。
第二章 系统需求分析
1. 系统功能概述
本系统主要完成超市管理(商品信息管理、供货商管理、进货管理、退换货管理、商品销售管理、客户管理、客户退货管理、仓库设置、库存管理)等功能。通过以上功能实现简单、便捷的超市管理系统。
2. 系统功能需求
商品信息管理:管理员可以对商品进行添加、修改和查询操作。添加库存商品时候要填入:商品名称、入库价格(即进货价格,进货价格的查询只能是以管理员身份登录才能查看)、商品卖价(同入库价格一样)、单位、预警量(及库存下限)。最主要的是对商品信息进行查询:商品信息查询可以根据商品类型查询(类型一般分为:日用品、食品、药品、电器、衣物、床上用品),还可以精确查找(需要输入商品编号、商品类型),还可以模糊查询(需要输入商品名称、商品价格)查询结果包括:商品编号、商品名称、商品类型、商品售价、商品数量。
供货商管理:供货商管理可以对厂商信息进行查询。供货商信息查询可以根据厂商名称查询、负责人查询和最近联系厂商查询。查询结果包括:供货商。
进货管理:进货管理需要对每次的进货进行登记,登记需要填写:(订单信息):单号(随机产生流水号)、收货仓库、进货时间、供货商名称、经办人(所有的经办人都是登录的用户)、总金额、应付金额、实付金额、备注(订单信息):商品编号、商品名称、单位、规格型号、颜色、单价、数量。进货查询可以根据进货时间、供货商、商品类型、负责人查询。进货的同时需要进行入库登记:商品名称、进货价格、出售价格、商品数量、商品类型、供货商、经办人、商品总价。
退换货管理:退换货管理是但进货产品出现质量问题、货物迟到等原因超市和供货厂商协商要求退货或换货进行详细登记。退货方式有两中:一种是整单退货,一种是部分退货。登记内容包括:(订单信息):单号(随机产生流水号,是唯一的)、出货仓库、退货时间、供货商名称 、总金额、应退金额、实退金额、经办人、备注(订单信息):商品编号、商品名称、单位、规格型号、颜色、单价、数量。退货查询可以根据单据号、供货商和开单时间查询。查询结果包括:单号、开单时间、供货商名称、仓库名称、经办人、总金额(单据详细信息):商品编号、商品名称、单位、规格型号、颜色、单价、数量。
商品销售管理:销售登记需要登记:(单据信息):单号、客户名称、出货仓库、销售日期 、总金额、应收金额、实收金额、经办人、备注(订单信息):商品编号、商品名称、单位、规格型号、颜色、单价、数量。需要出库登记:商品名称、出库数量、经办人、出库时间。
客户管理:客户管理主要是对与本超市的有过交易记录的人群的信息进行登记和查询。登记客户信息包括:客户名称、负责人、联系地址、联系电话。查询可以通过时间来查询(查询最近联系的客户)、客户名,查询最近联系的客户。
客户退货管理:客户退货管理是在本超市购买商品之后,但产品出现质量问题、货物迟到等原因超市和客户协商要求退货或换货的制度。客户退货需要登记:单号、(订单信息)客户名称、收货仓库、收货日期、总金额、应退金额、实退金额、经办人、备注(订单信息):商品编号、商品名称、单位、规格型号、颜色、单价、数量。销售退货查询可以根据:客户名称、单据号、开单日期查询。需要注意的是:客户退货之后是退回到仓库,所以要进行入库登记。
仓库设置:仓库设置也包括添删改的操作:仓库名称、负责人、联系电话、仓库地址、仓库信息备注。
库存管理:库存出入登记及商品在进出仓库的时候都需要登记。入库的情况包括:商品的采购、客户退货。出库的情况包括:商品销售、采购退货。库存的出入查询可以根据:单据号、时间来查询。查询结果包括:(单据信息)单号、出入的仓库、出入仓库的日期、经办人。添加库存商品及添加商品种类,添加是需要登记:商品名称、入库价格、商品卖价、单位、及库存下限。同时还具有库存商品预警查询功能。
3. 用例分析
用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,本文中采用用例技术进行需求分析的获取和分析。为了能够正确的找出系统的用例,需要确定系统的边界,找出系统的执行者。如图2-1超市管理系统图所示。
图2-1 超市管理系统图
4. 类图分析
类图(Class diagram)由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。在类描述中一般只给出主要类及主要类间的关系。类图是所有面向对象建模方法的核心部分,类图描述了系统的静态结构,由类及类间的关系组成。类是具有相同属性和相同方法的对象的集合,如图2-2超市管理销售系统类图所示。
图2-2 超市管理销售系统类图
5. 系统性能要求
对系统性能的要求包括对系统时间要求,灵活性,数据管理能力等的要求。
5.1 系统时间特性要求
系统的速度要在用户可接受的范围内,但考虑到需要实时检测商品的数量和库存情况,对资源实时搜索的速度可以有较低的要求。
5.2 系统灵活性
系统要有良好的接口,以适应增加商品信息,增加商品类型,增加相关的商品录入功能的需求;增加商品信息的更改和更新功能。
第三章 系统设计
1. 系统设计
本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程。
在概要设计阶段的指导思想是结构化指导思想,是指用一组标准的规则和图表工具确定系统有哪些模块,怎么连接,从而形成新系统的结构,然后再进行诸如输入、输出、对话等设计,为整个系统的实施做好铺垫。
本系统采用了B/S架构。系统前台采用 C#语言来设计,访问数据库服务器;后台采用Microsoft公司的SQL Server 2005。SQL Server2005开发后台数据库,用于提供数据服务。SQL Server 2005是一种典型关系型数据库管理系统,该系统具有数据一致性好,完整性强,安全性高的优点,系统采用结构化设计方法,按超市实际工作内容来确定所需,将整个系统作为一个大模块自顶向下,以模块化结构设计技术进行模块分解,然后再自底向上,按照系统的结构将整个模块进行组合,最终完成本超市管理系统的开发。本系统有四个整体模块,其包含着以下子模块。具体的模块功能划分如下:
用户登录模块:具备登录用户、添加登录用户、用户密码修改功能。
商品信息管理模块:提供添加商品类型,修改商品信息、商品信息查询、商品类型管理功能。
厂商管理模块:具备厂商信息查询、添加厂商、修改厂商信息的功能。
进货管理模块:提供进货登记、进货查询的功能。
进货退换管理模块:提供退货登记、退货查询功能。
商品销售管理模块:提供销售登记、销售查询功能。
客户退货管理模块:提供销售退货登记、销售退货查询功能。
客户管理模块:具备客户信息查询功能。
库存管理模块:提供库存出入登记、库存出入查询、库存查询、添加库存商品、库存商品预警查询功能。
如图3-1系统功能模块图所示。
图3-1 系统功能模块图
数据流图是将提供给用户的业务流程图进行功能建模,转化成开发人员能够理解的一系列“逻辑模型”图,即以图形化的方法描绘数据在系统中的流动和处理的过程,这些图都应该用规范的DFD描述。
本系统的数据流图是比较清晰的,对各功能模块来说都比较有规律。系统的第二层数据流图如图3-2所示。
基础信息录入
商品销售
基础数据
基础信息
库存信息
库存总量
商品进货单
商品入库单
购买的商品
销售凭条
业务查询
库存信息
库存总量
查询条件
结果输出
图3-2 第二层数据流图
2. 系统活动图设计
活动图阐述了用例实现的过程,用于研究实现业务目标时所要执行的各项任务或活动的顺序安排。本超市管理系统的活动图如图3-3所示。
图3-3 超市管理系统活动图
3. 系统数据库设计
数据库设计是建立数据库及应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能够有效地存储数据,满足各种用户的要求数据库设计是管理信息系统的重要组成部分[5]。这里采用SQL Server数据库。该数据库对行增、删、修改、统计、显示和应答都极为方便。其中的排序和索引功能,对数据快速定位、查询提供了有利条件。
3.1 数据库需求分析
主要是收集基本数据及确定数据的处理要求,需求分析主要解决如下问题:
1、数据要求:用户需要从数据库中获取什么数据,并决定在数据库中存储那些数据。
2、操作要求:明确用户对数据的操作要求,从而确定数据之间的关系。
3.2 数据库概念设计(E-R 图)
概念结构设计是整个数据库设计的关键,它能通过对需求进行综合,归纳与抽象,形成一个独立于具体DBMS的概念模型,即E-R图[6]。简单的说,E-R图用来分析数据关系的。下面具体超市管理系统主要的实体图。
管理员实体图如图3-4所示。
管理员
用户名
用户密码
用户等级
图3-4管理员实体图
商品信息实体图如图3-5所示。
商品信息
编号
名称
单价
分类
库存
销售
图3-5 商品信息实体图
进货管理实体图如图3-6所示。
进货管理
备注
商品编号
进货数量
进货编号
进货日期
总价
单价
办理人
图3-6 进货管理实体图
销售管理实体图如图3-7所示。
销售管理
销售编号
商品编号
销售日期
销售人
支付方式
销售单号
销售数量
总金额
会员卡号
图3-7 销售管理实体图
实体间E-R图如图3-8所示。
图3-8 实体间E-R图
3.3 数据库表的设计
职工信息表(StaffBill)用于存储职工信息,职工编号为主键是唯一标识。表中各字段功能定义如表3-9所示。
表3-9职工信息表(StaffBill)
中文字段名
英文字段名
字段类型
长度
主键/外键
字段值约束
职工编号
staffID
char
6
P
NOT NULL
姓名
name
nvarchar
8
NOT NULL
性别
sex
nchar
2
NOT NULL
类别
kind
nvarchar
10
NULL
身份证号
idCard
varchar
18
NOT NULL
备注
others
ntext
50
NULL
用户登录表(Users_Info)用于存储用户的基本登录信息。表中各字段功能定义如表3-10所示。
表3-10用户登录表(Users_Info)
中文字段名
英文字段名
字段类型
长度
主键/外键
字段值约束
帐号
loginID
char
6
P/F
NOT NULL
密码
passWord
char
6
NOT NULL
商品信息表(Goods_Info)用于存储商品的信息。表中各字段功能定义如表3-11所示。
表3-11商品信息表(Goods_Info)
中文字段名
英文字段名
字段类型
长度
主键/外键
字段值约束
商品编号
merchID
char
6
P
NOT NULL
供货商号
profferID
char
6
F
NOT NULL
名称
fullName
nvarchar
80
NOT NULL
类别
kind
nvarchar
8
NULL
单价
unitCost
money
4
NOT NULL
备注
others
ntext
50
NULL
供货商信息表(Sup_Info)用于存储供货商的信息。表中各字段功能定义如表3-所示。
表3-12 供货商信息表(Sup_Info)
中文字段名
英文字段名
字段类型
长度
主键/外键
字段值约束
供货商号
SupplierID
char
6
P
NOT NULL
名称
Name
nvarchar
50
NOT NULL
联系人
contactPerson
nvarchar
8
NOT NULL
联系电话
phone
varchar
12
NOT NULL
联系地址
address
nvarchar
50
NOT NULL
备注
others
ntext
50
NULL
进货信息表(Buy)存储进货信息。表中各字段功能定义如表3-13所示。
表3-13进货信息表(Buy)
中文字段名
英文字段名
字段类型
长度
主键/外键
字段值约束
进货单号
BuyID
char
6
P
NOT NULL
商品编号
GoodsID
char
6
P/F
NOT NULL
供货商号
SupplierID
char
6
F
NOT NULL
进货价
Price
money
4
NOT NULL
数量
Amount
int
4
NOT NULL
金额
Sum
money
4
NOT NULL
进货日期
Date
datetime
8
NOT NULL
备注
Remark
ntext
50
NULL
销售信息表(Sell)用于存储销售信息。表中各字段功能定义如表3-14所示。
表3-14销售信息表(Sell)
中文字段名
英文字段名
字段类型
长度
主键/外键
字段值约束
销售单号
SeelID
char
6
P
NOT NULL
商品编号
GoodsID
char
6
P/F
NOT NULL
销售数量
Amount
int
4
NOT NULL
销售日期
Date
datetime
8
NOT NULL
库存信息表(Stock)存储库存信息。表中各字段定义如表3-15所示。
表3-15 库存信息表(Stock)
中文字段名
英文字段名
字段类型
长度
主键/外键
字段值约束
商品编号
GoodsID
char
6
P/F
NOT NULL
库存数量
Amount
int
4
NOT NULL
4. 数据库的创建
(1)使用T—SQL语句创建超市商品管理系统数据库。
CREATE DATABASE db_SMMS ON PRIMARY
( NAME = N'db_SMMS', FILENAME = F:\SMMS\SMMS\\DataBase \db_SMMS.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'db_SMMS_log', FILENAME = N'F:\SMMS\SMMS\DataBase\ db_SMMS_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
(2)使用T—SQL语句创建库存表。
CREATE TABLE Stock(
GoodsID varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL,
Amount int NOT NULL,
PRIMARY KEY (StockID),
FOREIGN KEY (GoodsID) REFERENCES tb_Goods(GoodsID));
(3)使用T—SQL语句创建库存视图。
create view v_StockS
AS
SELECT tb_Stock.StockID, tb_Goods.GoodsName, tb_Stock.Amount, tb_ Stock.Remark FROM
tb_Stock INNER JOIN tb_Goods ON tb_Stock.G
第四章 系统模块实现
1. 系统登录模块
用户登录模块在本系统的首页。用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面。界面如图4-1所示。
图4-1 用户登录界面
主要实现代码如下:
public bool Veri(string tb_table, string Id, string Pwd)
{
DataClass.MyMeans MyClass = new SMMS.DataClass.MyMeans();
bool jud = false;
if (Id != "" && Pwd != "")
{
SqlDataReader temDR = MyClass.getcom("select * from " +
tb_table + " where UserName='" + Id.Trim() + "'
and Pass='" + Pwd.Trim() + "'");
jud = temDR.Read();
if (jud)
{
DataClass.MyMeans.Login_Name = Id.Trim();
DataClass.MyMeans.Login_ID = temDR.GetString(0);
DataClass.MyMeans.My_con.Close();
DataClass.MyMeans.My_con.Dispose();
}
else
{
MessageBox.Show("用户名或密码错误!", "提示",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
MyClass.con_close();
}
else
MessageBox.Show("请将登录信息添写完整");
return jud;
}
2. 商品信息管理模块
此模块进行对商品信息的录入,能够对商品进行合理的管理,界面如图4-2所示。
图4-2 商品信息管理界面
主要实现代码如下:
private void btnAdd_Click(object sender, EventArgs e)
{
bool t = false;
string txt;
string RecID;
string TypeID;
if (txtName.Text == "")
{
MessageBox.Show("请输入商品名称!");
txtName.Focus();
}
else if (txtPrice.Text == "")
{
MessageBox.Show("请输入商品单价!");
txtPrice.Focus();
}
else if (comboxType.Text == "")
{
MessageBox.Show("请选择商品类型!");
comboxType.Focus();
}
else if (txtKeep.Text == "")
{
MessageBox.Show("请输入保质期");
txtKeep.Focus();
}
else
{
txt = txtName.Text.Trim();
SqlDataReader temDR = MyDataClass.getcom("select * from tb_Goods where GoodsName ='" + txt + "'");
t = temDR.Read();
if (t)
{
MessageBox.Show("此商品名称已存在!");
txtName.Text = "";
txtName.Focus();
}
else
{
string Find_SQL2;
string RecID2;
try
{
TypeID = My_Set.Tables[0].Rows[comboxType.SelectedIndex][0].ToString();
RecID = MyMC.GetAutocoding("tb_Goods", "GoodsID");//获取编号
RecID2 = MyMC.GetAutocoding("tb_Stock", "StockID");//获取编号
Find_SQL = "insert into tb_Goods(GoodsID,GoodsName,TypeID,Remark,Price,Keep) values ('" + RecID
+ "','" + txtName.Text + "','" + TypeID + "','" + txtRemark.Text + "'," + txtPrice.Text + "," + txtKeep.Text + ")";
Find_SQL2 = "insert into tb_Stock(StockId,GoodsID,Amount) values ('" + RecID2 + "','" + RecID + "',0)";
MyDataClass.getsqlcom(Find_SQL);
MyDataClass.getsqlcom(Find_SQL2);//向库存添加信息
MessageBox.Show("添加成功!");
ListViewItem l = new ListViewItem();
l.Text = txtName.Text;
l.SubItems.Add(comboxType.Text);
l.SubItems.Add(txtPrice.Text);
l.SubItems.Add(txtKeep.Text);
l.SubItems.Add(txtRemark.Text);
listView1.Items.Add(l);
btnCancle_Click(sender, e);
}
catch (Exception ec)
{
MessageBox.Show(ec.Message);
MessageBox.Show("添加失败");
}
}
}
}
3. 职工信息管理模块
此模块有对职工的添加,修改,删除等功能,能够对用户进行合理的管理,界面如图4-3所示。
图4-3 职工信息管理界面
主要实现代码如下:
private void btnSave_Click(object sender, EventArgs e)
{
string RecID;
if (txtName.Text == "")
{
MessageBox.Show("请添加职工姓名!");
txtName.Focus();
}
else
{
if (Jud == 1)
{
RecID = MyMC.GetAutocoding("tb_Worker", "WorkerID");//获取编号
Find_SQL = "insert into tb_Worker(WorkerID,WorkerName,Remark) values('"+RecID+"','"+txtName.Text+"','"+txtRemark.Text+"')";
MyDataClass.getsqlcom(Find_SQL);
MessageBox.Show("添加成功!");
InfLoad();
WinstateT();
}
if (Jud == 2)
{
Find_SQL ="update tb_Worker set WorkerName='"+txtName.Text+"',Remark='"+txtRemark.Text+"' where WorkerID='"+txtWorkerID.Text+"'";
MyDataClass.getsqlcom(Find_SQL);
MessageBox.Show("修改成功!");
InfLoad();
WinstateT();
}
}
}
4. 添加销售信息模块
销售员将销售信息录入方便了销售工作,提高了工作效率。界面如图4-4所示。
图4-4 添加销售信息界面
主要实现代码如下:
private void button2_Click(object sender, EventArgs e)
{
if (txtSum.Text.Trim().Length != 0)
{
string s1;
string s2
展开阅读全文