/* 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: 22.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 * 0.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() { } } }