Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C#_Console.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать

Упражнение 2. Генерация номеров банковских счетов

В этом упражнении Вы измените класс BankAccount, созданный в упражнении 1, таким образом, что он будет генерировать уникальные значения банковских счетов. Вы осуществите это через статическую переменную класса BankAccount и метод, который будет инкрементировать и возвращать значение этой переменной. Далее вы протестируете его работу, создав новый экземпляр банковского счета и вызвав для него метод, генерирующий номер банковского счета.

  • Сделайте номер каждого банковского счета уникальным

  • Откройте проект UniqueNumbers.sln из папки install folder\Labs\Lab07\Starter\UniqueNumbers.

Замечание: Этот проект совпадает с окончательным вариантом проекта упражнения 1.

  • В класс BankAccount добавьте статическую private переменную nextAccNo типа long:

class BankAccount

{

...

private long accNo;

private decimal accBal;

private AccountType accType;

private static long nextAccNo;

}

        • В класс BankAccount добавьте статический public метод NextNumber. Этот метод будет возвращать значение типа long и не будет использовать параметры. Он будет возвращать инкрементированное значение поля nextAccNo:

class BankAccount

{

...

public static long NextNumber( )

{

return nextAccNo++;

}

private long accNo;

private decimal accBal;

private AccountType accType;

private static long nextAccNo;

}

  • В методе CreateAccount.NewBankAccount закомментируйте выражение, запрашивающее у пользователя номер банковского счета:

//Console.Write("Enter the account number: ");

  • В методе CreateAccount.NewBankAccount замените инициализацию переменной number вызовом только что созданного вами метода BankAccount.NextNumber:

//long number = long.Parse(Console.ReadLine( ));

long number = BankAccount.NextNumber( );

  • Сохраните проект.

  • Откомпилируйте программу и исправьте ошибки, если это необходимо. Запустите программу. Убедитесь в том, что два банковских счета имеют номера 0 и1.

  • В настоящий момент статическое поле BankAccount.nextAccNo по умолчанию инициализируется нулем. Проинициализируйте его явным образом значением 123.

  • Откомпилируйте программу. Запустите программу. Убедитесь в том, что два банковских счета имеют номера 123 и124.

  • Продолжите инкапсуляцию данных класса BankAccount

  • Измените метод BankAccount.Populate таким образом, чтобы он принимал только один параметр – balance типа decimal. Внутри метода присвойте полю accNo значение, возвращаемое статическим методом BankAccount.NextNumber:

class BankAccount

{

public void Populate(decimal balance)

{

accNo = NextNumber( );

accBal = balance;

accType = AccountType.Checking;

}

...

}

  • Измените модификатор доступа метода BankAccount.NextNumber на private:

class BankAccount

{

...

private static long NextNumber( ) ...

}

  • В методе CreateAccount.NewBankAccount закомментируйте объявление и инициализацию переменной number. Измените вызов метода created.Populate таким образом, чтобы он принимал только один параметр:

class CreateAccount

{

...

static BankAccount NewBankAccount( )

{

BankAccount created = new BankAccount( );

//long number = BankAccount.NextNumber( );

...

created.Populate(balance);

...

}

...

}

  • Сохраните проект.

  • Откомпилируйте программу и исправьте ошибки, если это необходимо. Запустите программу. Убедитесь в том, что значения генерируемых номеров банковских счетов так и остались 123 и124.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]