- Back to Home »
- Visual Basic.Net , មេរៀនឆ្នាំទី៣ »
- Average
Posted by : Unknown
Sunday, December 9, 2012
ការពន្យល់កូដ
* នៅក្នុង Button OK ត្រង់កូដ txtTotal.Text = Format(T, "#, ##0.00") គេប្រើសម្រាប់កំណត់ចំនួនខ្ទង់ នៃចំនួនលេខ។
+ សញ្ញា "," សម្រាប់កាត់ខ្ទង់។
+ សញ្ញា "." សម្រាប់កំនត់ក្បៀស។
+ សញ្ញា "#" សម្រាប់កំនត់តំលៃបើមានតំលៃ នោះបង្ហាញ បើគ្មានតំលៃនោះមិនបង្ហាញអ្វីឡើយ។
+ លេខ "0" សម្រាប់កំណត់តម្លៃ បើមានតម្លៃនោះបង្ហាញ បើគ្មាននោះមិនបង្ហាញលេខ ០។
+ លេខ "0" ខាងក្រោយក្បៀសពីរខ្ទង់ មានន័យថាកាត់យក ក្រោយក្បៀសចំនួនពីរខ្ទង់។
* រាល់ទិន្នន័យដែលបញ្ចូលតាមរយៈ TextBox សុទ្ធតែជា String។នៅពេលដែលយើងផ្ទេរតម្លៃលេខ ជា String ទៅអោយអញ្ញាត្តដែលមានប្រភេទទិន្នន័យជាចំនួនលេខ នោះវានឹងបម្លែងតម្លៃលេខជា String ទាំងនោះទៅជាប្រភេទទិន្នន័យរបស់អញ្ញាត្តដោយស្វ័យប្រវត្តិភ្លាម។
ការសរសេរកូដ
Public Class Form1
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
Dim M As String, Avg As Double, T As Double
T = Total(txtVB.Text, txtCN.Text, txtJP.Text, txtSA.Text, txtStatistics.Text)
Avg = Average(T, 5)
M = Mention(Avg)
txtTotal.Text = Format(T, "#, ##0.00")
txtAverage.Text = Format(Avg, "#, ##0.00")
txtMention.Text = M
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
txtVB.Clear()
txtCN.Clear()
txtJP.Clear()
txtSA.Clear()
txtStatistics.Clear()
txtTotal.Clear()
txtAverage.Clear()
txtMention.Clear()
txtVB.Focus()
End Sub
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
Me.Close()
Me.Name = ("Form1")
End Sub
Function Mention(ByVal Avg As Double) As String
Dim M As String
If (Avg >= 97 And Avg <= 100) Then
M = "A+"
ElseIf (Avg >= 94 And Avg < 97) Then
M = "A"
ElseIf (Avg >= 90 And Avg < 94) Then
M = "A-"
ElseIf (Avg >= 87 And Avg < 90) Then
M = "B+"
ElseIf (Avg >= 84 And Avg < 87) Then
M = "B"
ElseIf (Avg >= 80 And Avg < 84) Then
M = "B-"
ElseIf (Avg >= 77 And Avg < 80) Then
M = "C+"
ElseIf (Avg >= 74 And Avg < 77) Then
M = "C"
ElseIf (Avg >= 70 And Avg < 74) Then
M = "C-"
ElseIf (Avg >= 67 And Avg < 70) Then
M = "D+"
ElseIf (Avg >= 64 And Avg < 67) Then
M = "D"
ElseIf (Avg >= 60 And Avg < 64) Then
M = "D-"
ElseIf (Avg >= 57 And Avg < 60) Then
M = "E+"
ElseIf (Avg >= 54 And Avg < 57) Then
M = "E"
ElseIf (Avg >= 50 And Avg < 54) Then
M = "E-"
ElseIf (Avg >= 0 And Avg < 50) Then
M = "F"
Else
M = "No Metion"
End If
Return M
End Function
Function Total(ByVal ParamArray Subject() As String)
Dim T As Double
For i As Integer = Subject.GetLowerBound(0) To Subject.GetUpperBound(0)
T += Convert.ToDouble(Subject(i))
Next
Return T
End Function
Function Average(ByVal T As Double, ByVal N As Integer) As Double
Return T / N
End Function
Private Sub txtTotal_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTotal.KeyPress
e.KeyChar = ""
End Sub
Private Sub txtAverage_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAverage.KeyPress
e.KeyChar = ""
End Sub
Private Sub txtMention_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMention.KeyPress
e.KeyChar = ""
End Sub
Private Sub txtCN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCN.KeyPress
Select Case Asc(e.KeyChar)
Case 13, 8, 47 To 57
Case Else
e.Handled = True
End Select
End Sub
Private Sub txtJP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtJP.KeyPress
Select Case Asc(e.KeyChar)
Case 13, 8, 47 To 57
Case Else
e.Handled = True
End Select
End Sub
Private Sub txtStatistics_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtStatistics.KeyPress
Select Case Asc(e.KeyChar)
Case 13, 8, 47 To 57
Case Else
e.Handled = True
End Select
End Sub
Private Sub txtVB_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtVB.KeyPress
Select Case Asc(e.KeyChar)
Case 13, 8, 47 To 57
Case Else
e.Handled = True
End Select
End Sub
Private Sub txtSA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSA.KeyPress
Select Case Asc(e.KeyChar)
Case 13, 8, 47 To 57
Case Else
e.Handled = True
End Select
End Sub
End Class