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

📄 考试教师主窗口.frm

📁 这是一个用VB编写的在线考试系统
💻 FRM
📖 第 1 页 / 共 3 页
字号:
      TabIndex        =   32
      Top             =   120
      Width           =   2055
   End
   Begin VB.Label Label1 
      Caption         =   "考生信息 共有:"
      Height          =   255
      Left            =   360
      TabIndex        =   29
      Top             =   120
      Width           =   1575
   End
   Begin VB.Menu indexmnu 
      Caption         =   "popmnu"
      Visible         =   0   'False
      Begin VB.Menu startser 
         Caption         =   "开始考试"
      End
      Begin VB.Menu stopser 
         Caption         =   "停止考试"
      End
      Begin VB.Menu lineA 
         Caption         =   "-"
      End
      Begin VB.Menu addfen 
         Caption         =   "为考生加时"
      End
      Begin VB.Menu twostud 
         Caption         =   "二考考生"
      End
      Begin VB.Menu runfen 
         Caption         =   "考生打分"
      End
      Begin VB.Menu lookfen 
         Caption         =   "查看分数"
      End
      Begin VB.Menu lineB 
         Caption         =   "-"
      End
      Begin VB.Menu helpme 
         Caption         =   "帮助"
      End
      Begin VB.Menu quitprg 
         Caption         =   "退出系统"
      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

Private Sub addfen_Click()
Call Command5_Click
End Sub



Private Sub Command10_Click()
Load Form4
Print #3, form3.Text1 & "开启打分系统!" & Date & Time & Chr(16) & Chr(17)
Form4.Visible = True
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub

Private Sub Command11_Click()
Load Form5
Form5.Visible = True
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub

Private Sub Command2_Click()
Sockser(0).Bind
Sockser(0).Listen
Command2.Enabled = False
Command3.Enabled = True
Form1.List1.AddItem ("服务器:" & "开始服务日期为:" & Date)
Print #3, "服务器:" & "开始服务日期为:" & Date & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:开始服务时间为:" & Time())
Print #3, "服务器:开始服务时间为:" & Time() & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:以开始服务!")
Print #3, "服务器:以开始服务!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Timer2.Enabled = True
Command7.Enabled = True
Command8.Enabled = True
Command9.Enabled = True
Text2.Enabled = True
Picture1.Picture = LoadPicture(App.Path & "\ico\serok.ICO")
 ' Update the tray icon.
    With TheData
        .hIcon = Picture1.Picture
        .uFlags = NIF_ICON
    End With
    Shell_NotifyIcon NIM_MODIFY, TheData
    Form1.stopser.Enabled = True
    Form1.startser.Enabled = False
End Sub
Private Sub Command3_Click()
Dim i As Integer
For i = 0 To 30
sockip(i, 1) = 1
Sockser(i).Close
Next
Command3.Enabled = False
Command2.Enabled = True
Timer2.Enabled = False
Command7.Enabled = False
Command8.Enabled = False
Command9.Enabled = False
Form1.List1.AddItem ("服务器:以停止服务!")
Print #3, "服务器:以停止服务!" & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:停止服务日期为:" & Date)
Print #3, "服务器:停止服务日期为:" & Date & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:停止服务时间为:" & Time())
Print #3, "服务器:停止服务时间为:" & Time() & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Picture1.Picture = LoadPicture(App.Path & "\ico\serlong.ICO")
 ' Update the tray icon.
    With TheData
        .hIcon = Picture1.Picture
        .uFlags = NIF_ICON
    End With
    Shell_NotifyIcon NIM_MODIFY, TheData
    Form1.startser.Enabled = True
    Form1.stopser.Enabled = False
End Sub
Private Sub Command4_Click()
Unload Me
End Sub

Private Sub Command5_Click()
Load Form2
Form2.Caption = "二考加时"
Print #3, form3.Text1 & "开启二考加时!在" & Date & Time & Chr(16) & Chr(17)
Form2.Visible = True
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub

Private Sub Command6_Click()
Load Form2
Form2.Caption = "二考考生加入"
Print #3, form3.Text1 & "开启二考考生加入!" & Date & Time & Chr(16) & Chr(17)
Form2.Visible = True
Form2.Text5.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub

Private Sub Command7_Click()
Dim i As Integer
For i = 1 To 30
If sockip(i, 1) = 5 Then
Sockser(i).SendData "get_time"
End If
Next
End Sub

Private Sub Command8_Click()
If Form1.Combo1.ListIndex = 0 Then
For bytemp = 1 To 30
If sockip(bytemp, 1) = 5 Then
Form1.Sockser(bytemp).SendData "ser_intf" & Text2.Text
Print #3, form3.Text1.Text & "对所有在线考生发信息" & Text2.Text & Date & Time & Chr(16) & Chr(17)
End If
Next
Else
For bytemp = 1 To 30
If Form1.Combo1.List(Form1.Combo1.ListIndex) = sockname(bytemp, 1) Then
Form1.Sockser(bytemp).SendData "ser_intf" & Text2.Text
Print #3, form3.Text1.Text & "对" & sockname(bytemp, 1) & "发信息" & Text2.Text & Date & Time & Chr(16) & Chr(17)
Exit For
End If
Next
End If
End Sub

Private Sub Command9_Click()
List1.Clear
Command9.Enabled = False
End Sub

Private Sub Form_Load()
Me.stopser.Enabled = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
Unload Form2
Unload form3
Unload Form4
Unload Form5
Print #3, "服务器:以关闭程序!" & Chr(16) & Chr(17)
Close #3
Dim i As Integer
For i = 0 To 30
Sockser(i).Close
Next
' Remove the icon from the tray.
With TheData
     .uFlags = 0
    End With
    Shell_NotifyIcon NIM_DELETE, TheData
    
    ' Restore the original window proc.
    SetWindowLong Form1.hwnd, GWL_WNDPROC, OldProc
End Sub

Private Sub lookfen_Click()
Call Command11_Click
End Sub

Private Sub quitprg_Click()
Unload Form1
End Sub

Private Sub runfen_Click()
Call Command10_Click
End Sub

Private Sub Sockser_Close(Index As Integer)
Sockser(Index).Close
Close #(Index + 30)
If sockip(Index, 1) = 9 Then
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "完成了考试以正常离线!")
Print #3, "服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "完成了考试以正常离线!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Combo1.RemoveItem sockip(Index, 3)
For bytemp = sockip(Index, 3) To 30
If sockip(bytemp, 3) = 0 Then Exit For
sockip(bytemp, 3) = sockip(bytemp, 3) - 1
bytemp = idend(sockname(Index, 2))
If bytemp = 0 Then
Open App.Path & "\idend.dat" For Append As 7
Print #7, sockname(Index, 2) & Chr(16) & Chr(17)
Print #7, sockname(Index, 1) & Chr(16) & Chr(17)
Print #7, "999" & Chr(16) & Chr(17)
Close #7
End If
Next
ElseIf sockip(Index, 1) = 5 Then
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "发生末知错误!以离线!")
Print #3, "服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "发生末知错误!以离线!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Combo1.RemoveItem sockip(Index, 3)
For bytemp = sockip(Index, 3) To 30
If sockip(bytemp, 3) = 0 Then Exit For
sockip(bytemp, 3) = sockip(bytemp, 3) - 1
bytemp = idend(sockname(Index, 2))
If bytemp = 0 Then
Open App.Path & "\idend.dat" For Append As 7
Print #7, sockname(Index, 2) & Chr(16) & Chr(17)
Print #7, sockname(Index, 1) & Chr(16) & Chr(17)
Print #7, "999" & Chr(16) & Chr(17)
Close #7
End If
Next
Else
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "以离线!")
Print #3, "服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "以离线!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
End If
sockip(Index, 0) = 1
sockip(Index, 1) = 1
sockip(Index, 2) = 1
sockip(Index, 3) = 0
studentinf(Index) = ""
Label4(Index - 1).Caption = ""
Command1(Index).Picture = LoadPicture(App.Path & "\null.bmp")
If Not (Command1(Index).ToolTipText = "" Or Command1(Index).ToolTipText = vbNullString) Then
Text3.Text = Str(Val(Text3.Text) - 1)
End If
Command1(Index).ToolTipText = vbNullString
Text1.Text = Str(Val(Text1.Text) - 1)
End Sub
Private Sub Sockser_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Integer
Form1.List1.AddItem ("服务器:一个考生端请求连接")
Print #3, "服务器:一个考生端请求连接" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
For i = 1 To 30
If sockip(i, 1) = 1 Then
Sockser(i).Accept requestID
sockip(i, 1) = 2
Command1(i).Picture = LoadPicture(App.Path & "\comme.bmp")
Text1.Text = Str(Val(Text1.Text) + 1)
Form1.List1.AddItem ("服务器:一个考生端以连接" & "在sock:" & i & "上")
Print #3, "服务器:一个考生端以连接" & "在sock:" & i & "上考生IP:" & Sockser(i).RemoteHostIP & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Exit For
End If
Next
If i >= 31 Then
Form1.List1.AddItem ("服务器:一个考生端请求的连接没成功!可能是sock不足")
Print #3, "服务器:一个考生端请求的连接没成功!可能是sock不足" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
End If
End Sub
Private Sub Sockser_DataArrival(Index As Integer, ByVal bytesTotal As Long)
dat(Index) = ""
Sockser(Index).GetData dat(Index)
Select Case Left(dat(Index), 8)

Case "username"
Form1.List1.AddItem ("服务器:考生端请求登陆认证!考号为:" & Right(dat(Index), 12))
Print #3, "服务器:考生端请求登陆认证!考号为:" & Right(dat(Index), 12) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
sockip(Index, 0) = findid(Index, Right(dat(Index), 12))
Select Case (sockip(Index, 0))
Case 1
Form1.List1.AddItem ("服务器:考生端请求登陆认证完成!考号为:" & sockname(Index, 2))
Print #3, "服务器:考生端请求登陆认证完成!考号为:" & sockname(Index, 2) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Sockser(Index).SendData "user__ok" & sockname(Index, 1) & "\" & fen
Form1.Command1(Index).Picture = LoadPicture(App.Path & "\stud.bmp")
sockip(Index, 0) = 1
Case 2
Dim sp As String
sp = ""
sockip(Index, 0) = findidb(Index, Right(dat(Index), 12), sp)
If sockip(Index, 0) = 1 Then
Form1.Sockser(Index).SendData "user__ok" & sockname(Index, 1) & "\" & sp
sockip(Index, 0) = 2
Form1.List1.AddItem ("服务器:考生端请求登陆认证完成!是加时或断线再考,考号为:" & sockname(Index, 2))
Print #3, "服务器:考生端请求登陆认证完成!是加时或断线再考,考号为:" & sockname(Index, 2) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Command1(Index).Picture = LoadPicture(App.Path & "\stud.bmp")
sp = ""
Else
Form1.List1.AddItem ("服务器:考生端请求登陆认证失败!因为该考生以登陆过!考号为:" & Right(dat(Index), 12))
Print #3, "服务器:考生端请求登陆认证失败!因为该考生以登陆过!考号为:" & Right(dat(Index), 12) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Sockser(Index).SendData "kaolobad"
End If
Case 9
Form1.List1.AddItem ("服务器:考生端请求登陆认证失败!因为该考号不存在")
Print #3, "服务器:考生端请求登陆认证失败!因为该考号不存在" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Sockser(Index).SendData "user_bad"
End Select

Case "get_data"
If sockip(Index, 1) = 3 Then
bytemp = openf(Index)
Command1(Index).Picture = LoadPicture(App.Path & "\send.bmp")
Else
Text2.Text = "not login as get_data"
Sockser(Index).Close
End If

Case "loigdata"
bytemp = sendata(Index)

Case "startkao"
If sockip(Index, 1) = 4 Then
sockip(Index, 1) = 5
If sockip(Index, 0) = 1 Then
On Error Resume Next
MkDir App.Path & "\job\" & sockname(Index, 2)
If Err.Number = 0 Then
MkDir App.Path & "\job\" & sockname(Index, 2) & "\data"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\inf.dat" For Output As #(Index + 30)
Print #(Index + 30), studentinf(Index)
Close #(Index + 30)
On Error GoTo 0
Else
On Error GoTo 0
Err.Number = 0
End If
End If
Command1(Index).Picture = LoadPicture(App.Path & "\ok.bmp")
Command1(Index).ToolTipText = "考生姓名:" & sockname(Index, 1) & "    考号:" & sockname(Index, 2)
Text3.Text = Str(Val(Text3.Text) + 1)
Label4(Index - 1).Caption = "余下:60分钟"
Form1.List1.AddItem ("服务器:一个考生端以开始考试!考号为:" & sockname(Index, 2))
Print #3, "服务器:一个考生端以开始考试!考号为:" & sockname(Index, 2) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
sockip(Index, 3) = Form1.Combo1.ListCount
Form1.Combo1.AddItem sockname(Index, 1)
Sockser(Index).SendData "get_time"
Else
Sockser(Index).Close
End If

Case "put_time"
Label4(Index - 1).Caption = "余下:" & Right(dat(Index), Len(dat(Index)) - 8) & "分钟"
If sockip(Index, 0) = 2 Then
Open App.Path & "\Useridb.dat" For Binary As #(Index + 30)
Else
Open App.Path & "\Userid.dat" For Binary As #(Index + 30)
End If
bytime = writetime(Index, sockname(Index, 2), Right(dat(Index), Len(dat(Index)) - 8))

Case "savedata"
If sockip(Index, 1) = 5 Then
Sockser(Index).SendData "get_save"
End If

Case "put_save"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\result.dat" For Output As #(Index + 30)
Print #(Index + 30), Right(dat(Index), bytesTotal - 8)
Close #(Index + 30)
Sockser(Index).SendData "save__ok"
Print #3, sockname(Index, 2) & "以交单选题多选题和判断题" & Chr(16) & Chr(17)

Case "put1save"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\resultb.dat" For Output As #(Index + 30)
Print #(Index + 30), Mid(dat(Index), 9, bytesTotal - 8)
Close #(Index + 30)
Sockser(Index).SendData "save_1ok"

Case "put2save"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\resultc.dat" For Output As #(Index + 30)
Print #(Index + 30), Mid(dat(Index), 9, bytesTotal - 8)
Close #(Index + 30)
Sockser(Index).SendData "save_ook"

Case "end_stud"
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "以交卷!请求断开")
Print #3, "服务器:" & sockname(Index, 1) & "以交卷!请求断开" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Sockser(Index).SendData "ok_unlog"
sockip(Index, 1) = 9

Case "help__me"
Form1.List1.AddItem ("考生:" & sockname(Index, 1) & "求助在IP:" & Sockser(Index).RemoteHostIP)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Print #3, "考生:" & sockname(Index, 1) & "求助在IP:" & Sockser(Index).RemoteHostIP & "在线教师:" & form3.Text1 & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
End Select
End Sub

Private Sub startser_Click()
Call Command2_Click
End Sub

Private Sub stopser_Click()
Call Command3_Click
End Sub

Private Sub Timer2_Timer()
Dim i As Integer
For i = 1 To 30
If sockip(i, 1) = 5 Then
Sockser(i).SendData "get_time"
End If
Next
End Sub

Private Sub twostud_Click()
Call Command6_Click
End Sub

⌨️ 快捷键说明

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