PB设计超市货物管理系统.docx

上传人:b****7 文档编号:8833096 上传时间:2023-02-02 格式:DOCX 页数:23 大小:580.94KB
下载 相关 举报
PB设计超市货物管理系统.docx_第1页
第1页 / 共23页
PB设计超市货物管理系统.docx_第2页
第2页 / 共23页
PB设计超市货物管理系统.docx_第3页
第3页 / 共23页
PB设计超市货物管理系统.docx_第4页
第4页 / 共23页
PB设计超市货物管理系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

PB设计超市货物管理系统.docx

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

PB设计超市货物管理系统.docx

PB设计超市货物管理系统

《数据库应用综合设计》

课程设计报告

学院名称:

电子与信息工程学院

专业:

电气工程及其自动化

班级:

姓名:

学号:

指导教师:

 

定稿日期:

年6月10日

《数据库应用综合设计》课程设计报告

1.题目内容

超市货物管理系统

1.1课题研究的意义

随着现代科学技术的迅猛发展,计算机技术已经渗透到个个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。

作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。

2.总体设计方案

本系统采用自定向下方法开发,其功能模块主要有如下几个部分:

货物价格管理模块、库存查询管理模块和登录模块。

具体的功能描述如下:

价格管理:

其功能是对超市商品价格的查询管理,可根据编号、名称、价格区间等方式对所需产品进行查询。

库存管理:

其功能是对采购来的产品进行库存查询,添加商品等活动,同时能够对库存数据进行修改,以及库存统计。

登录管理:

其功能是对用户登录信息进行管理,登录进去后课对密码及用户名进行添加及修改,方便使用。

本系统共包括三大模块,分别是价格管理模块,库存管理模块,登录管理模块。

每个模块的功能如下:

1.价格管理模块功能:

(1)实现商品价格信息的查询;

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

(3)实现商品价格的升序及降序;

(4)实现通过价格区间来对商品进行查询。

2.库存管理模块功能:

(1)实现库存信息的查询;

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

3.登录管理模块功能:

(1)实现用户的登录;

(2)实现用户信息的更新,包括增加、删除、修改密码功能。

 

3.数据库设计

3-1超市管理系统数据库E-R模型,如图1-1所示:

 

 

图3-1学生E-R图

 

3-2登录表(users)的设计

(1)系别表(users)主要用来记录登录的信息,主要由字符属性构成。

其表结构如表1-1所示。

表1-1users表结构

字段名称

数据类型

是否为空

是否为主键

说明

name

char(10)

notnull

姓名

password

char(10)

null

密码

(2)登录表(users)中的数据如图3-2所示。

图3-2users表中数据

3-3数据表(sth)的设计

(1)数据表(sth)主要用来记录货物的信息(商品编号id、商品名称name、商品价格price),主要由字符属性构成。

其表结构如表1-2所示。

表1-2sth表结构

字段名称

数据类型

是否为空

是否为主键

说明

id

char(10)

notnull

商品编号

name

varchar(50)

notnull

商品名称

price

varchar(50)

null

商品价格

(2)数据表(sth)中的数据如图3-3所示。

图3-3sth表中数据

3-4库存表(storelist)的设计

(1)库存表(storelist)主要用来记录货物的信息(商品编号id、商品名称name、商品库存storenum),主要由字符属性构成。

其表结构如表1-2所示。

表1-2storelist表结构

字段名称

数据类型

是否为空

是否为主键

说明

id

char(10)

notnull

商品编号

name

varchar(50)

notnull

商品名称

storenum

int

null

商品库存

(2)数据表(storelist)中的数据如图3-4所示。

图3-4storelist表中数据

4、用户界面设计

4-1ODBC进行pb与sqlserver的连接配置

4-2系统菜单的设计

本系统主要分为以为几个功能:

筛选、价格排序、查询、库存清单、用户管理。

根据系统的功能,设计系统菜单如图4-1所示。

图4-1系统菜单

4-3各功能模块的实现

4-3-1登录模块设计

登录模块实现用户登录功能,负责验证输入的用户名和密码的正确性,涉及的数据表为users表。

主要功能如下:

1)登录,2)添加新用户,3)修改密码。

登录模块的实现界面如图4-2、图4-3、图4-4所示。

图4-2登录界面

界面及相关控件的实现代码为:

(1)登录按钮(cb_1)的clicked事件代码为:

ls_username=trim(sle_1.text)//输入的用户名和密码

ls_password=trim(sle_2.text)

ifls_username=""orls_password=""then

messagebox("提示","用户名和密码不能为空")

else

SELECTusers.name,users.password

INTO:

gs_username,:

gs_password

FROMusers

WHERE(users.name=:

ls_username)AND

(users.password=:

ls_password);

ifsqlca.sqlcode=0then

open(x_main)//密码正确,打开主窗口

close(x_login)

else

li_n=li_n-1

ifli_n<>0then

messagebox("提示","用户名或密码错误")

else

messagebox("提示","错误超过3次,自动退出")

halt//错误超过3次,退出程序

endif

endif

endif

(2)退出按钮的事件代码

close(parent)

图4-3添加及修改新用户

(1)添加控件的程序(图4-3-1)

图4-3-1添加控件程序

(2)保存控件的程序

ifdw_1.update()=1then

commit;

messagebox(“提示”,”保存成功”)

endif

图4-4密码修改界面

(1)确定按钮的程序

iftrim(sle_1.text)<>ls_passwordthen

messagebox("提示","旧密码错误")

else

iftrim(sle_2.text)=trim(sle_3.text)then

ls_password=trim(sle_2.text)

UPDATEusers

SETpassword=:

ls_password

WHERE(users.name=:

gs_username)AND

(users.password=:

gs_password);

ifsqlca.sqlcode<>0then

messagebox("提示","密码修改不成功")

else

close(parent)

messagebox("提示","密码修改完成")

endif

else

messagebox("提示","两次新密码不相同")

endif

endif

 

4-3-2价格管理模块设计

价格管理模块实现用户查询功能,负责对商品价格的查询、排序、修改等功能,涉及的数据表为sth表。

主要功能如下:

1)查询,2)排序,3)添加。

价格管理模块的实现界面如图4-5、图4-6、图4-7、图4-8所示。

查询又分为区间查询和按id、name、price查询

图4-5区间查询图4-6按id、name、price查询

 

(1)筛选控件的程序

stringcondition,condition1

ifcbx_1.checked=truethen

ifcbx_2.checked=falsethen

dw_1.setfilter("price>'"+sle_1.text+"'")

dw_1.filter()

dw_1.setsort("priceasc")

dw_1.sort()

endif

endif

ifcbx_2.checked=truethen

ifcbx_1.checked=falsethen

dw_1.setfilter("price<'"+sle_2.text+"'")

dw_1.filter()

dw_1.setsort("pricedesc")

dw_1.sort()

endif

endif

ifcbx_1.checked=truethen

ifcbx_2.checked=truethen

condition="price>'"+sle_1.text+"'"

condition1="price<'"+sle_2.text+"'"

dw_1.setfilter(condition+"and"+condition1)

dw_1.filter()

dw_1.setsort("priceasc")

dw_1.sort()

endif

endif

dw_1.settransobject(sqlca)

dw_1.retrieve()

(2)开始查询控件的程序

dw_1.settransobject(sqlca)

dw_1.retrieve()

ifrb_1.checked=truethen

ifdw_1.rowcount()=0then

messagebox("提示","id无效")

endif

dw_1.setfilter("id='"+trim(sle_1.text)+"'")

dw_1.filter()

endif

ifrb_2.checked=truethen

ifdw_1.rowcount()=0then

messagebox("提示","name无效")

endif

dw_1.setfilter("name='"+trim(sle_1.text)+"'")

dw_1.filter()

endif

ifrb_3.checked=truethen

ifdw_1.rowcount()=0then

messagebox("提示","price无效")

endif

dw_1.setfilter("price='"+trim(sle_1.text)+"'")

dw_1.filter()

endif

 

价格排序分为升序和降序两种:

图4-7升序图4-8降序

(1)升序控件程序

dw_1.settransobject(sqlac)

dw_1.retrievet()

dw_1.setsort(“priceasc”)

dw_1.sort()

(2)降序控件程序

dw_1.settransobject(sqlac)

dw_1.retrievet()

dw_1.setsort(“pricedesc”)

dw_1.sort()

4-3-3库存管理模块设计

库存管理模块实现用户对库存数量查询功能,并负责对商品库存查询添加等功能,涉及的数据表为storelist表。

主要功能如下:

1)查询,2)修改。

库存管理模块的实现界面如图4-9所示。

图4-9库存查询及修改

注:

各控件的程序同上

4-4设计过程截图

表格的建立:

库存表价格表

登录表

当查询输入错误时显示:

登录时输入错误显示:

定义全局变量:

5.系统的调试和心得体会

在本次设计中,是我和刘阳共同完成的,我主要是负责对后台程序的编写,我的队友负责数据库、页面、以及表格的建立和部分程序的修改。

在查询界面中,因为我涉及到了区间查询方式,需要输入一个区间然后将再此区间内的所有商品都显示出来。

我不知道该如何编写,后来通过网上查找和与队友讨论,终于实现了该项功能。

比较遗憾的是,我们应该在该查询系统中加入完整的人事管理模块和进货管理模块,可是由于基础不够只好放弃。

在本次课程设计中,我的收获还是蛮大的。

让我对数据库有了更进一步的了解。

但是我还是缺乏自己学习PB的能力,因为网上的有些函数看不懂,不懂得如何转换成自己的东西。

在以后的学习中要多和别人讨论,然后获得更多的知识。

 

附录

关键代码

查询程序:

dw_1.settransobject(sqlca)

dw_1.retrieve()

ifrb_1.checked=truethen

ifdw_1.rowcount()=0then

messagebox("提示","id无效")

endif

dw_1.setfilter("id='"+trim(sle_1.text)+"'")

dw_1.filter()

endif

ifrb_2.checked=truethen

ifdw_1.rowcount()=0then

messagebox("提示","name无效")

endif

dw_1.setfilter("name='"+trim(sle_1.text)+"'")

dw_1.filter()

endif

ifrb_3.checked=truethen

ifdw_1.rowcount()=0then

messagebox("提示","price无效")

endif

dw_1.setfilter("price='"+trim(sle_1.text)+"'")

dw_1.filter()

endif

密码修改程序:

iftrim(sle_1.text)<>ls_passwordthen

messagebox("提示","旧密码错误")

else

iftrim(sle_2.text)=trim(sle_3.text)then

ls_password=trim(sle_2.text)

UPDATEusers

SETpassword=:

ls_password

WHERE(users.name=:

gs_username)AND

(users.password=:

gs_password);

ifsqlca.sqlcode<>0then

messagebox("提示","密码修改不成功")

else

close(parent)

messagebox("提示","密码修改完成")

endif

else

messagebox("提示","两次新密码不相同")

endif

endif

登录程序:

ls_username=trim(sle_1.text)//输入的用户名和密码

ls_password=trim(sle_2.text)

ifls_username=""orls_password=""then

messagebox("提示","用户名和密码不能为空")

else

SELECTusers.name,users.password

INTO:

gs_username,:

gs_password

FROMusers

WHERE(users.name=:

ls_username)AND

(users.password=:

ls_password);

ifsqlca.sqlcode=0then

open(x_main)//密码正确,打开主窗口

close(x_login)

else

li_n=li_n-1

ifli_n<>0then

messagebox("提示","用户名或密码错误")

else

messagebox("提示","错误超过3次,自动退出")

halt//错误超过3次,退出程序

endif

endif

endif

 

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

当前位置:首页 > 初中教育 > 科学

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

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