超市管理系统VB课设报告.docx
《超市管理系统VB课设报告.docx》由会员分享,可在线阅读,更多相关《超市管理系统VB课设报告.docx(19页珍藏版)》请在冰豆网上搜索。
超市管理系统VB课设报告
沈阳航空航天大学
课程设计
学号
班级
姓名嘿嘿
指导教师
2016年11月17日
沈阳航空航天大学
课程设计任务书
学院:
能源与环境学院专业:
环境工程班级;
学号:
题目:
超市销售管理系统
一、课程设计时间
2016-2017学年第一学期12周11.14-11.18共计1周20学时
二、课程设计内容
用VB设计一个超市销售管理系统,商品信息包括商品的编号,名称,进价,售价,数量等,要求实现登录管理;超市商品管理(商品的添加、删除和修改);商品销售管理(售出的商品的编号、数量、折扣等);查询统计管理(可查询超市的库存情况,查询超市的销售记录,统计超市利润等功能)。
三、课程设计要求
程序质量:
✧贯彻事件驱动的程序设计思想。
✧用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课设结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
一、系统分析与总体设计
1.系统需求分析
超市销售管理系统的用户是负责超市销售管理的超市管理员,系统主要包括商品基本信息管理、超市商品管理、商品销售管理、查询统计管理、管理员登录管理。
具体功能如下:
(1)商品基本信息管理:
商品的编号、名称、进价、售价、数量;
(2)超市商品管理:
商品的添加、修改、删除;
(3)商品销售管理:
售出商品的编号、数量、折扣;
(4)查询统计管理:
超市的库存情况、销售记录、利润;
(5)管理员登录管理:
账号密码登录。
2.系统总体结构设计
根据需求分析中总结的用户需求设计系统的体系结构。
系统的功能模块设计如图1所示。
图1系统功能模块图
二、数据库结构设计
本系统采用Access作为后台数据库,文件名为db.mdb。
数据库中包含3个表,即商品信息、销售信息、用户表。
下面分别介绍这些表的结构。
(1)用户表(管理员信息表),结构如表1所示。
在系统初始化时,已经将管理员用户的信息添加到用户表中,系统提供管理员用户的创建、删除等功能。
管理员用户密码可以在程序中进行修改。
表1用户表
(2)商品信息表,结构如表2所示。
在系统初始化时,已经将商品的信息添加到商品信息表中,系统提供了创建,删除等功能。
表2商品信息表
(3)销售信息表,结构如表3所示。
在系统初始化时,已经将商品的销售信息添加到销售信息表中,系统提供了修改功能。
表3销售信息表
三、窗体与功能设计
1.登录窗体设计
该窗体实现的功能是管理员用户的登录,用户的信息已经存储在数据库中。
管理员用户在程序运行时,首先需要输入用户名和密码,然后单击登录按钮,后台的程序代码会对管理员输入内容的准确性进行检查,如果输入内容错误,程序会给出提示“用户名密码错误”,若正确,则登录成功。
(1)界面设计
管理员登录窗体的名称为Form4,界面中的基本控件包括了2个文本框、2个标签和2个命令按钮。
窗体中采用Adodc控件实现与Access数据库“db.mdb”的连接,其界面布局如图2所示。
图2登录窗体界面
(2)登录窗体的主要控件属性
登录窗体的主要控件属性如表4所示,Adodc控件的属性设置采用代码实现。
表4登录界面控件属性
对象名称
属性名称
属性值
Form1
Caption
登录
Command1
Caption
登录
Command2
Caption
退出
(3)程序代码在登录窗体Form1中添加如下代码:
PrivateSubCommand1_Click()
Adodc1.RecordSource="select*from用户表where用户名='"&Text1.Text&"'and密码='"&Text2.Text&"'"'查询表中是否有对应条件记录
Adodc1.Refresh’刷新纪录
IfAdodc1.Recordset.RecordCount=0Then'如果没记录
MsgBox"用户名密码错误",,"提示"
Else
Form1.Show
UnloadMe
EndIf
EndSub
PrivateSubCommand2_Click()
End'退出
EndSub
2.系统主窗体设计
当管理员用户登录成功后,将显示系统主界面。
在此界面中,管理员可以选择“超市销售管理系统”菜单中的“用户管理”命令,而后在弹出的“用户管理”窗体中执行修改密码、添加用户密码;菜单中的“商品管理”命令,可以进入“商品管理”窗体,并在该窗体中进行商品信息的查询、修改、新增、删除功能;菜单中的“销售管理”命令,可以进入“销售管理”窗体,并在该窗体中进行商品信息的查询功能、输入购买数量后可以更改数据库信息;菜单中的“查询统计”菜单命令,可以进入“查询统计”窗体,并在该窗体中进行商品信息的查询,输入名称后,可查询库存、利润;“退出”菜单命令可结束系统的运行。
(1)界面设计
主窗体的名称为Form1,界面布局如图3所示。
图3主窗体界面设计
(2)菜单项设计
主窗体的主要控件属性如表5所示。
表5主界面菜单项的属性
标题
名称
用户管理
菜单项
商品还管理
菜单项
销售管理
菜单项
查询统计
菜单项
退出
菜单项
(3)程序代码
PrivateSub用户管理_Click()
Form1.Hide
Form5.Show
EndSub
PrivateSub商品管理_Click()
Form1.Hide
Form2.Show
EndSub
PrivateSub销售管理_Click()
Form1.Hide
Form6.Show
EndSub
PrivateSub查询统计_Click()
Form1.Hide
Form3.Show
EndSub
PrivateSub退出_Click()
End
EndSub
3.用户管理窗体设计
进入用户管理界面后,管理员可以选择“添加”命令,输入用户名、密码;点击“保存”按钮,可以将添加的用户或修改密码的用户保存;点击“取消”按钮,可以将文本框清空;“删除”按钮可以删除数据库中的用户信息;“退出”按钮可以返回主窗体。
(1)界面设计
用户管理窗体的名称为Form5,界面布局如图4所示。
图4用户管理窗体界面设计
(2)菜单项设计
用户管理窗体的主要控件属性如表6所示,DataGrid控件通过代码实现。
表6用户管理界面菜单项的属性
标题
名称
添加
Command1
保存
Command2
取消
Command3
删除
Command4
退出
Command5
(3)程序代码
PrivateSubCommand1_Click()
Text1.Text=""
Text2.Text=""
Command2.Tag="添加"
Adodc1.Enabled=False
Command1.Enabled=False
Command3.Enabled=True
Command4.Enabled=False
EndSub
PrivateSubCommand2_Click()
IfCommand2.Tag="添加"ThenAdodc1.Recordset.AddNew'添加记录
Command1.Enabled=True
Command3.Enabled=False
Command4.Enabled=True
Adodc1.Enabled=True
Adodc1.Recordset("用户名")=Text1.Text
Adodc1.Recordset("密码")=Text2.Text
Adodc1.Recordset.Update'更新数据
Adodc1.Refresh
EndSub
PrivateSubCommand3_Click()
IfAdodc1.Recordset.EOF=FalseAndAdodc1.Recordset.BOF=FalseThen
Text1.Text=Adodc1.Recordset("用户名")
Text2.Text=Adodc1.Recordset("密码")
EndIf
Adodc1.Enabled=True
Command1.Enabled=True
Command3.Enabled=False
Command4.Enabled=True
EndSub
PrivateSubCommand4_Click()
IfAdodc1.Recordset.RecordCount>0Then
Adodc1.Recordset.Delete'删除数据
Adodc1.Recordset.Update'更新删除
Adodc1.Refresh
IfAdodc1.Recordset.EOF=FalseAndAdodc1.Recordset.BOF=FalseThen
Text1.Text=Adodc1.Recordset("用户名")
Text2.Text=Adodc1.Recordset("密码")
EndIf
Else
MsgBox"没有记录"
EndIf
EndSub
PrivateSubCommand5_Click()
UnloadMe
Form1.Show
EndSub
PrivateSubForm_Load()
Command3.Enabled=False
Adodc1.Refresh
EndSub
4.商品管理窗体设计
进入商品管理界面后,管理员可以选择“新增”命令,输入商品名称、进价、售价、数量;点击“修改”按钮,管理员可以对数据库中存在的商品进行修改;点击“保存”按钮,可以将添加的商品或修改过的商品保存;点击“取消”按钮,可以将文本框清空;“删除”按钮可以删除数据库中的商品信息;“退出”按钮可以返回主窗体。
(1)界面设计
商品管理窗体的名称为Form2,界面布局如图5所示。
图5商品管理窗体界面设计
(2)菜单项设计
商品管理窗体的主要控件属性如表8所示,Adodc控件的属性设置采用代码实现,DataGrid控件通过代码实现。
表7用户管理界面菜单项的属性
标题
名称
新增
Command1
修改
Command2
保存
Command3
取消
Command6
删除
Command4
退出
Command5
(3)程序代码
PrivateSubCommand1_Click()
DimIAsInteger
ForI=0To3
Text1(I).Text=""'文本框内容清空
Next
Text1(4).Text=1
Command3.Tag="新增"
Command1.Enabled=False
Command2.Enabled=False
Command4.Enabled=False
Command3.Enabled=True'设置按钮可用
Command6.Enabled=True
EndSub
PrivateSubCommand2_Click()
DimIAsInteger
IfAdodc1.Recordset.RecordCount>0Then'如果数据行数大于0
ForI=0To4
Text1(I).Text=Adodc1.Recordset(I+1)'字段内容赋值给文本框
Next
Command3.Tag="修改"
Command1.Enabled=False
Command2.Enabled=False
Command4.Enabled=False
Command3.Enabled=True'设置按钮可用
Command6.Enabled=True
EndIf
EndSub
PrivateSubCommand3_Click()
DimIAsInteger
ForI=0To4
IfText1(I).Text=""Then'如果文本框内容为空
MsgBox"请完整填写数据内容",,"提示"
ExitSub'退出过程
EndIf
Next
IfCommand3.Tag="新增"ThenAdodc1.Recordset.AddNew'添加新记录
ForI=0To4
Adodc1.Recordset(I+1)=Val(Text1(I).Text)'将文本框内容赋值给字段
Next
Adodc1.Recordset.Update'更新
ForI=0To3
Text1(I).Text=""
Next
Text1(4).Text=1
Command6_Click
EndSub
PrivateSubCommand4_Click()
IfAdodc1.Recordset.RecordCount>0Then'如果数据行数大于0
Adodc1.Recordset.Delete'删除数据
Adodc1.Recordset.Update'更新数据
EndIf
EndSub
PrivateSubCommand5_Click()
UnloadMe'退出本窗体
Form1.Show
EndSub
PrivateSubCommand6_Click()
Command3.Tag=""
ForI=0To3
Text1(I).Text=""
Next
Text1(4).Text=1
Command1.Enabled=True
Command2.Enabled=True
Command4.Enabled=True
Command3.Enabled=False
Command6.Enabled=False
EndSub
PrivateSubForm_Load()
Command3.Enabled=False
Command6.Enabled=False
Adodc1.Refresh
EndSub
5.销售管理窗体设计
进入销售管理界面后,管理员可以选择“查询”命令,输入商品编号,即可查询该商品名称、售价、库存、折扣;输入购买数量,点击“确定”可以验证是否可以购买;“退出”按钮可以返回主窗体。
(1)界面设计
销售管理窗体的名称为Form6,界面布局如图6所示。
图6销售管理窗体界面设计
(2)菜单项设计
销售管理窗体的主要控件属性如表9所示,Adodc控件的属性设置采用代码实现;DataGrid控件通过代码实现。
表8用户管理界面菜单项的属性
标题
名称
查询
Command1
确定
Command2
退出
Command3
(3)程序代码
PrivateSubForm_Load()
Adodc1.Refresh'刷新控件数据
Adodc2.Refresh
EndSub
PrivateSubCommand1_Click()
DimIAsInteger
IfAdodc1.Recordset.RecordCount>0Then
Adodc1.Recordset.Find"编号="&Val(Text1(4).Text)
IfAdodc1.Recordset.EOF=FalseAndAdodc1.Recordset.BOF=FalseThen
ForI=0To2
Text1(I).Text=Adodc1.Recordset(I+1)'字段内容赋值给文本框
Next
Text1(3).Text=Adodc1.Recordset(5)
Else
ForI=0To3
Text1(I).Text=""
Next
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
DimIAsInteger
IfAdodc1.Recordset.RecordCount>0Then'如果数据行数大于0
IfAdodc1.Recordset.EOF=FalseAndAdodc1.Recordset.BOF=FalseThen
IfVal(Text1(5).Text)<=Val(Text1
(2).Text)Then
Adodc2.Recordset.AddNew
Adodc2.Recordset("商品编号")=Adodc1.Recordset("编号")
Adodc2.Recordset("名称")=Adodc1.Recordset("名称")
Adodc2.Recordset("利润")=(Adodc1.Recordset("售价")*Adodc1.Recordset("折扣")-Adodc1.Recordset("进价"))*Val(Text1(5).Text)
Adodc2.Recordset("数量")=Val(Text1(5).Text)
Adodc2.Recordset.Update
Adodc1.Recordset("数量")=Adodc1.Recordset("数量")-Val(Text1(5).Text)
Adodc1.Recordset.Update
MsgBox"购买成功"
Text1(5).Text=""
Else
MsgBox"库存不足"
ExitSub
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand3_Click()
UnloadMe'退出本窗体
Form1.Show
EndSub
6.查询统计窗体设计
进入查询统计界面后,管理员可以选择“查询”命令,输入商品名称,可在数据库中查询销售情况,利润;“退出”按钮可以返回主窗体。
(1)界面设计
查询统计窗体的名称为Form3,界面布局如图7所示,DataGrid控件通过代码实现。
图7查询统计窗体界面设计
(2)菜单项设计
查询统计窗体的主要控件属性如表9所示,。
表9查询统计界面菜单项的属性
标题
名称
查询
Command1
查询
Command2
退出
Command3
(3)程序代码
PrivateSubCommand1_Click()
IfText1(0).Text=""Then
Adodc1.RecordSource="select*from商品信息"
Else
Adodc1.RecordSource="select*from商品信息where名称='"&Text1(0).Text&"'"
EndIf
Adodc1.Refresh
a=Adodc1.Recordset("数量")
Label1.Caption="库存:
"&"a"
SetDataGrid1.DataSource=Adodc1
DataGrid1.Refresh
EndSub
PrivateSubCommand2_Click()
IfText1
(1).Text=""Then
Adodc2.RecordSource="select*from销售信息"
Else
Adodc2.RecordSource="select*from销售信息where名称='"&Text1
(1).Text&"'"
EndIf
Adodc2.Refresh
l=Adodc2.Recordset("利润")
Label3.Caption="利润:
"&"l"
SetDataGrid2.DataSource=Adodc2
DataGrid2.Refresh
EndSub
PrivateSubCommand3_Click()
Form3.Hide
Form1.Show
EndSub
四、总结
通过此次课设,一周的时间,较为熟练掌握数据库的连接。
如何将数据库信息连接到窗体中,如何控制按钮是否可用,如何浏览数据库信息,如何控制窗体的显示与否;准确知道Recordest,Refresh,Datagrid,EOF,BOF,Tag,if条件语句,for循环语句的使用方法。
经过不懈的努力,经过无数次的调试和运行,完成了程序。
不断的调试,使我认识到即使一丁点的错误也会导致系统的不正常运行,细节决定成败。
另外老师对我的提问让我知道了自己对于基础知识的掌握还不够熟练。
大一对VB掌握不是十分熟练,所以在这次的课程设计中,我在教材和网络的帮助下比较顺利的完成了此次课设,这使我认识到学习每一门知识的重要性,在今后的学习与工作中,我都需要具备多种技能,所以学习的重要性不言而喻,让我意识到了VB语言对于学生的重要性。
最后,对于此次成功完成课程设计要求,我感到十分高兴,付出便会有收获!
五、参考文献
[1]王亚杰.《VisualBasic程序设计教程》.北京:
高等教育出版社,2015
[2]杨日璟郑江超《计算机基础与VisualBasic程序设计》清华大学出版社
[3]龚沛曾杨志强陆慰民.《VisualBasic程序设计教程》高等教育出版社,2007
[4]常桂英蔚淑君《VisualBasic与Access2010数据库应用系统开发》清华大学出版社