vb存储柜的实现,【一个超实用的小软件】

vb存储柜的实现,【一个超实用的小软件】

vb存储柜的实现,【一个超实用的小软件】

老规矩,先上效果图
在这里插入图片描述
1初始化

Private Sub Form_Load()
    Dim i As Integer
    If Dir(App.Path & "\data.dat") <> "" Then
        Open App.Path & "\data.dat" For Random As 1 Len = Len(Infos(0))
        For i = 0 To 23
            Get #1, , Infos(i)
        Next
        Close 1
    End If
    Set pic_lighton = LoadPicture(App.Path & "\lighton.bmp")
    Set pic_lightoff = LoadPicture(App.Path & "\lightoff.bmp")
    Set pic_cabineton = LoadPicture(App.Path & "\cabineton.bmp")
    Set pic_cabinetoff = LoadPicture(App.Path & "\cabinetoff.bmp")
    For i = 0 To 23
        If Infos(i).Occupied Then
            Set imgCab(i).Picture = pic_cabinetoff
            Set imgLight(i).Picture = pic_lighton
        Else
            Set imgCab(i).Picture = pic_cabinetoff
            Set imgLight(i).Picture = pic_lightoff
        End If
    Next
     
    Shape1.FillColor = RGB(3, 82, 35)
    DrawNumber ("-------")
End Sub

在这里插入图片描述

在一开始加载的时候,需要读入二进制文件的数据,这个数据是保存了存储柜是否保存了东西,保存密码是多少,保存的东西是什么。然后根据数据进行红灯亮起。

2数据保存

Private Sub Form_Unload(Cancel As Integer)
    Dim i As Integer
    Open App.Path & "\data.dat" For Random As 1 Len = Len(Infos(0))
    For i = 0 To 23
        Put #1, , Infos(i)
    Next
    Close 1
End Sub

既然在加载的时候需要把数据读进来,那么卸载的时候就需要把数据保存起来。

3存放东西,随机出一个密码

 For i = 0 To 23
        If Infos(i).Occupied = False Then Exit For
    Next
    If i > 23 Then
        DrawNumber ("0000000")
        Beep
        Exit Sub
    End If
    
    Do
        Randomize
        n = Rnd * 23
        If Not Infos(n).Occupied Then
            Do
                i = Rnd * 10000000
                strPassword = Right("0000000" & CStr(i), 7)
                For i = 0 To 23
                    If Infos(i).Occupied Then
                        If strPassword = Infos(i).Code Then
                            Exit For
                        End If
                    End If
                Next
                If i > 23 Then Exit Do
            Loop
            Infos(n).Occupied = True
            Infos(n).Code = strPassword
            Exit Do
        End If
    Loop
    
    no = n
    state = 1
    MsgBox "箱号为:" & n + 1 & ",密码为:" & strPassword & "" & vbCrLf & "请放入物品并关上柜门。", vbInformation, "请记录"
    
    
    imgCab(n).Picture = pic_cabineton
    lblCab(n).Visible = False
    Command1.Visible = True
    Command1.Caption = "放入物品"
    Command1.Left = imgCab(n).Left + 38
    Command1.Top = imgCab(n).Top + 40
    imgGoods.Left = imgCab(n).Left + 32
    imgGoods.Top = imgCab(n).Top + 8

在这里插入图片描述
这里面完整的流程是先知道一个有空的箱子,这里只需要找到没有保存密码的数据就行。然后随机出一个密码,让客户记住就行。

4取物品

Private Sub cmdNumber_Click(Index As Integer)
    Dim i As Integer
    
    If state <> 0 Then Exit Sub
    
    If Len(strInput) = 7 Then strInput = ""
    strInput = strInput & Index
    DrawNumber (strInput)
    
    If Len(strInput) = 7 Then
        For i = 0 To 23
            If Infos(i).Occupied And Infos(i).Code = strInput Then Exit For
        Next
        If i > 23 Then
           ' strInput = ""
            Beep
        Else
            no = i
            state = 2
            imgCab(no).Picture = pic_cabineton
            lblCab(no).Visible = False
            Command1.Visible = True
            Command1.Caption = "取出物品"
            Command1.Left = imgCab(no).Left + 38
            Command1.Top = imgCab(no).Top + 40
            imgGoods.Left = imgCab(no).Left + 32
            imgGoods.Top = imgCab(no).Top + 8
            DrawNumber (no + 1)
            imgGoods.Picture = LoadPicture(App.Path & "\" & Infos(no).Goods & ".bmp")
             imgGoods.Visible = True

        End If
    End If
    
   
End Sub

最后只剩下一个动作了,那就是输入密码取物品。只要连续输入的数字和存储的密码是相同的,那就打开对应的柜子。

在这个平台上有收徒的打算,如果小伙伴刚好需要一个能答疑,能带着你学习的师父,请联系我,q:2316773638

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2862.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 海量数据挖掘MMDS week3:社交网络之社区检测:基本技巧「建议收藏」

    http://blog.csdn.net/pipisorry/article/details/49052057海量数据挖掘MiningMassiveDatasets(MMDs)-JureLeskovec courses学习笔记之社交网络之社区检测:基本技巧-生成模型及其参数的梯度上升方法求解博客内容:社区检测的基本技巧部分,覆盖”overlappingcommunities”寻找最好集合

    2022年4月13日
    114
  • 警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

    警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA问题:安装TensorFlow(CPU版本),使用pipinstalltensorflow安装,安装一切顺利,但是在跑一个简单的程序时,遇到如下情况:大概意思是:你的CPU支持AVX扩展,但是你安装的TensorFlow版本无法编译使用。原因:除了通常的算术和逻辑,现代CPU提供了许多低级指令,称为扩展,例如,SSE2,SSE4,AVX等来自维基百科:高级矢量扩…

    2022年5月30日
    35
  • 华为技术专家居然把JVM内存模型讲解这么细致「建议收藏」

    华为技术专家居然把JVM内存模型讲解这么细致「建议收藏」全是干货的技术号:本文已收录在【github面试知识仓库】,欢迎star/fork:https://github.com/Wasabi1234/Java-Interview-Tutorial内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着os和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM高效稳定运行。不同JVM对于内存的划分方式和管理机制存在差异。结合JVM虚拟机规范,来探讨经典JVM内存布局。JVM运行时数据区.

    2022年5月24日
    35
  • Java Eclipse下载安装教程[通俗易懂]

    Java Eclipse下载安装教程[通俗易懂]一、下载:(1)Eclipse是一个开放源代码的项目,其官方网站是www.eclipse.org(2)从首页中单击DOWNLOAD按钮,进入图2所示的页面。(3)点击DownloadPackages,进入Eclipse下载页面。从EclipseIDEforJavaEEDevelopers后面选择适合当前系统的版本,这里单击64bit按钮,…

    2022年5月2日
    34
  • Flowable 6.7.0版本新功能特性

    Flowable 6.7.0版本新功能特性Flowable6.7.0版本主要增强的是BPM异步功能:1、实现了全局锁定机制,以更好地支持在具有多个Flowable引擎的设置中使用异步执行器2、添加了对多实例变量聚合的支持3、当多实例是一个自动步骤或一系列自动步骤时,为异步多实例使用添加了一个优化标志。如果设置,引擎将大大降低资源消耗,并删除乐观锁定异常,通常会提高性能4、从Task监听器抛出的异常不再包含在FlowableException中5、在此版本中,已升级到SpringBoot2.5.4和Spri

    2022年5月22日
    33
  • pthread_t定义结构

    pthread_t定义结构linux下被定义为:在linux履行pthread_t它被定义为"unsignedlongint",参考这里Windows下这样定义:/**Generichandl

    2022年7月2日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号