Otopark
Coddy'nin R Journey'sinin Nesne Tabanlı Programlama bölümünün bir parçası. Ders 55 / 57.
Görev
ZorBir otopark garajı oluşturun. Vehicle.R, sanal S4 sınıfı Vehicle'ı ( plate yuvası), size_rank(v) ve rate(v) jeneriklerini ve 1, 2 ve 3. sıralar için SIZES adlarını: small, medium, large tanımlar.
Motorbike.R,Car.RveVan.Rdosyalarında sınıflar tanımlanır; yöntemlerini ekleyin: bir motosikletin sırası 1'dir ve saat başına 1 öder, bir arabanın sırası 2'dir ve saat başına 3 öder, bir minibüsün sırası 3'tür ve saat başına 5 öder.Garage.Riçinde Reference ClassGarage'ı tamamlayın.freealanı her sıra için boş yerleri tutar veparked, plakalara göre bir listedir.park(v), aracın kendi sırasındaki boş bir yeri veya boş yer yoksa bir sonraki büyük sıradaki yeri alır veparked AB12 in medium,full for AB12ya daAB12 is already parkedyanıtlarından birini verir.leave(plate, hours)yeri boşaltır veAB12 paid 9(saatlik ücret ile saat sayısının çarpımı, en az 1 saat) ya dano vehicle AB12yanıtını verir.status()isefree: small 1, medium 0, large 2; parked: 1yanıtını verir.
Sağlanan kod, boş yerleri small,medium,large olarak okur; ardından park car AB12 (bike, car veya van), leave AB12 3 ya da status komutlarını işler ve her yanıtı yazdırır.
Kodunuz Vehicle.R, Motorbike.R, Car.R, Van.R ve Garage.R dosyalarına gider. main.R, sağlanan giriş/çıkış kodunu içerir ve düzenlenemez.
Kendin dene
source("Vehicle.R")
source("Motorbike.R")
source("Car.R")
source("Van.R")
source("Garage.R")
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
garage <- Garage$new(free = as.numeric(strsplit(input[1], ",")[[1]]))
for (line in input[-1]) {
p <- strsplit(line, " ")[[1]]
reply <- switch(p[1],
park = garage$park(switch(p[2],
bike = new("Motorbike", plate = p[3]),
car = new("Car", plate = p[3]),
van = new("Van", plate = p[3]))),
leave = garage$leave(p[2], as.numeric(p[3])),
status = garage$status())
cat(reply, "\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