วันเสาร์ที่ 31 ตุลาคม พ.ศ. 2558

Lab 7 - (Class) Display student records, sorted by age, use insertion sort

class student:

    def __init__(self,order,name,age,weight,height):
        self.name = name
        self.age = age
        self.weight = weight
        self.height = height

    def display(self):
        print(self.name, end = "   ")
        print(self.age, end = "   ")
        print(self.weight, end = "   ")
        print(self.height, end = "   ")
        print()
         
    def get_age(self):
        return self.age
    def get_name(self):
        return self.name
    def get_weight(self):
        return self.weight
    def get_height(self):
        return self.height
       
   
    def set_age(self,value):
        self.age = value
        return self.age
    def set_name(self,value):
        self.name = value
        return self.name
    def set_weight(self,value):
        self.weight = value
        return self.weight  
    def set_height(self,value):
        self.height = value
        return self.height  
       
   
def setup():
    i = 0
    info = [student(1,"Buntun",18,54,160),
            student(2,"FlukeKnub",19,75,199),
            student(3,"PeeJa",32,60,150),
            student(4,"Nutdech",18,51,185),
            student(5,"BasBomba",20,65,180)]
    sort_insertion(info)
   
    while (i<len(info)):
        info[i].display()
        i = i+1
   
       
def sort_insertion(info):
    i = 1
    while i < len(info):

        value_current_age = info[i].get_age()
        value_current_name = info[i].get_name()
        value_current_weight = info[i].get_weight()
        value_current_height = info[i].get_height()
        pos = i

        while((pos > 0) and (info[pos-1].get_age() > value_current_age)):
            info[pos].set_age(info[pos-1].get_age())
            info[pos].set_name(info[pos-1].get_name())
            info[pos].set_weight(info[pos-1].get_weight())
            info[pos].set_height(info[pos-1].get_height())
            pos = pos-1
           
        if (pos != i):
            info[pos].set_age(value_current_age)
            info[pos].set_name(value_current_name)
            info[pos].set_weight(value_current_weight)
            info[pos].set_height(value_current_height)
           
        i = i + 1
       
    return info
   
setup()

ไม่มีความคิดเห็น:

แสดงความคิดเห็น