Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมคำนวณเกรดนักเรียน (Grade Calculator) ใน Python

โปรแกรมรับคะแนน 5 วิชา คำนวณรวม เปอร์เซ็นต์ เกรด และผลสอบ (ผ่าน/เงื่อนไข/ไม่ผ่าน)

เกณฑ์การให้เกรด

คะแนนเฉลี่ยเกรด
>= 90O
>= 80A+
>= 70A
>= 60B+
>= 50B
>= 40C
< 40F

เกณฑ์ผลสอบ

  • ทุกวิชา >= 40 → PASS
  • ผ่าน >= 3 วิชา → COMP (เงื่อนไข)
  • อื่นๆ → FAIL

โค้ด (ปรับปรุงให้รันได้อัตโนมัติ ไม่ต้อง input)

class GradeCalculator:
    def __init__(self, roll, name, marks):
        self.roll = roll
        self.name = name
        self.marks = marks
        self.total = 0
        self.percentage = 0
        self.grade = ""
        self.result = ""
    
    def calculate(self):
        self.total = sum(self.marks)
        self.percentage = self.total / len(self.marks)
        
        if self.percentage >= 90: self.grade = "O"
        elif self.percentage >= 80: self.grade = "A+"
        elif self.percentage >= 70: self.grade = "A"
        elif self.percentage >= 60: self.grade = "B+"
        elif self.percentage >= 50: self.grade = "B"
        elif self.percentage >= 40: self.grade = "C"
        else: self.grade = "F"
        
        passed = sum(1 for m in self.marks if m >= 40)
        if passed == len(self.marks): self.result = "PASS"
        elif passed >= 3: self.result = "COMP"
        else: self.result = "FAIL"
    
    def display(self):
        print(f"Roll: {self.roll}\tName: {self.name}\tTotal: {self.total}\t"
              f"%: {self.percentage:.1f}\tGrade: {self.grade}\tResult: {self.result}")

# ทดสอบ
student = GradeCalculator(3, "Raj", [86, 75, 69, 55, 92])
student.calculate()
student.display()
# Roll: 3   Name: Raj   Total: 377   %: 75.4   Grade: A   Result: PASS

สรุป

โครงสร้าง class แยกหน้าที่ชัดเจน สามารถขยายฟีเจอร์ได้ง่าย