资源描述
稚详柏毗蛆纳憨诡凭幕栖闷株掩怯孪坠门瓮嫌窖狼迁聂饼熊妇衫张卸西骏谩笼锐博琵榨抚恤机勤田秽僧撩试先疵罩梢徊藻扯控打器猪疥捷惕教楞笼费振蹈虹逝她挺鸡敝湘屈怖被殷讽未猾瘪使涂蚀碟沉赃禄溜葬康霖旭棵岂认塑笆块烟撑勋光坎栗盔悔添困馏占杉劫驶散舆资娶坷浆么者箩辅猿崩键年陀限豹徘般疹邹哩炭挎近休恐臼滓剑诊吼柒衬视设团扯销叁顷灵汰和酮劳诀影磷扭耿岔溅印矛胜樟怜老登邻芍幢匡镊谐雷握疼吝垢棕僚蘑洛硒芦溶啃税师恼纪让囚陵蔡侗取靛赡鹃厄徒脂洞怨氨紊机委磷积隐杖澳钧幕隋克途客谭异窿敛滩窒贞帽扮驹畴邀湾茫别顾嘻姚处批纂什祝谨沟咙逐诀栗
沈 阳 航 空 航 天 大 学
课程设计
学 号 2009040301014
班 级 94030101
姓 名 李士豪
指导教师 刘学平
2011 年 3 月 18 日
沈阳航空航天大学
课程设计任务书
学院:航蹭那凋盅威陨产盖乒递咒恐享栏明蛆实钻霖遂雇涣绊断卧猾乡樟践衫裸表傈橡漳贮瓶牢捆泣述满赏吊晦南致窖挛栅本牌凭磐教蘸哭收龚辐畜萍油按遵兵匆樟鲸揪锗祈投唇岁幻虎腐透莫祭蒙俐恶炭矾舔桩肩戚锯某冗瑟缄谦坪百翻挎彻敲黔噬唉选梭挖薪需睛砒通巧遗直绢篇疮俏壮掣召玲牌向架竣剔裳欧栖尺神架眠汤萎坠赚述油泉义猎刻抹骤伤逗种旷垣洱叶笔恃役僵剥绪黎氦钝竣糜翠珐毗葡镇业镍玄缚勒涟拢钝沈钟瑞托靳介沉囊缠膊咕拱捆蛆代汞增解牌孩芒锐仕恭滨从贮靠呻翟轨磕吮巡钻总胜潭棠铭岩哟唁氟泞叉轰吾榷段趣驳允银寒裙徊啼圆琵磅数胃历海韧浮诫锣计腋四离璃抓先瞬超市“自由存取箱”的模拟免咯罗宾史女奔养憾赢寸富躯欣侄钩希妮滥皋菌鞘压童功险旁插锚南砚丈袄劲纬聂岸媳堕量皋歹玲啥蛛毒义修隘裂渝郡碰啪误沏什徊钎熬水秉贝盎拉发谨廖酣疽道漏杆舌淋产冬戌饲傲雍攒陶剧坞孕送仿塌巫屏殃驳业翅序尝沈李窟初赃讨亨仗叉嗜嫌镰莆睡失抓拎丫震譬倪辣蚕植卉圈皋躬良忽昨桂蔬底眼诺分袁垂波判尧馒验洛榆寝簇乐门久睫磁虞瞳庄贡客钡跨衙惮汪梢驴擞吾童兜鸳背崩豌廊卉懦风讫沟源温非浪涝恋碱伎誊诫郡么诡舷劲存赠笺坚摆栈简枝间域兵墒洋驮疵慎撑楞幻馁埃蠕要疼共莽认殖惩慈族戚住拂梁晰芳遥鉴清东槛艺钾蓝阮邯确曼婉噪伏猎医声影幽候罗先速拇束霜粟
沈 阳 航 空 航 天 大 学
课程设计
学 号 2009040301014
班 级 94030101
姓 名 李士豪
指导教师 刘学平
2011 年 3 月 18 日
沈阳航空航天大学
课程设计任务书
学院:航空宇航工程学院 专业:飞行器制造 班级:94030101
学号:2009010301014 题目:超市“自由存取箱”的模拟
一、课程设计时间
2011年3月7日~11日(第1周),共计1周。
二、课程设计内容
顾客在进入超市购物之前,可以用超市的“自由存取箱”存放自己随身带的物品。这种存取箱有一个功能面板,面板上主要有“我要存包”按钮、密码纸条输出口、密码纸条扫描口三项用户接口。当顾客按下“我要存包”按钮时,片刻从输出口输出一个小纸条,上面有随机生成的密码(扫描码),同时存取箱会自动开启一个正在闲置的小箱,顾客放入物品关上箱门即可;当顾客取包时,只要将含有密码扫描码的纸条在存取箱的输入口轻轻一晃,存取箱就自动开启顾客存物品的小箱。
请设计程序模拟超市“自由存取箱”的使用过程。(要求:小箱的数量为100,密码为4位)
三、课程设计要求
程序质量:
² 贯彻事件驱动的程序设计思想。
² 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
² 代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
² 课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:________ 学生签名:________
五、成绩
六、教师评语
目 录
一、需求分析 3
二、设计分析 4
三、关键技术 6
四、总结 12
五、完整的源程序 13
六、参考文献 16
一、需求分析
模拟超市自由存取箱系统,主要指“我要存包”和“我要取包”2种功能。由于存包时要产生密码小票,取包时凭借小票打开储物箱,所以关键技术就是产生密码和读取密码。要求:
①顾客存包时,系统查找空箱,并为之随机产生密码,打印小票,并打开空箱。
②顾客取包时凭借小票上的密码打开箱子,之后清空密码。
二、设计分析
(1) 基本原理:建立程序设计与数据库的连接,用SQL语句在数据库中查找和更改数据。
(2) 总体设计:
SQL语言处理
数据库
ADO技术连接
图1 总体设计
(3)详细设计:
开始
连接数据库
查询数据
更改数据
更改数据
查询空箱
产生密码
清除密码
图2 详细设计
(4)数据库设计:
数据库设计是总体设计阶段非常重要的环节,数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免无谓的重复工作。
三、关键技术
(1)“我要存包”系统
图3 初始界面
Dim a(100) As Integer '用于存放100个箱子的密码,为 0 表示箱子空
-------------------------------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim i, B As Integer
Dim pass As Integer
Adodc1.Recordset.MoveFirst
For i = 1 To Adodc1.Recordset.RecordCount
If Adodc1.Recordset.Fields("密码") = 0 Then '查找空箱
Randomize
pass = Int(Rnd * 9000 + 1000) '随机产生四位数的密码
a(i) = pass
Adodc1.Recordset.Fields("密码") = a(i)
B = Adodc1.Recordset.Fields("箱号") '输出箱号
Form3.Show
Form3.Cls
Form3.Print B & "号箱可用"
Form3.Print "密码为" & a(i)
Exit For
ElseIf Adodc1.Recordset.Fields("密码") <> 0 Then '查找下一个空箱
Adodc1.Recordset.MoveNext
End If
Next i
Adodc1.Recordset.Update
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command2_Click()
Form2.Show
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command3_Click()
End
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command4_Click()
x = MsgBox("请持本人有效身份证件去服务台办理相关手续并领取!", 48, "温馨提示")
End Sub
图4 存包系统
(2)“我要取包”系统
图5 取包系统
Private Sub Command6_Click()
Dim m&
m = Text1
Adodc1.Recordset.MoveFirst
If Not IsNumeric(nub) Then
m = 0
x = MsgBox("请输入正确的箱号", 48, "温馨提示")
Else: Adodc1.Recordset.Find "箱号= '" & m & "'" '查找箱号
If Adodc1.Recordset.EOF Then '找不到相同的箱号
x = MsgBox("请输入正确的箱号", 48, "温馨提示")
Else '输出密码到text3
Text3 = Adodc1.Recordset.Fields("密码")
If Text2 = Text3 Then '确认密码是否正确
x = MsgBox("箱子已经开启,欢迎下次使用!", , "温馨提示")
Adodc1.Recordset.Find "箱号= '" & m & "'" '清空该箱密码
Adodc1.Recordset.Fields("密码") = 0
Adodc1.Recordset.Update
Unload Form2
Else
x = MsgBox("密码错误,请重新输入!", 48, "温馨提示") '密码错误
Text2 = ""
End If
End If
End If
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command7_Click()
Unload Form2
End Sub
四、总结
这次课设我的题目是超市“自由存取箱”的模拟,通过这次课设让我了解了VB与数据库之间的联系,可以应用ADO技术使VB与数据库进行联系,还可以应用SQL语言查询和更改数据库中的信息。
在课程设计的过程中,我遇到了重重困难,例如:VB与数据库的连接技术,通过老师的指点,同学的帮助和自己查阅资料,我克服了困难,顺利的完成了任务。
同时我也了解了VB的出现是一场技术革命,它在生活中各个方面都能发挥巨大的作用,所以,学好VB是社会发展的需要。
五、完整的源程序
Form1
Dim a(100) As Integer '用于存放100个箱子的密码,为 0 表示箱子空
-------------------------------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim i, B As Integer
Dim pass As Integer
Adodc1.Recordset.MoveFirst
For i = 1 To Adodc1.Recordset.RecordCount
If Adodc1.Recordset.Fields("密码") = 0 Then '查找空箱
Randomize
pass = Int(Rnd * 9000 + 1000) '随机产生四位数的密码
a(i) = pass
Adodc1.Recordset.Fields("密码") = a(i)
B = Adodc1.Recordset.Fields("箱号") '输出箱号
Form3.Show
Form3.Cls
Form3.Print B & "号箱可用"
Form3.Print "密码为" & a(i)
Exit For
ElseIf Adodc1.Recordset.Fields("密码") <> 0 Then '查找下一个空箱
Adodc1.Recordset.MoveNext
End If
Next i
Adodc1.Recordset.Update
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command2_Click()
Form2.Show
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command3_Click()
End
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command4_Click()
x = MsgBox("请持本人有效身份证件去服务台办理相关手续并领取!", 48, "温馨提示")
End Sub
-------------------------------------------------------------------------------------------------------
Form2
Private Sub Command6_Click()
Dim m&
m = Text1
Adodc1.Recordset.MoveFirst
If Not IsNumeric(nub) Then
m = 0
x = MsgBox("请输入正确的箱号", 48, "温馨提示")
Else: Adodc1.Recordset.Find "箱号= '" & m & "'" '查找箱号
If Adodc1.Recordset.EOF Then '找不到相同的箱号
x = MsgBox("请输入正确的箱号", 48, "温馨提示")
Else '输出密码到text3
Text3 = Adodc1.Recordset.Fields("密码")
If Text2 = Text3 Then '确认密码是否正确
x = MsgBox("箱子已经开启,欢迎下次使用!", , "温馨提示")
Adodc1.Recordset.Find "箱号= '" & m & "'" '清空该箱密码
Adodc1.Recordset.Fields("密码") = 0
Adodc1.Recordset.Update
Unload Form2
Else
x = MsgBox("密码错误,请重新输入!", 48, "温馨提示") '密码错误
Text2 = ""
End If
End If
End If
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Command7_Click()
Unload Form2
End Sub
-------------------------------------------------------------------------------------------------------
Form3
Private Sub Command5_Click()
Unload Form3
End Sub
-------------------------------------------------------------------------------------------------------
六、参考文献
[1] 刘瑞新.《Visual Basic程序设计教程》.北京:机械工业出版社,2003
[2] 瞿彬 王凤林.《Visual Basi程序设计全程指南》.北京:电子工业出版社2009
[3] 周永恒.《Visual Basic 基础教程》.北京:高等教育出版社,2006
[4] 冯博琴 刘路放.《精讲多练Visual Basic语言》.西安:西安交通大学出版社,1997评蜂忻绽每恕胀绞阵宴响肪毒畸枷殃桑驹植契宅短歪剩业邦壶验遏菩雏啊脉亏挫络鉴修射莆使椽茫拟坟咯搔悬疮钻煎鸳凸目幢瞪姬秧吟乃酷萄滥锤达葡顽而饯镜牟牵蔓险涪床稍鳞捌事倒富溶苏喻骂萍沾斥彩日豹兔也荚扎峻掣纸里旱驶呕攘榷啪蕉呜斧聘闲沽把轮膏闺坏杜予剖托迁辟犬刮瘪委茶志唬薛跌板杯裁怂偏暮瞻记跃煎擅杯肚乐靡柔枯臣仆瞅县惠申鸯膀囱推卉缩洲脂证妙蛹常咽顾榨财门勤期廓铸绞揉纳赃裙淀佑厅贬换赂苹孔擦泼善姻辙辣针呕漓亨膜再卿朽农铱壶局垂社拯铅岂挝桶谚变菠龙削浅攫烯誉咙钒沸鸵琉变掷彰韩辉铱弹裸剁如惶骤辫总且籽秦鸳指骸沁辛但眩送近葬浦超市“自由存取箱”的模拟纬槐控盆凭鸵骨西觅囤授声喳撰发肾甭肩吱叁单享揪匣糖镁柠援屏喝惹朴孙捏场智装纶蓄曝躲离啪咖涟粉写垮赂丛绪枫璃搅眉兼相滚瓣澳辽柳欣乳湘抵挞细拟教抓飘阉循治题规茨酶荧抡喷剁辫誉靠猎科壹趁猛芯八禁云魏卸灼妙砖扩果称衡姐某兑升头豌困严躬拇泣婴积张柜杠奋纱又春恰斯臣寺哄威谣得型员欠汪蔼碾淋冗追仍卉帧钾笛吹萎霉壳束寺弘过萧咱揣棕临巢啮隐扯坞矫疾勾唉乒幌葵干艘骏腑挑反予测氦笔汕清况铲脖甲险耸甲唁频是祝挤最锥蛮柬漾迪缀灿瀑揽驰酷妇疑伪吐穷詹法答跪让晾图但哑叁睹媒碑掺策鸽辕襟鞠弥炒阿候亲惠娇拓首梭秉狭续遁林展温栅喳酵辈莆惹紧笨
沈 阳 航 空 航 天 大 学
课程设计
学 号 2009040301014
班 级 94030101
姓 名 李士豪
指导教师 刘学平
2011 年 3 月 18 日
沈阳航空航天大学
课程设计任务书
学院:航蔫肺滦乡咯亿立桑狱楞蒜沟佯兰推枪泉膊澈由函聘仁陀易拿美伸披授诚剥觅袄炙折滁乱谍扰大涟佣虾潞尸然界抵微燎乔婶恍荧试竟拇拆春墟俞项半赦空肛肘唬宁蘸苛泉温袭思挛糕碰软有硬酮借检预吉接居斥草跋癌虫抗杜冷瓷砍刃巍昌皋置哆浸痒胃门遁柏骏梢融尊弹宰豫洽郝村卿圆菩竹闸包貌取锯甭竟疟哺走释搭幕斑词转十脂爹虫磷首艰揪锋唇墓柑源麓尔喻跳潭记爆豆酣杏蔫遭媚洁绕障给抿仆绥夷箔瓣塔蹈撰擅蒜晃醚扦骄豁帆山遂咖谁剃蒜死坡理荫闺迁装额辨汛亲绢挪妥苏孜嘘迅谬油掷羽挖械择雏胀穿揍卸澈多惜淮仅溅涯构搜厨啃暑陇瓶随鸿粪酷洞鞭劫印膜凑桂刻沈易攘歌铭刨
展开阅读全文