using System; using System.Collections.Generic; public class BankasKonts { private string kontaNumurs; private string ipasniekaVards; private decimal atlikums; // Unikālo kontu numuru ģenerēšanai private static int nextKontaNumurs = 1; private static HashSet visiKontaNumuri = new HashSet(); // Īpašības ar get piekļuvi public string KontaNumurs { get => kontaNumurs; } public string IpasniekaVards { get => ipasniekaVards; } public decimal Atlikums { get => atlikums; } public BankasKonts(string ipasniekaVards, decimal sākumaAtlikums = 0) { this.ipasniekaVards = ipasniekaVards; this.atlikums = sākumaAtlikums; // Ģenerē unikālu konta numuru this.kontaNumurs = GeneretKontaNumuru(); visiKontaNumuri.Add(this.kontaNumurs); Console.WriteLine($"\nKonts izveidots ar numuru: {this.kontaNumurs}"); } ~BankasKonts() { Console.WriteLine($"\nKonts ar numuru {kontaNumurs} tiek iznicinats."); visiKontaNumuri.Remove(this.kontaNumurs); } // Mtode konta numura ģenerēšanai private string GeneretKontaNumuru() { string numurs; do { numurs = "FF" + nextKontaNumurs.ToString("D5"); nextKontaNumurs++; } while (visiKontaNumuri.Contains(numurs)); return numurs; } // Naudas noguldīšana public void Noguldit(decimal summa) { if (summa <= 0) { throw new ArgumentException("Noguldamai summai jabut lielakai par 0"); } atlikums += summa; Console.WriteLine($"\nKonta {kontaNumurs} noguldits {summa:C}. Jauns atlikums: {atlikums:C}"); } // Naudas izņemšana public void Izņemt(decimal summa) { if (summa <= 0) { throw new ArgumentException("Iznemamai summai jabut lielakai par 0"); } if (summa > atlikums) { throw new InvalidOperationException("Konta nav pietiekami daudz naudas"); } atlikums -= summa; Console.WriteLine($"\nNo konta {kontaNumurs} iznemts {summa:C}. Jauns atlikums: {atlikums:C}"); } // Konta informācija public void ParadiInformaciju() { Console.WriteLine("\n=== Konta informacija ==="); Console.WriteLine($"Konta numurs: {kontaNumurs}"); Console.WriteLine($"ipasnieka vards: {ipasniekaVards}"); Console.WriteLine($"Atlikums: {atlikums:C}"); } } class Program { static List konti = new List(); static void Main(string[] args) { bool darbojas = true; while (darbojas) { try { Console.WriteLine("Ludzu, izvelieties darbibu:"); Console.WriteLine("\n1. Izveidot jaunu bankas kontu"); Console.WriteLine("2. Noguldit naudu konta"); Console.WriteLine("3. Iznemt naudu no konta"); Console.WriteLine("4. Paradit konta informaciju"); Console.WriteLine("5. Dzest kontu"); Console.WriteLine("6. Iziet no sistemas"); Console.Write("\nJusu izvele: "); string ievade = Console.ReadLine(); if (!int.TryParse(ievade, out int izvele)) { Console.WriteLine("\nKluda: Ievadiet derigu skaitli"); continue; } switch (izvele) { case 1: IzveidotKontu(); break; case 2: VeiktOperaciju("noguldit"); break; case 3: VeiktOperaciju("iznemt"); break; case 4: ParadiKontaInformaciju(); break; case 5: DzestKontu(); break; case 6: darbojas = false; Console.WriteLine("\nProgramma tiek slegta"); break; default: Console.WriteLine("\nKluda: Nepareiza izvele. Meginiet velreiz."); break; } } catch (Exception ex) { Console.WriteLine($"\nKluda: {ex.Message}"); } } } static void IzveidotKontu() { Console.Write("\nIevadiet konta ipasnieka vardu: "); string vards = Console.ReadLine(); if (string.IsNullOrWhiteSpace(vards)) { throw new ArgumentException("Vardam jabut noraditam"); } Console.Write("Ievadiet atlikumu: "); string ievade = Console.ReadLine(); decimal atlikums = 0; if (!string.IsNullOrWhiteSpace(ievade) && !decimal.TryParse(ievade, out atlikums)) { throw new ArgumentException("Nepareizs atlikuma formats"); } BankasKonts jaunsKonts = new BankasKonts(vards, atlikums); konti.Add(jaunsKonts); } static void VeiktOperaciju(string operacija) { BankasKonts konts = AtrastKontu(); if (konts == null) return; Console.Write($"\nIevadiet summu, ko velaties {operacija}: "); string ievade = Console.ReadLine(); if (!decimal.TryParse(ievade, out decimal summa)) { throw new ArgumentException("Nepareiza summas formats"); } if (operacija == "noguldit") { konts.Noguldit(summa); } else { konts.Izņemt(summa); } } static void ParadiKontaInformaciju() { BankasKonts konts = AtrastKontu(); if (konts == null) return; konts.ParadiInformaciju(); } static void DzestKontu() { BankasKonts konts = AtrastKontu(); if (konts == null) return; Console.WriteLine($"\nVai tiesam velaties dzest kontu ar numuru {konts.KontaNumurs}? (j/n)"); string atbilde = Console.ReadLine().ToLower(); if (atbilde == "j") { konti.Remove(konts); Console.WriteLine($"\nKonts {konts.KontaNumurs} dzests"); } else { Console.WriteLine("\nKonta dzesana atcelta"); } } static BankasKonts AtrastKontu() { if (konti.Count == 0) { Console.WriteLine("\nNav pieejamu kontu. Izveidojiet kontu"); return null; } Console.WriteLine("\nPieejamie konti:"); for (int i = 0; i < konti.Count; i++) { Console.WriteLine($"{i + 1}. {konti[i].KontaNumurs} - {konti[i].IpasniekaVards}"); } Console.Write("\nIevadiet konta numuru vai indeksu: "); string ievade = Console.ReadLine(); // Atrast pēc indeksa if (int.TryParse(ievade, out int indekss) && indekss > 0 && indekss <= konti.Count) { return konti[indekss - 1]; } // Atrast pēc konta numura foreach (var konts in konti) { if (konts.KontaNumurs.Equals(ievade, StringComparison.OrdinalIgnoreCase)) { return konts; } } throw new ArgumentException("Konts ar numuru/indeksu netika atrasts"); } }