DIPLOM (716574), страница 8

Файл №716574 DIPLOM (Разработка системы управления работой коммерческой компании) 8 страницаDIPLOM (716574) страница 82016-08-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

Read(DataFile,Data); {Считываем данные}

val(Data.ProductOst,tempccc,code);

Str(Data1^.Count+1,Numm);

if tempccc=0 then goto ccc; { Если нулевая позиция, то не вносить в коллекцию }

o[0]:=chr(57);

FillChar(o[1],57,' ');

with data do

begin {Создание строки типа : Номер, Наименование, Расфасовка}

move(Numm[1],o[2],Length(Numm));

move(ProductName[1],o[succ(lpnum-1)+4],Length(Data.ProductName));

move(ProductRasf[1],o[succ(lpnum+lpname)+5],Length(Data.ProductRasf));

move(ProductNumber[1],o[50],Length(Data.ProductNumber));

end;

Data1^.Insert(NewStr(o)); {Помещаю ее в коллекцию строк}

ccc:

end; {1}

Для реализации списка строк в Turbo Vision предусмотрен объект TListBox. Это объект создает специальное окно скроллера с указателем на текущий элемент. Наименования я поместил в вышеописанную коллекцию строк, указатель на которую передал объекту с помощью метода TListBox.NewList.

Var

SCR : PScrollBar ;

LIST : PLitstBox;

.....

Begin

.....

RR.Assign(50,05,51,17); {Координаты скроллера}

Scr:=New(PscrollBar,Init(RR)); {Указатель на полосу скроллера}

Insert(Scr); {Создаем скроллер}

R.Assign(03,05,50,17); {Координаты окна со списком}

List:=New(PMyListBox,Init(R,1,scr)); {Указатель на окно со списком}

List^.NewList(Data1); {Связывание окна со коллекцией строк}

Insert(list); {Создаем окно со списком }

....

End;

Диалоговое окно выбора наименований выглядит следующим образом :

Перейду теперь к описанию процедуры Данные-Сделки. При выборе соответствующего пункта меню на экране почвляется диалоговое окно выбора периода для просмотра сделок. В нем нужно ввести нижнюю и верхнюю границы периода.

После ввода при нажатии на кнопку ПОКАЗАТЬ ЗА ПЕРИОД разворачивается окно со списком сделок (накладных) относящихся к введенному периоду. Это реализованно следующим образом. При соэдании коллекции строк с накладными сравниваютя дата сделки, нижняя и верхняя границы периода при помощи написанной прцедуоы DATECOMP из модуля DATES.PAS. Но для того, чтобы накладные распологались по порядку (по дате) мне пришлось перекрыть метод сортировки коллекции (см. модуль SKLSTR.PAS). После того, как создано диалоговое окно, пользователю предоставляется возможность распечатать выбранную накладную, соответствующую накладную по себестоимости и если накладная оплачена, то и приходный кассовый ордер.

2.6.4.5 ПРЕОБРАЗОВАНИЕ ДАННЫХ ПРИ ВЫВОДЕ ДОКУМЕНТОВ НА ПЕЧАТАЮЩЕЕ УСТРОЙСТВО.

В основном, вывод осуществляется стандартными процедурами Borland Pascal. Но например для печати приходного кассового ордера мне пришлось создать функцию для перевода суммы в слова (123 рубля в сто двадцать три рубля). Эта функция находится в модуле NUMSTR.PAS. Или для большей читабельности документов написал функцию для преобразования строки типа 1000000.00 в строку типа 1,000,000.00. Эта функция так же находится в модуле NUMSTR.PAS.

2.6.4.6 АРХИВИРОВАНИЕ ДАННЫХ.

Для того, чтобы в списке сделок не появлялись уже не нужные данные я написал подпрограмму для архивирования данных. При выборе команды меню АРХИВ-РАБОТА С АРХИВОМ на экране появляется диалоговое окно с двумя списками строк. В первом списке (СКЛАД) распологаются периоды сделок (месяц, год), которые доступны пользователю для просмотра, а во втором смиске (АРХИВ) сделки которые находятся в АРХИВЕ. Для архивации периода сделок использовал следующий алгоритм: При выборе периода для архивации, программа проверяет каждую сделку на принадлежность к этому периоду. Ecли сделка попадает а него, то поле SDELKA.ARCHIVE устанавливается в TRUE. При выборе периода для деархивации прграмма устанавливает поля SDELKA.ARCHIVE соответствующих сделок в FALSE. Подпрограмма архивации также увеличивает быстродействие программмы за счет уменьшения количества выводимых сделок.

2.6.4.7 ВВОД УСТАНОВОК.

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

Type {Структура данных для конфигурационного файла}

ConfigFileStructure = record

CassName : String[22]; { ФИО Кассира}

BuhName : String[30]; { ФИО бухгалтера}

GenName : String[30]; { ФИО коммерческого директора}

UserName : String[30]; { ФИО пользователя}

Signature : String[10]; { Сюда пишется дата BIOS'а }

Reserved1 : String[10]; { }

Reserved2 : String[10]; {Зарезервировано }

Reserved3 : String[20]; { }

Password : String[10]; {Пароль}

FirmName : String[60]; {Реквизиты фирмы}

Kurs : Real; {Курс доллара}

end;

При начальном запуске пароль не установлен. При необходимости из меню УСТАНОВКИ-ПАРОЛЬ можно установить пароль. Опишу реальзацию подпрограмму для его установки. Создается диалоговое окно со строкой ввода. Для того, чтобы привводе пароля на экране не отображались вводимые символы, был перекрыт метод TInputLine.HandelEvent так, что бы каждый введенный символ помещался в отдельную строку, а отображался ‘*’ (звездочкой). Для детального просмотра алгоритма см. модуль PASSWORD.PAS. После введения пароля и нажатия на кнопку OK появляется диалоговое окно для проверки введенного пароля. Если оба введеных пароля совпадают, то он записывается в файл FIRMA.DAT в поле Password. Если они не совпадают, то пароль не устанавливается.

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

2.6.4.8. ПАРОЛИРОВАНИЕ.

Для того, чтобы предотвратить доступ к данным я решил создать пароль, который запрашивался бы каждый раз при запуске программы. Для этого в записи ConfigFileStructure и добавил поле PassWord типа String[10];

Type

ConfigFileStructure = record

....

Password : String[10];

....

End;

Затем в меню УСТАНОВКИ добавил подменю УСТАНОВКИ-ПАРОЛЬ и связал

с ним комманду cmDostup, которая вызывает процедуру ввода пароля Dostup

из модуля SETUP.PAS. Эта процедура реализована так: На экране появляется

диалоговое окно со строкой ввода :

Введите пароль . В ней вводится пароль и при нажатии на кнопку OK

появляется следующее окно для проверки введенного пароля. Если во втором

окне введенный пароль соответствует введенному паролю в первом окне, то

этот пароль кодируется и записывается в файл FIRMA.DAT. Кодирование

происходит следующим образом. Каждый символ пароля умножается на число

(58+номер символа)*2. При запуске программы появляется диалоговое окно со

сторокой ввода Введите пароль . Если введенный пароль в закодированном

виде соответствует установленному закодированному паролю, то программа

продолжает функционировать , а если не соответсвуют, то выводится

сообщение о не правильно введенном пароле и программа прекращает

функционировать.

2.6.4.9. СТРУКТУРА БАЗ ДАННЫХ (БД).

Теперь рассмотрю структуру баз данных. Структура не является сложной, однако

она может содержать все данные, необходимые для данной системой и связь между разными БД осуществляется довольно простым путем.

Основной БД является БД, которая содержит информацию о наименованиях, имеющихся на складе (о количестве, о стоимости и т.д.). Она имеет следующую структуру :

Type

DataType = record { Структура складских данных}

ProductNumber : String[5]; {Номер}

ProductName : String[22]; {Наименование}

ProductRasf : String[10]; {Расфасовка}

PieceInBox : String[5]; {Кол-во штук в упаковке}

ProductPrice : String[12]; { Себестоимость }

ProductKol : String[12]; {Поставленное количество}

ProductFirm : String[22]; {Фирма поставщик}

ProductDate : String[l10]; {Дата прихода}

ProductOST : String[12]; {Осталось на складе}

ProductKurs : Real; { Курс прихода }

ProductSellPrice : Real; { Стоимость }

ProductVozvrat : LongInt; {Возврат}

end;

Var

Data : DataType;

DataFile : File of DataType; {Файл SKLAD.001}

Для записи (считывания) данных в (из) нее используется следующий алгоритм:

  1. Открыть файл данных.

  2. Поместить указатель положения в файле на нужную запись.

  3. Для записи данных - каждому полю записи Data присвоить соответствующие данные, затем их записать в файл данных Write(DataFile,Data). Для считывания данных - Считать данные из файла Read(DataFile,Data);

  4. Закрыть файл данных.

Более интересной структурой является структура сделок. :

Type {Заголовок сделки}

SdelkaInfo = record

SdelkaNumber : LongInt; {Номер сделки }

Reserved : Word;

Archive : Boolean; {Флаг архива}

ItemIndex : LongInt; {Индекс в наименованиях}

ItemsTaken : LongInt; {Всего наименований}

FirmName : String[22]; {Фирма}

Date : String[10]; {Дата выписки накладной}

OplataDate : String[10]; {Дата полной оплаты}

Summa : Real; {Сумма}

Kurs : Real; {Курс доллара}

SummaSkidka : Real; {Сумма со скидкой}

Oplata : Boolean; {TRUE - если оплачено полностью}

End;

Type

OneItemInfo = record { Наименования}

Number : LongInt;

SdelkaNumber : LongInt;

SklNum : LongInt;

Name : String[22];

Rasf : String[10];

Box : Integer;

KolVo : LongInt;

SBPrice : Real;

Price : Real;

Vozvrat : LongInt;

End;

Var

Sdelka : SdelkaInfo;

SdelkaFile : File of SdelkaInfo; {Файл SDELKA.001}

Item : OneitemInfo;

ItemsFile : File of OneItemInfo; {Файл SDELKA.002}

Структура состоит из заголовка и собстенно наименований. В заголовке содержатся следующие данные : Фирма покупатель, Дата накладной, Дата оплаты, Сумма накладной в долларах США , Сумма накладной со скидкой (в рублях), Курс доллара на момент ваписки накладной, Флаг архива, Количество проданных наименований, Индекс в БД с наименованиями.

В БД наименований находится информация о каждом наименовании, относящегося к соответствующей сделки.

Например, если нужно считать сделку, то надо:

  1. Открыть файлы данных SdelkaFile и ItemsFile;;

  2. Поместить указатель на нужную сделку в файле SdelkaFile (Seek(SdelkaFile,n));

  3. Считать сделку из файла (Read(SdelkaFile,Sdelka);

  4. Поместить указтель на наименование, численно равный Sdelka.ItemIndex в файл ItemsFile и для каждого наименования (от Sdelka.ItemsIndex до Sdelka.ItemsIndex+Sdelka.ItemsTaken) считывать данные. (Read(ItemsFile,Item);

  5. Закрыть файлы данных SdelkaFile и ItemsFile;

На Borland Pascal это выглядит следующим образом:

OpenSdelkaFile;

OpenItemsFile; {Открытие файлов: процедуры находятся в модуле SKLFILES.PAS}

Seek(SdelkaFile,нужная сделка); {Указываю на нужную сделку}

Read(SdelkaFile,Sdelka); {и считываю ее заголовок}

for n:=Sdelka.ItemIndex to Sdelka.ItemsTaken do {Считывание инф-ции о наименованиях}

Begin

Seek(ItemsFile,n);

Read(ItemsFile,Items);

...... операции над считанными данными (вставка в коллекцию строк) .....

End;

CloseItemsFile;

CloseSdelkaFile {Закратие файлов};

Структура приходов описана также , как и структура сделок.

2.6.5. ЗАКЛЮЧЕНИЕ

Используя мощные возможности компилятора BORLAND PASCAL 7.0 и объектно-ориентированной библиотеки TURBO VISION для написания системы управления работой коммерческой компании мне удалось за очень сжатые сроки создать довольно гибкую программу с пользовательским интерфейсом очень высокого класса.

2.7 Безопасность информации в ЛВС

2.7.1. Общая характеристика угроз, служб и механизмов безопасности

Комплексное рассмотрение вопросов обеспечения безопасности ЛВС нашло свое отражение в так называемой архитектуре безопасности, в рамках которой различают угрозы безопасности, а также услуги (службы) и механизмы ее обеспечения.

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

Угрозы принято делить на случайные, или непреднамеренные, и умышленные. Источником первых могут быть ошибки в программном обеспечении, выходы из строя аппаратных средств, неправильные действия пользователей или администрации ЛВС и т.д.. Умышленные угрозы, в отличие от случайных, преследуют цель нанесения ущерба пользователям (абонентам) ЛВС и, в свою очередь подразделяются на активные и пассивные.

Пассивные угрозы, как правило, направлены на несанкционированное использование информационных ресурсов ЛВС, не оказывая при этом влияния на ее функционирование. Пассивной угрозой является, например, попытка получения информации, циркулирующей в каналах передачи данной ЛВС, посредством прослушивания последних.

Характеристики

Тип файла
Документ
Размер
1,07 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6547
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее