icloud官网邮箱登陆:求高手解答VB编程问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 17:10:08
我要做一个程序,界面已经弄好(地址我在下面补充),求高手帮忙写出程序,使用VB编的。以前都是笔算,但是每来的料都不一样,每次都要重算,想做一个程序,下次直接输入就能计算出结果的。
1。在输入来料宽度为Q,980.0<=Q<=1200.0,(取一位小数),
2。从列表中选择:左边裁掉P1(从3.0-5.0),右边同样为P2(3.0-5.0),〈这时来料宽度变为:K=Q-P1-P2,再将K裁成4种宽度不同的模版(103,112,122,203),则剩余材料为:Z=K-103*X1-122*X2-122*X3-203*X4。求MIN Z时(剩余最小)的X1,X2,X3,X4的值〉
3。点击计算,右边出现剩余材料Z最小值和相应的X1,X2,X3,X4的值。X为非负整数。
4。点击重置,全部清零!

这题简单,没有考虑高度,用递归

(VB6代码)将以下内容保存为 a.frm

VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3330
ClientLeft = 60
ClientTop = 345
ClientWidth = 5085
LinkTopic = "Form1"
ScaleHeight = 3330
ScaleWidth = 5085
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text2
Height = 2655
Left = 2640
MultiLine = -1 'True
TabIndex = 8
Top = 360
Width = 2175
End
Begin VB.Frame Frame1
Height = 2775
Left = 240
TabIndex = 0
Top = 240
Width = 2175
Begin VB.CommandButton Command1
Caption = "计算"
Height = 375
Left = 720
TabIndex = 7
Top = 2040
Width = 1215
End
Begin VB.ComboBox Combo2
Height = 300
Left = 960
Style = 2 'Dropdown List
TabIndex = 4
Top = 1440
Width = 975
End
Begin VB.ComboBox Combo1
Height = 300
Left = 960
Style = 2 'Dropdown List
TabIndex = 2
Top = 960
Width = 975
End
Begin VB.TextBox Text1
Height = 270
Left = 960
TabIndex = 1
Text = "980"
Top = 480
Width = 975
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "总宽度"
Height = 180
Left = 240
TabIndex = 6
Top = 525
Width = 540
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "右裁边"
Height = 180
Left = 240
TabIndex = 5
Top = 1500
Width = 540
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "左裁边"
Height = 180
Left = 240
TabIndex = 3
Top = 1020
Width = 540
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Dim Bk, i As Integer, a(4) As Integer, j As Integer, b() As Integer, c() As Integer, Maxz
Dim Q As Single, K As Single, Z As Single, P1 As Single, P2 As Single

Private Sub Command1_Click()
Q = Text1.Text
P1 = Combo1.Text
P2 = Combo2.Text
K = Q - P1 - P2
Maxz = K
ReDim b(3), c(3)

Call dg(0)
Text2 = ""
For i = 0 To 3
Text2 = Text2 & "板(宽" & Bk(i) & ")裁" & c(i) & "块" & vbCrLf
Next
Text2 = Text2 & "最少余料宽为:" & Maxz
End Sub

Private Sub Form_Load()
For i = 30 To 50
Combo1.AddItem i / 10
Combo2.AddItem i / 10
Next
Combo1.Text = "3"
Combo2.Text = "3"
Bk = Array(103, 112, 122, 203)
End Sub

Sub dg(t)
Dim i As Integer
If t < 4 Then
For i = 0 To 3
b(t) = i
dg t + 1
Next
Else
Z = K - Bk(0) * b(0) - Bk(1) * b(1) - Bk(2) * b(2) - Bk(3) * b(3)
If Z < Maxz And Z >= 0 Then Maxz = Round(Z, 1): c = b
End If
End Sub