《sql-小型超市管理系统.doc》由会员分享,可在线阅读,更多相关《sql-小型超市管理系统.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华 北 科 技 学 院课程设计说明书班级: 信管B072 姓名:_娄小云_设计题目:_小型超市商品管理系统_设计时间: 2010年6月28日至2010年7月2日指导教师:_郭慧_评 语:_评阅成绩: 评阅教师: 一 系统概述所做的是一个小型超市的商品管理系统,主要负责小型超市进货的记录,进货到库存的周转,库存情况,及销售中的商品的管理。通过该系统,可以较好地协调库存和在超市货架上销售的商品的数量,使得商品的供求达到平衡。系统有进货管理,库存管理和销售管理三大部分组成,完成从商品进货,入库到销售再进货入库的流程。系统中在SQL SERVER 中存有7张表,即goodsinform表(商品基本信息
2、表,记录了各种商品的目录),gonghuoshang表(供货商表,记录了为超市提供商品的供货商的基本信息),jinhuo表(进货信息表,记录了进货的信息),kucun表(入库信息表,记录了入库的基本信息),kucunzhuangtai表(库存状态表,记录了库存的基本状态信息),xiaoshou表(在架销售表,记录了销售中的商品的基本信息),另外还有一张yonghu表(用户表,记录了用户的登录名和密码)。二 总体设计(1) 功能模块主界面用户登录模块进货管理模块库存管理模块销售管理模块模块添加进货商品修改进货信息查看进货信息添加入库信息删除入库信息修改入库信息查看库存信息添加库存信息修改库存信息
3、删除库存信息查看库存信息供货商管理图1 系统功能结构图 如图1所示,展示了系统的主要功能。系统分为登录模块,进货管理,库存管理,销售管理四个大的模块。其中进货管理中又可以对供货商进行添加和删除管理,进货管理,库存管理和销售管理又分别分为添加,修改,删除和查看四个小的模块。这些模块一起,可以对商品的进货,库存和销售进行较全面的管理。(2) ER图 系统中涉及到的主要实体:用户,商品,供货商商品供货商进货商品类型商品名称商品编号商品进价销售价格商品编号编号联系方式名称图2 用户密码用户名姓名用户图3 如图2所示,商品和供货商是多对多的关系,一个供货商可以提供多种商品,同一种商品也可由多个供货商提供
4、。(3) 数据库中的表该数据库中共建了7张表。如下:*用户信息表yonghu (用户编号,用户名,密码) 用于存储授权可登录系统的用户信息。*商品基本信息表goodsinform (商品编号,商品名称,商品类型,商品进价,销售价格)该表用于存储商品的基本信息。*供货商表Gonghuoshang(供货商编号,供货商名,商品编号,联系方式)记录了为超市提供商品的供货商的基本信息。*进货信息表Jinhuo(进货id,商品编号,商品进价,进货数量,供货商编号,进货日期,入库状态)记录了进货的相关信息。*入库信息表kucun表(入库id,商品编号,库存数量,入库日期)记录了入库的基本信息,存储商品由进货
5、到库存中的周转状态数据。*库存状态表Kucunzhuangtai(商品编号,库存数量)记录了商品的库存信息。*在架销售表Xiaoshou(销售id,商品编号,数量)记录了商品的销售状态信息。三 详细设计和实现(1) 用户登录 创建用户信息表,存储用户的登录名和密码。创建表如下:create table yonghu/*用户信息表*/. 进入系统后点击“登录”,进入登录界面,填写用户名和密码,点击“登录”按钮后,检验该用户名在数据库yonghu表中是否存在,存在,则赋予该用户操作系统的权限,否则提示错误。匹配的代码如下: sql1 = select * from yonghu where 用户名
6、= & Trim(Text1.Text) & & and 密码= & Trim(Text2.Text) & Set mrc = cnn.Execute(sql1) If mrc.EOF = False Then mrc.Close flag = 1 Unload Me Else MsgBox 密码不正确,请重新输入!, , Form1 Text1.Text = Text2.Text = Text1.SetFocus Text1.SelStart = 0 End If 当进入系统时,只有输入的用户名和登录密码都正确时,才允许进入系统进行查看和操作。(2) 进货管理进货管理下有供货商管理和进货商品
7、的管理。可以对供货商的信息进行添加和删除操作,也可以对进货商品进行相应的添加,修改,删除和查看操作。在进货表上建立了一更新的存储过程,即update_jinhuo,用于更新进货表的信息。代码如下:create procedure jinhuo_update a char(4),b char(4), c float ,d int,e char(4),f datetimeas update jinhuo set 商品编号=b,商品进价=c, 进货数量=d,供货商编号=e,进货日期=fwhere 进货id=a 另外,在jinhuo表上建立了一个名为jinhuo的视图,显示进货的详细信息,代码如下:c
8、reate view jinhuo_viewasselect jinhuo.进货id,jinhuo.商品编号,goodsinform.商品名称,jinhuo.供货商编号,jinhuo.进货数量,jinhuo.商品进价,jinhuo.进货日期 from jinhuo,goodsinformwhere jinhuo.商品编号=goodsinform.商品编号同时,为了显示进货状态,在jinhuo表上添加了一新的属性,“入库状态”,默认为“未入库”。代码如下:alter table jinhuoadd 入库状态 char(6) not null default 未入库当商品入库后,状态改为“已入库”
9、。(3) 库存管理在该销售商品管理系统中,已进货的商品需要及时入库,这样需要建立cucun表,来存储入库的信息,将进货商品入库。库存表如下:kucun表(入库id,商品编号,库存数量,入库日期)当添加入库信息成功后,kucunzhuangtai表中会增添入库信息。添加,删除,修改入库商品的代码如下:Private Sub Command1_Click()sql2 = select * from kucun where 入库id= & Trim(Text1(0).Text) & Set mrc = cnn.Execute(sql2) If mrc.EOF = False Then MsgBox
10、此入库id编号已存在!, vbOKOnly + vbExclamation, 警告 Text1(0).Text = Text1(1).Text = Text1(2).Text = Text1(3).Text = Text1(0).SetFocus mrc.CloseElsesql1 = insert into kucun values( & Trim(Text1(0).Text) & , & Trim(Text1(1).Text) & , & Trim(Text1(2).Text) & , & Trim(Text1(3).Text) & )cnn.Execute (sql1)sql2 = in
11、sert into kucunzhuangtai values( & Trim(Text1(1).Text) & , & Trim(Text1(2).Text) & )cnn.Execute (sql2) MsgBox 数据已保存!, vbOKOnly + vbExclamation, 提示 sql1 = select * from jinhuo where jinhuo.进货id= & Trim(Combo1.Text) & Set mrc = cnn.Execute(sql1) If Not mrc.EOF Then cnn.Execute exec jinhuo1_update & 已入
12、库 & cnn.Close End If mrc.Close Text1(1).Text = Text1(2).Text = Text1(3).Text = End IfEnd Sub/*修改和保存入库商品*/If kucunflag = 1 Thencnn.Execute exec kucun_update & Trim(Combo1.Text) & , & Trim(Text1(0).Text) & , & Trim(Text1(1).Text) & , & Trim(Text1(2).Text) & cnn.Close MsgBox 数据已更新!, vbOKOnly + vbExclam
13、ation, 提示Else: kucunflag = 2 sql1 = delete from kucun where 入库id= & Trim(Combo1.Text) & Set mrc = cnn.Execute(sql1)MsgBox 数据已删除!, vbOKOnly + vbExclamation, 提示For iCount = 0 To Combo1.ListCount - 1 If Combo1.List(iCount) = Combo1.Text And Combo1.Text Then Combo1.RemoveItem iCount End If Next iCountsq
14、l1 = select * from kucunSet mrc = cnn.Execute(sql1)Do While Not mrc.EOF Text1(0).Text = Text1(1).Text = Text1(2).Text = mrc.MoveNext Loop mrc.Close End If在kucun表上建立有一更新过程,代码如下:create procedure kucun_update a char(4),b char(4), c int,d datetimeas update kucun set 商品编号=b,库存数量=c,入库日期=dwhere 入库id=a在kucu
15、n表上建立了一触发器,当添加入库商品时,kucunzhuangtai表中的信息更新,代码如下:if exists(select name from sysobjects where name=ruku_triand type=TR)drop trigger ruku_trigocreate trigger ruku_tri on kucunfor insert ,updateasbeginupdate kucunzhuangtaiset 库存数量=库存数量+(select inserted.库存数量 from inserted)where kucunzhuangtai.商品编号 in(sele
16、ct inserted.商品编号 from inserted)end同时,jinhuo表中的商品信息“入库状态”改写为“已入库”。(4) 销售管理 在架商品信息存储于表xiaoshou中,如下:Xiaoshou(销售id,商品编号,数量)记录了商品的销售状态信息。当商品缺货时,可以查看库存,从库存中提取商品信息,添加到xiaoshou表中,同时也可以对销售信息进行修改和删除操作。在xiaoshou表上建立了名为xiaoshou_update 的存储过程,用于更新xiaoshou表中的信息。代码如下:create procedure xiaoshou_update a char(6),b cha
17、r(4), c intas update xiaoshou set 商品编号=b,数量=c where 销售id=a 在xiaoshou表上建立一触发器xiaoshou_tri,当向销售表中添加商品时,kucunzhuangtai表中的相应商品的数量会更新。具体代码如下:if exists(select name from sysobjects where name=xiaoshou_triand type=TR)drop trigger xiaoshou_trigocreate trigger xiaoshou_tri on xiaoshoufor insert ,updateasbegin
18、update kucunzhuangtaiset 库存数量=库存数量-(select inserted.数量 from inserted)where kucunzhuangtai.商品编号 in (select inserted.商品编号 from inserted)end四 系统测试点击运行程序,出现如图3所示的登录窗口。图3输入用户名和密码,点击“登录”,如果用户名和密码均输入正确,则成功登录,否则,报错,重新输入。点击“取消”按钮,可以退出登录。成功登录后进入系统主界面,如图4所示:图4如图,在主界面下可以进行进货管理,库存管理,及销售管理,点击“退出”,也可直接退出系统。点击菜单栏上的
19、“进货管理”,选择其下的子菜单“供货商管理”,可添加和删除供货商信息。如添加界面如图5所示:图5在界面右侧有供货商信息的列表显示,填写供货商信息,在商品编号中选择商品编号,填写完毕后提交。当供货商ID重复时,会弹出提示对话框。选择删除,在combo列表中选择要删除的供货商ID,点击“删除”,可删除供货商。如图6所示:图6 点击“进货管理”,进行进货商品的添加删除和修改,点击“添加”,进入如图7所示的界面。图7 填写完整后点击“添加”,则添加成功,如果进货ID重复,会提示;点击“返回”,选择,“修改”,进入修改界面,如图8所示,选择要修改的进货ID号,修改后点击“保存”,进行保存。图8 返回后,
20、进入删除界面,选择要删除的进货编号,点击“删除”按钮,则将信息删除。如图9所示:图9在主界面中点击“库存管理”,进入库存管理,可对当前入库进行增加,修改和删除操作。点击“添加”,进入库存界面,如图10所示:图11 返回后点击“修改”,修改信息后,点击“保存”按钮,保存信息。如图12所示。图12 返回后点击“删除”,选择要删除的入库id,点击“删除”后,删除该入库信息。如图13所示。图13返回后点击“查看”,可查看当前的库存状态信息,如图14所示,当库存不足时,点击“添加库存”,进入添加进货界面。图14点击“关注库存”,可以查看库存数少于10的库存信息。在主界面中点击“销售管理”,对销售产品进行
21、添加,修改,删除和查看。点击“上架”,进入添加界面,如图15所示:图15 返回后点击“修改”,进入修改界面,选择要修改的销售id后修改,完成后点击“保存”,保存信息。如图16所示:图16 返回,选择“删除”按钮,进入删除界面,选择要删除的销售id,点击“删除”按钮,删除此销售商品。如图17所示:图17 返回,查看销售信息,进入如图18所示的界面:图18当商品数量少时,可点击“增添商品”按钮,添加销售商品。点击主界面的“退出”,可退出该系统。五 总结这次课程设计,收获很多。巩固了所学的知识,同时也提高了编程开发系统的能力。所做的课程设计名为小型超市商品管理系统,设计该系统,是注意到周边小超市管理
22、混乱的现象,在此基础上设计的系统。系统从功能的确定,界面的设计,数据库的设计到编码调试等所有过程,都是自己独立完成的。鉴于综合实验的不足,所以独立设计完成了该小型系统。在设计该系统的过程中,遇到了很多问题。其一,由于系统功能是自己分析的结果,所以相互关联性不强,各个功能模块相对较散,不能有效地联系。其二,编码调试上欠缺。很多地方报错,但不能一次就检查出错误的原因,类似问题,总需要多次去调试。其三,系统功能不完善,当系统运行时,从用户的角度去考虑,不太方便。信息的填写之间不能参照,都需要用户自己输入。其四,系统功能比较简单。由于时间不是很充裕,所以没有把系统功能和模块设计得太复杂,以免功能无法实现。通过此次试验,自学能力和独立进行软件开发能力有所提高,以往做的课程设计,开发的小系统都是独立的,运用了一种软件,而这次的实验是将SQL数据库和所学的VISUAL BASIC联系起来,在连接数据库时,开始连接不上,认真分析后,找出了原因;创新意识和协作精神也有所提高,在实验过程中,有些不懂的地方,和周围的同学进行了深入的讨论。总的来说,这次课程设计,明白了许多不足,很多知识点都没有彻底得掌握,不能很快去运用。编程时,常常因一个问题而无法进行。在以后的课程学习中,会努力将知识理解运用,真正地做到学以致用。