Advertisement
Qpel

Untitled

Dec 3rd, 2017
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. #Turime rajono ūkininkų auginamų gyvių sąrašą: ūkininko pavardė, gyvio pavadinimas, kiekis, amžius.
  2. #Rasti:
  3. #1) Paieška pagal duotą gyvio pavadinimą.
  4. #2) Daugiausia gyvių auginantį ūkininką.
  5. #3) Paieška pagal gyvių amžiaus apatinę ribą.
  6.  
  7. $ukis = []
  8. # A simple ukis class
  9. class Employee
  10. attr_reader :pavarde, :gpavad, :kiekis, :age
  11.  
  12. def initialize(fname, lname, kiekis, age)
  13. @pavarde = fname
  14. @gpavad = lname
  15. @kiekis = kiekis
  16. @age = age
  17. end
  18. # A string representation of the Employee object
  19. def to_s
  20. "#{pavarde}, #{gpavad}, #{kiekis}, #{age}"
  21. end
  22. end
  23. # The collection class for Employee objects
  24. class Employees
  25. include Enumerable
  26. def initialize
  27. @employees = []
  28. end
  29. # Add Employee objects to the collection
  30. def <<(employee)
  31. @employees << employee
  32. end
  33. # Method mandated by the Enumerable module
  34. def each
  35. @employees.each { |e| yield(e) }
  36. end
  37. end
  38. class Programa
  39.  
  40. def skaitymas
  41. @@data = Employees.new
  42.  
  43. fp=File.open("input_sar.txt", "r")
  44.  
  45. fp.readlines.each do |line|
  46. c=line.split(",")
  47. c[3]=c[3].to_i
  48. @@data<<Employee.new(c[0],c[1],c[2],c[3])
  49. end
  50.  
  51. fp.close
  52.  
  53. # List the items in the collection
  54. puts "Darbuotoju sarasas:"
  55. puts "*********************************************************"
  56. @@data.each_with_index{ |e, i| puts "#{i+1}. #{e.to_s}" }
  57. puts "*********************************************************"
  58. end
  59.  
  60. def jaunimas
  61. puts "Iveskite amziaus apatine riba"
  62. m=gets.to_i
  63. puts "*********************************************************"
  64. puts "Gyvulių nuo duoto amziaus ribos sarasas:"
  65. puts "*********************************************************"
  66. # Step-1: Select jaunesnius iki m amziaus
  67. jauni = @@data.select{ |e| e.age >m }
  68. # Step-2: Let's show the results
  69. jauni.each{ |p| puts p.to_s }
  70. puts "*********************************************************"
  71. end
  72. def rusiavimas
  73.  
  74. puts "*********************************************************"
  75. # Sort by age
  76. result = @@data.sort_by{ |e| e.age }
  77. puts "Darbuotoju saraso rusiavimas pagal amziu"
  78. puts "*********************************************************"
  79. # Show the results
  80. result.each{ |e| puts e.to_s }
  81. puts "*********************************************************"
  82. end
  83. def paieska
  84. puts "Iveskite gyvio pavadinima"
  85. pavadin=gets.chomp
  86. puts "#{pavadin} sarasas:"
  87. puts "*********************************************************"
  88. # Step-1: Select gyvuliai from the collection
  89. gyvuliai = @@data.select{ |e| e.gpavad == pavadin }
  90. # Step-2: Let's show the results
  91. gyvuliai.each{ |p| puts p.to_s }
  92. puts "*********************************************************"
  93. puts "Programuotojai iki 40 m amziaus:"
  94. puts "*********************************************************"
  95. @@data.select{|e| e.gpavad == pavadin}.each{|p| puts p.to_s }
  96. puts "*********************************************************"
  97. end
  98. def vyriausias
  99. puts "Vyriausias pagal amziu programuotojas:"
  100. puts "*********************************************************"
  101. max=0
  102. gyvuliai = @@data.select{ |e| e.gpavad == 'Kiaule' }
  103. gyvuliai.each{ |p| if p.age>max then max=p.age end}
  104. gyvuliai.each{ |p| if p.age==max then puts "#{p.pavarde} #{p.gpavad} ---amzius-#{max} " end}
  105. puts "*********************************************************"
  106. end
  107. end
  108. # Pagrindine programa
  109. puts "\n"
  110. puts "*********************************************************"
  111. puts "\n"
  112.  
  113. while true
  114.  
  115. print <<TEXT
  116. 1 - Skaitymas is failo
  117. 2 - Rusiavimas
  118. 3 - Paieska pagal gyviu amziaus apatine riba
  119. 4 - Paieska pagal duota gyvio pavadinima
  120. 5 - Vyriausias programuotojas
  121. 0 - Pabaiga
  122. TEXT
  123. s=Programa.new
  124.  
  125. puts "\n"
  126. puts "*********************************************************"
  127. puts "\n"
  128. val = gets.to_i
  129.  
  130.  
  131. case val
  132. when 1
  133. s.skaitymas
  134. when 2
  135. s.rusiavimas
  136. when 3
  137. s.jaunimas
  138. when 4
  139. s.paieska
  140. when 5
  141. s.vyriausias
  142. when 0
  143. puts "Pabaiga"
  144. exit
  145. end
  146. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement