Penjadwal Acara
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Ruby di Coddy. Pelajaran 56 dari 57.
Tantangan
SulitBuat penjadwal acara dengan special method di bagian ini. Event.new(title, day, start, finish) memiliki reader untuk keempatnya. Class ini menyertakan Comparable dan mengurutkan berdasarkan hari, lalu jam mulai, lalu judul. Dua acara dianggap sama dengan ==, eql?, dan hash jika memiliki judul yang sama pada hari yang sama (acara yang sama dimasukkan dua kali). to_s mengembalikan day 3 09-11 standup, dengan jam dua digit. overlaps?(other) bernilai true pada hari yang sama jika waktu mulai masing-masing acara lebih awal daripada waktu selesai acara lainnya. Scheduler#add(event) mengembalikan duplicate untuk acara yang sama, conflicts with review untuk acara tersimpan pertama (sesuai urutan) yang bertumpang tindih, dan jika tidak ada, menyimpan acara itu lalu mengembalikan added. Scheduler menyertakan Enumerable; each-nya menghasilkan acara yang tersimpan sesuai urutan. busiest_day mengembalikan busiest day 3: 5h, yaitu hari dengan jam terjadwal terbanyak (hari yang lebih awal jika jumlahnya sama), atau no events.
Code yang disediakan membaca acara dari baris berformat title,day,start,finish dan mencetak balasan untuk setiap acara, lalu setiap acara sesuai urutan melalui each, dan hari tersibuk.
Tulis kodemu di event.rb dan scheduler.rb. main.rb berisi code input/output yang disediakan dan tidak boleh diedit.
Coba sendiri
require_relative 'event'
require_relative 'scheduler'
# Kode input/output yang disediakan: biarkan apa adanya
input = []
while (line = gets)
input << line.chomp
end
scheduler = Scheduler.new
input.each do |line|
title, day, start, finish = line.split(",")
puts scheduler.add(Event.new(title, day.to_i, start.to_i, finish.to_i))
end
scheduler.each { |event| puts event }
puts scheduler.busiest_day
Semua pelajaran di Pemrograman Berorientasi Objek
1class dan object
Bekerja dengan fileMendefinisikan classVariabel instansmethod dan selfto_s dan inspectRingkasan: Kartu Perpustakaan4Enkapsulasi
private methodprotected methodprivate setterMelindungi StatusUlasan, Mesin Penjual Otomatis7Polimorfisme dan Duck Typing
PolimorfismeDuck TypingMethod Abstrakcase dan classRingkasan: Method Pembayaran2Accessor dan self
Pembaca dan PenulisSetter Kustomself dalam methodIdentitas dan KesetaraanRangkuman: Daftar Kontak8Special method
Kesetaraan dan hashOperator methodPengindeksan dan penambahanKoleksi kustomRingkasan: Pecahan11Proyek: Manajemen Perpustakaan
Buku dan AnggotaMeminjam Buku3Method dan Variabel class
Method classVariabel instance classKonstantaMethod pabrikRangkuman: Kode KuponLatihan sendiri: Compiler Ruby online