Узнать стоимость написания работы
Оставьте заявку, и в течение 5 минут на почту вам станут поступать предложения!
Реферат

Реферат по предмету "Информатика, программирование"


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

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

Работа на тему:
«Проектирование программногообеспечения банкомата»
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
functionWithdrawMoney(Summ: real): real; //снятьденьги
functionGetBalance(): real; //получить баланссчета
end;
TKlient= class //класс Клиент
private
Code:integer; //код клиента
Password:integer; //пароль клиента
Acct:TAccount; //счет клиента
public
functionGetCode():integer; //получить кодклиента
function GetPassword():real; //получить пароль клиента
functionGetAccount(): TAccount; //получитьсчетклиента
procedure Get(Code:integer); //получить информацию о клиенте из платежной системы
end;
TManager= class //класс управляющий
private
functionAuthenticate(out TrueKlient: TKlient): boolean; //проверитьподлинность
public
functionGetCode():integer; //получить кодкарты
functionGetPassword():integer; //получить парольклиента
function GetSum():real; //получить запрашиваемую сумму
procedureWithdrawMoney(); //снять деньги
procedureGetBalance(); //получить баланссчета
end;
//снятьденьги
functionTAccount.WithdrawMoney(Summ: real): real;
begin
//если денег на счетене меньше, чем требует клиент
ifSelf.Sum>= Summthen
//то уменьшить суммусчета
Self.Sum:= Self.Sum — Summ;
//вернуть остаток
Result := Self.Sum;
end;
//получитьбаланссчета
functionTAccount.GetBalance(): real;
begin
//вернутьсуммусчета
Result:= Self.Sum;
end;
//получитькодклиента
functionTKlient.GetCode():integer;
begin
//вернуть код клиента
Result := Self.Code;
end;
//получить парольклиента
functionTKlient.GetPassword(): real;
begin
//вернуть парольклиента
Result :=Self.Password;
end;
//получитьсчетклиента
functionTKlient.GetAccount(): TAccount;
begin
//вернуть счет клиента
Result := Self.Acct;
end;
//получить информацию оклиенте
procedureTKlient.Get(Code:integer);
begin
//Здесь долженвыполняться запрос к платежной системе
//примерно такие данныедолжны возвращаться:
Self.Code := 12345;//код карты клиента
Self.Password := 54321;//пароль
Self.Acct.Code :=12345; //код счета
Self.Acct.Sum :=111.50; //сумма денег на счете
end;
//получить код карты
functionTManager.GetCode():integer;
begin
//Здесь информациядолжна считываться с банковской карты
Result := 12345;
end;
//получить парольклиента
functionTManager.GetPassword():integer;
begin
//Здесь информациядолжна считываться с терминала
Result:= 12345;
end;
//получитьзапрашиваемуюсумму
functionTManager.GetSum(): real;
begin
//Здесь информациядолжна считываться с терминала
Result:= 100;
end;
//проверитьподлинность
functionTManager.Authenticate(out TrueKlient: TKlient): boolean;
var
KlientCode:integer;
KlientPass:integer;
begin
Result:= false;
KlientCode:= Manager.GetCode();//получаем кодкартыклиента
KlientPass :=Manager.GetPassword();//получаем пароль, введенный клиентом
TrueKlient.Get(KlientCode);//получаемданные клиента из платежной системы
ifTrueKlient.Password = KlientPass then//еслипаролисовпадают
Result:= true;
end;
//снятьденьги
ProcedureTManager.WithdrawMoney();
var
TrueKlient:TKlient; //клиент
Summ: real; //запрашиваемая клиентомсумма
Rest1, Rest2: real;//остаток на счете до и после операции
St: string; //текстсообщения
begin
TrueKlient :=TKlient.Create; //конструктор класса клиент
ifManager.Authenticate(TrueKlient) then //есликлиентаутентифицирован
begin
Summ :=Manager.GetSum(); //получаем сумму, запрашиваемую клиентом
if Summ 0 then//если введена не 0-вая сумма
begin
Rest1 :=TrueKlient.Acct.GetBalance; //получим остаток до снятия денег
Rest2 :=TrueKlient.Acct.WithdrawMoney(Summ); //получим остаток после снятия денег
if Rest2 Rest1then exit //если деньги были сняты — выходим из процедуры
else St := 'Операция неможет быть выполнена';
end
elseSt := 'Введитесумму';
Form1.PutMessage(St);//выдатьсообщение
end;
end;
//получитьбаланссчета
ProcedureTManager.GetBalance();
var
TrueKlient:TKlient; //клиент
Summ: real; //запрашиваемая клиентомсумма
St: string; //текст сообщения
begin
TrueKlient:= TKlient.Create; //конструкторклассаклиент
ifManager.Authenticate(TrueKlient) then //есликлиентаутентифицирован
begin
Summ:= TrueKlient.Acct.GetBalance; //получимостатокнасчете
St := 'Остаток средствна вашем счете: ' + FloatToStr(Summ); //переведем число в строку
Form1.PutMessage(St);//выведемнаэкран
end;
end;


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.