Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Zadanie 10.1
- class Osoba {
- var imie: String
- var nazwisko: String
- var rokUrodzenia: Int
- init(imie: String, nazwisko: String, rokUrodzenia: Int) {
- self.imie = imie
- self.nazwisko = nazwisko
- self.rokUrodzenia = rokUrodzenia
- }
- func obliczWiek() -> Int {
- let aktualnyRok = 2023 // aktualny rok
- return aktualnyRok - rokUrodzenia
- }
- func wyswietlDane() {
- print("Imię: \(imie), Nazwisko: \(nazwisko), Rok urodzenia: \(rokUrodzenia)")
- }
- }
- let osoba1 = Osoba(imie: "Jan", nazwisko: "Kowalski", rokUrodzenia: 1990)
- let osoba2 = Osoba(imie: "Anna", nazwisko: "Nowak", rokUrodzenia: 1995)
- osoba1.wyswietlDane()
- print("Wiek: \(osoba1.obliczWiek()) lat")
- osoba2.wyswietlDane()
- print("Wiek: \(osoba2.obliczWiek()) lat")
- if osoba1.obliczWiek() > osoba2.obliczWiek() {
- print("\(osoba1.imie) jest starsza od \(osoba2.imie).")
- } else if osoba1.obliczWiek() < osoba2.obliczWiek() {
- print("\(osoba1.imie) jest młodsza od \(osoba2.imie).")
- } else {
- print("\(osoba1.imie) i \(osoba2.imie) są w tym samym wieku.")
- }
- // Zadanie 10.2
- enum Stanowisko {
- case manager, pracownik, specjalista
- }
- class Pracownik: Osoba {
- var rokZatrudnienia: Int
- var stanowisko: Stanowisko
- var stawkaZaGodzine: Double
- var liczbaGodzin: Double
- var firma: String
- init(imie: String, nazwisko: String, rokUrodzenia: Int, rokZatrudnienia: Int, stanowisko: Stanowisko, stawkaZaGodzine: Double, liczbaGodzin: Double, firma: String) {
- self.rokZatrudnienia = rokZatrudnienia
- self.stanowisko = stanowisko
- self.stawkaZaGodzine = stawkaZaGodzine
- self.liczbaGodzin = liczbaGodzin
- self.firma = firma
- super.init(imie: imie, nazwisko: nazwisko, rokUrodzenia: rokUrodzenia)
- }
- func liczbaLatPracy() -> Int {
- let aktualnyRok = 2023 // aktualny rok
- return aktualnyRok - rokZatrudnienia
- }
- func obliczPensje() -> Double {
- return stawkaZaGodzine * liczbaGodzin
- }
- override func wyswietlDane() {
- super.wyswietlDane()
- print("Rok zatrudnienia: \(rokZatrudnienia)")
- print("Stanowisko: \(stanowisko)")
- print("Firma: \(firma)")
- print("Liczba lat pracy: \(liczbaLatPracy())")
- print("Pensja: \(obliczPensje())")
- }
- }
- let pracownik1 = Pracownik(imie: "Adam", nazwisko: "Nowak", rokUrodzenia: 1985, rokZatrudnienia: 2010, stanowisko: .specjalista, stawkaZaGodzine: 50.0, liczbaGodzin: 160.0, firma: "XYZ Corp")
- let pracownik2 = Pracownik(imie: "Ewa", nazwisko: "Kowalska", rokUrodzenia: 1990, rokZatrudnienia: 2015, stanowisko: .pracownik, stawkaZaGodzine: 40.0, liczbaGodzin: 150.0, firma: "ABC Inc")
- pracownik1.wyswietlDane()
- pracownik2.wyswietlDane()
- // Zadanie 10.3
- enum KierunekStudiow: String {
- case informatyka, matematyka, fizyka, chemia
- }
- class Student: Osoba {
- var numerIndeksu: String
- var kierunekStudiow: KierunekStudiow
- var rokStudiow: Int
- var oceny: [Double]
- init(imie: String, nazwisko: String, rokUrodzenia: Int, numerIndeksu: String, kierunekStudiow: KierunekStudiow, rokStudiow: Int, oceny: [Double]) {
- self.numerIndeksu = numerIndeksu
- self.kierunekStudiow = kierunekStudiow
- self.rokStudiow = rokStudiow
- self.oceny = oceny
- super.init(imie: imie, nazwisko: nazwisko, rokUrodzenia: rokUrodzenia)
- }
- func sredniaOcen() -> Double {
- let sumaOcen = oceny.reduce(0, +)
- return sumaOcen / Double(oceny.count)
- }
- override func wyswietlDane() {
- super.wyswietlDane()
- print("Numer indeksu: \(numerIndeksu)")
- print("Kierunek studiów: \(kierunekStudiow.rawValue)")
- print("Rok studiów: \(rokStudiow)")
- print("Oceny: \(oceny)")
- print("Średnia ocen: \(sredniaOcen())")
- }
- }
- print("Podaj liczbę studentów:")
- if let liczbaStudentow = readLine(), let liczba = Int(liczbaStudentow) {
- var studenci: [Student] = []
- for _ in 0..<liczba {
- print("Podaj imię studenta:")
- guard let imie = readLine() else { continue }
- print("Podaj nazwisko studenta:")
- guard let nazwisko = readLine() else { continue }
- print("Podaj rok urodzenia studenta:")
- guard let rokUrodzeniaString = readLine(), let rokUrodzenia = Int(rokUrodzeniaString) else { continue }
- print("Podaj numer indeksu studenta:")
- guard let numerIndeksu = readLine() else { continue }
- print("Podaj kierunek studiów studenta (informatyka, matematyka, fizyka, chemia):")
- guard let kierunekString = readLine(), let kierunek = KierunekStudiow(rawValue: kierunekString) else { continue }
- print("Podaj rok studiów studenta:")
- guard let rokStudiowString = readLine(), let rokStudiow = Int(rokStudiowString) else { continue }
- print("Podaj oceny studenta (oddzielone przecinkiem):")
- guard let ocenyString = readLine(), let oceny = ocenyString.components(separatedBy: ",").compactMap({ Double($0) }) else { continue }
- let student = Student(imie: imie, nazwisko: nazwisko, rokUrodzenia: rokUrodzenia, numerIndeksu: numerIndeksu, kierunekStudiow: kierunek, rokStudiow: rokStudiow, oceny: oceny)
- studenci.append(student)
- }
- for student in studenci {
- student.wyswietlDane()
- print()
- }
- print("Podaj kierunek studiów do wyświetlenia:")
- if let kierunekString = readLine(), let kierunek = KierunekStudiow(rawValue: kierunekString) {
- let studenciNaKierunku = studenci.filter { $0.kierunekStudiow == kierunek }
- for student in studenciNaKierunku {
- student.wyswietlDane()
- print()
- }
- } else {
- print("Błędny kierunek studiów.")
- }
- }
- // Zadanie 10.4
- // Polecenie 1
- class StudentNaErasmusie: Student {
- var nazwaUczelniZaGranica: String
- var dataRozpoczeciaErasmusa: String
- var dataZakonczeniaErasmusa: String
- var kursy: [(nazwa: String, ocena: Double)]
- // Polecenie 2
- init(imie: String, nazwisko: String, rokUrodzenia: Int, numerIndeksu: String, kierunekStudiow: KierunekStudiow, rokStudiow: Int, oceny: [Double], nazwaUczelniZaGranica: String, dataRozpoczeciaErasmusa: String, dataZakonczeniaErasmusa: String, kursy: [(nazwa: String, ocena: Double)]) {
- self.nazwaUczelniZaGranica = nazwaUczelniZaGranica
- self.dataRozpoczeciaErasmusa = dataRozpoczeciaErasmusa
- self.dataZakonczeniaErasmusa = dataZakonczeniaErasmusa
- self.kursy = kursy
- super.init(imie: imie, nazwisko: nazwisko, rokUrodzenia: rokUrodzenia, numerIndeksu: numerIndeksu, kierunekStudiow: kierunekStudiow, rokStudiow: rokStudiow, oceny: oceny)
- }
- // Polecenie 4
- func czasNaErasmusie() -> Int {
- // Implementacja funkcji
- }
- // Polecenie 5
- func ocenaZErasmusa() -> Double {
- // Implementacja funkcji
- }
- // Polecenie 3
- override func wyswietlDane() {
- super.wyswietlDane()
- print("Uczelnia za granicą: \(nazwaUczelniZaGranica)")
- print("Rozpoczęcie Erasmusa: \(dataRozpoczeciaErasmusa)")
- print("Zakończenie Erasmusa: \(dataZakonczeniaErasmusa)")
- print("Kursy na Erasmusie:")
- for kurs in kursy {
- print("\(kurs.nazwa) - Ocena: \(kurs.ocena)")
- }
- print("Czas spędzony na Erasmusie: \(czasNaErasmusie()) dni")
- print("Średnia ocena z Erasmusa: \(ocenaZErasmusa())")
- }
- }
- // Przykładowe użycie
- let studentErasmus = StudentNaErasmusie(imie: "Alicja", nazwisko: "Nowak", rokUrodzenia: 1998, numerIndeksu: "12345", kierunekStudiow: .informatyka, rokStudiow: 3, oceny: [4.5, 5.0, 4.0, 3.5, 5.0], nazwaUczelniZaGranica: "Uniwersytet XYZ", dataRozpoczeciaErasmusa: "2023-09-01", dataZakonczeniaErasmusa: "2024-02-29", kursy: [("Historia Sztuki", 4.0), ("Język Obcy", 5.0)])
- studentErasmus.wyswietlDane()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement