Написать программу C#
Основные описания и приёмы для программы1. Описание класса включает имя класса, описание атрибутов (полей) и описание методов. Класс
может определять и ряд других элементов.
2. Спецификатор доступа определяет способ получения доступа к элементу класса.
3. Создание объекта выполняется в два этапа: 1) объявление ссылочной переменной на объект;
2) выделение памяти для объекта и сохранение адреса памяти в ссылочной переменной.
4. Освобождение памяти от недоступных объектов выполняет специальный Сборщик мусора,
который запускается самостоятельно.
5. Программный код может располагаться только внутри методов; методы можно определить
только внутри класса.
6. Конструктор — метод, который инициализирует объект при его создании.
7. Создание массива объектов выполняется в три этапа: 1) объявление ссылочной переменной на
массив; 2) выделение памяти для массива ссылок на объекты и сохранение адреса выделенной
памяти в ссылочной переменной; 3) выделение памяти для объектов и запись в соответствующие
элементы массива ссылок на эти объекты.
8. Коллекция — упорядоченный набор произвольного количества элементов.
9. Создание коллекции выполняется в два этапа: 1) объявление коллекции; 2) добавление элементов
в коллекцию.
10. Свойства позволяют получать и устанавливать значения закрытых полей класса вне определения
класса.
11. В языке С# параметры можно передавать по значению и по ссылке. Существует два варианта
передачи параметров по ссылке: с использованием модификаторов ref и out.
12. В одном классе можно определить несколько методов с одинаковыми именами, но разными
наборами параметров и разной реализацией. Такие методы называют перегруженными.
13. Сигнатура — имя метода со списком его параметров. Все методы в классе должны иметь разные
сигнатуры.
14. Если программа содержит несколько методов, не связанных с каким-либо конкретным объектом,
их следует описать в отдельном классе, объявив при этом статическими.
15. Статические поля и методы принадлежат классу, а не объекту, поэтому обращение к ним
выполняется через имя класса.
16. Нестатические поля и методы принадлежат объекту, поэтому обращение к ним выполняется
через имя объекта.
Входные данные указывать непосредственно в тексте программы. Результаты работы программы выводить
на консоль.
Задание
Вариант А – для студентов, получивших 5 на экзамене. Вариант Б – для студентов, не получивших 5.
Вариант А. Клиенты банка
У клиента банка имеются характеристики: фамилия, имя, отчество, номер паспорта, дата
регистрации в банке, количество счетов, список (массив) счетов (у клиента может быть несколько
депозитов).
У депозитного вклада имеются характеристики: номер счёта, годовой процент по счёту, сумма вклада
на счёте, дата открытия счета, дата закрытия счета.
1. Реализовать класс «Депозит». Предусмотреть автоматическую генерацию уникальных номеров
счетов с помощью статических членов класса. Предусмотреть возможности инициализации объектов
счетов и получения информации о процентных ставках и текущей сумме вклада. Реализовать
получение процентной ставки, остатка средств на счёте и номера счёта с помощью свойств класса.
2. Реализовать класс «Клиент банка». Реализовать получение количества счетов, остатка средств на
счетах с помощью свойств класса (get).
3. Реализовать класс «Банк», позволяющий добавлять клиентов и добавлять счета. Реализовать
открытие, занесение денежных средств и закрытие счетов.
4. В классе «Банк» создать коллекцию (на базе List), содержащую информацию о клиентах банка (не
менее 10).
5. Для всех клиентов заполнить массив, содержащий информацию о вкладах клиента (не менее 2).
6. Создать метод для вычисления суммы вкладов всех вкладчиков.
7. Создать метод для начисления премии в размере 2% вкладчику с максимальным вкладом.
8. Создать метод для перевода заданной суммы с одного счета на другой (счета могут принадлежать
разным клиентам).
9. Создать метод для определения, кому из вкладчиков начислена наибольшая сумма процентов и
размер этой суммы.
10. Создать метод для определения номера счета с минимальным вкладом и год его открытия.
11. Создать метод для добавления в коллекцию новых вкладчиков.
12. Создать метод для удаления из коллекции вкладчиков, которые закрыли счет.
13. Создать метод для определения, у кого из клиентов открыты вклады сроком на 2 года и более.
14. Реализовать расчёт суммарной доходности всех счетов всех клиентов за заданный период
времени в цикле, перебирающем банковские счета клиентов.