520324-Visual Basic: การเขียนโปรแกรมคำนวณเกรด

04/10/2012 6:39 PM Study 12,655 views

Visual Basic: การเขียนโปรแกรมคำนวณเกรด

หลังจากเรียนเรียนวิชา การออกแบบฐานข้อมูลและการทำให้เกิดผล อาจารย์ได้สั่งการบ้านชิ้นแรกมา ให้ออกแบบและเขียนโปรแกรมเกี่ยวกับการคิดเกรด ในโปรแกรม Visual Studio 2010 โดยใช้ภาษา Visual Basic ก็สำเร็จไปได้ด้วยดี เนื่องจากเป็นการหัดเขียน VB ครั้งแรกจึงลำบากนิดหน่อยแต่สุดท้ายก็เสร็จไปได้ด้วยดี

User Interface ของโปรแกรม

                หน้าตาของโปรแกรมนั้นออกแบบได้ตามความต้องการของนักศึกษาโดยสามารถกำหนดรูปแบบการแสดงผลได้ตรงส่วนของ Probpaties ที่อยู่ทางขวามือในหน้าจอของโปรแกรม เมื่อเรียบร้อยแล้วต้องกำหนดชื่อให้กับปุ่มต่างๆ เพื่อเรียกใช้ในการเขียน code โดยกำหนดชื่อปุ่มและช่องกรอกข้อมูลดังนี้

ช่องกรอกคะแนนกลางภาค : Midterm
ช่องกรอกคะแนนปลายภาค : Final
ช่องกรอกคะแนนเก็บ : Cumulative
ช่องรวมคะแนน : Total
ช่องเกรด : Grade1
ปุ่มคำนวณ  : cal
ปุ่มลบ : clear
ปุ่มออกจากระบบ : finish

 

Code ของโปรแกรม

         หลังจากออกแบบหน้าตาของโปรแกรมเรียบร้อยต้องเขียนคำสั่งให้โปรแกรมทำงาน ทำการตั้งค่าช่องกรอกข้อมูลและตั้งค่าปุ่ม โดย Double Click ปุ่มนั้นเพื่อใส่ Code ดังนี้

ช่องกรอกคะแนนกลางภาค

Private Sub Midterm_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Midterm.TextChanged
Dim Midterm2 As String = Val(Midterm.Text)
If (IsNumeric(Midterm2) And (Val(Midterm2) > 30)) Then
MsgBox(“คะแนนกลางภาคต้องไม่เกิน 30 ครับ!”)
ElseIf (IsNumeric(Midterm2) And (Val(Midterm2) < 0)) Then
MsgBox(” คุณกรอกคะแนนกลางภาคผิดครับ,คะแนนต้องไม่ติดลบนะครับ!”)
End If
End Sub

/*  ช่องนี้จะมีการใส่เงื่อนไขไว้ กรณีที่ผู้ใช้กรอกคะแนนกลางภาคนอกช่วง 0-30 หรือกรอกอักขระแบบอื่นที่ไม่ใช่ตัวเลข โปรแกรมจะแสดง pop-up เตือนขึ้นมาให้ผู้ใช้ทราบ  */

ช่องกรอกคะแนนปลายภาค

Private Sub Final_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Final.TextChanged
Dim Final2 As String = Val(Final.Text)
If (IsNumeric(Final2) And (Val(Final2) > 50)) Then
MsgBox(” คะแนนปลายภาคต้องไม่เกิน 50 ครับ!”)
ElseIf (IsNumeric(Final2) And (Val(Final2) < 0)) Then
MsgBox(” คุณกรอกคะแนนปลายภาคผิดครับ,คะแนนต้องไม่ติดลบนะครับ!”)
End If
End Sub

/*  ช่องนี้จะมีการใส่เงื่อนไขไว้ กรณีที่ผู้ใช้กรอกคะแนนปลายภาคนอกช่วง 0-50 หรือกรอกอักขระแบบอื่นที่ไม่ใช่ตัวเลข โปรแกรมจะแสดง pop-up เตือนขึ้นมาให้ผู้ใช้ทราบ  */

ช่องกรอกคะแนนเก็บ

Private Sub Cumulative_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cumulative.TextChanged
Dim Cul2 As String = Val(Cumulative.Text)
If (IsNumeric(Cul2) And (Val(Cul2) > 20)) Then
MsgBox(“คะแนนเก็บคต้องไม่เกิน20 ครับ!”)
ElseIf (IsNumeric(Cul2) And (Val(Cul2) < 0)) Then
MsgBox(” คุณกรอกคะแนนเก็บผิดครับ,คะแนนต้องไม่ติดลบนะครับ!”)
End If
End Sub

/*  ช่องนี้จะมีการใส่เงื่อนไขไว้ กรณีที่ผู้ใช้กรอกคะแนนเก็บนอกช่วง 0-20 หรือกรอกอักขระแบบอื่นที่ไม่ใช่ตัวเลข โปรแกรมจะแสดง pop-up เตือนขึ้นมาให้ผู้ใช้ทราบ  */

สำหรับช่องรวมคะแนนกับเกรดไม่ต้องคำหนดค่าเพราะจะให้โปรแกรมแสดงผลหลังจากที่เรากดปุ่มคำนวณ

ปุ่มคำนวณ

Private Sub cal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cal.Click
Dim M, F, C, T As Single
Dim Grade As Single
M = Val(Midterm.Text)
F = Val(Final.Text)
C = Val(Cumulative.Text)
T = M + F + C
Total.Text = Format(T, “##0”)
If T < 49.5 Then
Grade1.Text = “F”
ElseIf T <= 59 Then
Grade1.Text = “D”
ElseIf T <= 69 Then
Grade1.Text = “C”
ElseIf T <= 79 Then
Grade1.Text = “B”
Else
Grade1.Text = “A”
End If

End Sub

/*  ในปุ่มนี้จะประกาศตัวแปรให้กับค่าต่างๆ จากนั้นนำคะแนนในแต่ละช่องมารวมกันได้เป็นค่า T และให้แสดงคะแนนรวมในช่องรวม (Total) เมื่อได้คะแนนรวมเรียบร้อยจะนำมาคิดเกรดโดยมีเงื่อนไขตามที่กำหนด เมื่อคะแนนอยู่ในเงื่อนไขใดๆจะนำไปแสดงค่าให้ช่องเกรด (Grade1) */

ปุ่มลบ

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clear.Click
Midterm.Clear()
Final.Clear()
Cumulative.Clear()
Total.Clear()
Grade1.Clear()
End Sub

/*  เมื่อผู้ใช้กดปุ่มลบโปรแกรมจะเครียร์ค่าทั้งหมดในช่องให้เริ่มต้นการทำงานใหม่  */

ปุ่มออกจากระบบ

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles finish.Click
Me.Close()
End Sub

/*  เมื่อผู้ใช้กดปุ่มนี้จะออกจากโปรแกรมหรือจบการทำงาน */

10/09/2012


, , , , , , , ,