1、广东职业技术学院课程设计报告书课程名称:数据库系统设计设计题目: 自动饮料售货机系统设计及实现 系 别: 信息工程系 摘 要3概要设计3u顾客模块31、顾客购买管理功能模块32、饮料供应管理3u普通管理员模块31、商品管理32、零钱补充管理33、商品补充管理34、取现管理45、销售记录管理46、售货机管理4u系统管理员管理4uE-R图4各实体属性:41、顾客模块52、普通管理员模块6u数据库表81、8详细设计12u主界面顾客专区12u查看价格管理14u管理员登录管理15u普通管理员主界面17u商品管理18u售货机管理19u销售记录20u各饮料销售情况汇总21u系统管理员主界面22u普通管理员管
2、理23u系统管理员管理26u销售额汇总29u取现记录29u零钱补充记录30u商品补充记录31u普通管理员登陆记录33u系统管理员登陆记录34程序设计总结35u开发过程的归纳和总结35归纳:35总结:35u所遇到的技术难点及解决办法35致谢35摘 要自动售货机是一种可以给顾客选择商品而且不需要实际的人员操作的一种销售模式,顾客可以根据自动售货机上的商品最大限度的选择自己所需的商品。顾客可以投入金额选择商品,然后自动售货机对其做出相应的判断,最后售出商品。自动售货机分顾客模块、普通管理员模块和系统管理员模块。顾客模块完成饮料的销售,管理员模块实现补充饮料、零钱,取现和统计分析等功能自动售货机分顾客
3、需求管理、饮料供应系统管理、零钱供应系统管理、售货机管理、管理员管理、取现管理、销售记录管理等主要功能模块。关键词:自动售货,顾客选择,自动找零概要设计u 顾客模块1、顾客购买管理功能模块当顾客投入其实际金额,机器显示货币金额,接下来顾客选择要购买的饮料,如果投币金额足够并且所购买的饮料存在,则提示用户在出口处取走饮料,同时找零.如果货币金额不足,则提示信息,如果所购饮料已经售完,显示售完信息。2、饮料供应管理每当售出一件商品时,商品库存会自动的减少其商品的库存量,并在销售商品的记录中增加其销售额及销售记录。u 普通管理员模块普通管理员可以通过系统登录用户密码来查看商品销售情况,并且针对性的补
4、充所需饮料以及用于找零的金钱。系统管理可以管理普通管理员,查看各饮料的总销售额。1、商品管理管理员可以修改商品的价格,添加新的商品。以及查询,删除商品,查询库存,当库存不足时以便补充商品。 2、零钱补充管理当零钱不足时添加零钱,保存零钱补充记录。3、商品补充管理当商品不足时添加商品,保存商品补充记录。4、取现管理管理员提取自动售货机里的现金,保存提取记录。5、销售记录管理分析各类饮料的销售情况,分析畅销饮料和滞销饮料。统计销售额。6、售货机管理统计顾客投入的现金,方便提取;零钱管理。u 系统管理员管理1、普通管理员管理实现普通管理员的添加,删除,查询,修改。2、系统管理员管理实现系统管理员的添
5、加,删除,查询,修改。3、销售额汇总查看各饮料的总销售额。4、取现记录查看哪个普通管理员在什么时候取了多少现金。5、商品补充记录查看哪个普通管理员在什么时候添加了什么商品多少数量。6、零钱补充记录查看哪个普通管理员在什么时候补充了多少零钱。7、普通管理登陆记录查看哪个普通管理员什么时候登陆过系统。8、系统管理登陆记录查看哪个系统管理员什么时候登陆过系统。u E-R图各实体属性:1、顾客模块1.1 顾客模块E-R图2、普通管理员模块管理员登陆:2.2.1管理员登陆模块E-R图零钱补充:2. 2.2零钱补充模块E-R图饮料补充:2.2.3饮料补充模块E-R图取现管理:2.2.4取现管理模块E-R图
6、u 数据库表关系模式转换:1顾客模块:顾客(顾客编号)饮料(商品编号(PK)、商品名称、成本价格、库存数量)购买(时间、价格、数量,顾客编号(PK)、商品编号)2管理员登录管理员(管理员编号(FK)、姓名、性别、密码)饮料机(投入金额、找零金额)登录(时间、密码,管理员编号(FK)、流水线号)3零钱补充管理员(管理员编号(FK)、姓名、性别、密码)饮料机(投入金额、找零金额、流水线号)零钱补充(时间、金额,管理员编号(FK)、流水线号)4. 饮料补充管理员(管理员编号(FK)、姓名、性别、密码)饮料机(投入金额、找零金额、流水线号)饮料补充(时间、数量,管理员编号(FK)、流水线号)5. 取现
7、管理管理员(管理员编号(FK)、姓名、性别、密码)饮料机(投入金额、找零金额、流水线号)取现(时间、金额,管理员编号(FK)、流水线号)1、2.3.1 商品表2、2.3.2 售货机表3、2.3.3 零钱补充表4、2.3.4普通管理员表5、2.3.5系统管理员表6、2.3.6销售记录表7、2.3.7商品补充记录表8、2.3.8取现记录表9、2.3.9 管理员登陆记录表10、2.3.10 系统管理员登陆记录表详细设计u 主界面顾客专区界面:图3.1.1运行后:图3.1.2说明:1. 根据系统功能模块,参考主界面图,设计主菜单、工具栏和状态栏,工具栏中按钮要加提示(tip)。2. 主界面窗体名为“M
8、ain”3. 编写菜单和工具栏按钮单击事件,实现当单击该对象时显示对应窗体。4.创建各个功能模块窗体,窗体要求如下: 窗体名名称标题查看价格SViewPrice查看价格管理员登录SAdminlogin管理员登录软件设计规格要求:界面对象单击事件其它说明界面初始化n 各picturebox根据数据库里上架的商品编号获取图片显示n 单选按钮获取数据库里上架商品的商品编号显示“确定金额”按钮n 确定顾客投入的金额“显示器”n 显示顾客投入的金额“确定”按钮如果没输入数量,提示顾客请输入你要购买的饮料的数量!n 根据顾客选择的商品编号和数量进行比较,库存大于或等于顾客选择的数量则继续;否则提示顾客“非
9、常抱歉!您选择的饮料库存不足,请您选择其他。”n 比较商品总额和顾客投入的金钱,若顾客让投入的金额大于售货机里的找零金额,售出商品,减少此饮料的库存量,以及售货机里的找零金额,添加销售记录;若顾客让投入的金额等于售货机里的找零金额,售出商品,减少此饮料的库存量,添加销售记录;否则,交易失败,提示顾客“非常抱歉!饮料机里的零钱不足给您找零,欢迎再次光临!”“刷新”按钮n 若要再次购买,把上次的痕迹清空u 查看价格管理 界面图3.1.3软件设计规格要求:界面对象单击事件其它说明页面初始化n 显示所有商品价格“查询”按钮n 根据商品编号查询价格当文本框为空时单击提示没有输入商品编号“返回”按钮n 回
10、到页面初始化u 管理员登录管理界面:图3.1.4软件设计规格要求:界面对象单击事件其它说明密码输入密码时显示”*”tbAdminNamen 输入“用户名”可输入可选择cbchiosen 管理员的身份选择不可输入“登录”按钮n 根据cbchiose判断是普通管理员还是系统管理员n 判断该管理员在数据库中是否存在,若不存在则提示“无该管理员”,若存在继续以下步骤。n 查询该管理员是否已锁定,若是则提示“该管理员已锁定,请联系系统管理员!”,否则继续以下步骤。n 查询输入的密码与数据库中该管理员的密码是否匹配n 若不匹配,显示密码错误提示信息,修改数据库密码错误次数(次数增加1),并判断错误次数是否
11、超过最大次数(3次),若是,则锁定该管理员(将数据库锁定标识位设为True),提示“该管理员已锁定,请联系系统管理员!”。n 若匹配,则将数据库密码错误次数改为0n 若密码匹配,则显示管理员管理界面。n 每一次管理员登录成功,便在数据库中的SAdminlogin或者SAdminToplogin表中记录管理员的ID和登录时间.在登录界面按回车键相当于单击“登录”按钮“取消”按钮n 退出此窗口 u 普通管理员主界面界面:图3.2.1说明:1根据系统功能模块,参考主界面图,设计主菜单、工具栏和状态栏,工具栏中按钮要加提示(tip)。2.主界面窗体名为“SMain”3编写菜单和工具栏按钮单击事件,实现
12、当单击该对象时显示对应窗体。4.创建各个功能模块窗体,窗体要求如下: 窗体名名称标题窗体类型商品管理SDrinks商品管理SDI(子窗体)售货机管理SSalement售货机管理SDI销售记录表SSale销售记录表SDI各饮料销售情况汇总SDrinkTimes各饮料销售情况汇总SDI u 商品管理界面:图3.2.2软件设计要求:界面对象单击事件其它说明界面初始化n Datagridview显示所有商品资料“查询”按钮n 查询商品资料当编号为空时提示输入商品编号“清空”按钮n 添加新商品时的清空操作,清空文本框之前的记录的数据“添加”按钮n 添加新商品当商品编号重复时提示“修改”按钮n 修改商品资
13、料不能修改商品编号“删除”按钮n 删除商品慎重删除“上架“按钮n 把商品放到售货机里面,即把商品上架u 售货机管理界面:图3.2.3界面的3个状态:初始化状态,添加状态,取现状态,补充饮料状态状态表:状态界面各控件的状态初始化状态n 添加,取现,补充饮料控件可用,其他控件不可用;n 文本框清空;n 两个标签分别显示投入金额和找零金额。添加状态n 添加,取现,补充饮料控件不可用;n 确定和取消和Nud可用;n 其他不可用。取现状态n 添加,取现,补充饮料控件不可用;n 确定和取消和Nud可用;n 其他不可用。补充饮料状态n 添加,取现,补充饮料控件不可用;n 确定、取消、文本框和Nud可用;n
14、其他不可用软件设计规格要求:界面对象单击事件其它说明页面初始化n 添加,取现,补充饮料控件可用,其他控件不可用;n 文本框清空;n 两个标签分别显示投入金额和找零金额。“添加”按钮n 根据输入找零金额增加售货机里的找零金额,并添加一条零钱补充记录当Nud为0单击时提示没有输入要添加的金额数“取现”按钮n 根据输入找零金额增加售货机里的找零金额,并添加一条取现记录当Nud为0单击时提示没有输入要添加的金额数“补充饮料”按钮n 根据输入的商品编号和数量,向商品表里增加库存量,并添加一条饮料补充记录当Nud为0单击时提示没有输入要添加的商品数;当文本框为空时,提示没有输入要添加的商品编号u 销售记录
15、界面:图3.2.4软件设计规格要求:界面对象单击事件其它说明页面初始化n 显示所有销售记录“查询”按钮n 根据输入商品编号查询销售记录当文本框为空单击时提示没有输入要查询的商品编号“返回”按钮n 回到页面初始化u 各饮料销售情况汇总界面:图3.2.5软件设计规格要求:页面初始化:显示所有饮料的交易次数u 系统管理员主界面界面:图3.3.1说明:1根据系统功能模块,参考主界面图,设计主菜单、工具栏和状态栏,工具栏中按钮要加提示(tip)。2.主界面窗体名为“TopMain”3编写菜单和工具栏按钮单击事件,实现当单击该对象时显示对应窗体。4.创建各个功能模块窗体,窗体要求如下: 窗体名名称标题窗体
16、类型普通管理员管理SDrinks普通管理员管理SDI(子窗体)系统管理员管理SSalement系统管理员管理SDI销售额汇总SSale销售额汇总SDI零钱补充记录SDrinkTimes零钱补充记录SDI取现记录STakeAwayMoney取现记录SDI商品补充记录SAddDrink商品补充记录SDI普通管理员登陆记录SAdminloginment普通管理员登陆记录SDI系统管理员登陆记录SAdminToploginment系统管理员登陆记录SDI u 普通管理员管理界面:图3.3.2界面的3个状态:初始化状态,添加状态,修改状态图3.3.3状态表:状态基面各控件的状态初始化状态n “添加”、“
17、删除”、“修改”、“清空”按钮可用。n 其他控件不可用n GridView显示所有普通管理员资料。添加状态n “清空”按钮可用。n “添加”、“删除”、“修改”不可用n “确定”和“取消”可用修改状态n “添加”、“删除”、“修改”、“清空”按钮不可用。n “确定”和“取消”可用软件规格要求:界面对象单击事件其它说明初始化界面进入初始化状态密码和确认密码编辑框输入时显示“*”各界面对象(主要是输入对象和按钮)按状态转换的要求改变其Enabled属性“添加”按钮n 转换至“添加状态”。“修改”按钮n 装换至“修改状态”。“删除”按钮n 提示用户是否确定删除普通管理员,若是,则继续下步骤,否则什么
18、都不做。n 尝试删除数据库中指定普通管理员记录,不成功的原因可能是该普通管理员有在其他表中存在参照,由外键约束产生异常。n 不论成功与否,都显示提示信息。n 删除后回到“初始化状态”。n 刷新GridView,重新显示所有普通管理员信息。“确定”按钮n 判断密码和确认密码是否一致,不一致提示并返回,否则可继续进行数据保存。n 根据当前状态决定添加或修改数据库中普通管理员信息。n 不论成功与否,都显示提示信息。保存成功回到初始化状态,不成功返回(什么事也别做)n 刷新GridView,重新显示所有普通管理员信息。“取消”按钮n 取消此次操作,返回初始状态u 系统管理员管理界面:图3.3.4界面的
19、3个状态:初始化状态,添加状态,修改状态图3.3.5状态表:状态基面各控件的状态初始化状态n “添加”、“删除”、“修改”、“清空”按钮可用。n 其他控件不可用n GridView显示所有系统管理员资料。添加状态n “清空”按钮可用。n “添加”、“删除”、“修改”不可用n “确定”和“取消”可用修改状态n “添加”、“删除”、“修改”、“清空”按钮不可用。n “确定”和“取消”可用软件规格要求:界面对象单击事件其它说明初始化界面进入初始化状态密码和确认密码编辑框输入时显示“*”各界面对象(主要是输入对象和按钮)按状态转换的要求改变其Enabled属性“添加”按钮n 转换至“添加状态”。“修改
20、”按钮n 装换至“修改状态”。“删除”按钮n 提示用户是否确定删除系统管理员,若是,则继续下步骤,否则什么都不做。n 尝试删除数据库中指定系统管理员记录,不成功的原因可能是该系统管理员管理员有在其他表中存在参照,由外键约束产生异常。n 不论成功与否,都显示提示信息。n 删除后回到“初始化状态”。n 刷新GridView,重新显示所有系统管理员信息。“确定”按钮n 判断密码和确认密码是否一致,不一致提示并返回,否则可继续进行数据保存。n 根据当前状态决定添加或修改数据库中系统管理员信息。n 不论成功与否,都显示提示信息。保存成功回到初始化状态,不成功返回(什么事也别做)n 刷新GridView,
21、重新显示所有系统管理员信息。“取消”按钮n 取消此次操作,返回初始状态u 销售额汇总界面:图3.3.6软件设计规格要求:页面初始化:显示所有饮料的销售总额。u 取现记录界面:图3.3.7软件设计规格要求:界面对象单击事件其它说明页面初始化n 显示所有取现记录“查询”按钮n 根据输入普通管理员编号查询取现记录当文本框为空单击时提示没有输入要查询的普通管理员编号“返回”按钮n 回到页面初始化u 零钱补充记录界面:图3.3.8软件设计规格要求:界面对象单击事件其它说明页面初始化n 显示所有零钱补充记录“查询”按钮n 根据输入普通管理员编号查询零钱补充记录当文本框为空单击时提示没有输入要查询的普通管理
22、员编号“返回”按钮n 回到页面初始化u 商品补充记录界面:图3.3.9软件设计规格要求:界面对象单击事件其它说明页面初始化n 显示所有商品补充记录“查询”按钮n 若选择了“根据商品编号”根据输入商品编号查询商品补充记录;n 若选择了“根据普通管理员”根据输入商品编号查询商品补充记录。当文本框为空单击时提示没有输入要查询的商品编号或者管理员编号“返回”按钮n 回到页面初始化u 普通管理员登陆记录界面:图3.3.10软件设计规格要求:界面对象单击事件其它说明页面初始化n 显示所有普通管理员登陆记录“查询”按钮n 根据输入普通管理员编号查询普通管理员登陆记录当文本框为空单击时提示没有输入要查询的普通
23、管理员编号“返回”按钮n 回到页面初始化u 系统管理员登陆记录界面:图3.3.11软件设计规格要求:界面对象单击事件其它说明页面初始化n 显示所有系统管理员登陆记录“查询”按钮n 根据输入系统管理员编号查询系统管理员登陆记录当文本框为空单击时提示没有输入要查询的系统管理员编号“返回”按钮n 回到页面初始化程序设计总结u 开发过程的归纳和总结归纳:1、自动饮料售货机的前台顾客专区的饮料如何上架是个问题,不想走传统的手动的加载图片,每一次上新的饮料都点击pictruebox加载饮料图片很麻烦,所以采用了一种新方法,在商品表里把商品放到某个架号,顾客专区一运行就读取图片到货架上,以及相应的商品编号,
24、价格,更方便快捷的上架新的饮料。2、自动饮料售货机的后台管理员专区,分普通管理员和系统管理员,普通管理员管理商品,查看销售情况,取现,添加零钱的权限;系统管理员管理普通管理员,查看销售总额和各管理员的活动记录,以及添加系统管理员和管理系统管理员总结:总的来说完成了老师的要求,当然也挺满意我们的成果。但是,我们的作品还有些待改善的地方,比如没有密码加密,登陆界面还可以实现在Combobox选择了身份后,在另一个Combobox自动读取在哪个表里的所有用户名;还可以在下拉列表选择用户名后显示当前用户的图片等等。u 所遇到的技术难点及解决办法1、数据库不过关:E-R图不熟悉;数据表有点乱。2、存储过程不会写:自动流水线号不会生成。解决办法:杨伟明老师的提点和找网上资料。致谢 在这两周的实训里,真的非常感谢我们的指导老师,杨XX老师对我们的作品的指正和给予的意见。同时也谢谢班上同学在我们编程有困难的时候及时给予的帮助。这同时也说明一个问题,当我们遇到难题的时候要及时的向老师和同学求助。今后,我们将会更加努力的。