/*Veidoja: Gustavs Skripa Grupa: 110 Nosaukums: Noliktavas un preču uzskaites sistēma Projekta apraksts: Noliktavas uzskaites sistēma preču datu saglabāšanai masīvā, saraksta attēlošanai, kopējās vērtības aprēķinam un atlaižu piemērošanai Veidots: 07.06.2026. Kādā programmā veidots: onlinegdb.com (C# (dotnet)) */ using System; namespace NoliktavasSistema { //Abstraction public abstract class Prece { // Class members, access modifiers private string nosaukums = "Nezināms"; public double cena; // Properties - get/set metodes public string Nosaukums { get { return nosaukums; } set { // Otrais if...else kritērijam parbauda vai ievaditais teksts nav tukss if (string.IsNullOrEmpty(value)) { nosaukums = "Nezināms"; } else { nosaukums = value; } } } // Data Types- int datu tips skaitīšanai public int Daudzums { get; set; } //Constructors public Prece(string nosaukums, double cena, int daudzums) { this.Nosaukums = nosaukums; this.cena = cena; this.Daudzums = daudzums; } // Polymorphism, virtuāla metode kuru bērnu klases var pārrakstīt pēc savas vajadzības public virtual void IzvaditInfo() { // Output Console.WriteLine($"Prece: {Nosaukums}, Cena: {cena} EUR, Skaits: {Daudzums}"); } } // Inheritance, klase 'Elektronika' pārņem visu no klases 'Prece' un papildina to public class Elektronika : Prece { public int Garantija { get; set; } public Elektronika(string nosaukums, double cena, int daudzums, int garantija) : base(nosaukums, cena, daudzums) { this.Garantija = garantija; } //Polymorphism, pārrakstītā metode kas pielāgo informācijas izvadi specifiski elektronikai public override void IzvaditInfo() { Console.WriteLine($"Elektronika: {Nosaukums}, Cena: {cena} EUR, Skaits: {Daudzums}, Garantija: {Garantija} mēn."); } } class Program { static void ParaditIzvelni() { //Strings Console.WriteLine("\n--- Noliktavu sistema ---"); Console.WriteLine("1. Parādīt preces"); Console.WriteLine("2. Aprēķināt vērtību"); Console.WriteLine("3. Pievienot jaunu preci"); Console.WriteLine("0. Iziet"); Console.Write("Izvēlies darbību: "); } //Methods, method parameters- funkcija kas aprēķina vienas preces kopējo vērtību pēc cenas un skaita static double AprekinatVertibu(double precesCena, int precesSkaits) { // Operators reizināšana return precesCena * precesSkaits; } static void Main(string[] args) { //Arrays- masīvs ar fiksētu izmēru kurā var saglabāt līdz 5 precēm Prece[] noliktava = new Prece[5]; //Classes/Objects noliktava[0] = new Elektronika("Dators", 899.99, 3, 24); noliktava[1] = new Elektronika("Telefons", 450.00, 5, 12); // Variables booleans bool turpinat = true; // While loop while (turpinat) { ParaditIzvelni(); // User Input string? ievade = Console.ReadLine(); // If...Else if (ievade == "1") { Console.WriteLine("\nNoliktavas preces:"); //For loop for (int i = 0; i < noliktava.Length; i++) { // Operators salīdzināšana if (noliktava[i] != null) { noliktava[i].IzvaditInfo(); } } } // If...Else else if (ievade == "2") { double kopejaVertiba = 0; // For Loop otrais cikls iet cauri precēm lai saskaitītu kopējo noliktavas vērtību for (int i = 0; i < noliktava.Length; i++) { if (noliktava[i] != null) { // Operators pieskaitīšana kopejaVertiba += AprekinatVertibu(noliktava[i].cena, noliktava[i].Daudzums); } } Console.Write("Ievadi atlaides kodu (#ESGRIBU10%ATLAIDI / #ESMILUSOAPLIKACIJU) vai spied Enter: "); string? kods = Console.ReadLine(); // Switch sazarojums pārbauda ievadīto kodu un piemēro attiecīgo atlaidi switch (kods) { case "#ESGRIBU10%ATLAIDI": kopejaVertiba = kopejaVertiba * 0.90; break; case "#ESMILUSOAPLIKACIJU": kopejaVertiba = kopejaVertiba * 0.80; break; default: break; } //Math noapalo gala summu lidz 2 cipariem aiz komata kopejaVertiba = Math.Round(kopejaVertiba, 2); Console.WriteLine($"\nKopējā noliktavas vērtība: {kopejaVertiba} EUR"); } else if (ievade == "3") { int brivaisIndekss = -1; for (int i = 0; i < noliktava.Length; i++) { if (noliktava[i] == null) { brivaisIndekss = i; break; } } // Ja brīva vieta tika atrasta, prasa lietotājam ievadīt datus if (brivaisIndekss != -1) { Console.Write("Ievadi nosaukumu: "); string nosaukums = Console.ReadLine() ?? "Nezināms"; Console.Write("Ievadi cenu: "); double cena = Convert.ToDouble(Console.ReadLine()); Console.Write("Ievadi daudzumu: "); int daudzums = Convert.ToInt32(Console.ReadLine()); Console.Write("Ievadi garantiju (mēnešos): "); int garantija = Convert.ToInt32(Console.ReadLine()); noliktava[brivaisIndekss] = new Elektronika(nosaukums, cena, daudzums, garantija); Console.WriteLine("Prece veiksmīgi pievienota!"); } else { // Ja cikls izgāja cauri visam masīvam un neatrada nevienu null tad noliktava ir pilna (limits 5 preces) Console.WriteLine("Noliktava ir pilna! Nav iespējams pievienot jaunu preci."); } } else if (ievade == "0") { turpinat = false; // Maina bool vērtību uz false, lai pārtrauktu while ciklu Console.WriteLine("Programmas beigas"); } else { Console.WriteLine("Nav tādu izvēļu"); } } } } }