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

бесплатно 0
4.5 95
Анализ теоретических аспектов функциональной деятельности современного банкомата и его сценариев. Разработка программного обеспечения работы банкомата, включающее спецификацию вариантов использования "Аутентификация", "Запрос баланса" и "Снять деньги".

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Основной сценарий: Предусловия: Клиент вставил карточку в банкомат и выбрал действие «Снять деньги». 2.3Если эта сумма в наличие на счете, то 2.3.1Сумма списывается со счета.

Введение
Перед проектированием системы управления банкоматом, важную роль сыграло обдумывание всех сценариев его использования. В современной жизни, банкоматы все больше, и больше преобразуются в функциональном смысле. Сейчас доступны множество сервисов: платеж за коммунальные услуги, пополнение мобильного счета, перевод средств на другой счет и многое другое, но я остановился на 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;

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?