/* Veidoja: Lana Lobza Grupa: 110 Nosaukums: Bibliotēkas sistēma Apraksts: Konsoļu aplikācija grāmatu reģistra apskatei, apmeklētāju šķirošanai un kavējumu naudas aprēķināšanai. Veidots: 28.05.2026 Izmantotais Compiler: www.onlinegdb.com */ using System; namespace BibliotekasSistema { //Enum public enum ZarnuTips { Fikcija, Zinatne, Vesture, Programmesana } //Interface public interface IInformacija { void RaditInformaciju(); } //Abstraction un Inheritance //Access Modifiers public abstract class BibliotekasVieniba : IInformacija { //Class Members protected string nosaukums; //protected modifikators internal int id; //internal modifikators //Constructors public BibliotekasVieniba(int id, string nosaukums) { this.id = id; this.nosaukums = nosaukums; } //Abstraktā metode public abstract void RaditInformaciju(); } //Classes/Objects //Inheritance public class Gramata : BibliotekasVieniba { //Private modifikators private string autors; //Properties public ZarnuTips Zanrs { get; set; } public double Cena { get; set; } public Gramata(int id, string nosaukums, string autors, ZarnuTips zanrs, double cena) : base(id, nosaukums) //Izsauc bāzes klases konstruktoru { this.autors = autors; this.Zanrs = zanrs; this.Cena = cena; } //1. Metode | Polymorphism: Pārdefinēta metode (override) public override void RaditInformaciju() { //Output Console.WriteLine($"[ID: {id}] {nosaukums} | Autors: {autors} | Žanrs: {Zanrs} | Cena: {Math.Round(Cena, 2)} EUR"); } //2. Metode | Methods un Method Overloading: 2 metodes ar vienādu nosaukumu (AprekinatSodu) //Method Parameters // Atgriež double vērtību public double AprekinatSodu(int kavejasDienas) { return kavejasDienas * 1.50; //noklusējuma sods 0.50 EUR par dienu } public double AprekinatSodu(int kavejasDienas, double ipasaLikme) { return kavejasDienas * ipasaLikme; } //3. Metode | Drošībai izveidota pilnīgi atsevišķa trešā metode public void PiemerotAtlaidi(double procenti) { Cena -= Cena * (procenti / 100); } } class MainKlase { static void Main() { //Data Types bool programmaDarbojas = true; char sveicienaSimbols = '!'; //Variables string bibliotekasNosaukums = "Pilsētas Galvenā Bibliotēka"; //Arrays string[] apmekletaji = { "Anna", "Juris", "Zane", "Pēteris", "Kārlis", "Elizaveta Fedosova", "Sofiia Kucherenko" }; //Classes/Objects Gramata gramata1 = new Gramata(1, "Ievads C#", "Jānis Programmētājs", ZarnuTips.Programmesana, 15.99); Gramata gramata2 = new Gramata(2, "Ievads HTML", "Oskars Programmētājs", ZarnuTips.Programmesana, 13.99); Gramata gramata3 = new Gramata(3, "Ievads CSS", "Marks Programmētājs", ZarnuTips.Programmesana, 15.99); Gramata gramata4 = new Gramata(4, "Ievads JS", "Sofiia Kucherenko", ZarnuTips.Programmesana, 1000); Gramata gramata5 = new Gramata(5, "Latvijas vēsture", "Valdis Vēsturnieks", ZarnuTips.Vesture, 20.50); Gramata gramata6 = new Gramata(6, "1984", "Elizaveta Fedosova", ZarnuTips.Fikcija, 21.45); // Piemēro atlaidi vienai grāmatai gramata5.PiemerotAtlaidi(10); //10% atlaide Console.WriteLine($"Laipni lūdzam {bibliotekasNosaukums}{sveicienaSimbols}"); //While Loop while (programmaDarbojas) { Console.WriteLine("\nIzvēlieties darbību:"); Console.WriteLine("1 - Apskatīt grāmatas"); Console.WriteLine("2 - Apskatīt apmeklētāju sarakstu"); Console.WriteLine("3 - Aprēķināt kavējuma sodu"); Console.WriteLine("4 - Iziet"); Console.Write("Jūsu izvēle: "); //User Input string ievade = Console.ReadLine(); //Switch switch (ievade) { case "1": Console.WriteLine("\n--- PIEEJAMĀS GRĀMATAS ---"); gramata1.RaditInformaciju(); gramata2.RaditInformaciju(); gramata3.RaditInformaciju(); gramata4.RaditInformaciju(); gramata5.RaditInformaciju(); gramata6.RaditInformaciju(); break; case "2": Console.WriteLine("\n--- APMEKLĒTĀJU SARAKSTS ---"); //Arrays darbība Array.Sort(apmekletaji); //For Loop for (int i = 0; i < apmekletaji.Length; i++) { //Strings string vards = apmekletaji[i].ToUpper(); //If...Else sazarojums if (vards == "ELIZAVETA FEDOSOVA") { Console.WriteLine($"- {vards} (VIP Klienta statuss)"); } else if (vards == "SOFIIA KUCHERENKO") { Console.WriteLine($"- {vards} (VIP Klienta statuss)"); } else { Console.WriteLine($"- {vards} (Standarta klients)"); } } break; case "3": Console.Write("\nIevadiet kavēto dienu skaitu: "); string dienuIevade = Console.ReadLine(); // C# Operators // C# Type Casting int dienas; bool vaiIrCipars = int.TryParse(dienuIevade, out dienas); //If...Else sazarojums if (vaiIrCipars && dienas > 0) { double sods = gramata1.AprekinatSodu(dienas); // C# Math: Izmantota matemātiskā metode (noapaļošana līdz 2 zīmēm) double noapalotsSods = Math.Round(sods, 2); Console.WriteLine($"Kavējuma sods par {dienas} dienām ir {noapalotsSods} EUR."); } else { Console.WriteLine("Kļūda! Jāievada pozitīvs skaitlis."); } break; case "4": // Izejam no programmas programmaDarbojas = false; Console.WriteLine("Programma beidz darbu. Uz redzēšanos!"); //For Loop Console.Write("Izslēdzas"); for (int j = 0; j < 3; j++) { Console.Write("."); System.Threading.Thread.Sleep(300); // Īsa pauze } Console.WriteLine(); break; default: Console.WriteLine("Nezināma izvēle, mēģiniet vēlreiz!"); break; } } } } }