vb 自定义数据做成绩的录入和查询,这个要怎么实现。
发布网友
发布时间:2022-04-10 07:15
我来回答
共2个回答
热心网友
时间:2022-04-10 08:44
Public Type Studen '定义一个名为Student的类型
StuIndex As Integer '储存序号
Name As String ‘储存姓名
Score As Double '储存成绩
End Type
Public StuData() As Studen '声明一个数组
Public StuCount As Integer ’声明储存学生总数的变量
Ptivate sub Command1_Click() '录入按钮
StuCount = StuCount +1
ReDim Preserve StuData(StuCount )As Studen
'重声明动态数组大小,现在StuCount =1,加上Preserve关键字是为了在重声明时保留以前的数据
StuData(StuCount-1 ).StuIndex =Text1.Text '序号文本框
StuData(StuCount-1 ).Name =Text2.Text '姓名文本框
StuData(StuCount-1 ).Score =Text3.Text '成绩文本框
List1.AddItem Text1.Text & “ ” & Text2.Text & “ ” & Text3.Text
'每个数据之间隔三个空格
End Sub
Ptivate sub Command2_Click() '查询按钮
'这里要说明的是,例如:要查询序号,那么姓名,成绩文本框必须为空
'同理,要查询姓名,那么学号,成绩必须为空
'不支持根据成绩查询(因为成绩可以是相同的)
If Text1.Text <> "" Then '如果学号不为空(就是查询学号)
For i = 0 To StuCount '循环去找
If StuData(i).StuIndex = Text1.Text Then '如果与给出的序号相同,就显示出来
Text2.Text = StuData(i).Name '显示姓名
Text3.Text = StuData(i).Score '显示成绩
End If
Next
End If
If Text2.Text <> "" Then '如果姓名不为空(就是查询姓名)
For i = 0 To StuCount '循环去找
If StuData(i).Name= Tex2.Text Then '如果与给出的姓名相同,就显示出来
Text1.Text = StuData(i).StuIndex '显示姓名
Text3.Text = StuData(i).Score '显示成绩
End If
Next
End If
End Sub
代码打完了,其实如果是成绩录入查询之类的建议用数据库。不懂得追问吧~追问运行时 If StuData(i).Name= Tex2.Text Then 要求对象 ,怎么回事,??
追答哦,抱歉,打字的时候手误,应该为:
If StuData(i).Name= Text2.Text Then
(原来的 Tex2.Text 的2前面有一个 t )
热心网友
时间:2022-04-10 10:02
Public Type Studen '定义一个名为Student的类型
StuIndex As Integer '储存序号
Name As String ‘储存姓名
Score As Double '储存成绩
End Type
Public StuData() As Studen '声明一个数组
Public StuCount As Integer ’声明储存学生总数的变量
Ptivate sub Command1_Click() '录入按钮
StuCount = StuCount +1
ReDim Preserve StuData(StuCount )As Studen
'重声明动态数组大小,现在StuCount =1,加上Preserve关键字是为了在重声明时保留以前的数据
StuData(StuCount-1 ).StuIndex =Text1.Text '序号文本框
StuData(StuCount-1 ).Name =Text2.Text '姓名文本框
StuData(StuCount-1 ).Score =Text3.Text '成绩文本框
List1.AddItem Text1.Text & “ ” & Text2.Text & “ ” & Text3.Text
'每个数据之间隔三个空格
End Sub
Ptivate sub Command2_Click() '查询按钮
'这里要说明的是,例如:要查询序号,那么姓名,成绩文本框必须为空
'同理,要查询姓名,那么学号,成绩必须为空
'不支持根据成绩查询(因为成绩可以是相同的)
If Text1.Text <> "" Then '如果学号不为空(就是查询学号)
For i = 0 To StuCount '循环去找
If StuData(i).StuIndex = Text1.Text Then '如果与给出的序号相同,就显示出来
Text2.Text = StuData(i).Name '显示姓名
Text3.Text = StuData(i).Score '显示成绩
End If
Next
End If
If Text2.Text <> "" Then '如果姓名不为空(就是查询姓名)
For i = 0 To StuCount '循环去找
If StuData(i).Name= Text2.Text Then '如果与给出的姓名相同,就显示出来
Text1.Text = StuData(i).StuIndex '显示姓名
Text3.Text = StuData(i).Score '显示成绩
End If
Next
End If
End Sub
为啥错误呢?