group-meeting-lottery/Form1.vb

185 lines
8.6 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Public Class Form1
Private Students_ As New List(Of List(Of String)) From
{
New List(Of String) From
{
"万文杰", "余路成", "刘志强", "刘才育", "包洋", "厉亚凯", "叶玲榕", "吴莉莉", "周鑫", "唐甜",
"姚隽祺", "娄亚筱", "张恩铭", "张林珏", "张梦琦", "彭佳璇", "徐溢聪", "朱玲俐", "李冠錡", "李昊天",
"杨仕铌", "杨卯伟", "杨攀", "杨玲芳", "杨鑫雨", "林桢坤", "林科闯", "梁纤璐", "江莹", "洪家闽",
"王梦童", "王瑶", "王轶蒙", "王鹏", "胡泽楷", "苏杨", "莫梦月", "蒋黎", "许腾飞", "谈奇灵",
"谢琳洋", "郑嘉钰", "郑杰", "郭欣宜", "闫金健", "陆玉鑫", "陈心路", "陈拓林", "陈浩南", "陈芳琦",
"项磊磊", "马雯", "高郁捷", "黄嘉芃", "黄敏", "黄泽龙", "黄研培", "龚树想"
},
New List(Of String) From
{
"刘辉强", "吐尔洪江·吾拉木", "宿一曼", "封辉", "张思晴", "张润涵", "杜颖", "杨仁琪", "林梓淇", "林高翔",
"梁雁彤", "王小丹", "翁小蒙", "莫仕弟", "萨娜", "邓铁龙", "陈子涵", "陈豪飞", "马修益", "鲁浩伟"
},
New List(Of String) From
{
"任思豪", "刘世林", "刘启霖", "刘敏", "刘文博", "刘源", "刘金华", "危永平", "叶晓芳", "叶颖",
"吴世明", "周博语", "周江鹏", "姚文龙", "宋欣格", "常青", "廖桂敏", "张为智", "张姝卿", "张宗南",
"张文琴", "张晨昊", "张灵辉", "张耀宗", "张艺腾", "张裕祥", "曹宇", "曹硕", "曾国清", "李彦君",
"李文翔", "李欣如", "李洪树", "杨镇泽", "林旺康", "柳梦宇", "王必成", "王曼", "王颖萌", "程可扬",
"程安琪", "程舒仪", "莫炳杰", "蒋中升", "蓝进肾", "詹永萍", "赖麒鸿", "赵志国", "郑一帆", "郭叁育",
"陈垚", "陈子龙", "陈玮健", "陈紫怡", "陈阳", "马梦薇", "高扬钧", "黄健", "黄金理", "龚彬"
}
}
Private StudentsUsed_ As New List(Of List(Of String)) From {New List(Of String), New List(Of String), New List(Of String)}
Private TextBox_(2) As TextBox
Private ButtonRegenerate_(2) As Button
Public Sub New()
' 此调用是设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
TextBox_ = {TextBox1, TextBox2, TextBox3}
ButtonRegenerate_ = {Button2, Button3, Button4}
OfficeOpenXml.ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial
End Sub
Private Sub set_select_name(i As Integer)
Dim rand As New Random
Dim current_text = TextBox_(i).Text
While TextBox_(i).Text = current_text And (Students_(i).Count > 1 Or TextBox_(i).Text <> Students_(i)(0))
TextBox_(i).Text = Students_(i)(rand.Next(0, Students_(i).Count))
End While
TextBox_(i).Refresh()
End Sub
Private Sub move_to_used(i As Integer, name As String)
If CheckBox1.Checked And Students_(i).Contains(name) Then
If Students_(i).Count > 1 Then
Students_(i).Remove(name)
StudentsUsed_(i).Add(name)
Else
Students_(i).AddRange(StudentsUsed_(i))
StudentsUsed_(i).Clear()
End If
End If
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
For i As Integer = 0 To 2
set_select_name(i)
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If (Timer1.Enabled) Then
Timer1.Enabled = False
For i As Integer = 0 To 2
move_to_used(i, TextBox_(i).Text)
Next
Button1.Text = "再来一次"
For i As Integer = 0 To 2
ButtonRegenerate_(i).Visible = True
Next
Else
Timer1.Enabled = True
Button1.Text = "停!"
For i As Integer = 0 To 2
ButtonRegenerate_(i).Visible = False
Next
End If
End Sub
Private Sub ButtonRefresh_Click(sender As Object, e As EventArgs) Handles Button2.Click, Button3.Click, Button4.Click
For i As Integer = 0 To 2
If sender Is ButtonRegenerate_(i) Then
set_select_name(i)
move_to_used(i, TextBox_(i).Text)
End If
Next
End Sub
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
If Not Timer1.Enabled Then
If TextBox_(0).Text.StartsWith("陈浩") Then
TextBox_(0).Text = "陈浩" + New List(Of String) From {"", "西", "", ""}((New Random).Next(0, 4))
TextBox_(0).Refresh()
ElseIf TextBox_(0).Text.StartsWith("陈心") Then
If (New Random).Next(0, 4) = 0 Then
TextBox_(0).Text = "陈心街"
Else
TextBox_(0).Text = "陈心路"
End If
TextBox_(0).Refresh()
ElseIf TextBox_(0).Text = "闫金健" Or TextBox_(0).Text = "闫银健" Then
If (New Random).Next(0, 4) = 0 Then
TextBox_(0).Text = "闫银健"
Else
TextBox_(0).Text = "闫金健"
End If
TextBox_(0).Refresh()
ElseIf TextBox_(0).Text = "杨鑫雨" Or TextBox_(0).Text = "杨嘉乐" Then
If (New Random).Next(0, 4) = 0 Then
TextBox_(0).Text = "杨嘉乐"
Else
TextBox_(0).Text = "杨鑫雨"
End If
TextBox_(0).Refresh()
ElseIf TextBox_(0).Text.Length = 3 AndAlso TextBox_(0).Text(0) = "" AndAlso TextBox_(0).Text(1) = TextBox_(0).Text(2) Then
If (New Random).Next(0, 4) = 0 Then
Dim alternate_chars As New List(Of Char) From {CChar(""), CChar(""), CChar(""), CChar(""), CChar("")}
Dim alternate_char = alternate_chars((New Random).Next(0, alternate_chars.Count))
TextBox_(0).Text = "" + alternate_char + alternate_char
Else
TextBox_(0).Text = "项磊磊"
End If
TextBox_(0).Refresh()
End If
End If
' If Me.Text = "" Then
' Me.Text = "激★情★大★抽★奖"
' Else
' Me.Text = ""
' End If
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Dim dialog As New SaveFileDialog With {.Filter = "Excel 工作簿|*.xlsx", .Title = "保存为excel", .FileName = "成员名单"}
Dim result = dialog.ShowDialog()
Dim students As New List(Of List(Of String))
students = Students_
For i As Integer = 0 To 2
students(i).AddRange(StudentsUsed_(i))
Next
If result = DialogResult.OK Then
Try
If FileIO.FileSystem.FileExists(dialog.FileName) Then FileIO.FileSystem.DeleteFile(dialog.FileName)
Dim file As New OfficeOpenXml.ExcelPackage(dialog.FileName)
Dim sheet = file.Workbook.Worksheets.Add("分组名单")
For i As Integer = 0 To 2
Dim c = Chr(Asc("A"c) + i)
sheet.Cells(c + "1").Value = "" + Convert.ToString(i + 1) + "小组"
For j As Integer = 0 To students(i).Count - 1
sheet.Cells(c + Convert.ToString(j + 2)).Value = students(i)(j)
Next
Next
file.Save()
MsgBox("保存成功")
Catch ex As Exception
MsgBox("保存失败")
End Try
End If
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
Try
Process.Start(New ProcessStartInfo("https://blog.chn.moe/docs/stuff/lottery") With {.UseShellExecute = True})
Catch ex As Exception
MsgBox("调用浏览器失败请手动使用浏览器访问https://blog.chn.moe/docs/stuff/lottery。")
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
For i As Integer = 0 To 2
Students_(i).AddRange(StudentsUsed_(i))
StudentsUsed_(i).Clear()
Next
End Sub
End Class