⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmbp.frm

📁 使用VB编写的神经网络BP算法程序
💻 FRM
📖 第 1 页 / 共 3 页
字号:
         Width           =   495
      End
      Begin VB.Label Label2 
         Caption         =   "理想输出"
         BeginProperty Font 
            Name            =   "楷体_GB2312"
            Size            =   11.25
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Index           =   2
         Left            =   3000
         TabIndex        =   18
         Top             =   360
         Width           =   975
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "对比结果"
      BeginProperty Font 
         Name            =   "楷体_GB2312"
         Size            =   11.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   3855
      Left            =   4560
      TabIndex        =   2
      Top             =   480
      Width           =   1455
      Begin VB.PictureBox Picture3 
         Height          =   3015
         Left            =   240
         ScaleHeight     =   2955
         ScaleWidth      =   915
         TabIndex        =   3
         Top             =   600
         Width           =   975
         Begin VB.HScrollBar HScroll2 
            Height          =   255
            Left            =   0
            TabIndex        =   34
            Top             =   2760
            Width           =   735
         End
         Begin VB.VScrollBar VScroll2 
            Height          =   3015
            Left            =   720
            TabIndex        =   33
            Top             =   0
            Width           =   255
         End
         Begin VB.PictureBox Picture4 
            Height          =   2775
            Left            =   0
            ScaleHeight     =   2715
            ScaleWidth      =   675
            TabIndex        =   4
            Top             =   0
            Width           =   735
            Begin VB.TextBox Text2 
               Height          =   270
               Index           =   0
               Left            =   0
               TabIndex        =   5
               Text            =   "1"
               Top             =   0
               Visible         =   0   'False
               Width           =   450
            End
         End
      End
      Begin VB.Label Label2 
         Caption         =   "实际输出"
         BeginProperty Font 
            Name            =   "楷体_GB2312"
            Size            =   11.25
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Index           =   1
         Left            =   240
         TabIndex        =   6
         Top             =   360
         Width           =   975
      End
   End
   Begin VB.CommandButton Command2 
      Caption         =   "退出"
      BeginProperty Font 
         Name            =   "楷体_GB2312"
         Size            =   11.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1455
      Left            =   10440
      TabIndex        =   1
      Top             =   5640
      Width           =   975
   End
   Begin VB.CommandButton Command1 
      Caption         =   "网络学习"
      BeginProperty Font 
         Name            =   "楷体_GB2312"
         Size            =   11.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   735
      Left            =   840
      TabIndex        =   0
      Top             =   4920
      Width           =   1095
   End
   Begin VB.Label Label4 
      Caption         =   "阈调节系数"
      BeginProperty Font 
         Name            =   "楷体_GB2312"
         Size            =   11.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Index           =   1
      Left            =   720
      TabIndex        =   42
      Top             =   7560
      Width           =   1215
   End
   Begin VB.Label Label4 
      Caption         =   "权调节系数"
      BeginProperty Font 
         Name            =   "楷体_GB2312"
         Size            =   11.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Index           =   0
      Left            =   720
      TabIndex        =   40
      Top             =   6720
      Width           =   1215
   End
   Begin VB.Label Label4 
      Caption         =   "学习次数"
      BeginProperty Font 
         Name            =   "楷体_GB2312"
         Size            =   11.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Index           =   4
      Left            =   840
      TabIndex        =   37
      Top             =   5880
      Width           =   975
   End
   Begin VB.Label Label1 
      Alignment       =   2  'Center
      Caption         =   "BP 算法演示"
      BeginProperty Font 
         Name            =   "华文行楷"
         Size            =   36
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   3855
      Left            =   6120
      TabIndex        =   35
      Top             =   0
      Width           =   975
   End
   Begin VB.Line Line2 
      BorderWidth     =   3
      Index           =   1
      X1              =   2520
      X2              =   2880
      Y1              =   6240
      Y2              =   6480
   End
   Begin VB.Line Line2 
      BorderWidth     =   3
      Index           =   0
      X1              =   2760
      X2              =   2880
      Y1              =   6120
      Y2              =   6480
   End
   Begin VB.Line Line1 
      BorderWidth     =   3
      Index           =   0
      X1              =   1080
      X2              =   2760
      Y1              =   4680
      Y2              =   6360
   End
End
Attribute VB_Name = "FrmBP"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim Memory, CmdMark As Integer
Dim OY As Double
Private Sub Command1_Click()
Dim i, j, k As Integer
N = Val(Text6.Text)
L1 = Val(Text7.Text)
L2 = Val(Text8.Text)
Call Read_z_d
For j = 1 To NN
For i = 1 To KK
Err = Err + (d(j, i) - o(j, i)) ^ 2
Next i
Next j
Line3(0).X1 = 0
If CmdMark = 0 Then
Line3(0).Y1 = Picture15.Height / 2 - Err * 500
Line3(0).Y2 = Picture15.Height / 2 - Err * 500
Else
Line3(0).Y1 = OY
Line3(0).Y2 = OY
End If
Line3(0).X2 = 0

Call Erase_e
For k = 1 To N
Call StudyMain
Call Draw_e(k)
Call Write_o
Next k
OY = Line3(N).Y2
Call Write_Weight
Call Write_Key
Memory = N
CmdMark = 1
End Sub

Private Sub Command2_Click()
Unload Me
End Sub



Private Sub Form_Load()
Memory = 0
CmdMark = 0
ReDim V(JJ, II)
ReDim W(KK, JJ)
ReDim R(JJ)
ReDim Q(KK)
ReDim z(NN, II)
ReDim y(NN, JJ)
ReDim o(NN, KK)
ReDim d(NN, KK)
ReDim Er1(KK)
ReDim Er2(JJ)
Call Pic1Redraw
Call Text1Load
Call Pic3Redraw
Call Text2Load
Call Pic5Redraw
Call text3Load
Call Pic7Redraw
Call text4Load
Call Pic9Redraw
Call text5Load
Call Pic11Redraw
Call text9Load
Call Pic13Redraw
Call Text10Load
Line4.X1 = 0
Line4.Y1 = Picture15.Height / 2
Line4.X2 = Picture15.Width
Line4.Y2 = Picture15.Height / 2
Call Teacher
Call Write_z_d
Call Initial
Call Write_Weight
Call Write_Key
End Sub

Private Sub Write_z_d()
Dim i, j, k As Integer
For j = 1 To NN
 For i = 1 To II
  Text1((j - 1) * II + i).Text = z(j, i)
 Next i
Next j
For j = 1 To NN
 For k = 1 To KK
  Text3((j - 1) * KK + k).Text = d(j, k)
 Next k
Next j
End Sub

Private Sub Read_z_d()
Dim i, j, k As Integer
For j = 1 To NN
 For i = 1 To II
  z(j, i) = Val(Text1((j - 1) * II + i).Text)
 Next i
Next j
For j = 1 To NN
 For k = 1 To KK
  d(j, k) = Val(Text3((j - 1) * KK + k).Text)
 Next k
Next j
End Sub

Private Sub Write_Weight()
Dim i, j, k As Integer
For j = 1 To JJ
 For i = 1 To II
  Text5((j - 1) * II + i).Text = V(j, i)
 Next i
Next j
For k = 1 To KK
 For j = 1 To JJ
  Text4((k - 1) * JJ + j).Text = W(k, j)
 Next j
Next k
End Sub
Private Sub Write_Key()
Dim i, j, k As Integer
For j = 1 To JJ
   Text9(j).Text = R(j)
Next j
For k = 1 To KK
   Text10(k).Text = Q(k)
Next k
End Sub
Private Sub Write_o()
Dim j, k As Integer
For j = 1 To NN
 For k = 1 To KK
  Text2((j - 1) * KK + k).Text = o(j, k)
 Next k
Next j
End Sub
Private Sub Draw_e(L As Integer) '画线
Dim Err As Double
Err = 0
Dim i, j, k As Integer
For j = 1 To NN
For k = 1 To KK
Err = Err + (d(j, k) - o(j, k)) ^ 2
Next k
Next j
Err = Err / 2
Load Line3(L)
Line3(L).Visible = True
Line3(L).X1 = Line3(L - 1).X2
Line3(L).Y1 = Line3(L - 1).Y2
Line3(L).X2 = Line3(L - 1).X2 + Picture15.Width / N * L
Line3(L).Y2 = Picture15.Height / 2 - 500 * Err
End Sub

Private Sub Erase_e() '擦除画线
Dim i As Integer
For i = 1 To Memory
Unload Line3(i)
Next
End Sub

Private Sub Pic1Redraw() '视窗图片重绘子程序
'设置表格载体图片控件的属性
Picture2.Width = II * Text1(0).Width + 50
Picture2.Height = NN * Text1(0).Height + 50
'判断滚动条出现的不同情况
If Picture1.Width < Picture2.Width + Picture2.Left * 2 _
   And Picture1.Height < Picture2.Height + Picture2.Top * 2 Then
'水平、垂直滚动条都出现
   HScroll1.Left = 0
   HScroll1.Top = Picture1.Height - HScroll1.Height
   HScroll1.Width = Picture1.Width
   HScroll1.Max = Picture2.Width + 2 * Picture2.Left - Picture1.Width
   HScroll1.Min = 0
   
   VScroll1.Top = 0
   VScroll1.Left = Picture1.Width - VScroll1.Width
   VScroll1.Height = Picture1.Height - HScroll1.Height
   VScroll1.Max = Picture2.Height + 2 * Picture2.Top - Picture1.Height
   VScroll1.Min = 0
   HScroll1.Visible = True
   VScroll1.Visible = True
ElseIf Picture1.Width < Picture2.Width + Picture2.Left * 2 Then
      '只出现水平滚动条
      HScroll1.Left = 0
      HScroll1.Top = Picture1.Height - HScroll1.Height
      HScroll1.Width = Picture1.Width
      HScroll1.Max = Picture2.Width + 2 * Picture2.Left - Picture1.Width
      HScroll1.Min = 0
      HScroll1.Visible = True
      VScroll1.Visible = False
   ElseIf Picture1.Height < Picture2.Height + Picture2.Top * 2 Then
         '只出现垂直滚动条
         VScroll1.Top = 0
         VScroll1.Left = Picture1.Width - VScroll1.Width
         VScroll1.Height = Picture1.Height
         VScroll1.Max = Picture2.Height + 2 * Picture2.Top - Picture1.Height
         VScroll1.Min = 0
         HScroll1.Visible = False
         VScroll1.Visible = True
      Else
        HScroll1.Visible = False
        VScroll1.Visible = False
End If
HScroll1.SmallChange = 20
HScroll1.LargeChange = (HScroll1.Max - HScroll1.Min) / 10
HScroll1.Value = 0
VScroll1.SmallChange = 20
VScroll1.LargeChange = (VScroll1.Max - VScroll1.Min) / 10
VScroll1.Value = 0
End Sub

Private Sub HScroll1_Change()  '水平滚动条变化
Picture2.Left = 0 - HScroll1.Value
End Sub

Private Sub Text1Load() '调入文本框控件
Dim i, j As Integer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -