超市管理系统完整版.docx

上传人:b****2 文档编号:23240434 上传时间:2023-05-15 格式:DOCX 页数:24 大小:315.66KB
下载 相关 举报
超市管理系统完整版.docx_第1页
第1页 / 共24页
超市管理系统完整版.docx_第2页
第2页 / 共24页
超市管理系统完整版.docx_第3页
第3页 / 共24页
超市管理系统完整版.docx_第4页
第4页 / 共24页
超市管理系统完整版.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

超市管理系统完整版.docx

《超市管理系统完整版.docx》由会员分享,可在线阅读,更多相关《超市管理系统完整版.docx(24页珍藏版)》请在冰豆网上搜索。

超市管理系统完整版.docx

超市管理系统完整版

课程设计说明书

课程名称:

大型数据库应用

课题名称:

超市管理系统班级:

计本041

姓名:

02号左文兵

姓名:

27号董子冰

姓名:

31号刘子豪

指导教师:

满君丰副教授

湖南工业大学计算机与通信学院

2007年12月20日

1绪论.2

1.1课题背景2

1.2系统开发关键技术介绍2

2系统分析.4

2.1用户工作流程4

2.2用户业务需求4

3系统设计.5

3.1设计思想5

3.2系统功能结构图5

3.3模块功能设计6

4系统数据库设计.7

4.1系统数据库的建立7

4.2系统E-R图7

4.3各个数据表的创建9

4.4存储过程设计11

4.5数据库的连接11

5系统实现13

5.1系统实现工具与支持平台13

5.2系统界面13

5.3系统主要功能实现16

1.前台16

2.后台17

5.4系统核心代码17

6总结与展望21

6.1收获与体会21

6.2

错误!

未定义书签错误!

未定义书签错误!

未定义书签

未来的展望21

参考文献.

致谢.

课程设计检查表.

1绪论

1.1课题背景

21世纪,超市的竞争也进入到了一个全新的领域,随着超市的发展,其经营管理也变得愈加复杂,迫切地需要引入新的管理技术。

超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。

超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。

竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。

技术的提升和管理的升级是超市业的竞争核心。

零售领域目前呈多元发展趋势,多种业态:

超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。

如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。

为了大大提高超市的运作效率;通过全面的信息采集和处理,辅助提高超市的决策水平;使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。

针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:

前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。

1.2系统开发关键技术介绍

本系统采用的是微软公司的MicrosoftVisualBasic6.0开发工具做为开发系统程序。

在连接数据库上,利用ADO对象模型,创建几个简单的对象和数据来源进行连接,然后从中取得所需要的数据,进行数据访问操作后保存。

在连接数据库上,以往在数据访问应用程序开发中,不管是使用DAO或RDO对象来访问数据来源,都会对这些对象模型众多而且复杂的组成结构印象深刻。

但利用ADO对象模型,就可以只创建几个简单的对象和数据来源进行连接,然后从中取得所需要的数据,进行数据访问操作后保存。

ADO(ActiveXDataObjects)对象模型主要由三个对象成员:

Connection、Command与Recordset对象;以及三个集合对象:

Errors、Parameters与Fields对象所组成。

ADO对象模型与DAO、RDO另一个较大的差异,在于某些ADO对象可以直接

创建而不需依据上下层按顺序产生,比如我们可以直接创建一个Command对象而不需

要先行创建该对象的上层Connection对象,ADO会在该Comman对d象产生时自动创建上层Connection对象。

下面给出ADO对象间的关系(如下图1):

图1.2ADO对象关系图

2系统分析

2.1用户工作流程

本系统主要解决超市的基本管理问题,其中又分别包括后台管理和前台管

理,后台包括进货管理,销售管理,库存情况的查询,以及基本用户人员的帐号管理。

前台包括商品录入,收银业务。

2.2用户业务需求

(1)进货管理:

根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。

按计划单有选择性地进行自动入库登记。

综合查询打印计划进货与入库记录及金额。

(2)销售管理:

商品正常销售、促销与限量、限期及禁止销售控制。

综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。

按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。

(3)库存管理:

综合查询库存明细记录。

库存状态自动告警提示。

如库存过剩、少货、缺货等。

软件为您预警,避免库存商品积压损失和缺货。

库存自动盘点计算。

(4)人员管理:

员工、会员、供货商、厂商等基本信息登记管理。

员工操作权限管理。

客户销售权限管理。

(5)收银业务:

通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。

在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。

如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。

会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。

3系统设计

3.1设计思想

(1)系统分成前台和后台几个相对独立的模块,但这些模块都进行集中式管理。

(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。

作为应用程序有较强的可操作性和扩展性。

(3)本系统使用的数据库设计是Oracle+ODBC+AD控O制,同时也尽可能地使用了VB的各种高级控件。

(4)在SQL语言的使用上,也使用了较多的技巧,例如组合查询技术,希望通过此次设计能够提供自己各个方面的能力。

3.2系统功能结构图

根据对超市管理系统进行的可行性分析和结构化程序设计的要求,得到系统总体结构如图5-1所示:

图3-1超市管理系统功能结构图

3.3模块功能设计

根据上述系统总体思想的分析,本系统共包括六大模块,分别是商品录入管

理模块,收银业务管理模块,人员管理模块,销售管理模块,进货管理模块,库存管理模块。

每个模块的功能如下:

1.商品录入管理模块:

(1)实现商品的快速录入以快速更新数据;

(2)实现支持商品的条形码扫描录入;

2.收银业务管理模块:

(1)实现交易总额计算;

(2)实现交易总额的查询;

3.人员管理模块功能:

(1)实现员工信息的查询;

(2)实现员工信息的更新,包括增加、删除、修改功能;

(3)实现员工操作权限管理;

4.销售管理模块功能:

(1)实现销售信息的查询;

(2)实现商品销售的控制;

5.进货管理模块功能:

(1)实现进货信息的查询;

(2)实现进货信息的更新,包括增加、删除、修改功能;

6.库存管理模块功能:

(1)实现商品明细记录的查询;

(2)实现商品信息的更新,包括增加、删除、修改功能;

(3)实现库存状态自动告警;

(4)实现库存信息的更新,包括增加、删除、修改功能。

4系统数据库设计

4.1系统数据库的建立

数据库应该设计成层次清晰的,高效的,实用数据库,该系统是采用三层架构设计的,可通过应用服务器的扩展来实现新功能的添加。

系统对数据记录的操作也因为其课程设计中定义的数据操作方式和操作内容而注定不会产生脏数据及数据读写的不一致性,故在数据库设计方面未采用触发器。

我们认为在扩展应用服务器至多种功能后,将应用服务器分为控制部分和客户应用部分,此时在控制部分添加触发器来防止数据读写的不一致性,这已经超出了本次课程设计所涉及的范围,在此不做过多的陈述。

4.2系统E-R图

1.E-R模型

超市管理系统数据库E-R模型:

用户

商品

图4.8系统E-R模型图

4.3各个数据表的创建

由数据模型利用Oracle10g进行数据库的详细设计,其基本表的设计如下:

表4.1商品表(Merchandise)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

MerchID

int

4

P

Notnull

商品编号

MerchName

Varchar

50

Notnull

商品名称

MerchPrice

Money

4

Notnull

价格

MerchNum

Int

4

Notnull

库存数量

CautionNum

Int

4

Notnull

库存报警数量

PlanNum

Int

4

null

计划进货数

BarCode

Varchar

50

Notnull

条形码

SalesProPrice

Money

4

促销价格

SalesProDateS

Datetime

8

促销起日期

SalesProDateE

Datetime

8

促销止日期

AllowAbate

Int

4

Notnull

允许打折

AllowSale

Int

4

Notnull

允许销售

FactoryID

Varchar

10

F

Notnull

厂商编号

ProvideID

Varchar

10

F

Notnull

供货商编号

表4.2用户表(User)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

UserID

varchar

10

P

Notnull

用户编号

UserName

Varchar

25

Notnull

用户名称

UserPW

Varchar

50

Notnull

用户密码

UserStyle

Int

4

Notnull

用户类型

表4.3会员表(Menber)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

MemberID

Varchar

10

P

Notnull

会员编号

MemberCard

Varchar

20

Notnull

会员卡号

TotalCost

Money

4

Notnull

累积消费金额

RegDate

Datetime

8

Notnull

注册日期

表4.4销售表(Sale)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

SaleID

Varchar

10

P

Notnull

销售编号

MerChID

Varchar

10

F

Notnull

商品编号

SaleDate

Datetime

8

Notnull

销售日期

SaleNum

Int

4

Notnull

销售数量

SalePrice

Money

4

Notnull

销售单额

表4.5交易表(Dealing)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

DealingID

Varchar

10

P

Notnull

交易编号

DealingPrice

Money

4

Notnull

交易金额

DealingDate

Money

4

Notnull

交易日期

MemberID

Varchar

10

会员卡号

UserName

Varchar

10

F

Notnull

用户名称

表4.6入库纪录表(Stock)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

StockID

Varchar

10

P

Notnull

入库编号

MerchID

Varchar

10

F

Notnull

入库商品编号

MerchNum

Int

4

Notnull

入库数量

MerchPrice

Money

4

Notnull

单额

TotalPrice

Money

4

Notnull

总额

StockDate

Datetime

8

Datetime

入库日期

PlanDate

Datetime

8

Datetime

计划进货日期

StockState

Int

4

Notnull

入库状态

表4.7供货商表(Provide)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

ProvideID

varchar

10

P

Notnull

供货商编号

ProvideName

Varchar

50

Notnull

供货商名称

ProvideAddress

Varchar

250

供货商地址

ProvidePhone

Varchar

25

供货商电话

 

表4.8厂商表(Provide)

字段名

字段类型

长度

主/外键

字段值约束

对应中文名

FactoryID

varchar

10

P

Notnull

厂商编号

FactoryName

Varchar

50

Notnull

厂商名称

FactoryAddress

Varchar

250

厂商地址

FactoryPhone

Varchar

25

厂商电话

4.4存储过程设计

创建用于用户登陆的存储过程:

createorreplaceprocedureset_User

(sUserIDinintidentity,sUserPWinvarchar,sUserNameinvarchar,sUserStyleinnumber)as

begin

updateUser

setUserName=sUserName,UserPW=sUserPW,UserStyle=sUserStylewhereUserID=sUserID;

ifSQL%NOTFOUNDTHEN

insertintoUser(UserID,UserPW,UserName,UserStyle)

values(sUserID,sUserPW,UserName,sUserStyle);

endif;

endset_User;

4.5数据库的连接

应用程序与Oracle10g数据库的连接是通过创建ADO数据源,然后在程序中利用代码与数据库建立连接来实现的。

具体实现方法是:

在模块中声明调用ADO连接控件,这样便能在任何时间连接数据库了。

使用ADOConnection对象连接到Oracle10g。

在查询等按钮的单击事件中访问数据库。

可以使用应用程序配置文件建立一条到数据库服务器的连接,返回一个关键字ConnectionString,在实体数据链路层定义一个用于存储过程的一个基类

,使用SqlConnection

database=Supermarket;

"ConnectionStr

DBdata.cs在这个基类中接受该关键字ConnectionString连接数据库。

配置文件连接数据库的代码:

存储过程基类接受该关键字的代码:

System.Configuration.ConfigurationSettings.AppSettings[ing"].ToString();

5系统实现

5.1系统实现工具与支持平台

(1)用户界面

本系统采用MicrosoftVisualBasic6.0设计,用户交互界面采用的是基于Windows的窗口界面。

(2)硬件接口运行本系统的硬件基本要求如下:

CPU:

IntelP3及以上;内存:

512MB及以上;硬盘:

40GB及以上。

(3)软件接口数据库服务器:

Oracle10g。

ADO对象模型

5.2系统界面

下面为运行后的界面图

图5.1系统登录界面

图5.2系统管理界面

图5.3销售管理员界面

图5.4进货管理界面

图5.5会员管理界面

图5.6厂商/供货商管理界面

5.3系统主要功能实现

1.前台

前台仅包括销售商品时必须且仅需的功能,尽可能地做到简化操作程序,利于收银员快捷、准确地进行收款。

功能包括前台交易开单、收款、退货、会员卡、折扣和优惠等;下载后台资料和将清款后的业务数据上传后台;完成前台交易中的扫描条码或输入商品编码、收款、打印收据、弹出银箱等一系列操作。

支持多种收款方式:

顾客交款、营业员收款。

支持会员制折扣卡销售,可以采用严格会员制或自由会员制。

记录顾客信息、累计顾客消费金额等功能。

支持多种付款方式:

现金、支票、记帐、赠券等。

支持多种促销方式:

折扣、折让、VIP优惠卡、赠送。

收款员非常规操作记录,有助于减少财务损失,方便汇总打印各种营业报表。

该系统包含两个对象,包括收银员和客户。

系统用例:

收银员:

结算收款

客户:

结帐

2.后台

充分利用数据库的大容量、高效率等特点,为用户提供强大的功能支持,对超市进货业务、库房业务进行管理,并处理分公司销售数据和后台批发业务,利用商业流通超市的商品管理和往来客户管理,为经营管理者提供分析与决策必需的数据和信息。

该后台包含3个对象,包括:

超市经理,销售管理员,进货管理员。

系统用例:

超市经理:

操作软件录入商品,供货商,厂商;操作软件制定进货计划;查询打印计划进货与入库记录;操作软件控制商品销售与否;查询打印销售情况;操作软件生成销售排行榜;查询库存明细记录;根据软件发出的库存告警进行入货;操作软件进行盘点计算。

销售管理员:

销售管理,因为要向系统提供货架管理信息,所以也参与货源管理

进货管理员:

具体采购进货,采购单查询。

5.4系统核心代码

此处指选取主要代码进行说明,数据库连接、用户登陆、主窗体

数据库连接:

在基类DBdat中打开数据库链接对象,

publicclassDBdat{

privatestaticSqlConnectionMyConnection;

privatestaticreadonlystringRETURNVALUE="RETURNVALUE";privatestaticreadonlyStringStringConnection=

System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString()

publicstaticvoidOpen(){//打开链接对象if(MyConnection==null){

MyConnection=newSqlConnection(StringConnection);}if(MyConnection.State==ConnectionState.Closed){

MyConnection.Open();///打开数据库连接

}}

///关闭链接对象

登陆

PrivateSuballen_Click()

EndSub

PrivateSubcboUser_GotFocus()cboUser.SelAll

EndSub

PrivateSubcmdExit_Click()

UnloadMe

EndSub

PrivateSubcmdOK_Click()//

'如果还没有服务器信息

IfstrSQLServer=""ThenMsgBox"您必须先设置cmdServer_ClickExitSub

EndIf

IfcboUser.Text=""Then//MsgBox"请填写用户名。

cboUser.SetFocuscboUser.SetFocusExitSub

EndIf

IftxtPW.Text=""Then//MsgBox"请填写密码。

txtPW.SetFocusExitSub

EndIf

OnErrorGoToaaaa//

检查是否连接服务器

SQL服务器信息。

",vbInformation

填写用户名

",vbInformation

填写密码

",vbInformation

检查是否存在用户

 

sqlConnectcnMain,strSQLServer,strSQLUser,strSQLPW,strSQLDBDimrsAsNewADODB.Recordset,strMD5AsString

strMD5=GetMD5(txtPW.Text)

rs.Open"Select*From[User]WhereUserStyle>1",cnMain,1,1

Ifrs.EOFThen

MsgBox"找不到任何用户!

",vbCriticalcnMain.Close

Else

DoUntilrs.EOF

IfStrComp(rs("UserName"),cboUser.Text,1)=0AndStrComp(rs("UserPW"),GetMD5(txtPW.Text),1)=0ThencurUserName=rs("UserName")curUserStyle=CLng(rs("UserStyle"))cboUser.AddItemcurUserName,0

SaveUserList

frmMain.Icon=Me.Icon

UnloadMe//卸载主窗体

frmMain.Show//显示主窗体

ExitSub

EndIf

rs.MoveNext

Loop

EndIf

MsgBox"用户名或密码错误,登陆失败!

",vbCriticalcnMain.Close

ExitSub

aaaa:

MsgBoxErr.Description,vbCritical

If

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

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1