超市收银系统.docx
《超市收银系统.docx》由会员分享,可在线阅读,更多相关《超市收银系统.docx(19页珍藏版)》请在冰豆网上搜索。
![超市收银系统.docx](https://file1.bdocx.com/fileroot1/2023-1/2/428d4900-f51c-4212-bec3-9b3c02c07933/428d4900-f51c-4212-bec3-9b3c02c079331.gif)
超市收银系统
VF9.0超市收银系统
系名称:
计算机系
专业名称:
信息管理与信息系统
年级:
姓名:
指导教师:
论文目录
摘要3
第一章引言7
1.1需求分析7
1.2系统配置7
1.3开发工具的选用及介绍7
第二章整体设计10
2.1系统功能分析10
2.2系统功能模块设计10
第三章数据库设计14
3.1逻辑结构设计14
3.2物理结构设计14
第四章系统实现17
4.1系统主页面17
4.2用户管理18
4.2.1用户登陆页面19
4.2.2用户权限页面20
4.3库存管理18
4.4设置修改模块19
4.4.1商品信息修改19
4.4.2出入库登记修改20
第六章总结24
结束语25
致谢26
参考文献27
VF9.0超市收银系统设计
概要
超市现已成为全国零售商业的一种重要形式。
随着超市的高速发展,其经营管理变得日益复杂,日常所需处理的数据量渐渐庞大,商业运转的中间环节也越来越多,以前主要依靠人工管理的方法显然已无法适应超市规模的不断扩大。
开发超市收银系统将提高超市各项工作的效率和质量,促使商品的销售和资金的流转;减轻各类事务性工作的劳动强度,使超市的职员腾出更多的精力和时间来服务于顾客;改善经营管理,堵塞漏洞,保证顾客和超市的经济效益。
让消费者少付金钱,时间,精力和风险,而获得更好的品质,更新的创意,更多的信息和更加方便,新鲜的商品,是消费者和超市经营者共同成为市场的赢家。
本文根据系统设计的背景,从系统设计的动机和目的出发,对整个系统设计过程需要做的工作进行了全面分析,为系统的功能设计和数据库设计提出了一套可行的解释方案,对其进行了全面的需要分析和详尽的设计。
本设计主要采用FoxPro数据库系统的数据管理,采用c/S结构进行设计,主要提供了用户管理,库存管理,进货管理,销售管理,设置修改等部分内容。
关键字:
超市收银;库存;用户权限
TitleVF9.0Supermarketcashregistersystemdesign
Abstract
Nationalretailstorehasnowbecomeanimportantformofbusiness.Withtherapiddevelopmentofsupermarkets,anditsmanagementhasbecomeincreasinglycomplex,day-to-daytheamountofdataneededtograduallydealwithlarge,commercialoperationofmoreandmoreintermediatelinks,inthepastreliedmainlyonartificialmethodsofmanagementareclearlyunabletoadapttothesizeofthesupermarketcontinuetogrow.Supermarketcashregistersystemwillbedevelopedtoimprovetheefficiencyofthesupermarketandthequalityofgoodstothesaleandtransferoffunds;mitigatealltypesofaffairsofthelaborintensityofthework,sothatthestaffofthesupermarkettoreleasemoreenergyandtimetoservecustomers;improvetheoperationandmanagement,plugtheloopholes,toensurethattheeconomicbenefitsofcustomersandsupermarkets.Sothatconsumerspaylessmoney,time,effortandrisk,andbetterquality,innovation,moreinformationandmoreconvenient,freshgoods,consumersandsupermarketoperatorstoco-marketwinner.
Inthispaper,basedonthebackgroundofsystemdesign,systemdesignfromthemotivesandobjectives,thedesignprocessofthewholesystemneedstobedoneacomprehensiveanalysisofthefunctionsofthesystemdesignanddatabasedesignasetofpossibleinterpretation,theiracomprehensiveneedsanalysisanddetaileddesign.
ThisdesignmostlyusesFoxProdatabasesystemfordatamanagement,theuseofc/Sstructuredesign,themainprovideroftheusermanagement,inventorymanagement,purchasingmanagement,salesmanagement,setuppartofthecontentsofsuchmodifications.
Keywords:
Supermarketcashier;stock;Userrights
第一章引言
1.1需求分析
通过需求分析可以从用户那里获取项目的基本信息和要求
(1)要求系统对用户权限进行管理,即可以对用户登录系统进行管理,验证用户的身份,由管理员完成对用户的信息进行添加和修改.
(2)要求系统对库存情况进行管理,也就是对商品入库,出库情况进行统计,以便随时可掌握商品的流通情况.
(3)要求系统能进行进货管理,对供应商以及所进的商品进行管理,并对进货所需的资金进行有效的管理.
(4)要求系统能进行销售管理,当遇到打折等情况时对商品价格的管理,并对会员的优惠活动就行管理。
然后对回收的资金进行有效的分配。
(5)要求系统提供对商品的入库,出库以及销售等信息的设置进行修改的功能.
(6)应保留商品的历史信息,以备日后查询.
(7)系统运行在Windows平台上,系统还应该有一个较好的图形用户界面.
(8)应该可以对系统的基础数据进行维护,系统应该有很好的可扩展性
1.2系统配置
系统配置就是为数据库项目系统配置一个相对最优的系统配置方案,根据用户的实际情况进行设计,主要依据是系统的吞吐量,系统对稳定性的要求和用户的维护水平.
(1)软件配置:
本设计主要针对小型一点的用户,由于他们的商品数据量小,对数据库要求低,因此采用FoxPro数据库系统是最佳选择,并选择WindowsXP操作系统。
(2)硬件配置:
用户为社区,学校的超市,稳定性要求中等,维护水平一般,系统硬件选用个人计算机.
1.3开发工具的选用及介绍
本设计采用的是VisualFovPro9.0,是Microsoft公司推出的最新版本,是一个可视化的数据库应用程序开发环境。
VisualFovPro9.0不仅延续了以前版本的强大功能,还增加和改进了许多特征,可以是数据库,数据表的管理和程序设计更为方便,新增的功能有:
(1)增强了集成开发环境:
增加了项目管理器的快捷菜单命令,并可以从项目管理器中修改类库,同时属性窗口增强,为新增属性设置默认值,在连编和编译期间生成信息日志.
(2)增强了语言功能:
在保证兼容低版本语言的基础上,VisualFovPro9.0新增了一些类,并对某些类和控件增加了新的属性和方法.
(3)增强了数据功能:
扩展的SQL性能,增加新的数据类型,用CAST函数转换数据类型,基于逻辑表达式的二进制索引等
(4)增强了打印对话框和打印语言,扩展应用程序检测终端服务器的能力,并增加了查询和视图的过滤条件,创建索引表达式,如何创建可停靠的表单等帮助信息.
第二章整体设计
2.1系统功能分析
超市收银系统总体功能的设计采用自顶向下,从抽象到具体的规范方法。
遵循“高内聚低耦合”原则,依照功能将复杂系统划分为相对独立模块,如图2.1所示:
2.2系统功能模块设计
超市收银系统主要包括用户管理,库存管理,进货管理,销售管理等功能模块。
(1)用户管理
即对用户登陆系统进行管理,验证用户的身份,由管理员完成对用户的信息
添加和修改。
(2)库存管理
可以对商品入库,出库情况进行登记,同时能对新增加的商品信息进行管理。
(3)进货管理
可以在这个模块中对供应商以及所进的商品进行管理,并对进货所需的资金进行有效的管理。
(4)销售管理
该模块主要实现当遇到打折等情况时对商品价格的管理,并对会员的优惠活动就行管理。
然后对回收的资金进行有效的分配。
(5)设置修改
该模块主要实现对商品的入库,出库以及销售等信息的设置进行修改的功能
第三章数据库设计
在超市收银系统中,数据库设计占有重要位置,数据库设计质量的优劣,可直接影响到数据库数据的冗余度、数据的一致性、数据丢失等问题。
下面对本系统的数据库逻辑结构和物理结构设计进行说明。
3.1逻辑结构设计
根据系统功能设计的要求以及功能模块的划分,对超市收银系统可以列出以下数据项及数据结构:
(1)商品的基本信息:
包括商品的编号,名称,数量,购入单价,销售单价,打折情况,购入时间,销售时间
(2)用户的基本信息:
包括用户权限,用户名,密码。
(3)供应商的信息:
包括供应商的编号,名称,区域,类型,电话,联系人。
3.2物理结构设计
根据系统需求及逻辑结构设计,表结构如下:
(1)库存商品数据表
库存商品数据表的结构如下:
列名
数据类型
长度
商品编号
字符型
20
商品名称
字符型
10
商品数量
数值型
10
购入单价
货币型
8
销售单价
货币型
8
供应商编号
字符型
20
(2)商品目录数据表
商品目录数据表的结构如下:
列名
数据类型
长度
商品编号
字符型
20
商品名称
字符型
10
商品数量
数值型
10
购入单价
货币型
8
销售单价
货币型
8
供应商编号
字符型
20
折扣
浮点型
10
(3)出入库明细数据表
出入库明细数据表的结构如下所示:
列名
数据类型
长度
出入库单
字符型
20
出入库
字符型
10
商品名称
字符型
10
数量
数值型
10
购入单价
货币型
8
销售单价
货币型
8
购入时间
日期型
8
销售时间
日期型
8
(4)用户数据表
用户数据表的结构如下所示:
列名
数据类型
长度
用户权限
字符型
10
用户名
字符型
10
密码
字符型
10
(5)供应商数据表
供应商数据表的结构如下所示
列名
数据类型
长度
供应商编号
字符型
20
名称
字符型
20
区域
字符型
10
类型
字符型
10
电话
字符型
20
联系人
字符型
10
第四章系统实现
4.1系统主页面
在系统主界面,用户可以切换该系统的各种操作,是用户主要接触的界面,其设计思路是:
先设计好菜单,然后降菜单添加到一个顶层表单上即可。
具体过程如下:
(1)设计菜单:
新建菜单,打开菜单设计器对话框,创建主菜单如下图所示:
创建子菜单并添加任务,如下图是创建用户管理的子菜单:
设置菜单的顶层表单属性:
保存菜单为main.mnx,然后运行菜单生成main.mpr文件。
(2)新建表单:
保存为caidan.scx,然后将表单的showwindow属性为2-AsTop-LevelForm
双击表单,在表单的Init事件中添加如下代码:
SetdefaulttoD:
\VFP9
Domain.mprwiththis
运行表单将菜单加载到表单上,最后设计效果如下:
4.2用户管理
4.2.1登陆页面
“登陆”按钮的click事件中添加如下代码:
ifalltrim(bo1.value)==""&&删除两端空格
=messagebox("尚未选择操作员姓名!
")
else
locatefor姓名=alltrim(bol.value)&&搜索满足条件的第一个记录
若找到记录指针就指向该记录
ifalltrim(thisform.text1.value)=alltrim(密码)
=messagebox("登陆成功,欢迎您进入本系统!
")
Tbo1.enabled=.F.&&指定文本框是否响应用户引发的事件
thisform.text1.enabled=.F.
this.enabled=.F.
else
I=I+1
ifI<3
thisform.text1.value=''
=messagebox("密码错误,请重新出入!
")
thisform.text1.setfocus
else
=messagebox("登录失败,您已无权使用本系统!
")
bo1.enabled=.F.
thisform.text1.enabled=.F.
this.enabled=.F.
endif
endif
endif
4.2.2用户权限管理
为“用户”选项卡中的”增加”按钮添加代码,在其click事件中添加如下代码:
appeblank&&在表尾追加一条空白记录
thisform.refresh&&刷新表单的值
bo1.readonly=.f.&&指定控件内的数据是否为只读状态
thisform.pageframe1.page1.txt用户名.combo1.readonly=.f.
thisform.pageframe1.page1.txt密码.combo1.readonly=.f.
mand1.enabled=.f.&&指定文本框是否响应用户引发的事件
mand2.enabled=.f.
mand3.enabled=.t.
thisform.pageframe1.page1.mybotton1.enabled=.f.
为“用户”选项卡中的”存盘”按钮添加代码,在其click事件中添加如下代码:
gobott&&将记录指针指向表的最后一个记录
repl用户名withthisform.pageframe1.page1.txt用户名.value
repl密码withthisform.pageframe1.page1.txt密码.value
repl用户类型withthisform.pageframe1.page1.txt用户类型.value
bo1.readonly=.t.
thisform.pageframe1.page1.txt用户名.combo1.readonly=.t.
thisform.pageframe1.page1.txt密码.combo1.readonly=.t.
thisform.pageframe1.page1.txt用户类型.combo1.readonly=.t.
mand1.enabled=.t.
mand2.enabled=.t.
mand3.enabled=.f.
thisform.pageframe1.page1.mybotton1.enabled=.t.
为“用户”选项卡中的”删除”按钮添加代码,在其click事件中添加如下代码:
Seleuser&&查询用户数据表的全部信息
Dele&&逻辑删除
Pack&&物理删除
Thisform.refresh
“权限”选项卡的删除,存盘,增加按钮的click事件对应的代码与“用户”选项卡相似。
4.3库存管理
为”增加”按钮添加代码,在其click事件中添加如下代码:
Seleinout_detail&&查询出入库明细数据库表的全部信息
Appendblank&&在表尾追加一条空白记录
Thisform.txt出入库单.value=dtos(data())+time()
Thisform.txt数量.value=1
Thisform.txt出入库.value=”入库”
Thisform.txt购入时间.value=datetime()
Tbo1.readonly=.f.&&指定控件内的数据是否为只读状态
Tmand1.enabled=.f.&&指定控件是否响应用户引发的事件
Tmand2.enabled=.t.
Thisform.mybotton1.enabled=.f.
为”存盘”按钮添加代码,在其click事件中添加如下代码:
Seleinout_detail&&查询出入库明细数据库表的全部信息
Gobott&&将记录指针指向表的最后一个记录
Repl出入库单withthisform.txt出入库单.value&&将出入单的当前值来代替
Repl出入库withthisform.txt出入库.value
Repl商品名称withbo1.value
Repl数量withthisform.txt数量.value
Repl购入时间withthisform.txt购入时间.value
Repl销售时间withthisform.txt销售时间.value
Selegoods_cate&&查询商品目录数据表的全部信息
Locafor商品名称=bo1.value
Repl数量with数量+thisform.txt数量.value&&将数量的当前值与数量的和代替数量
Tmand1.enabled=.t.
Tmand2.enabled=.f.
Thisform.mybotton1.enabled=.t.
Thisform.refresh&&刷新表单的值
Tbo1.value=商品名称
4.4设置修改
为”商品信息”按钮添加代码,在其click事件中添加如下代码:
Thisformset.form1.visible=.f.&&指定控件是可见还是隐藏
Thisformset.form2.visible=.t.
为”出入库修改”按钮添加代码,在其click事件中添加如下代码:
Thisformset.form1.visible=.f.&&指定控件是可见还是隐藏
Thisformset.form2.visible=.t.
为”初始化”按钮添加代码,在其click事件中添加如下代码:
Ifmessagebox(“是否真的清除所有记录?
”,4+32,”系统1.0”)=7
Retu
Else
Selegoods_cate
Deleall
Pack
Seleinout_detail&&查询出入库明细数据库表的全部信息
Deleall
Pack
Messagebox(“已经清除所有记录啦”,””)
Endif
4.4.1商品信息修改
为”修改”按钮添加代码,在其click事件中添加如下代码:
Seleinout_detail&&查询出入库明细数据库表的全部信息
Locafor商品名称=thisform.txt商品名称.value
iffound()
Messagebox(“出入库中已有该商品,不能修改”,””)
Else
Thisform.txt商品编号.readonly=.f.&&指定控件内的数据是否为只读状态
Thisform.txt商品名称.readonly=.f.
Thisform.txt购入单价.readonly=.f.
Thisform.txt销售单价.readonly=.f.
Tmand2.enabled=.f.&&指定控件是否响应用户引发的事件
Tmand3.enabled=.t.
Thisform.mybotton1.enabled=.f.
Endif
为”删除”按钮添加代码,在其click事件中添加如下代码:
Seleinout_detail
Locatefor商品名称=thisform.txt商品名称.value
Iffound()
Messagebox(“出入库中已有该商品,不能删除”,””)
Else
Selegoods_cate
Dele
Pack
Thisform.refresh
Endif
为”存盘”按钮添加代码,在其click事件中添加如下代码:
Thisform.txt商品编号.readonly=.t.
Thisform.txt商品名称.readonly=.t.
Thisform.txt购入单价.readonly=.t.
Thisform.txt销售单价.readonly=.t.
Tmand2.enabled=.t.
Tmand3.enabled=.f.
Thisform.mybotton1.enabled=.t.
为”退出”按钮添加代码,在其click事件中添加如下代码:
Thisformset.form1.visible=.t.&&指定控件是可见还是隐藏
Thisformset.form2.visible=.f.
4.4.2出入库登记修改
此页面的”修改”,”删除”,”存盘”等按钮的代码与商品信息修改的相似。
第五章总结
本设计已经实现
(1)对用户权限进