Отчет по практике в ТОО «Корпорация Сайман»

Автор работы: Пользователь скрыл имя, 21 Января 2014 в 20:35, отчет по практике

Краткое описание

ТОО «Корпорация Сайман» – компания в области производства приборов учета электроэнергии. Компания производит продукцию, и разрабатывает решения для энергетической промышленности.
Специфической особенностью разработок ТОО «Корпорации Сайман» является принципиальная внедряемость выработанных рекомендаций. Решения, предлагаемые на национальном рынке, предварительно адаптируются с учетом глубокого понимания инженерами компании реальной практики бизнеса и нормативно-технических требований законодательства Республики Казахстан.

Содержание

1 ОБЩАЯ ЧАСТЬ…………………………………………………………………….3
1.1 Структура предприятия………………………………………....................3
1.2 Наличие техники……………………………………...................................5
1.3 Программное обеспечение предприятия…………………………………5
2 СПЕЦИАЛЬНАЯ ЧАСТЬ…………………………………………………………..8
2.1 Постановка задачи………………………………………………….………8
2.2 Алгоритм задачи……………………………………………………………8
2.3 Блок-схема задачи……………………………………………………...…11
2.4 Листинг программы………………………………………………………11
3 ЗАКЛЮЧЕНИЕ…………………………………………………………………….15

Прикрепленные файлы: 1 файл

ОТЧЕТ.docx

— 439.08 Кб (Скачать документ)

Любой XML- документ должен всегда начинаться с инструкции <?xml?>, внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа.


 

 

 

 

 

 

 

 

 

 

 

 

Лист

№ Документа

Подпись

Изм.

Лист


Для решения поставленной задачи XML- документы должны удовлетворять следующим требованиям:

– в заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация;

– каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника";

– в XML учитывается регистр символов;

– все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки

– вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов;

– вся информация, располагающаяся между начальными и конечными тэгами, рассматривается в XML как данные, и поэтому учитываются все символы форматирования (пробелы, переводы строк, табуляции не игнорируются, как в HTML).

В ходе детального анализа  файлов было выяснено, что файлы  подразделяются на типы такие как: пакеты и структуры. Эти файлы имеют разную структуру, но общий набор атрибутов. Основными различиями являются: корневые элементы файла или по-другому корневой узел, дочерние узлы и вложенные узлы. В файле может быть только один корневой элемент, в нашем случае это может быть Packet или Structure.

Файл типа Пакет имеет корневой элемент Packet. Так же имеет ряд определенных атрибутов присущих этому типу, таких как:

– Name;

– Structure;

– Destination;

– UseProtocol;

– MaxItemCount;

– Offset;

– ReplyPackets;

Пакет может включать в себя дочерние узлы Token,  которых может быть довольно большое количество и которые содержат ряд атрибутов характерных только для Токенов типа Пакет, а так же они могут вообще не присутствовать в документе. Атрибуты Токена:

– Desc;

– DataLength;

– DataType;

– Value;

– IsKey;

– IsResult;

– FunctionName;

– DataStart;


 

 

 

 

 

 

 

 

 

 

 

9

Лист

№ Документа

Подпись

Изм.

Лист


– DataEnd.

Файл типа Структура  с  корневым элементом Structure содержит, как и общие атрибуты, так и свои, такие как:


 

 

 

 

 

 

 

 

 

 

 

10

Лист

№ Документа

Подпись

Изм.

Лист


Name;

    • StructureOffset;
    • ItemCount;
    • Desc;
    • Options.

Токены так же содержат атрибуты:

    • Name;
    • UnusedValue;
    • DataLength;
    • DataType.

Некоторые документы этого  типа могут содержать вложенные  узлы, в данном случае вложенный  узел определяется значением атрибута  DataType, если  значение равно 'Bitwise' то в текущем токене имеется вложенный узел. Атрибуты токена вложенного узла:

    • Name;
    • UnusedValue;
    • DataLength;
    • DataType;
    • Desc.

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

В проекте всего одна форма XMLEditormainForm, на которой  пользователю в максимально понятном интерфейсе представлены все предлагаемые действия для работы с файлами.

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

1.В Меню(MainMenu) «Файл» выбрать пункт «Открыть».

2.В правой верхней части  формы есть компонента cxButtonEdit  которая имеет несколько функций, первая это открытие файла происходит при нажатии кнопочки с тремя точками, и вторая это отображение пути к файлу в текстовом поле.

После выбора файлов из директории все файлы загружаются в компонент lvFiles, где представлены в виде иконок с картинками. При открытии файлов вызывается процедура N1Click. При выборе файла из предложенных все его данные отображаются в соответствующих компонентах в зависимости от структуры файла. Если это файл типа Пакет то активны и видимы компоненты присущие этому типу файла, аналогично со структурами. Если в файле имеется вложенный узел, то заполняется таблица «Параметров Токена». В таблице есть поля маски, списки выбора и счетчики, предназначенные для быстрой и удобной работы и точного представления данных, которые уменьшают возникновение ошибки при заполнении таблицы пользователем. Перенос данных на форму осуществляется процедурой XMLToForm. Для навигации по таблице используется компонента cxNavigator. Навигатор позволяет перемещаться по записям, добавлять новые записи или удалять ненужные. Если в таблице в поле Тип Данных имеется значение Bitwise, то открывается вторая таблица, в которой отображены значения атрибутов вложенных Токенов. Перенос Токенов отрабатывается процедурой AddToBitwise. Для навигации используется другой навигатор, так же есть поля маски, списки выбора и счетчики.


 

 

 

 

 

 

 

 

 

 

 

11

Лист

№ Документа

Подпись

Изм.

Лист


После редактирования данных в файле нужно сохранить  его изменения, для этого нужно  в Меню «Файл» выбрать пункт «Сохранить»  для сохранения в активный файл или  «Сохранить как» для сохранения в  новый файл. При сохранении в активный файл выводится сообщение об успешном сохранении. Отрабатывается процедура miSaveClick. Для сохранения в новый файл открывается диалоговое окно, в котором можно выбрать директорию и указать новое имя файла. Отрабатывается процедура miSaveAsClick.

Для выхода из программы  нужно убедиться, что все изменения  сохранены, и в Меню выбрать пункт  «Выход» или нажать на  кнопку «Закрыть».

 

2.3 Блок-схема задачи

 

Макро - блок схема программы  представлена в приложении А.

 

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

 

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

 

procedure TXMLEditormainForm.XMLToForm(aXmlDocument: TXMLDocument);

var  i, Rec,l: Integer;

Node, knot : IXMLNode;

Destination,UseProtocol,check: string;

MaxItemCount,j,Offset,ItemCount,StructureOffset: integer;

procedure SetDestinationComboBox(aText: string);

var

Index, t: Integer;

begin

ComBoNaprav.Properties.Items.Clear;

for t := Low(TypeNameArray) to High(TypeNameArray) do

ComBoNaprav.Properties.Items.Add(TypeNameArray[t]);

ComBoNaprav.ItemIndex := -1;


 

 

 

 

 

 

 

 

 

 

 

12

Лист

№ Документа

Подпись

Изм.

Лист


Index := -1;

for t := Low(TypeArray) to High(TypeArray) do

if UpperCase(aText) = UpperCase(TypeArray[t]) then

begin

Index := t;

Break;

end;

ComBoNaprav.ItemIndex := Index;

end;

procedure SetDestinationComboBoxUseProtocol(aText: string);

var

Index, t: Integer;

begin

ComBoProtocol.Properties.Items.Clear;

for t := Low(TypeUseProtocolName) to High(TypeUseProtocolName) do

ComBoProtocol.Properties.Items.Add(TypeUseProtocolName[t]);

ComBoProtocol.ItemIndex := -1;

Index := -1;

for t := Low(TypeUseProtocol) to High(TypeUseProtocol) do

if UpperCase(aText) = UpperCase(TypeUseProtocol[t]) then

begin

Index := t;

Break;

end;

ComBoProtocol.ItemIndex := Index;

end;

procedure DocSettings;   // настройки  параметров документа, чтение из файла

begin

knot := XMLDocument.ChildNodes[check];//значение корневого узла

if XMLDocument.ChildNodes[check].LocalName = cPacketTag then   ComBoTip.Text := cPacket//выводим пакет

else  ComBoTip.Text := cStructureTag;//выводим структуру

EdPacketName.text := VarDef(knot.GetAttribute(cName), '');

edStructure.Text := VarDef(knot.GetAttribute(cStructure),'');

Destination := VarDef(knot.GetAttribute(cDestination),'');

SetDestinationComboBox(Destination);

SetDestinationComboBoxUseProtocol(UseProtocol);

ComBoProtocol.ItemIndex := IIF(UseProtocol = 'True',ComBoProtocol.properties.Items.IndexOf(cYes),

ComBoProtocol.properties.Items.IndexOf(cNo));

if ComBoTip.Text = cStructureTag then

begin

ItemCount := VarDef(knot.GetAttribute(cItemCount),0);

seMaxElements.value := ItemCount;

StructureOffset := VarDef(knot.GetAttribute(cStructureOffset),0);

seSdvig.value  := StructureOffset;

visibilityStructyre;

end

else

begin

MaxItemCount := VarDef(knot.GetAttribute(cMaxItemCount),0);

seMaxElements.value := MaxItemCount;

Offset := VarDef(knot.GetAttribute(cOffset),0);

seSdvig.value  := Offset;

visibilityPacket;

end;

edOtvetPacket.text := VarDef(knot.GetAttribute(cReplyPackets),'');

edOptions.text:= VarDef(knot.GetAttribute(cOptions),'');

end;

begin

cxNavigator.visible:= true;//очистка таблицы параметров токена

XMLEditormainForm.Height := 565;

vwTokensBitwise.DataController.RecordCount := 0;

vwTokens.DataController.RecordCount := 0;// отключение сортировки в таблице

vwTokens.OptionsCustomize.ColumnSorting := False;// отключение фильтрации

vwTokens.OptionsCustomize.ColumnFiltering := False;    check := ''

if XMLDocument.Active then

begin//сделать пункты меню сохранения активными

miSave.Enabled := true;

miSaveAs.Enabled := true;//искать в документе главный узел

 for j := 0 to XMLDocument.ChildNodes.Count - 1 do

if (XMLDocument.ChildNodes[j].LocalName = cStructureFile) or

(XMLDocument.ChildNodes[j].LocalName = cPacketTag) then

check := XMLDocument.ChildNodes[j].LocalName

if (check <> '') then

begin// подгружаем параметры документа

DocSettings;// работаем с данными параметров дока

with  vwTokens.DataController do

begin// полное обновление таблицы

BeginFullUpdate;

try// перебираем дочернии узлы главного узла

for i := 0 to XMLDocument.ChildNodes[check].ChildNodes.Count  - 1 do

begin// если значение дочернего узла равно Токену тогда

if XMLDocument.ChildNodes[check].ChildNodes[i].LocalName = cTokenTag then

begin// переменной присваеваем значения главного узла и дочернего узла


 

 

 

 

 

 

 

 

 

 

 

13

Лист

№ Документа

Подпись

Изм.

Лист


Node := XMLDocument.ChildNodes[check].ChildNodes[i];

Rec := vwTokens.DataController.AppendRecord

values[Rec, colNum.index] := i+1;

values[Rec, colDescription.Index] := VarDef(Node.GetAttribute(cDesc),'');

values[Rec, colName.index] := VarDef(Node.GetAttribute(cName), '');

values[Rec, colDataLength.index] := VarDef(Node.GetAttribute(cDataLength),0);


 

 

 

 

 

 

 

 

 

 

 

14

Лист

№ Документа

Подпись

Изм.

Лист


values[Rec, colDataType.index] := FindNameByType(VarDef(Node.GetAttribute(cDataType),''));

if Node.GetAttribute(cDataType) = cBitwiseName then

begin

AddToBitwise(Node);

vwTokensBitwise.DataController.Filter.Clear;

vwTokensBitwise.DataController.Filter.Root.AddItem(colParent, foEqual, 1,IntToStr(1));

colNum.Filtered := True;

cxGrid1.Visible := true;

XMLEditormainForm.Height := 830;

end;

values[Rec, colValue.index] := VarDef(Node.GetAttribute(cValue), 0);

values[Rec, colUnusedValue.index] := VarDef(Node.GetAttribute(cUnusedValue), 0);

values[Rec, colIsKey.index] := FindNameTypeIsKey(VarDef(Node.GetAttribute(cIsKey),''));

values[Rec, colIsResult.index] := FindNameTypeIsResult(VarDef(Node.GetAttribute(cIsResult),''));

values[Rec, colFunctionName.index] :=VarDef(Node.GetAttribute(cFunctionName), '');

values[Rec, colDataStart.index] := VarDef(Node.GetAttribute(cDataStart), 0);

values[Rec, colDataEnd.index] := VarDef(Node.GetAttribute(cDataEnd),0);

end;

end;

finally

EndFullUpdate;

end;

end;

end

else   ShowMessage('Неверная структура файла');

end;

end;                


 

 

 

 

 

 

 

 

 

 

 

15

Лист

№ Документа

Подпись

Изм.

Лист


ЗАКЛЮЧЕНИЕ

 

 

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

Практика началась с вводного инструктажа, изучения требований к организации определённого рабочего места, ознакомления с санитарно-гигиеническими нормами и безопасностью работы. Далее осуществлялось знакомство с направлением деятельности компании «Корпорация САЙМАН» изучение её нормативно-правовой базы.

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

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

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

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

 

 

Г


Конец

Информация о работе Отчет по практике в ТОО «Корпорация Сайман»