最高分急求VB程序代码!

2024年11月18日 19:53
有5个网友回答
网友(1):

TEXT4删除按全部清除处理,如果删除单个不好处理!

'设计时设置属性 Text4.MultiLine = True,Text4.ScrollBars = 2

'增加了  '随机生成50名学生成绩 命令按钮

'在添加学生时 自动生成 人数、平均分 所以取消了这两个按钮,用标签代替

'自动生成学号

Dim sNum() As String '学号

Dim sName() As String '名字

Dim s() As Double '分数

Dim NN As Integer '人数

Dim sNum1() As Integer '按学号排序的顺序

Private Sub Command1_Click()

Dim i As Integer

  If Len(Trim(Text1.Text)) = 0 Or Len(Trim(Text2.Text)) = 0 Or Len(Trim(Text2.Text)) = 0 Then

      MsgBox "输入数据错误!", , "输入错误"

      Exit Sub

  End If

  If NN = UBound(s) Then

    ReDim Preserve s(NN + 10), sName(NN + 10), sNum(NN + 10), sNum1(NN + 10)

  End If

  NN = NN + 1

  sNum1(NN) = NN

  sNum(NN) = Trim(Text1.Text)

  sName(NN) = Trim(Text2.Text)

  s(NN) = Val(Text3.Text)   '分数

  s(0) = s(0) + s(NN) '总分

  Text4.Text = Text4.Text & sNum(NN) & vbTab & sName(NN) & vbTab & s(NN) & vbCrLf

  

  Text5.Text = NN

  Text6.Text = Round(s(0) / NN, 2)

  Label2.Caption = "准备输入第" & NN + 1 & "个人"

  Text1.Text = Format(NN + 1, "0000")

  Text2.Text = ""

  Text3.Text = ""

End Sub

Private Sub Command2_Click()

  NN = 0

  Erase s, sName, sNum, sNum1

  ReDim s(10), sName(10), sNum(10), sNum1(10)

  Label2.Caption = "准备输入第" & NN + 1 & "个人"

  Text1.Text = Format(NN + 1, "0000")

  Text2.Text = ""

  Text3.Text = ""

  Text4.Text = ""

  Text5.Text = ""

  Text6.Text = ""

End Sub

Private Sub Command3_Click()

Dim i As Integer, j As Integer, m As Integer, dbl1 As Double, str1 As String, k As Integer

  Text4.Text = "按成绩排序" & vbCrLf

  k = 1

  For i = 1 To NN - 1

    m = i

    For j = i + 1 To NN

      If s(m) < s(j) Then m = j

    Next j

    If m <> i Then

      j = sNum1(m): sNum1(m) = sNum1(i): sNum1(i) = j '学号排序

      str1 = sNum(m): sNum(m) = sNum(i): sNum(i) = str1 '学号

      str1 = sName(m): sName(m) = sName(i): sName(i) = str1 '姓名

      dbl1 = s(m): s(m) = s(i): s(i) = dbl1 '分数

    End If

    If s(i) <> s(i - 1) Then k = i

    Text4.Text = Text4.Text & sNum(i) & vbTab & sName(i) & vbTab & s(i) & vbTab & k & vbCrLf

  Next i

  If s(i) <> s(i - 1) Then k = i

  Text4.Text = Text4.Text & sNum(i) & vbTab & sName(i) & vbTab & s(i) & vbTab & k & vbCrLf

End Sub

Private Sub Command4_Click()

Dim i As Integer, j As Integer

  Text4.Text = "按学号排序" & vbCrLf

  For i = 1 To NN

    For j = 1 To NN

      If sNum1(j) = i Then

        Text4.Text = Text4.Text & sNum(j) & vbTab & sName(j) & vbTab & s(j) & vbCrLf

        Exit For

      End If

    Next j

  Next i

End Sub

Private Sub Command5_Click()

Dim i As Integer, j As Integer, f() As Integer

  Text4.Text = "随机排序" & vbCrLf

  ReDim f(NN)

  Randomize

  For i = 1 To NN

redo:  f(i) = Int(Rnd * NN) + 1 '1-nn

    For j = 1 To i - 1

      If f(i) = f(j) Then GoTo redo

    Next j

    Text4.Text = Text4.Text & sNum(f(i)) & vbTab & sName(f(i)) & vbTab & s(f(i)) & vbCrLf

    

  Next i

End Sub

Private Sub Command6_Click()

Dim i As Integer

  '随机生成50名学生成绩

  Command2_Click '初始化数组

  For i = 1 To 50

    If NN = UBound(s) Then

      ReDim Preserve s(NN + 10), sName(NN + 10), sNum(NN + 10), sNum1(NN + 10)

    End If

    NN = NN + 1

    sNum1(NN) = NN

    sNum(NN) = Format(NN, "0000")

    sName(NN) = "姓名" & NN

    Randomize

    s(NN) = Int(Rnd * 61) + 40 '分数40-100

    s(0) = s(0) + s(NN) '总分

    Text4.Text = Text4.Text & sNum(NN) & vbTab & sName(NN) & vbTab & s(NN) & vbCrLf

  Next i

  Text5.Text = NN

  Text6.Text = Round(s(0) / NN, 2)

  Label2.Caption = "准备输入第" & i & "个人"

  Text1.Text = Format(NN + 1, "0000")

End Sub

Private Sub Form_Load()

  Me.Caption = "成绩统计系统"

  Command2_Click '初始化数组

  Text2.IMEMode = 1 '打开输入法

End Sub

Private Sub Text2_GotFocus()

  Text2.IMEMode = 1 '打开或关闭输入法

End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)

  If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 And KeyAscii <> 46 Then KeyAscii = 0    '只接受数字和小数点

End Sub

网友(2):

按图所示,题意是先在text1,text2,text3中输入内容,然后单击“添加”按钮后上述三个文本框中的内容被自动显示在text4中。
此题可以使用数据库也可以不用(用数组也能解决)。窗体上没有数据控件,可能是不用数据库吧。那就简单了!
text4.text=text4.text +text1.text +text2.text +text3.text+chr(13)+chr(10)
注意:将text4的multiline属性设置为true

网友(3):

TEXT4应该用LIST代替!
LIST使用起来比TEXT方便,TEXT4删除单个不好处理!

网友(4):

这个时间不太对哦, 应该白天来求的. 明天我再来看, 没人写的话我帮你写下

网友(5):

看看,顺便学习学习。