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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 5.2.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. Реферат Виробничо-торговельна діяльність підприемства
2. Контрольная работа Харчові концентрати Мясні напівфабрикати
3. Курсовая Автомобильные перевозки
4. Реферат на тему Asian Theatre Essay Research Paper Asian theatre
5. Контрольная работа Розрахунок та проектування шпиндельного вузла
6. Реферат на тему Foundation Of The Marwand Caliphate And The
7. Курсовая на тему Взаимоотношения Центрального банка РФ с коммерческими банками и дру
8. Задача Конституционные основы российской государственности
9. Реферат Методика бухгалтерского учета экспорта и импорта
10. Реферат Этика утилитаризма