Etkinlik Planlayıcı
Coddy'nin R Journey'sinin Nesne Tabanlı Programlama bölümünün bir parçası. Ders 56 / 57.
Görev
Zorİki dosya üzerinde bir etkinlik zamanlayıcısı oluşturun.
Event.R:title,day,start,end(saat) alanlarına sahip S3 sınıfıevent.new_event()yazın;day must be from 1 to 31veyahours must be within 0 to 24 and start before endmesajıyla işlemi durduranvalidate_event(); metin bağımsız değişkenlerini sayılara dönüştüren yardımcıevent(title, day, start, end);day 3 09-11 standupdöndürenformat.event(); ve iki etkinlik aynı gündeyse ve her biri diğerinin bitişinden önce başlıyorsaTRUEdöndürenoverlaps(a, b).Scheduler.R:make_scheduler()etkinliklerini gizli tutar ve aynı gündeki aynı başlık içinduplicate, etkinlik mevcut bir etkinlikle çakıştığındaconflicts with reviewveyaaddedyanıtını verenadd(e)işlevini; gün, başlangıç ve başlığa göre sıralanmış biçimlendirilmiş etkinlikleri döndürenagenda()işlevini; ve toplam saate görebusiest: day 3 (4 hours)döndüren (eşitlik durumunda daha erken günü seçen) veyano eventsdöndürenbusiest_day()işlevini döndürür.
call. = FALSE kullanın. Sağlanan kod satırları title,day,start,end biçiminde okur, her biri için yanıtı, ardından gündemi ve en yoğun günü yazdırır.
Kodunuz Event.R ve Scheduler.R dosyalarına gitmelidir. main.R, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
source("Event.R")
source("Scheduler.R")
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
s <- make_scheduler()
for (line in input) {
p <- strsplit(line, ",")[[1]]
reply <- tryCatch(s$add(event(p[1], p[2], p[3], p[4])), error = function(e) paste("invalid:", conditionMessage(e)))
cat(p[1], ": ", reply, "\n", sep = "")
}
cat("agenda:\n")
for (l in s$agenda()) cat(" ", l, "\n", sep = "")
cat(s$busiest_day(), "\n", sep = "")
Nesne Tabanlı Programlama bölümündeki tüm dersler
1S3 Temelleri
Dosyalarla ÇalışmaSınıf ile ListelerYapıcı FonksiyonlarPrint ve Format MetotlarıDoğrulayıcılar ve YardımcılarTekrar - Sıcaklıklar4R'da Kapsülleme
Nesne Olarak Closure'larNesne Olarak OrtamlarErişimci FonksiyonlarDurumu KorumaÖzet - Parkmetre2S3 Generic'leri ve Metotları
Generic'ler ve UseMethodVarsayılan MetotlarTemel Generic'ler için MetotlarNextMethod TemelleriTekrar - Şekil Alanları5S4 Sınıfları
S4 Sınıflarını TanımlamaSlotlar ve ErişimGeçerlilik KontrolleriShow MetotlarıÖzet - Ürün Kataloğu8Referans Sınıfları
Referans Sınıflarını TanımlamaMetotlar ve Alan GüncellemeleriKopyalama SemantiğiKalıtım ve callSuperÖzet - Görev Kuyruğu11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Online R derleyicisi