Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Turime rajono ūkininkų auginamų gyvių sąrašą: ūkininko pavardė, gyvio pavadinimas, kiekis, amžius.
- #Rasti:
- #1) Paieška pagal duotą gyvio pavadinimą.
- #2) Daugiausia gyvių auginantį ūkininką.
- #3) Paieška pagal gyvių amžiaus apatinę ribą.
- $ukis = []
- # A simple ukis class
- class Employee
- attr_reader :pavarde, :gpavad, :kiekis, :age
- def initialize(fname, lname, kiekis, age)
- @pavarde = fname
- @gpavad = lname
- @kiekis = kiekis
- @age = age
- end
- # A string representation of the Employee object
- def to_s
- "#{pavarde}, #{gpavad}, #{kiekis}, #{age}"
- end
- end
- # The collection class for Employee objects
- class Employees
- include Enumerable
- def initialize
- @employees = []
- end
- # Add Employee objects to the collection
- def <<(employee)
- @employees << employee
- end
- # Method mandated by the Enumerable module
- def each
- @employees.each { |e| yield(e) }
- end
- end
- class Programa
- def skaitymas
- @@data = Employees.new
- fp=File.open("input_sar.txt", "r")
- fp.readlines.each do |line|
- c=line.split(",")
- c[3]=c[3].to_i
- @@data<<Employee.new(c[0],c[1],c[2],c[3])
- end
- fp.close
- # List the items in the collection
- puts "Darbuotoju sarasas:"
- puts "*********************************************************"
- @@data.each_with_index{ |e, i| puts "#{i+1}. #{e.to_s}" }
- puts "*********************************************************"
- end
- def jaunimas
- puts "Iveskite amziaus apatine riba"
- m=gets.to_i
- puts "*********************************************************"
- puts "Gyvulių nuo duoto amziaus ribos sarasas:"
- puts "*********************************************************"
- # Step-1: Select jaunesnius iki m amziaus
- jauni = @@data.select{ |e| e.age >m }
- # Step-2: Let's show the results
- jauni.each{ |p| puts p.to_s }
- puts "*********************************************************"
- end
- def rusiavimas
- puts "*********************************************************"
- # Sort by age
- result = @@data.sort_by{ |e| e.age }
- puts "Darbuotoju saraso rusiavimas pagal amziu"
- puts "*********************************************************"
- # Show the results
- result.each{ |e| puts e.to_s }
- puts "*********************************************************"
- end
- def paieska
- puts "Iveskite gyvio pavadinima"
- pavadin=gets.chomp
- puts "#{pavadin} sarasas:"
- puts "*********************************************************"
- # Step-1: Select gyvuliai from the collection
- gyvuliai = @@data.select{ |e| e.gpavad == pavadin }
- # Step-2: Let's show the results
- gyvuliai.each{ |p| puts p.to_s }
- puts "*********************************************************"
- puts "Programuotojai iki 40 m amziaus:"
- puts "*********************************************************"
- @@data.select{|e| e.gpavad == pavadin}.each{|p| puts p.to_s }
- puts "*********************************************************"
- end
- def vyriausias
- puts "Vyriausias pagal amziu programuotojas:"
- puts "*********************************************************"
- max=0
- gyvuliai = @@data.select{ |e| e.gpavad == 'Kiaule' }
- gyvuliai.each{ |p| if p.age>max then max=p.age end}
- gyvuliai.each{ |p| if p.age==max then puts "#{p.pavarde} #{p.gpavad} ---amzius-#{max} " end}
- puts "*********************************************************"
- end
- end
- # Pagrindine programa
- puts "\n"
- puts "*********************************************************"
- puts "\n"
- while true
- print <<TEXT
- 1 - Skaitymas is failo
- 2 - Rusiavimas
- 3 - Paieska pagal gyviu amziaus apatine riba
- 4 - Paieska pagal duota gyvio pavadinima
- 5 - Vyriausias programuotojas
- 0 - Pabaiga
- TEXT
- s=Programa.new
- puts "\n"
- puts "*********************************************************"
- puts "\n"
- val = gets.to_i
- case val
- when 1
- s.skaitymas
- when 2
- s.rusiavimas
- when 3
- s.jaunimas
- when 4
- s.paieska
- when 5
- s.vyriausias
- when 0
- puts "Pabaiga"
- exit
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement