Özet - Personel Bordrosu
Coddy'nin R Journey'sinin Nesne Tabanlı Programlama bölümünün bir parçası. Ders 16 / 57.
Görev
OrtaÜç dosya üzerinden bir bordro oluşturun. Genel pay() işlevi Employee.R içinde verilmiştir.
Employee.R:new_employee(name, salary, ..., class = character());pay.employee()maaşın 12'ye bölünmüş hâlidir;format.employee(),pay()işlevi iki ondalık basamağa biçimlendirilmiş olarakAda: 5000.00döndürür; ayrıcamanager_cost(staff),manager'dan miras alan herkesin aylık toplam ücretini verir.Manager.R: ekbonusalanıylanew_manager(name, salary, bonus);pay.manager(),NextMethod()ile bonusun on ikide birini çalışan ücretine ekler;format.manager(),NextMethod()ile çalışan metninin sonuna(manager)ekler.Intern.R:new_intern(name, salary);pay.intern(),NextMethod()kullanarak çalışan ücretinin yarısıdır. Stajyerler çalışan biçimini korur.
Sağlanan kod employee Bo 36000, manager Ada 60000 12000 veya intern Cy 24000 satırlarını okur, her kişinin biçimini ve ardından yöneticilerin toplamını yazdırır.
Kodunuz Employee.R, Manager.R ve Intern.R dosyalarına gider. main.R, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
source("Employee.R")
source("Manager.R")
source("Intern.R")
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
staff <- list()
for (line in input) {
p <- strsplit(line, " ")[[1]]
staff[[length(staff) + 1]] <- switch(p[1],
employee = new_employee(p[2], as.numeric(p[3])),
manager = new_manager(p[2], as.numeric(p[3]), as.numeric(p[4])),
intern = new_intern(p[2], as.numeric(p[3])))
}
for (x in staff) cat(format(x), "\n", sep = "")
cat(sprintf("managers cost %.2f per month", manager_cost(staff)), "\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ç Alma3S3 Kalıtımı
Sınıf VektörleriMetot Arama SırasıNextMethod ile Genişletmeinherits() ile DenetlemeÖzet - Personel BordrosuKendi başına pratik yap: Online R derleyicisi