Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. import copy
  2.  
  3. class Course:
  4. def __init__(self,course_id,course_title,course_price,course_level_begin,course_level_end):
  5. self.course_id = course_id
  6. self.course_title = course_title
  7. self.course_price = course_price
  8. self.reputation = 0
  9. self.school = ''
  10. self.course_pre = 0
  11. self.course_post = 0
  12. self.course_level_begin=course_level_begin
  13. self.course_level_end=course_level_end
  14. def set_course_level(self,course_level_begin,course_level_end):
  15. self.course_level_begin = course_level_begin
  16. self.course_level_end = course_level_end
  17. def get_course_level_begin(self):
  18. return self.course_level_begin
  19. def get_course_level_end(self):
  20. return self.course_level_end
  21. def get_id(self):
  22. return self.course_id
  23. def get_course_title(self):
  24. return self.course_title
  25. def set_course_title(self,course_title):
  26. self.course_title = course_title
  27. def set_price(self,price):
  28. self.course_price = price
  29. def get_price(self):
  30. return self.course_price
  31.  
  32.  
  33. class Seller:
  34. def __init__(self, name):
  35. self.name = name
  36. self.reputation = 0
  37. self.courses = []
  38. def add_course(self, course_instance):
  39. self.courses.append(course_instance)
  40. def set_reputation(self,rep):
  41. self.reputation = rep
  42. def get_reputation(self):
  43. return self.reputation
  44.  
  45. class Student:
  46. def __init__(self,name,initial_level,target_level,initial_budget, condition):
  47. self.name = name
  48. self.level = initial_level
  49. self.target_level = target_level
  50. self.budget = initial_budget
  51. self.condition = condition
  52. self.course_catalog = 0
  53. def get_name(self):
  54. return self.name
  55. def get_target_level(self):
  56. return self.target_level
  57. def set_current_level(self,level):
  58. self.level = level
  59. def get_current_level(self):
  60. return self.level
  61. def set_budget(self,budget):
  62. self.budget = budget
  63. def get_current_budget(self):
  64. return self.budget
  65.  
  66. class CourseSequence:
  67. def __init__(self,course_instance_list,student_instance):
  68. self.courses = course_instance_list
  69. self.student = student_instance
  70. def get_student(self):
  71. return self.student
  72. def get_total_price(self):
  73. total = 0
  74. for x in self.courses:
  75. total = total+ x.get_price()
  76. return total
  77.  
  78. def is_payable(self):
  79. return (self.get_total_price() <= self.student.get_current_budget())
  80.  
  81. def is_valid(self):
  82. #print "---MULAI--"
  83.  
  84. student_target_level = self.student.get_target_level()
  85. student_initial_level = self.student.get_current_level()
  86. course_initial_level = self.courses[0].get_course_level_begin()
  87. rule_1 = (student_initial_level == course_initial_level)
  88.  
  89. #print "---"
  90.  
  91. cl_rev = copy.copy(self.courses)
  92. cl_rev.reverse()
  93. kondisi = True
  94. sebelum = cl_rev[0].get_course_level_end()
  95. for x in cl_rev:
  96. #print "nama {} kondisi {} sebelum {} ending {}" . format(x.get_course_title(),kondisi, sebelum, x.get_course_level_end())
  97. kondisi = kondisi and (x.get_course_level_end()>=sebelum)
  98. #print "beginning {}" . format(x.get_course_level_begin())
  99. sebelum = x.get_course_level_begin()
  100. rule_2 = (student_initial_level <= sebelum) and (kondisi==True)
  101. kondisi_2 = kondisi
  102.  
  103. #print "----"
  104.  
  105. kondisi = True
  106. sesudah = self.courses[0].get_course_level_begin()
  107. for x in self.courses:
  108. #print "nama {} kondisi{} sesudah{} beginning{}" . format(x.get_course_title(),kondisi, sesudah, x.get_course_level_begin())
  109. kondisi = kondisi and (x.get_course_level_begin()<=sesudah)
  110. #print "ending {}" . format(x.get_course_level_end())
  111. sesudah = x.get_course_level_end()
  112.  
  113. rule_3 = (student_target_level >= sesudah) and (kondisi==True)
  114. kondisi_3 = kondisi
  115.  
  116. #print "rule 1 {} rule 2 {} rule 3 {} kondisi_2 {} kondisi_3 {}" . format(rule_1, rule_2, rule_3,kondisi_2,kondisi_3)
  117.  
  118. #print "---SELESAI--"
  119.  
  120. return ((rule_1 and rule_2 and rule_3)==True)
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. if __name__=='__main__':
  131. A = Course('A','Course A',500,1,3)
  132. B = Course('B','Course B',20,3,7)
  133. C = Course('C','Course C',400,1,10)
  134. D = Course('D','Course D',20,1,5)
  135. E = Course('E','Course E',200,5,10)
  136. studentB = Student('Student B',1,10,1000,[])
  137.  
  138.  
  139. CS1 = CourseSequence([A,B,C],studentB)
  140. print "Hi {}" . format(CS1.get_student().get_name())
  141. print "Total Price for this sequence {}" . format(CS1.get_total_price())
  142. print "Student can pay ? {}" . format(CS1.is_payable())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement