Турникет платной автомагистрали

Программное обеспечение встроенного процессора турникета для въезда на платную автомагистраль. Определение типа карты, срок действия и блокировки. Приглашение для ввода PIN кода, контроль длины и количество попыток ввода. Запись времени платежа в файл.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.06.2015
Размер файла 147,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования Российской Федерации

Пермский Государственный Технический Университет

Кафедра Автоматизированных Систем Управления

Курсовая работа

По предмету Технологии программирования

Турникет платной автомагистрали

Выполнил:

Мартемьянов С.Н.

Пермь

2008

Аннотация

Цель курсовой работы - закрепления и углубление знаний, полученных студентами при изучении дисциплины, а также получение практических навыков разработки программы средней сложности с использованием современных технологий и инструментальных средств.

В ходе выполнения курсовой работы студент получает профессиональные навыки в постановке задачи, анализе требований, выборе представления исходных данных и результата, разработке спецификаций, проектирования программной системы, написании программы на выбранном языке программирования с использованием объектно-ориентированной технологии и библиотек классов, тестировании и отладке программы, оформлении документации.

Задачей курсового проектирования является разработка программной системы от начала (анализ требований) до конца (тестирование и сопровождение-документация).

В качестве инструментальной среды проектирования используется Rational Rose. Для описания модели используется язык UML.

Процесс проектирования - Rational Unified Process(RUP).

В качестве языка программирования используется Delphi.

Конечным результатом работы является проект, содержащий модель разработанной системы на языке UML, подготовленную в Rational Rose и программный продукт в виде исполняемого (exe) файла и исходных файлов.

Содержание

Задание

1. Требования к программе

2. Описание диаграмм

2.1 Диаграмма использования

2.2 Диаграмма последовательности

2.3 Диаграмма активности

2.4 Диаграмма классов

3. Описание классов

3.1 Класс TCard

3.2 Tprocessor

3.3 Tform

Руководство пользователя

Список литературы

Приложение

Задание

Вариант 8. Турникет платной автомагистрали

1. Требуется разработать программное обеспечение встроенного процессора турникета для въезда на платную автомагистраль.

2. При помощи турникета контролируется проезд машин на платную автомагистраль и взимается плата за проезд. Турникет имеет приемник банковских карт, приемник наличных денег, устройство для перекрывания доступа, таймер, три оптических датчика для определения проезда машины, устройство подачи звуковых сигналов, индикаторы "Проезд" и "Стоп".

3. В начальном состоянии турникета зажжен индикатор "Стоп", индикатор "Проезд" потушен. Если один из датчиков посылает сигнал, то проезд через турникет сразу же перекрывается, и подается предупредительный звуковой сигнал. Для проезда водитель должен поместить карту в приемник карт. Турникет считывает с нее данные. После распознавания типа пластиковой карточки, турникет выдает на дисплей приглашение ввести персональный код. Персональный код представляет собой четырехзначное число. Затем турникет проверяет правильность введенного кода. Если код указан неверно, водителю предоставляются еще две попытки для ввода правильного кода. В случае повторных неудач карта возвращается, и сеанс обслуживания заканчивается.

4. Если данные не удается считать, или карта просрочена, или заблокирована, то карта возвращается водителю, и турникет остается в исходном состоянии. В другом случае с карты списывается сумма въезда на платную автомагистраль, карта возвращается из приемника, "Стоп" гаснет, зажигается индикатор "Проезд", и мАшина может проехать через турникет. Получив от одного из датчиков сигнал, турникет ожидает время, отведенное на проезд (15 секунд), после чего он возвращается в начальное состояние.

5. Турникет заносит в свою память время всех оплаченных проездов. В конце рабочего дня он передает всю информацию, накопленную за день, в свою бухгалтерию.

1. Требования к программе

1. Программа должна уметь определять тип карты, срок действия и блокировку. При возникновении ошибок выдавать соответствующие предупреждения.

2. Выдавать приглашения для ввода PIN кода и сообщать о его корректности. Контролировать длину вводимого кода.

3. Контролировать количество попыток ввода кода. Если было 3 неудачных попытки, карта должна быть заблокирована и возвращена владельцу.

4. При успешном вводе PIN кода, определяется сумма на карте и если ее не достаточно для оплаты, сообщить об этом и вернуть карту владельцу.

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

6. После снятия денег с карты, турникету посылается сигнал для открытия ворот.

7. После того как сработает датчик, начинается отчет времени (15 сек.). По истечении времени турникет возвращается в начальное состояние.

Прецеденты, представленные на Use case diagram

1. Проверить карту: Проверяется тип карты (должен быть равен 3), срок использования и флаг блокировки. Если хотя бы одно из свойств не отвечает требуемому, то карта возвращается владельцу и работа завершается.

2. Проверить PIN код: Проверить корректность введенного водителем PIN кода. Дается 3 попытки. После этого карта блокируется и возвращается владельцу. После проверки посылается сигнал для продолжения работы.

3. Снять деньги с карты: После проверки кода с карты снимается 50 единиц. Карта достается и отправляется сигнал о продолжении работы.

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

5. Отправить сигнал разрешения проезда: Отправляется сигнал на турникет, который разрешает открыть шлагбаум и начать отчет времени.

2. Описание диаграмм

2.1 Диаграмма использования

Описание.

Задачи водителя: 1. Вставить карту. 2. Ввести PIN код. 3. Проехать через турникет.

Задачи блока управления: 1. Считать и проверить карту. 2. Проверить введенный водителем PIN код. 3. Снять деньги с карты. 4. Сохранить время получения средств в специальный файл. 5. Отправить сигнал на турникет о разрешении проезда.

2.2 Диаграмма последовательности

Sequence diagram

Описание.

Водитель вставляет карту. 2. Блок управления считывает параметры карты во внутреннюю память и проверяет необходимые атрибуты. 3. Блок управления выдает приглашение о вводе PIN кода на монитор. 4. Водитель вводит код. 5. Блок управления проверяет код. 6. Блок управления снимает необходимую сумму с карты. 6. Блок управления посылает сигнал на турникет о разрешении проезда. 7. Карта возвращается водителю.

2.3 Диаграмма активности

Activity diagram

Описание.

Блок управления ожидает ввода карты. Если на турникете срабатывает датчик от проезда машины. На турникет посылается сигнал закрытия шлагбаума.

После ввода карты происходит ее проверка. Затем вводится PIN код. Далее снимается необходимая сумма с карты. Посылается сигнал на турникет об открытии шлагбаума. После того как автомобиль начинает движение (срабатывает датчик), начинается отсчет времени 15 сек. По окончании проезда турникет возвращается в исходное состояние.

2.4 Диаграмма классов

Class diagram

Класс TProcessor содержит переменную класса TCard и использует класс формы (монитора) для вывода сообщений и другой информации.

3. Описание классов

3.1 Класс TCard

fTypeOfCard тип integer. Содержит тип карты. Верный тип карты должен быть равен 3.

fPIN тип integer. Содержит PIN код. Состоит из 4-х цифр.

fDateLimit тип TDateTime. Содержит срок использования карты.

fBlocked тип Boolean. Содержит флаг блокировки карты.

fSumma тип integer. Сумма средств на счете владельца.

3.2 Tprocessor

Класс TProcessor.

fTryCount тип integer. Содержит количество попыток. При превышении 3 карта будет заблокирована.

fCard тип TCard. Содержит переменную, в которой содержатся все данные текущей карты.

CheckPIN(PIN:integer). Функция проверки введенного кода (передается в переменной PIN). Если код верный возвращается TRUE, иначе FALSE.

LoadAndCheckCard(fFile:integer;FileName:string). Функция загрузки карты во внутреннюю переменную и проверка необходимых атрибутов. Возвращает TRUE если карту удалось загрузить и все показатели атрибутов в норме, иначе FALSE. процессор карта блокировка время

GetMoney(). Функция снимает деньги с карты, если операция прошла успешно возвращает TRUE. Если на карте недостаточно средств возвращает FALSE.

BlockCard(). Устанавливает в карте атрибут блокировки в TRUE и сохраняет.

3.3 Tform

Класс TMainForm. (Класс главной формы/монитора)

LabelNextAction: TLabel; - выводит подсказки о дальнейшем порядке действий пользователя.

LabelStop: TLabel; - выводит надпись "СТОП", которая указывает на запрет проезда.

LabelGo: TLabel; - выводит надпись "ПРОЕЗД", которая указывает на возможность проезда.

LabelTimer: TLabel; - выводит количество оставшегося времени до закрытия турникета.

Timer1: TTimer; - объект, который отсчитывает время для проезда автомобиля.

LabelMessage: TLabel; - выводит предупреждения и сообщения об ошибках карты или ввода данных.

procedure Timer1Timer(Sender: TObject); Процедура отсчитывает время разрешенное для проезда и по окончании переводит турникет в начальное состояние ("Закрыт").

Руководство пользователя

1. При нажатии на кнопку "Вставить карту", появляется стандартное диалоговое окно открытия файла. Выбираем нужный файл с картой.

2. На мониторе выдается приглашение "Введите PIN код".

3. С помощью клавиатуры на форме вводим PIN код (4 цифры) и нажимаем Enter. Если код неправильный будет выдано предупреждение "Неверный PIN". После чего дается еще две попытки ввода, в противном случае карта будет заблокирована и программа вернется в исходное состояние.

4. Если PIN код правильный загорается зеленая надпись "Проезд".

5. Нажимаем кнопку проехать.

6. После того время истечет программа вернется в исходное состояние.

В меню Файл-> Редактор карт находится редактор карт.

В появившемся окне вводим тип карты (верный тип 3), PIN код, сумму на карте (не менее 50) и срок действия карты. Далее нажимаем сохранить и вводим имя файла.

Также с помощью редактора можно изменять данные уже созданных карт (добавлять средства, снимать блокировку, увеличивать срок или менять PIN код).

Листинг программы.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ActnList, Menus, ExtCtrls;

type

TMainForm = class(TForm)

ButtonLoadCard: TButton;

MainMenu1: TMainMenu;

ActionList1: TActionList;

OpenDialog1: TOpenDialog;

LabelNextAction: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button0: TButton;

ButtonBackSpace: TButton;

ButtonEnter: TButton;

mFile: TMenuItem;

mCreateCard: TMenuItem;

LabelStop: TLabel;

LabelGo: TLabel;

LabelTimer: TLabel;

Timer1: TTimer;

ButtonMove: TButton;

ImageCar: TImage;

TimerMove: TTimer;

ShapeBlock: TShape;

Shape2: TShape;

ShapeSensor1: TShape;

LabelMessage: TLabel;

Bevel1: TBevel;

procedure ButtonLoadCardClick(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button0Click(Sender: TObject);

procedure ButtonBackSpaceClick(Sender: TObject);

procedure ChangeKeybordEnabled(Flag: boolean);

procedure FormCreate(Sender: TObject);

procedure mCreateCardClick(Sender: TObject);

procedure ButtonEnterClick(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure TimerMoveTimer(Sender: TObject);

procedure ButtonMoveClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

procedure EnterNumber(Number:String);

var

MainForm: TMainForm;

implementation

Uses Unit2,Unit3;

{$R *.dfm}

var

glCard:TCard;

glTryCount:integer;

Proc:TProcessor;

procedure TMainForm.ChangeKeybordEnabled(Flag: boolean);

begin

Button1.Enabled := Flag;

Button2.Enabled := Flag;

Button3.Enabled := Flag;

Button4.Enabled := Flag;

Button5.Enabled := Flag;

Button6.Enabled := Flag;

Button7.Enabled := Flag;

Button8.Enabled := Flag;

Button9.Enabled := Flag;

Button0.Enabled := Flag;

ButtonBackSpace.Enabled := Flag;

ButtonEnter.Enabled := Flag;

if Flag then

begin

ButtonLoadCard.Caption := 'Достать карту';

LabelNextAction.Caption := 'Введите PIN код';

LabelMessage.Caption := '';

end

else

begin

ButtonLoadCard.Caption := 'Вставить карту';

LabelNextAction.Caption := 'Вставьте карту';

glCard.Free;

LabelStop.Font.Color := clRed;

LabelGo.Font.Color := clInactiveBorder;

LabelTimer.Caption := '';

end;

end;

procedure TMainForm.FormCreate(Sender: TObject);

begin

ChangeKeybordEnabled(False);

end;

procedure TMainForm.mCreateCardClick(Sender: TObject);

begin

FormEditCard := TformEditCard.Create(Application);

FormEditCard.ShowModal();

FormEditCard.Free;

end;

procedure TMainForm.Timer1Timer(Sender: TObject);

var i:integer;

begin

i := StrToInt(LabelTimer.Caption)-1;

LabelTimer.Caption := IntToStr(i);

if i=0 then

begin

ChangeKeybordEnabled(false);

Timer1.Enabled := false;

ImageCar.Top := 189;

end;

end;

procedure TMainForm.TimerMoveTimer(Sender: TObject);

var iTop:integer;

begin

iTop := ImageCar.Top;

if iTop <-40 then

begin

TimerMove.Enabled := false;

exit;

end;

if ShapeBlock.Visible then

if iTop <(ShapeBlock.Top + ShapeBlock.Height*2) then

begin

TimerMove.Enabled := false;

exit;

end;

if iTop=(ShapeSensor1.Top+ShapeSensor1.Height) then

if LabelGo.Font.Color = clInactiveBorder then

begin

ShapeBlock.Visible := true;

windows.Beep(1000,100);

end;

if iTop<(ShapeSensor1.Top+ShapeSensor1.Height) then

if LabelGo.Font.Color <> clInactiveBorder then

Timer1.Enabled := true;

ImageCar.Top := iTop - 1;

end;

procedure EnterNumber(Number:String);

var Str:String;

begin

Str := MainForm.LabelNextAction.Caption;

if Length(Str) = 4 then

exit;

if (Str = 'Введите PIN код')

or (Str = 'Неверный PIN!') then

Str := '';

MainForm.LabelNextAction.Caption := Str + Number;

end;

procedure TMainForm.Button0Click(Sender: TObject);

begin

EnterNumber('0');

end;

procedure TMainForm.Button1Click(Sender: TObject);

begin

EnterNumber('1');

end;

procedure TMainForm.Button2Click(Sender: TObject);

begin

EnterNumber('2');

end;

procedure TMainForm.Button3Click(Sender: TObject);

begin

EnterNumber('3');

end;

procedure TMainForm.Button4Click(Sender: TObject);

begin

EnterNumber('4');

end;

procedure TMainForm.Button5Click(Sender: TObject);

begin

EnterNumber('5');

end;

procedure TMainForm.Button6Click(Sender: TObject);

begin

EnterNumber('6');

end;

procedure TMainForm.Button7Click(Sender: TObject);

begin

EnterNumber('7');

end;

procedure TMainForm.Button8Click(Sender: TObject);

begin

EnterNumber('8');

end;

procedure TMainForm.Button9Click(Sender: TObject);

begin

EnterNumber('9');

end;

procedure TMainForm.ButtonBackSpaceClick(Sender: TObject);

var Str:String;

begin

Str := LabelNextAction.Caption;

if Str = 'Введите PIN код'then

exit;

Delete(Str,Length(Str),1);

if Str = '' then

Str := 'Введите PIN код';

LabelNextAction.Caption := Str;

end;

procedure TMainForm.ButtonEnterClick(Sender: TObject);

var

FileHandle:integer;

Pbool:boolean;

tf:TextFile;

begin

if (LabelNextAction.Caption = 'Введите PIN код')

or (LabelNextAction.Caption = 'Неверный PIN!') then

exit;

if NOT Proc.CheckPIN(StrToInt(LabelNextAction.Caption)) then

begin

LabelNextAction.Caption := 'Неверный PIN!';

if Proc.BlockCard() then

ChangeKeybordEnabled(False);

exit;

end;

if NOT Proc.GetMoney() then

begin

LabelMessage.Caption := 'На карте недостаточно средств!';

ChangeKeybordEnabled(False);

exit;

end;

LabelStop.Font.Color := clInactiveBorder;

LabelGo.Font.Color := clGreen;

LabelTimer.Caption := '15';

ShapeBlock.Visible := false;

try

AssignFile(tf,'C:\ProgramLog.txt');

if FileExists('C:\ProgramLog.txt') = False then

Rewrite(tf)

else

begin

Append(tf);

end;

WriteLn(tf,TimeToStr(Time()));

finally

CloseFile(tf);

end;

end;

procedure TMainForm.ButtonLoadCardClick(Sender: TObject);

var

FileHandle:integer;

fMessage:String;

begin

if ButtonLoadCard.Caption = 'Достать карту' then

begin

ChangeKeybordEnabled(False);

exit;

end;

if OpenDialog1.Execute then

try

FileHandle := FileOpen(OpenDialog1.FileName,fmOpenRead);

Proc := TProcessor.Create;

fMessage := Proc.LoadAndCheckCard(FileHandle,OpenDialog1.FileName);

if fMessage ='OK' then

ChangeKeybordEnabled(True)

else

LabelMessage.Caption := fMessage;

finally

FileClose(FileHandle);

end;

end;

procedure TMainForm.ButtonMoveClick(Sender: TObject);

begin

TimerMove.Enabled := true;

end;

end.

unit Unit2;

interface

uses

SysUtils, Dialogs;

type

TCard = class(TObject)

fTypeOfCard:integer;

fPIN:integer;

fSumma:integer;

fBlocked:boolean;

fDateLimit:TDateTime;

//published

end;

type

TProcessor = class(TObject)

fTryCount:integer;

fCard:TCard;

fFileName:String;

function CheckPIN(PIN:integer):Boolean;

function LoadAndCheckCard(fFile:integer;FileName:string): String;

function GetMoney():Boolean;

function BlockCard():Boolean;

//procedure EnableTrip();

end;

implementation

function TProcessor.CheckPIN(PIN:integer):Boolean;

begin

if PIN <> fCard.fPIN then

Result := FALSE

else

Result := TRUE;

end;

function TProcessor.LoadAndCheckCard(fFile:integer;FileName:string):String;

var

FileHandle:integer;

TypeOfCard:integer;

d:TDateTime;

Pbool:Boolean;

PIN, Summa:integer;

begin

fTryCount := 0;

fFileName := FileName;

FileHandle := fFile;

FileRead(FileHandle,TypeOfCard,SizeOf(integer));

fCard := TCard.Create;

if TypeOfCard <> 3 then

begin

fCard.Free;

Result := 'Неверный тип карты!';

exit;

end;

fCard.fTypeOfCard := TypeOfCard;

FileRead(FileHandle,d,SizeOf(TdateTime));

if d < Date() then

begin

fCard.Free;

Result := 'Карта просрочена!';

exit;

end;

fCard.fDateLimit := d;

FileRead(FileHandle,Pbool,SizeOf(boolean));

if Pbool then

begin

fCard.Free;

Result := 'Карта заблокирована!';

exit;

end;

fCard.fBlocked := Pbool;

FileRead(FileHandle,PIN,SizeOf(integer));

fCard.fPIN := PIN;

FileRead(FileHandle,Summa,SizeOf(integer));

fCard.fSumma := Summa;

Result := 'OK';

end;

function TProcessor.GetMoney():Boolean;

var FileHandle,Summa:integer;

begin

if fCard.fSumma < 50 then

Result := FALSE

else

begin

FileHandle := FileOpen(fFileName,fmOpenReadWrite);

FileSeek(FileHandle,SizeOf(integer)+SizeOf(TDateTime)

+SizeOf(boolean)+SizeOf(integer),0);

Summa := fCard.fSumma - 50;

FileWrite(FileHandle,Summa,SizeOf(integer));

FileClose(FileHandle);

Result := True;

end;

end;

function TProcessor.BlockCard():Boolean;

var FileHandle:integer;

PBool:Boolean;

begin

if fTryCount >= 2 then

begin

FileHandle := FileOpen(fFileName,fmOpenReadWrite);

FileSeek(FileHandle,SizeOf(integer)+SizeOf(TDateTime),0);

Pbool := True;

FileWrite(FileHandle,Pbool,SizeOf(boolean));

FileClose(FileHandle);

Result := true

end

else

begin

fTryCount := fTryCount+1;

Result := false;

end;

end;

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, ExtCtrls;

type

TFormEditCard = class(TForm)

LabeledEditTypeOfCard: TLabeledEdit;

LabeledEditPIN: TLabeledEdit;

LabeledEditSumma: TLabeledEdit;

CheckBoxBlocked: TCheckBox;

DateTimePickerDateLimit: TDateTimePicker;

ButtonOpen: TButton;

ButtonSave: TButton;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

procedure ButtonSaveClick(Sender: TObject);

procedure ButtonOpenClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormEditCard: TFormEditCard;

implementation

Uses Unit2;

{$R *.dfm}

procedure TFormEditCard.ButtonOpenClick(Sender: TObject);

var FileHandle:integer;

TypeOfCard,PIN,Summa:integer;

Pbool:boolean;

Pdate:TDateTime;

Card:TCard;

begin

if OpenDialog1.Execute then

begin

try

FileHandle := FileOpen(OpenDialog1.FileName,fmOpenRead);

Card := Tcard.Create;

FileRead(FileHandle,TypeOfCard,SizeOf(integer));

Card.fTypeOfCard := TypeOfCard;

FileRead(FileHandle,Pdate,SizeOf(TdateTime));

Card.fDateLimit := Pdate;

FileRead(FileHandle,Pbool,SizeOf(boolean));

Card.fBlocked := Pbool;

FileRead(FileHandle,PIN,SizeOf(integer));

Card.fPIN := PIN;

FileRead(FileHandle,Summa,SizeOf(integer));

Card.fSumma := Summa;

FileClose(FileHandle);

except

ShowMessage('Не удалось открыть файл!');

exit;

end;

LabeledEditTypeOfCard.Text := IntToStr(Card.fTypeOfCard);

LabeledEditPIN.Text := IntToStr(Card.fPIN);

LabeledEditSumma.Text := IntToStr(Card.fSumma);

CheckBoxBlocked.Checked := Card.fBlocked;

DateTimePickerDateLimit.DateTime := Card.fDateLimit;

end;

end;

procedure TFormEditCard.ButtonSaveClick(Sender: TObject);

var FileHandle:integer;

Card:TCard;

begin

if SaveDialog1.Execute then

begin

Card := TCard.Create;

Card.fTypeOfCard := StrToInt(LabeledEditTypeOfCard.Text);

Card.fPIN := StrToInt(LabeledEditPIN.Text);

Card.fSumma := StrToInt(LabeledEditSumma.Text);

Card.fBlocked := CheckBoxBlocked.Checked;

Card.fDateLimit := DateTimePickerDateLimit.DateTime;

FileHandle := FileCreate(SaveDialog1.FileName);

FileWrite(FileHandle,Card.fTypeOfCard,SizeOf(integer));

FileWrite(FileHandle,Card.fDateLimit,SizeOf(TDateTime));

FileWrite(FileHandle,Card.fBlocked,SizeOf(boolean));

FileWrite(FileHandle,Card.fPIN,SizeOf(integer));

FileWrite(FileHandle,Card.fSumma,SizeOf(integer));

FileClose(FileHandle);

end;

end;

end.

Список литературы

1. Майкл Богс. "UML и Rational Rose."

2. А.М. Вендров "Объектно-ориентированный анализ и проектированиес использованием языка UML и Rational Rose"

3. Гусин А.Н., Хабибрахманов Р.Г., Лонский В.О. "Методическое пособие по работе в среде проектирования Rational Rose, на примере автоматизации работы склада."

Приложение

Use case diagram

Sequence diagram

Activity diagram

Class diagram

Размещено на Allbest.ru


Подобные документы

  • Мониторинг мобильного персонала и контроль выполнения ими производственных заданий. Показатели точности и качества определения местоположения. Структура и использование файлов типа DOCX. Нетбуки, их строение и предназначение. Запись и хранение данных.

    реферат [15,9 K], добавлен 26.08.2013

  • Схема и программное обеспечение модуля генератора последовательностей на шине ISA IBM PС AT. Операция "Запись в 16-и разрядное устройство ввода-вывода". Использование триггера для хранения информации в селекторе адреса. Увеличения разрядности счетчика.

    контрольная работа [363,3 K], добавлен 05.01.2013

  • Алгоритм обнаружения и расшифровки QR кода. Методы 3D реконструкции, стереозрение. Определение ориентации плоскости кода относительно камеры. Программное обеспечение для распознавания QR кода и определения его ориентации. Описание и тестирование продукта.

    дипломная работа [1,5 M], добавлен 15.05.2014

  • Назначение и составляющие формул, правила их записи и копирования. Использование математических, статистических и логических функций, функций даты и времени в MS Excel. Виды и запись ссылок табличного процессора, технология их ввода и копирования.

    презентация [193,2 K], добавлен 12.12.2012

  • Организация файлов и доступ к ним. Файловые операции. Программирование с использованием встроенных функций ввода-вывода; линейных, разветвляющихся и циклических вычислительных процессов с использованием If-else, оператора выбора Case; массивов и матриц.

    курсовая работа [5,8 M], добавлен 24.05.2014

  • Характеристика разновидностей устройств ввода информации: клавиатуры, сканера, графического планшета, средств речевого ввода, мыши, джойстика, светового пера. Исследование принципов ввода информации с бумажных носителей, разрешающей способности матрицы.

    курсовая работа [78,7 K], добавлен 07.11.2011

  • Устройство современных персональных компьютеров. Аппаратная часть и программное обеспечение. Процессор, оперативное и постоянное запоминающее устройство. Накопители на жестком диске. Устройства ввода-вывода информации. Мониторы, принтеры, сканеры.

    практическая работа [92,1 K], добавлен 20.09.2013

  • Разработка встраиваемого в электронную аппаратуру микроконтроллера с целью обеспечения ввода данных с клавиатуры и отображения результатов обработки на индикации. Описание активного элемента (системная шина ISA). Программное обеспечение микроконтроллера.

    курсовая работа [848,9 K], добавлен 05.02.2016

  • Разработка и практическая апробация действия драйвер-фильтра USB-накопителя операционной системы Windows, предоставляющего возможности: установка на любой USB накопитель, перехват информации ввода/вывода, запись перехваченной информации в файл на диске.

    курсовая работа [349,3 K], добавлен 18.06.2009

  • Общие характеристики смарт-карт. Архитектура микросхемы: компоновка элементов микрокомпьютера смарт-карты, размещение процессора, памяти, периферийных модулей, блока ввода-вывода. Комплексный подход к обеспечению информационной безопасности смарт-карт.

    курсовая работа [423,9 K], добавлен 26.11.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.