/* Kirills Erdmanis Grupa: 110 Projekta nosaukums: Viedā auto nomas sistēma Apraksts: Transportlīdzekļu parka pārvaldība un nomas aprēķins. Veidots: 22.05.2026 Programma: onlinegdb.com C#(dotnet) */ using System; // C# Abstraction abstract class Transportlidzeklis { // C# Access Modifiers public un C# Properties (get/set) public string Marka { get; set; } public double PamataTarifs { get; set; } // Abstraktā metode public abstract double AprekinatKategorijasTarifu(); } // C# Inheritance (Mantošana) class NomasAuto : Transportlidzeklis { // C# Class Members public string Kategorija { get; set; } // C# Constructors public NomasAuto(string marka, double pamataTarifs, string kategorija) { Marka = marka; PamataTarifs = pamataTarifs; Kategorija = kategorija; } // C# Polymorphism public override double AprekinatKategorijasTarifu() { // C# Switch sazarojums switch (Kategorija) { case "1": return PamataTarifs * 1.0; case "2": return PamataTarifs * 1.5; case "3": return PamataTarifs * 2.5; default: return PamataTarifs * 1.0; } } } // Otra nepieciešamā klase class Klients { // C# Class Members public string Vards { get; set; } public int Vecums { get; set; } // Konstruktors public Klients(string vards, int vecums) { Vards = vards; Vecums = vecums; } // IZLABOTS: C# Class Members (Metode klasē) un C# Method Parameters (Vismaz 2 parametri) public void RegistretSitema(string pilseta, int klientaID) { Console.WriteLine($"[Sistēma]: Klients {Vards} veiksmīgi reģistrēts datubāzē (ID: {klientaID}, Pilsēta: {pilseta})."); } } class Program { // Izmantots otrs modifikators - private private static string sistemasVersija = "v2.5-viedais"; // Metode ar 2 parametriem static void ParaditSistemasStatusu(string firmasVards, int autoSkaits) { Console.WriteLine($"=== Sveicinati {firmasVards} auto nomas sistema ({sistemasVersija})!!! === "); Console.WriteLine($"Paslaik parka ir pieejami {autoSkaits} transportlidzekli"); } // Metode, kas atgriež vērtību, nevis void static double AprekinatGalaSummu(double stundas, double tarifs) { // C# Math metodes izmantošana double apalotasStundas = Math.Ceiling(stundas); double summa = apalotasStundas * tarifs; // C# If...Else sazarojums if (apalotasStundas >= 24) { Console.WriteLine("\n[Atlaide] Tā kā noma ir vairāk par 1 dienu, Jums pienākas 30% atlaide!"); summa = summa * 0.8; } else { Console.WriteLine("\nĪstermiņa noma piemērota bez papildu atlaidēm."); } return summa; } static void Main(string[] args) { // C# Data Types un C# Variables string, int, double ar pareiziem nosaukumiem string firmasnosaukums = "TurboDrive"; int pieejamieAuto = 22; double pamataTarifs = 4.50; // C# Booleans bool vaiSistemaStrada = true; if (vaiSistemaStrada == false) { Console.WriteLine("Atvainojiet, sistema paslaik nedarbojas tehniskas apkopes del."); return; } // Metodes izsaukšana ParaditSistemasStatusu(firmasnosaukums, pieejamieAuto); Console.WriteLine($"Pamata stundas tarifs: {pamataTarifs} EUR/h\n"); // C# User Input Console.WriteLine("Ludzu, ievadiet savu vardu: "); string? klientaVards = Console.ReadLine(); Console.WriteLine("Ievadiet savu vecumu: "); int klientaVecums = Convert.ToInt32(Console.ReadLine()); // Objekta izveide 1. objekts Klients pasreizejaisKlients = new Klients(klientaVards ?? "Viesis", klientaVecums); // Izsauc jauno klases metodi ar 2 parametriem pasreizejaisKlients.RegistretSitema("Jelgava", 7712); // Izmantots UN '&&', lai apvienotu nosacījumus if (pasreizejaisKlients.Vecums >= 18 && pasreizejaisKlients.Vecums <= 100) { Console.WriteLine($"\nJums ir atļauts nomāt Auto!"); Console.WriteLine("Nospiediet ENTER, lai turpinātu..."); Console.ReadLine(); Console.WriteLine("\nIzvelaties Auto kategoriju:"); Console.WriteLine("1 - Ekonomiska (Tarifs x 1.0)"); Console.WriteLine("2 - Komforts (Tarifs x 1.5)"); Console.WriteLine("3 - VIP (Tarifs x 2.5)"); Console.Write("Ievadiet ciparu no 1 lidz 3: "); string? izvele = Console.ReadLine(); // Objekta izveide 2. objekts NomasAuto izveletaisAuto = new NomasAuto("BMW", pamataTarifs, izvele ?? "1"); double kopaStunda = izveletaisAuto.AprekinatKategorijasTarifu(); switch (izvele) { case "1": Console.WriteLine("Jus izvelejaties Ekonomisko klasi!"); break; case "2": Console.WriteLine("Jus izvelejaties Komforta klasi!"); break; case "3": Console.WriteLine("Jus izvelejaties VIP klasi!"); break; default: Console.WriteLine("Nepareiza izvele. Jums tiks pieskirta Ekonomiska klase"); break; } Console.WriteLine($"\nJusu izveleta auto tarifs ir {kopaStunda} EUR/h"); // C# Arrays (Masīva izveide) string[] laikaPeriodi = { "stundu-ām", "dienu-ām", "menesi-šiem" }; // C# Arrays darbība: Sort kārtošana alfabēta secībā Array.Sort(laikaPeriodi); // Pēc sort: [0]="dienu-ām", [1]="menesi-šiem", [2]="stundu-ām" Console.WriteLine("\nIzvelaties nomas laika veidu:"); // C# For Loop (1. cikls - Loop-Through pār masīvu) for (int i = 0; i < laikaPeriodi.Length; i++) { Console.WriteLine($"{i + 1} - Nomat uz {laikaPeriodi[i]}"); } Console.Write("Jūsu izvēle: "); string? laikaIzvele = Console.ReadLine(); Console.Write("\nIevadiet laika daudzumu (skaitli): "); double skaits = Convert.ToDouble(Console.ReadLine()); double kopaStundasGala = 0; string izveletaisPeriods = ""; // Otrs If...Else sazarojums, kas pielāgots sakārtotajam masīvam if (laikaIzvele == "1") { kopaStundasGala = skaits * 24; // dienas pārvērš stundās izveletaisPeriods = "dienām"; } else if (laikaIzvele == "2") { kopaStundasGala = skaits * 30 * 24; // mēnešus pārvērš stundās izveletaisPeriods = "mēnešiem"; } else if (laikaIzvele == "3") { kopaStundasGala = skaits; // stundas paliek stundas izveletaisPeriods = "stundām"; } else { Console.WriteLine("Nezināma izvēle, rēķinām kā stundas."); kopaStundasGala = skaits; izveletaisPeriods = "stundas"; } // Izsaukta paštaisītā aprēķinu metode, kas atgriež double double galaSumma = AprekinatGalaSummu(kopaStundasGala, kopaStunda); // C# Output Console.WriteLine($"Kopējā maksas summa par {skaits} {izveletaisPeriods} nomu: {galaSumma:F2} EUR"); Console.WriteLine("\nNospiediet ENTER, lai uzsaktu auto drosibas parbaudi..."); Console.ReadLine(); Console.WriteLine("\nSagatavojam auto braucienam:"); // C# For Loop 2. cikls drošības pārbaudei for (int j = 1; j <= 4; j++) { if (j < 4) { Console.WriteLine($"... Notiek drošības sistēmu pārbaude ({j}/3)..."); } else { Console.WriteLine("... Viedā pārbaude pabeigta veiksmīgi!"); } System.Threading.Thread.Sleep(1000); // Paātrināts uz 1 sekundi testēšanai } Console.WriteLine("Auto ir pilnībā gatavs braucienam! Novēlam drošu ceļu!"); } else { Console.WriteLine($"\nAtvainojiet, {pasreizejaisKlients.Vards}, auto noma ir pieejama tikai personām no 18 līdz 100 gadiem!"); } Console.WriteLine($"\nPaldies, ka izvelejaties musu transporta nomas servisu!"); } }