小工具---年级卫生评比
外面那雨下的正紧,边上两个同学正在“梦三国”激战,我开始回忆起大一制作的一个小工具。
刚上大学的时候,老师竟然选择我成为四个年级负责人之一,竟然成了年级负责人,按照俞敏洪的说法,管他是什么荣誉,先拿了再说,其实这个负责人还是很难做的,现在给大家介绍我为做好这个职务而制作的小工具,大家一定会感慨,这年头干啥都不容易。
首先贴一张制作成功的图:
大家可以看到,情况是这样的,一共有22个寝室(包括女寝),一共从系里挑出12名评委(默认是这样的,有些时候有人没办法到),每个评委对22个寝室各打一个分数。在没有开发这个程序之前,是用手算的。我虽然下面有手下,但是这也太麻烦了,即使我们使用各种算法来简化,也很麻烦,任何人算错就挂了,特别是,当你正算的时候,寝室长过来收寝室费,“那个,谁,你上次交了多少”,当时就崩溃了,重算。。。。。
这个程序是非常简单的,为啥写上来呢,主要记录这段历史。对于一个热爱计算机事业的人来讲,生活中点滴的应用编程,都如珍珠一般。另外,这个程序写好,我一个人在数分钟内要在12个评委的目视下,正确敲击>528下的数字,来计算,可见这个工作真心没那么好做,年终,我给老师递交了一份20多页的记录。。。绝对是苦力。。
程序实现的功能是:输入12个评委对22个寝室的分数,计算出排名,并按照排名显示,后得出一个报表。
以下是代码:(下面是分析)
1 Dim i As Long 2 3 Dim n As Long 4 5 Dim check As Long 6 7 Dim t() As Integer 8 9 Private Sub Command1_Click() 10 11 i = i + 1 12 13 Label13.Caption = "寝室数:" & i 14 15 If i = check + 1 Then 16 17 Command1.Enabled = False 18 19 Cls 20 21 Label13.Caption = "寝室数:" & n 22 23 Print "总分:" 24 25 For S = 0 To n - 1 26 27 Print S + 1, t(S) 28 29 Next 30 31 For i = n To 1 Step -1 32 33 For j = 0 To i - 1 34 35 If t(j) > t(j + 1) Then 36 37 l = t(j): t(j) = t(j + 1): t(j + 1) = l 38 39 End If 40 41 Next j 42 43 Next i 44 45 Print "排序:" 46 47 For i = 1 To n 48 49 Print t(i) 50 51 Next 52 53 Else 54 55 For y = 0 To n - 1 56 57 t(y) = t(y) + Text1(y).Text 58 59 Next 60 61 For h = 0 To n - 1 62 63 Text1(h).Text = "" 64 65 Next 66 67 End If 68 69 End Sub 70 71 72 73 Private Sub Command2_Click() 74 75 Unload Me 76 77 End Sub 78 79 80 81 Private Sub Command3_Click() 82 83 n = Text2.Text 84 85 ReDim t(n) As Integer //使用控件组 86 87 For j = 0 To 21 88 89 Text1(j).Enabled = False 90 91 Next 92 93 For i = 0 To n - 1 94 95 Text1(i).Enabled = True 96 97 Next 98 99 Cls 100 101 Command1.Enabled = True 102 103 i = 0 104 105 End Sub 106 107 108 109 Private Sub Form_Load() 110 111 i = 0 112 113 n = 22 114 115 check = 12 116 117 ReDim t(n) As Integer 118 119 End Sub 120 121 122 123 Private Sub Timer1_Timer() 124 125 check = Text3.Text 126 127 If Text2.Text = 22 Then 128 129 Command3.Enabled = False 130 131 Else 132 133 Command3.Enabled = True 134 135 End If 136 137 End Sub
从这里的代码我们可以看到有以下几个问题:
1、命名不够规范-----这个程序设计目的是一次性使用的
2、对于许多的临界条件没有进行过滤和保护---异常机制没有做的很好
3、控件不够简约,流程不够方便