C# Struktury i metody

0

Witam. Mam za zadanie:

  1. Stwórz program "Baza klientów", który będzie przechowywał strukturę
    Klient (pola: Imię, Nazwisko, Identyfikator, Saldo). Dodaj do struktury Klient metody: Wyświetl oraz Edytuj.
  2. Stwórz strukturę BazaKlientów, która będzie przechowywać klientów w tablicy Klient[].
  3. Stwórz w strukturze BazaKlientów metody:

Dodaj - umożliwiającą dodanie klienta

Edytuj

  • umożliwiającą edycję danych klienta (użytkownik podaje identyfikator
    klienta, którego dane chce edytować). Metoda może ewentualnie działać
    pobierając indeks elementu z tablicy klientów.

Usuń - usuwającą
klienta z bazy (użytkownik podaje identyfikator klienta, którego chce
usunąć). Metoda może ew. działać pobierając indeks elementu z tablicy
klientów. Po wywołaniu metody Usuń w tablicy nie powinny pozostać puste
elementy - należy przesunąć pozostałe elementy tablicy tak, żeby nie
było pomiędzy nimi pustego pola.

Wyświetl - wyświetlającą listę klientów.

Zamień - umożliwiającą zamienienie miejscami klientów w bazie poprzez podanie identyfikatora (ew. indeksu z tablicy)

ObliczŚrednią - obliczającą średnią wszystkich sald klientów w bazie danych.

  1. Dodaj do programu menu, w którym użytkownik będzie mógł zarządzać bazą poprzez wybranie odpowiedniej opcji.

I mam pewien problem, za bardzo nie wiem jak sie do tego zabrac. Mam stworzone menu w ktorym mozna wybrac jedna z opcji, ale nie wiem jak wprowadzac klientow tak aby oni byli przechowywani w tablicy Klient[] i zeby to jakos w miare przejrzyscie i sprawnie dzialalo. Potrzebuje wskazówki albo malej pomocy, poniewaz w tym momencie mam czarna dziure w glowie.

0

Tu masz jedną klasę:

    class Client
    {
        public string FirstName { get; private set; }
        public string LastName { get; private set; }
        public int Id { get; private set; }
        public double Balance { get; private set; }

        public Client(string firstName, string lastName, int id, double balance = 0.0)
        {
            FirstName = firstName;
            LastName = lastName;
            Id = id;
            Balance = balance;
        }

        public void EditBalance(double currentBalance)
        {
            Balance = currentBalance;
        }

        public override string ToString()
        {
            return String.Format("Klient: {0} {1}, id: {2}, saldo: {3}", FirstName, LastName, Id, Balance);
        }
    }

A tu drugą:

    class ClientsDB
    {
        private readonly List<Client> _clients;
        
        public ClientsDB()
        {
            _clients = new List<Client>();
        }

        public void AddClient(Client client)
        {
            _clients.Add(client);
        }

        public void DeleteClient(int id)
        {
            _clients.Remove(_clients.FirstOrDefault(c => c.Id == id));
        }

        public double AverageClientBalance()
        {
            return _clients.Average(c => c.Balance);
        }

        public override string ToString()
        {
            var result = new StringBuilder();
            foreach (var client in _clients)
            {
                result.AppendLine(client.ToString());
            }

            return result.ToString();
        }
    }

Resztę logiki i warstwę graficzną powinieneś sobie dać radę dopisać sam. Twoje "funkcja Wypisz()" to ToString().
Kod obsługuje jedynie optymistyczne przypadki, ale pewnie nie potrzebujesz nic więcej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1