Контрольная работа

Контрольная работа Проектирование программного обеспечения банкомата

Работа добавлена на сайт bukvasha.net: 2015-10-25

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 11.3.2025





Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования Пермский государственный технический университет
Работа на тему:

«Проектирование программного обеспечения банкомата»
2010




Введение
Перед проектированием системы управления банкоматом, важную роль сыграло обдумывание всех сценариев его использования. В современной жизни, банкоматы все больше, и больше преобразуются в функциональном смысле. Сейчас доступны множество сервисов: платеж за коммунальные услуги, пополнение мобильного счета, перевод средств на другой счет и многое другое, но я остановился на 2-х основных функциях банкомата – снятие наличности и запрос баланса. Так же невозможна работа системы без аутентификации клиента, т.к. этаких пользователей большое множество. Так и получилось, что система делится на три основных блока.






Спецификация варианта использования «Аутентификация»


Основное действующее лицо: Клиент.

Краткое описание: Перед выполнением любого действия клиент должен быть аутентифицирован.

Основной сценарий:

Предусловия: Запущен сценарий «Снять деньги» или сценарий «Показать баланс».

1.                 Система запрашивает пароль.

2.                 Клиент вводит пароль.

3.                 Если пароль верен, то происходит возврат в запущенный ранее сценарий.

4.                 Если пароль не верен, то

4.1Если количество вводов неверного пароля меньше 4, то

4.1.1Выдать предупреждение о неправильном пароле.

4.1.2Вернуться к началу сценария.

4.2Иначе:

4.2.1Выдать сообщение о блокировке карты.

4.2.2Заблокировать карту.

Постусловия: Нет.
Спецификация варианта использования «Снять деньги»


Основное действующее лицо: Клиент.

Краткое описание: Клиент запрашивает некоторую сумму денег. Если на его счету есть необходимая сумма, то система выдает ее.

Основной сценарий:

Предусловия: Клиент вставил карточку в банкомат и выбрал действие «Снять деньги».

1.                 Переход к подчиненному сценарию «Аутентификация».

2.                 Если аутентификация прошла успешно, то

2.1Система запрашивает требуемую сумму.

2.2Клиент вводит сумму.

2.3Если эта сумма в наличие на счете, то

2.3.1Сумма списывается со счета.

2.3.1Выдаются деньги.

2.4Иначе, выдается сообщение о невозможности операции.

Постусловия: Клиент переходит к выбору действия.
Спецификация варианта использования «Показать баланс»


Основное действующее лицо: Клиент.

Краткое описание: Клиент запрашивает баланс своего счета.

Основной сценарий:

Предусловия: Клиент вставил карточку в банкомат и выбрал действие «Показать баланс».

1.                 Переход к подчиненному сценарию «Аутентификация».

2.                 Если аутентификация прошла успешно, то система показывает баланс счета клиента.

Постусловия: Клиент переходит к выбору действия.
Текст программы
TAccount = class //класс Счет

private

Code: integer; //код счета

Sum: real; //количество денег на счете

public

function WithdrawMoney(Summ: real): real; //снять деньги

function GetBalance(): real; //получить баланс счета

end;

TKlient = class //класс Клиент

private

Code: integer; //код клиента

Password: integer; //пароль клиента

Acct: TAccount; //счет клиента

public

function GetCode():integer; //получить код клиента

function GetPassword(): real; //получить пароль клиента

function GetAccount(): TAccount; //получить счет клиента

procedure Get(Code: integer); //получить информацию о клиенте из платежной системы

end;

TManager = class //класс управляющий

private

function Authenticate(out TrueKlient: TKlient): boolean; //проверить подлинность

public

function GetCode():integer; //получить код карты

function GetPassword():integer; //получить пароль клиента

function GetSum(): real; //получить запрашиваемую сумму

procedure WithdrawMoney(); //снять деньги

procedure GetBalance(); //получить баланс счета

end;

//снять деньги

function TAccount.WithdrawMoney(Summ: real): real;

begin

//если денег на счете не меньше, чем требует клиент

if Self.Sum >= Summ then

//то уменьшить сумму счета

Self.Sum := Self.Sum - Summ;

//вернуть остаток

Result := Self.Sum;

end;

//получить баланс счета

function TAccount.GetBalance(): real;

begin

//вернуть сумму счета

Result := Self.Sum;

end;

//получить код клиента

function TKlient.GetCode():integer;

begin

//вернуть код клиента

Result := Self.Code;

end;

//получить пароль клиента

function TKlient.GetPassword(): real;

begin

//вернуть пароль клиента

Result := Self.Password;

end;

//получить счет клиента

function TKlient.GetAccount(): TAccount;

begin

//вернуть счет клиента

Result := Self.Acct;

end;

//получить информацию о клиенте

procedure TKlient.Get(Code: integer);

begin

//Здесь должен выполняться запрос к платежной системе

//примерно такие данные должны возвращаться:

Self.Code := 12345; //код карты клиента

Self.Password := 54321; //пароль

Self.Acct.Code := 12345; //код счета

Self.Acct.Sum := 111.50; //сумма денег на счете

end;

//получить код карты

function TManager.GetCode():integer;

begin

//Здесь информация должна считываться с банковской карты

Result := 12345;

end;

//получить пароль клиента

function TManager.GetPassword():integer;

begin

//Здесь информация должна считываться с терминала

Result := 12345;

end;

//получить запрашиваемую сумму

function TManager.GetSum(): real;

begin

//Здесь информация должна считываться с терминала

Result := 100;

end;

//проверить подлинность

function TManager.Authenticate(out TrueKlient: TKlient): boolean;

var

KlientCode: integer;

KlientPass: integer;

begin

Result := false;

KlientCode := Manager.GetCode();//получаем код карты клиента

KlientPass := Manager.GetPassword();//получаем пароль, введенный клиентом

TrueKlient.Get(KlientCode);//получаем данные клиента из платежной системы

if TrueKlient.Password = KlientPass then//если пароли совпадают

Result := true;

end;

//снять деньги

Procedure TManager.WithdrawMoney();

var

TrueKlient: TKlient; //клиент

Summ : real; //запрашиваемая клиентом сумма

Rest1, Rest2 : real; //остаток на счете до и после операции

St : string; //текст сообщения

begin

TrueKlient := TKlient.Create; //конструктор класса клиент

if Manager.Authenticate(TrueKlient) then //если клиент аутентифицирован

begin

Summ := Manager.GetSum(); //получаем сумму, запрашиваемую клиентом

if Summ <> 0 then //если введена не 0-вая сумма

begin

Rest1 := TrueKlient.Acct.GetBalance; //получим остаток до снятия денег

Rest2 := TrueKlient.Acct.WithdrawMoney(Summ); //получим остаток после снятия денег

if Rest2 <> Rest1 then exit //если деньги были сняты - выходим из процедуры

else St := 'Операция не может быть выполнена';

end

else St := 'Введите сумму';

Form1.PutMessage(St); //выдать сообщение

end;

end;

//получить баланс счета

Procedure TManager.GetBalance();

var

TrueKlient: TKlient; //клиент

Summ : real; //запрашиваемая клиентом сумма

St : string; //текст сообщения

begin

TrueKlient := TKlient.Create; //конструктор класса клиент

if Manager.Authenticate(TrueKlient) then //если клиент аутентифицирован

begin

Summ := TrueKlient.Acct.GetBalance; //получим остаток на счете

St := 'Остаток средств на вашем счете: ' + FloatToStr(Summ); //переведем число в строку

Form1.PutMessage(St); //выведем на экран

end;

end;

1. Реферат на тему Bats Essay Research Paper BatsPrepared ByC48th Grade010597Contents1
2. Реферат Талибан
3. Реферат Философские школы средневековья
4. Реферат на тему Александр Александрович Блок
5. Реферат на тему Youth And Values Essay Research Paper BIBLIOYouth
6. Реферат на тему Конституционный статус человека и гражданина РФ
7. Реферат на тему Sports And Aggressive Behavior Essay Research Paper
8. Реферат на тему Water Pollution Essay Research Paper Water pollutionChristian
9. Реферат на тему Германская империя в конце XIX - начале ХХ вв
10. Реферат на тему Отношения РПЦ и советского государства в период 1917-1985