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

Лабораторная работа 7.1: Создание и использование ссылочных переменных

Упражнение 1. Добавление метода экземпляра с двумя параметрами.

В лабораторной работе 6 вы разработали класс BankAccount. В этом упражнении Вы добавите в этот класс метод экземпляра TransferFrom, который будет переводить деньги с указанного счета на данный. Если вы не закончили выполнение лабораторной работы 6, то вы можете использовать класс BankAccount, находящийся в папке install folder\Labs\Lab08\Starter\Bank.

  • Создайте метод TransferFrom

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

  • Отредактируйте класс BankAccount следующим образом:

  • В класс BankAccount добавьте public метод экземпляра TransferFrom.

  • Первым параметром этого метода будет ссылка на другой объект класса банковского счета BankAccount с именем accFrom, с которого будут переводиться деньги.

  • Второй параметр amount типа decimal передается по значению и указывает количество денег, которые необходимо перевести.

  • Метод не возвращает значения.

  • В тело метода TransferFrom добавьте две инструкции, выполняющие следующие действия:

  • С помощью метода Withdraw снимите со счета accFrom сумму, определенную параметром amount.

  • Если метод Withdraw отработал успешно (удалось снять необходимую сумму), то положите эти деньги на текущий счет с помощью метода Deposit.

class BankAccount

{

//As before…

public void TransferFrom(BankAccount accFrom, decimal amount)

{

if (accFrom.Withdraw(amount))

this.Deposit(amount);

}

}

  • Протестируйте метод TransferFrom

  • В текущий проект добавьте файл Test.cs.

  • В этот файл добавьте следующий тестирующий класс:

using System;

public class Test

{

public static void Main()

{

}

}

  • В методе Main создайте два объекта типа BankAccount с начальным балансом $100 (используйте метод Populate).

  • Добавьте код, выводящий на экран тип, номер счета и текущий баланс обоих счетов.

  • Вызовете метод TransferFrom и переведите с одного счета на другой $10.

  • Добавьте код, выводящий на экран текущие балансы обоих счетов после перевода денег.

Текст класса Test должен выглядеть следующим образом:

public static void Main( )

{

BankAccount b1 = new BankAccount( );

b1.Populate(100);

BankAccount b2 = new BankAccount( );

b2.Populate(100);

Console.WriteLine("Before transfer");

Console.WriteLine("{0} {1} {2}", b1.Type( ), b1.Number( ), b1.Balance( ));

Console.WriteLine("{0} {1} {2}", b2.Type( ), b2.Number( ), b2.Balance( ));

b1.TransferFrom(b2, 10);

Console.WriteLine("After transfer");

Console.WriteLine("{0} {1} {2}", b1.Type( ), b1.Number( ), b1.Balance( ));

Console.WriteLine("{0} {1} {2}", b2.Type( ), b2.Number( ), b2.Balance( ));

}

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

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

Упражнение 2. Обращение строки

В лабораторной работе 4 Вы создали класс Utils, для которого разработали несколько полезных методов.

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

  • Создайте метод Reverse

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

  • В класс Utils добавьте статический public метод Reverse следующим образом:

  • Данный метод имеет один параметр s, являющийся ссылкой на тип string.

  • Тип возвращаемого значения void.

  • В теле метода Reverse создайте переменную sRev типа string, в которой будет сохраняться результат. Проинициализируйте ее значением “”.

  • Обращение строки реализуйте следующим образом:

  • Создайте цикл, в котором будет извлекаться по одному символу из строки s. Начните с конца строки (используйте свойство Length) и повторяйте эту операция до тех пор, пока не достигнете начала строки. Для обращения к отдельному символу строки можно использовать [ ].

Замечание: Последний символ строки находится на позиции Length-1 (отсчет ведется с 0).

  • Присоедините выделенный символ к концу строки sRev.

class Utils

{

//As before

//

// Reverse a string

//

public static void Reverse(ref string s)

{

string sRev = "";

for (int k = s.Length – 1; k >= 0 ; k--)

sRev = sRev + s[k];

// Return result to caller

s = sRev;

}

}

  • Протестируйте метод Reverse

  • В текущий проект добавьте файл Test.cs.

  • В этот файл добавьте следующий тестирующий класс:

using System;

public class Test

{

public static void Main()

{

}

}

  • В методе Main создайте переменную типа string.

  • Считайте значение в эту переменную с помощью метода Console.ReadLine.

  • Передайте эту строку в качестве параметра в метод Reverse. Не забудьте ключевое слово ref.

  • Выведите на экран значение, возвращаемое методом Reverse.

Текст класса Test может выглядеть следующим образом:

static void Main( )

{

string message;

// Get an input string

Console.WriteLine("Enter string to reverse:");

message = Console.ReadLine( );

// Reverse the string

Utils.Reverse(ref message);

// Display the result

Console.WriteLine(message);

}

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

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

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