Разработка автоматизированного рабочего места специалиста ООО "Бравида"

Анализ технического задания, разработка программных модулей, средств тестирования и руководство пользователя. Масштабируемые средства для построения баз данных. Расчет эффективности программы "Автоматизированное рабочее место специалиста ООО "Бравида".

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

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

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

StringGrid2.Cells[0,j]:=k;

end;

closefile(f);

end;

Отображение на экране выделенного аналога агрегата:

procedure TForm1.StringGrid2MouseMove(Sender: TObject; Shift:

TShiftState; X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Аналоги выбранного компонента';

end;

Процедура поиска аналогов компонентов агрегата:

procedure TForm1.StringGrid2SelectCell(Sender: TObject; ACol, ARow:

Integer;

var CanSelect: Boolean);

var str2:string;

begin

try

str2:=stringGrid2.Cells[ACol,ARow];

Image4.Visible:=True;

Image4.Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'\1\2\'+str2+'.jp

g');

except

Image4.Picture:=nil;

Image4.Visible:=False;

ShowMessage('Изображение отсутствует!');

end;

Процедура отображения информации о создателе программы:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Timer1.Enabled:=False;

Form2.Show;

end;

Печать:

procedure TForm1.N5Click(Sender: TObject);

begin

if PrinterSetupDialog1.Execute then Form1.Print;

end;

end.

5. Разработка средств тестирования

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

Критическое тестирование - это процесс поиска ошибок в программе при стандартной ее работе (при правильной последовательности действий, при верном заполнении полей и т.д.).

Углубленное (расширенное) тестирование - это процесс поиска ошибок в программе в нестандартный, непредвиденных ситуациях (например, некорректно вводимых данных).

Некоторые результаты тестирования сведены в таблице 1.

Таблица 1

Тестовые случаи

Название модуля/экрана

Описание тестового случая

Ожидание результата

Тестовый случай пройден? Да/Нет

1

2

3

4

5

1

Unit 5 (Форма запроса пароля для входа в программу)

Ввод правильного пароля

Закрытие формы запроса пароля, открытие главной формы программы.

Да

2

Unit 5

Отсутствует файл psw.hrr (файл, содержащий идентифици-рующую запись и зашифрованный пароль)

Выдается соответствующее сообщение и программа автоматически закрывается.

Да

3

Unit 5

Файл psw.hrr найден, но является «пустым» или не является структурированным

Выдается соответствующее сообщение и программа автоматически закрывается.

Да

4

Unit 5

Файл найден, и он соответствует всем параметрам, обозначенным в тестовом случаи №3, но текст идентификации отличается от оригинального.

Выдается соответствующее сообщение и программа автоматически закрывается.

Да

5

Unit 1

Нажатие кнопки «Добавить»

Появляется новая форма для ввода данных либо выбора уже существующих данных для корректировки.

Да

6

Unit 1

Нажатие кнопки «Изменить пароль»

Появляется новая форма для ввода существующего пароля, нового пароля и повторного ввода пароля.

Да

7

Unit 1

Нажатие кнопки «О программе»

Появляется новая форма с соответствующей информацией.

Да

8

Unit 1

Нажатие кнопки «Печать»

Печать выбранной модели агрегата.

Да

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

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

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

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

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

На рисунке 6.1 приведен наглядный пример внешнего вида программы.

Рисунок 6.1 - Заставка программы

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

Рисунок 6.2 - Форма для ввода пароля

Если вы ввели пароль, который является верным, перед вами откроется главная форма программы. При запуске она пуста. На рисунке 6.2 представлен вид программы до начала работы.

Рисунок 6.2 - Внешний вид программы перед началом работы

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

Рисунок 6.3 - Окно программы во время работы

Данная программа помимо вывода компонентов агрегата, выводит и их аналоги. Для этого необходимо щёлкнуть левой кнопкой мыши по интересующему компоненту в таблице. В результате чего на экране появится таблица с аналоги к конкретному компоненту. Чтобы просмотреть внешний вид аналога, щелкните по его модели в таблице. Например, для агрегата CA1028IR существует ряд компонентов. Меня интересуют аналоги для компонента 28-0992. Щелкаем по нему кнопкой мыши и видим два возможных аналога: 110607 и 111754. Выбрав модель 111754, появился внешний вид аналога.

Рисунок 6.4 - Вид программы с поиском аналогов

Для поиска новой модели агрегата достаточно изменить код в строке. Программа сама очистит данные о прошлом элементе и выведет новые.

Поскольку с течением времени база данных по агрегат будет обновляется и расширятся, пользователь может самостоятельно добавить новый элемент или редактировать существующий. Для этого необходимо щелкнуть левой кнопки мыши по кнопке «Добавить». В результате чего появиться новая форма для добавления и редактирования элемента. На рисунке 6.5 представлен вид окна для добавления и редактирования элементов.

Рисунок 6.5 - Внешний вид окна добавления агрегата

Если нужно внести новую модель агрегата в базу, то необходимо заполнить все пустые поля и загрузить с локального диска изображение агрегата путем нажатия по кнопке «Открыть изображение». После того, как все поля будут заполнены, жмем кнопку «Обновить данные». В результате в базу будет добавлен новый агрегат.

В случае, когда нужно изменить данные по существующему агрегату, то достаточно лишь вписать в поле «Модель» модель агрегата. Все данные по данному элементу отобразятся автоматически, и пользователь сможет изменить некорректные данные. После чего достаточно нажать кнопку «Обновить данные», и данные по агрегату перезапишутся.

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

Как видно, на главной форме расположена еще одна кнопка «О программе». Щелкнув по ней, пользователю представиться информация о программе и ее возможностях. На рисунке 6.6 представлен вид окна «О программе».

Рисунок 6.6 - Вид окна «О программе»

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

Рисунок 6.7 - Окно настройки печати

Чтобы закрыть окно «О программе», необходимо нажать на красный крестик в верхнем правом углу окна или по кнопке «ОК».

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

программный модуль автоматизированный рабочий

7. Технико-экономическое обоснование

Обязательным условием применения разработанной программы «Автоматизированного рабочего места специалиста ООО «БРАВИДА»» является получение экономического эффекта от ее внедрения. Его размеры зависят от двух факторов:

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

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

Расчет затрат ведём по следующим статьям затрат, суммы, по которым могут изменяться с применением программы.

Определяем основную заработную плату управленческого персонала по формуле:

Зоi = Мi* Чi *12 (1)

где Мi - месячный оклад персонала до и после внедрения программы, руб.2 000 000 - 2 300 000 руб.;

Чi - численность персонала до и после внедрения программы, чел.;

12 - количество месяцев в году.

Зод = 2000000?3?12 = 72000000 руб.

Зоп = 2000000?2?12 = 48000000 руб.

Определяем дополнительную заработную плату по формуле:

руб.(2)

где Нд - процент дополнительной заработной платы управленческого персонала, 25%.

Здд = 72000000?0,25 = 18000000 руб.

Здп = 48000000?0,25 = 12000000 руб.

Определяем отчисления в фонд социальной защиты:

, руб.(3)

где Пфс- процент отчислений в фонд социальной защиты, 34%.

Зфсд = (72000000+18000000)?0,34 = 30600000 руб.

Зфсп = (48000000+12000000) ?0,34 = 20400000 руб.

Определяем прочие налоги от фонда заработной платы по формуле:

, руб.(4)

где Нзп -отчисления в государственный фонд содействия занятости, 0,6%

Нд = (72000000+18000000)?0,006 = 540000 руб.

Нп = (48000000+12000000) ?0,006 = 360000 руб.

Сумму косвенных расходов определяем по следующей формуле:

руб.(5)

где Кi - процент косвенных расходов, в которые входят затраты на материалы амортизационные отчисления и затраты по содержанию и эксплуатации оборудования.

Кiд - зависит от того, существовала ли другая программа до внедрения нашей или информация обрабатывалась вручную. Если существовала программа, то Кiд = Кin , если нет, то Кiд< Кin и составляет 40 - 150 %

Зkд = 72000000?0,45 = 32400000 руб.

Зkп = 48000000?0,45 = 21600000 руб.

Результаты расчетов сводим в таблице 2.

Таблица 2

Расчет затрат за выполнения работ на 2014 г.

Статьи затрат

Обозначение

Сумма, руб

до внедрения программы

после внедрения программы

Основная заработная плата управленческого персоонала

Зо

72000000

48000000

Дополнительная заработная плата управленческого персонала

Зd

18000000

12000000

Отчисление в фонд социальной защиты

Зфс

306000000

20400000

Прочие налоги от фонда зароботной платы

Н

540000

360000

Косвенные расходы

Зк

32400000

21600000

Итого затрат

З

153540000

102360000

Для расчета годового экономического эффекта от внедрения программы используем формулу:

, руб.(6)

где Зд - затраты до внедрения программы (или при другой программе), руб.;

Зп - затраты после внедрения программы, руб.;

Зс - затраты по созданию программы, руб.;

Вп - время погашения затрат по созданию программы, год

руб.

Коэффициент экономической эффективности рассчитывается по формуле:

(7)

Срок окупаемости программы:

, лет(8)

лет

Исходя из вышеизложенного программа «Автоматизированное рабочее место специалиста ООО «БРАВИДА» является экономически эффективной и рекомендована к применению в ООО «БРАВИДА».

8. Охрана труда и экологическая безопасность

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

Основными, при определении условий труда являются следующие вопросы:

- производственный микроклимат помещения;

- производственное освещение;

- воздействие шума и вибрации;

- электромагнитные излучения

- электропожаробезопасность;

- эргонометрические характеристики рабочего места.

Производственный микроклимат

Нормы производственного микроклимата определяют оптимальные условия для рабочей зоны. Контроль параметров воздушной среды осуществляется соответствующими специалистами с помощью следующих приборов:

- термометр (температура воздуха);

- психрометр (относительная влажность);

- анемометр (скорость движения воздуха);

- актинометр (интенсивность теплового излучения);

- газоанализатор (концентрация вредных веществ).

С целью создания комфортных условий труда, для поддержания влажности и оптимальной температуры в помещениях установлены кондиционеры («Electra”, вентиляция, охлаждение, увлажнение воздуха). Система кондиционирования воздуха обеспечивает поддержание необходимых параметров микроклимата, осуществляет очистку воздуха от пыли и вредных веществ.

Производственное освещение

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

Вся информация подается через зрительный анализатор. Вредное воздействие на глаза человека оказывают следующие опасные и вред. производственные факторы:

Недостаточное освещение рабочей зоны;

Отсутствие/недостаток естественного света;

Повышенная яркость;

4. Перенапряжение анализаторов (в т.ч. зрительных)

По данным ВОЗ на зрение влияет:

- УФИ;

- яркий видимый свет;

- мерцание;

- блики и отраженный свет.

Воздействие шума

Шум - всякий нежелательный для человека звук, мешающий восприятию полезных сигналов. Для измерения шума служат шумомеры типа ШВК с фильтром ФЭ-2, а так же виброакустическая аппаратура типа RFT.

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

Источниками шума в рассматриваемых помещениях являются кондиционер, компьютер, принтер. Уровень шума - порядка 20 дБ, что не превышает допустимых уровней.

Внешний шум и вибрации в рассматриваемом помещении отсутствуют практически полностью, так как отделка выполнена с учетом требований звукоизоляции.

Электромагнитные излучения

Мониторы являются основным источником различных видов излучений (электромагнитного, ионизирующего, неионизирующего) и статического электричества.

В течение рабочего дня необходимо равномерно распределять и чередовать различную по степени напряженности нагрузку (ввод данных, редактирование программ, печать документов или чтение информации с экрана). При этом непрерывная работа за монитором не должна превышать четырех часов при 8 часовом рабочем дне, а количество обрабатываемых символов (знаков) 30 тыс. за 4 часа работы.

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

Электро-, пожаробезопасность

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

- соответствие напряжения в сети тому на которое рассчитан ПК;

- наличие защитного заземления;

- меры защиты от перепадов в сети.

Приборы, находящиеся в помещении работают от номинального напряжения 220 В. В нашем случае применено заземление с изолированной нейтралью. Заземление выведено на заземляющий контур с сопротивлением 4 Ома. Заземление дисплеев осуществляется через системный блок ЭВМ.

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

При эксплуатации ЭВМ возможны возникновения следующих аварийных ситуаций:

- короткие замыкания;

- перегрузки;

- повышение переходных сопротивлений в электрических контактах;

- перенапряжение;

- возникновение токов утечки.

Эргонометрические характеристики рабочего места

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

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

Рабочее пространство

Научная организация рабочего пространства (Рисунок 6.1) базируется на данных о средней зоне охвата рук человека - 35-40 см. Ближней зоне со-ответствует область, охватываемая рукой с прижатым к туловищу локтем, дальней зоне - область вытянутой руки. Тонкой линией изображено фактическое положение монитора на рабочем столе сотрудника - на углу стола с левой стороны. Это приводит к значительному неудобству при работе. При работе с компьютером приходится постоянно поворачивать голову влево, что ведет к усталости шейных мышц.

Рисунок 6.1 - Организация рабочего пространства

Внутренний объем

Значимым фактором является пространство под столешницей. Высота столов, использующихся на предприятии соответствует общепринятым стандартам, и составляет 74 см. Конструкция столов обеспечивает нужные требования по ширине и высоте необходимого пространства для ног. На рисунке 6.2. изображено необходимое пространство для ног.

Рисунок 6.2 - Необходимое пространство для ног

Взаимное расположение предметов на рабочем месте:

1 - угол обзора по вертикали, 35

2 - угол наклона клавиатуры, 10

h1 - высота рабочей поверхности, 79 см

h2 - высота сиденья стула, регулируется под конкретного человека

h3 - расстояние от края стола до клавиатуры, 10 см

h4 - расстояние от органов зрения оператора до экрана, 65 см

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

Клавиатура, как наиболее часто используемое устройство ввода. Параметры этой зоны: угол - 70, глубина - 30-40 см.

Остальные устройства - угол - 130 градусов, глубина 70-80 см.

С учетом выше приведенных данных об углах обзора, а так же зная максимальный размер зоны досягаемости правой руки (70-100 см). Можно считать, что расположение рабочих предметов в моторном поле правильное.

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

Техника безопасности при пайке

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

2. При выполнении пайки в замкнутых пространствах, паяльник должен быть напряжением не выше 12 В

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

4. В промежутках времени между паяльными операциями нагрев жала паяльников должен быть снижен до 150-180 °С, а при временном прекращении работ - отключен, для чего постоянные рабочие места следует оборудовать ограничителями (регуляторами) нагрева паяльников.

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

6. Паяльник, находящийся в рабочем состоянии, постоянно должен находиться в зоне действия местной вытяжной вентиляции.

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

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

Заключение

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

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

Разработаны чертежи:

1. Блок-схема программного модуля

2. Блок-схема запроса пароля программного модуля

3. Диаграмма классов программного модуля

4. Интерфейс программного модуля.

Список используемых источников

1. Хомоненко А., Гофман В., Мещеряков Е., Никифоров В. Delphi 7. / А. Хомоненко - СПб.:БХВ. Петербург, 2007. -1216 с.

2. Александровский, А.Д. Delphi 5.0. Разработка корпоративных приложений / А.Д. Александровский - М.:ДМК, 2000. -512 с.

3. Архангельский, А.Я. Программирование в Delphi 6. / А.Я Архангельский - М.: ЗАО «Издательство БИНОМ», 2003. - 1120 с.

4. Архангельский, А.Я. Delphi 5. / А.Я. Архангельский - Справочное пособие-М.:ЗАО «Издательство БИНОМ»,2001.-768 с.

5. Вейскас, Дж. Эффективная работа с Microsoft Excel 2000. / Дж. Вейскас - СПб: Питер,2001.- 1040с.

6. ГОСТ 12.1.005-88. ССБТ. Общие санитарно-гигиенические требования к воздуху рабочей зоны. - М.: 1988.

7. ГОСТ 12.1.012-90 Вибрационная безопасность. - М., 1990.

8. ГОСТ 12.1.030-81 Электробезопасность. Защитное заземление, зануление.

9. ГОСТ 12.1.045-84 Электростатические поля. Допустимые уровни на рабочих местах и требования к проведению контроля.

10. Дейт, К. Введение в системы баз данных. / К. Дейт - Киев: Диалектика, 1998. - 781 с.

11. Петров В.Н. Информационные системы. Учебник / В.Н. Петров - СПб.:Питер,2002. - 688 c.

12. Карманов, В.Г. Математическое программирование. - М.: Наука, 1986.

13. Кнут, Д. Искусство программирования: Основные алгоритмы. В 1 т - М.: Вильямс, 2001.

14. Кривошеев, А.О. Разработка и использование компьютерных обучающих программ /Информационные технологии - 1996 г., №2, с. 14-17.

15. НПБ 5-2005. Нормы пожарной безопасности РБ.

16. Определение нормативной трудоемкости обслуживания и управления производством (методические указания) - М.: Экономика, 1990.

17. Павлов С.П., Губонина З.И. Охрана труда в приборостроении. / Под ред. Алексаняна А.Г. - М.: Высш. шк., 1986. - 456 c.

18. Полтев М.К. Охрана труда в машиностроении: Учебник для машиностроительных вузов. / М.К. Полтев - М.: Высшая школа, 1980. - 255c.

19. СанПиН 2.01.02-85. Противопожарные нормы.

20. СанПиН 2.2.4/2.1.8.10-32-2002. Шум на рабочих местах, в помещениях жилых, общественных зданий и на территории жилой застройки.

21. СанПиН 9-131 РБ 2000. Гигиенические требования к видеодисплейным терминалам, электронно-вычислительным машинам и организации работы. - Мн.: Министерство здравоохранения республики Беларусь, 2001. - 210 с.

22. СанПиН 9-80 РБ 98. Гигиенические требования к микроклимату производственных помещений. - Мн.: 1998.

Приложение А

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

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, jpeg, Grids, ComCtrls, Menus, printers;

type

TForm1 = class(TForm)

Image1: TImage;

Image2: TImage;

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Image3: TImage;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Image4: TImage;

Timer1: TTimer;

StatusBar1: TStatusBar;

Image5: TImage;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

PrinterSetupDialog1: TPrinterSetupDialog;

N5: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure StringGrid2SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure Timer1Timer(Sender: TObject);

procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Image3MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Image4MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure StringGrid2MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Image5MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y:

Integer);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit6;

{$R *.dfm}

procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState;

X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Модель агрегата';

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;

X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='';

end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState;

X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Изображение агрегата';

end;

procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState;

X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Изображение агрегата';

end;

procedure TForm1.Image3MouseMove(Sender: TObject; Shift: TShiftState;

X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Вид резьбы/вид подключения агрегата';

end;

procedure TForm1.Image4MouseMove(Sender: TObject; Shift: TShiftState;

X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Изображение аналога агрегата';

end;

procedure TForm1.Image5MouseMove(Sender: TObject; Shift: TShiftState;

X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Технические характеристики агрегата';

end;

procedure TForm1.FormCreate(Sender: TObject);

var s1,s2,U,I,A,B,C,k,sh:string; n,j:integer;

f:textfile;

begin

try

s1:=''; s2:='';

U:='';

I:='';

A:='';

B:='';

C:='';

Label8.Caption:='';

Label9.Caption:='';

Label5.Caption:='A: ';

Label6.Caption:='B: ';

Label7.Caption:='C: ';

Image1.Visible:=False;

Image2.Visible:=False;

Image3.Visible:=False;

Image4.Visible:=False;

StringGrid1.Visible:=False;

StringGrid2.Visible:=False;

StringGrid1.RowCount:=2;

StringGrid1.Cells[0,0]:='Компоненты';

StringGrid1.Cells[0,1]:='';

StringGrid2.Cells[0,0]:='';

StringGrid2.Cells[0,1]:='';

s1:=Edit1.text;

assignfile(f,ExtractFilePath(paramstr(0))+'\1\'+s1+'\1.txt');

reset(f);

readln(f,U);

readln(f,I);

readln(f,A);

readln(f,B);

readln(f,C);

closefile(f);

StringGrid1.Visible:=True;

assignfile(f,ExtractFilePath(paramstr(0))+'\1\'+s1+'\2.txt');

reset(f);

readln(f,n);

StringGrid1.RowCount:=n+1;

for j := 1 to n do

begin

readln(f,k);

StringGrid1.Cells[0,j]:=k;

end;

closefile(f);

Image1.Visible:=True;

Image2.Visible:=True;

Image3.Visible:=True;

Image1.Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'\1\'+s1+'\1.jpg'

);

Image2.Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'\1\'+s1+'\2.jpg'

);

Image3.Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'\1\'+s1+'\3.jpg'

);

Label8.Caption:=U+' V';

Label9.Caption:=I+' Amp';

If A<>'' then Label5.Caption:=Label5.Caption+A+' mm';

if B<>'' then Label6.Caption:=Label6.Caption+B+' mm';

if C<>'' then Label7.Caption:=Label7.Caption+C+' mm';

except

Label8.Caption:='';

Label9.Caption:='';

Label5.Caption:='A: ';

Label6.Caption:='B: ';

Label7.Caption:='C: ';

Image1.Picture:=nil;

Image2.Picture:=nil;

Image3.Picture:=nil;

Image4.Picture:=nil;

end;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

Form4.Show;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Form6.Show;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

if PrinterSetupDialog1.Execute then Form1.Print;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift:

TShiftState; X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Компоненты агрегата';

end;

// Поиск аналогов выделенного агрегата:

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow:

Integer;

var CanSelect: Boolean);

var f:textfile; n,j:integer; str1,str2,k,s1:string;

begin

s1:=Edit1.text;

StringGrid2.Visible:=True;

str1:=stringGrid1.Cells[ACol,ARow];

StringGrid2.Cells[0,0]:=str1;

assignfile(f,ExtractFilePath(paramstr(0))+'\1\1\'+str1+'.txt');

reset(f);

readln(f,n);

StringGrid2.RowCount:=n+1;

for j := 1 to n do

begin

readln(f,k);

StringGrid2.Cells[0,j]:=k;

end;

closefile(f);

end;

procedure TForm1.StringGrid2MouseMove(Sender: TObject; Shift:

TShiftState; X,

Y: Integer);

begin

StatusBar1.Panels[0].Text:='Аналоги выбранного компонента';

end;

procedure TForm1.StringGrid2SelectCell(Sender: TObject; ACol, ARow:

Integer;

var CanSelect: Boolean);

var str2:string;

begin

try

str2:=stringGrid2.Cells[ACol,ARow];

Image4.Visible:=True;

Image4.Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'\1\2\'+str2+'.jp

g');

except

Image4.Picture:=nil;

Image4.Visible:=False;

ShowMessage('Изображение отсутствует!');

end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Timer1.Enabled:=False;

Form2.Show;

end;

end.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, jpeg;

type

TForm2 = class(TForm)

Timer1: TTimer;

Image1: TImage;

procedure Timer1Timer(Sender: TObject);

procedure Image1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1, Unit5;

{$R *.dfm}

procedure TForm2.Image1Click(Sender: TObject);

begin

Timer1.Enabled:=False;

Form5.Show;

Form5.AlphaBlend:=False;

close;

end;

procedure TForm2.Timer1Timer(Sender: TObject);

begin

Timer1.Enabled:=False;

Form5.Show;

Form5.AlphaBlend:=False;

close;

end;

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls;

type

TForm3 = class(TForm)

Memo1: TMemo;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

close;

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, Grids, ExtCtrls, JPEG, ExtDlgs;

type

TForm4 = class(TForm)

Label1: TLabel;

Image1: TImage;

StringGrid1: TStringGrid;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Button1: TButton;

Button2: TButton;

OpenPictureDialog1: TOpenPictureDialog;

Button3: TButton;

ComboBox1: TComboBox;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

n:integer;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

begin

if OpenPictureDialog1.Execute then

Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

end;

procedure TForm4.Button2Click(Sender: TObject);

var s,U,I,A,B,C:string; f:textfile;

j: Integer;

begin

try

s:=ComboBox1.Text;

sysutils.CreateDir(ExtractFilePath(paramstr(0))+'\1\'+s);

U:=Edit2.Text+' V';

I:=Edit3.Text+' Amp';

A:=Edit4.Text;

B:=Edit5.Text;

C:=Edit6.Text;

assignfile(f,ExtractFilePath(paramstr(0))+'\1\'+s+'\1.txt');

rewrite(f);

writeln(f,U);

writeln(f,I);

writeln(f,A);

writeln(f,B);

writeln(f,C);

closefile(f);

Image1.Picture.SaveToFile(ExtractFilePath(paramstr(0))+'\1\'+s+'\1.jpg');

assignfile(f,ExtractFilePath(paramstr(0))+'\1\'+s+'\2.txt');

rewrite(f);

writeln(f,n-2);

for j := 1 to n - 1 do

writeln(f,StringGrid1.Cells[0,j]);

closefile(f);

except

ShowMessage('Все поля должны быть заполнены!');

end;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

ComboBox1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

n:=2;

StringGrid1.Cells[0,1]:='';

StringGrid1.RowCount:=n;

Image1.Picture:=nil;

end;

procedure TForm4.FormCreate(Sender: TObject);

Var s1,U,I,A,B,C,k:string; f:Textfile; j:integer;

begin

try

s1:='';

U:='';

I:='';

A:='';

B:='';

C:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Image1.Visible:=False;

n:=2;

StringGrid1.RowCount:=n;

StringGrid1.Cells[0,0]:='Компоненты';

StringGrid1.Cells[0,1]:='';

s1:=ComboBox1.text;

if s1<>'' then begin

assignfile(f,ExtractFilePath(paramstr(0))+'\1\CA1028IR\1.txt');

reset(f);

readln(f,U);

readln(f,I);

readln(f,A);

readln(f,B);

readln(f,C);

closefile(f);

end;

// Чтение и вывод компонентов агрегата:

if s1<>'' then begin

assignfile(f,ExtractFilePath(paramstr(0))+'\1\CA1028IR\2.txt');

reset(f);

readln(f,n);

StringGrid1.RowCount:=n+1;

for j := 1 to n do

begin

readln(f,k);

StringGrid1.Cells[0,j]:=k;

end;

closefile(f);

end;

Image1.Visible:=True;

Image1.Picture.LoadFromFile(ExtractFilePath(paramstr(0))+'\1\'+s1+'\1.jpg'

);

Edit2.Text:=U;

Edit3.Text:=I;

If A<>'' then Edit4.Text:=A;

if B<>'' then Edit5.Text:=B;

if C<>'' then Edit6.Text:=C;

except

// Обнуление всех праметров агрегата:

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Image1.Picture:=nil;

end;

end;

procedure TForm4.StringGrid1MouseMove(Sender: TObject; Shift:

TShiftState; X,

Y: Integer);

begin

if StringGrid1.cells[0,n-1]<>'' then begin

inc(n);

StringGrid1.RowCount:=n;

end;

end;

end.

unit Unit5;

interface

uses

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

Dialogs, StdCtrls;

type

TForm5 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit1, Unit6;

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);

const key=38;

var psw,psw1,s:string; f:TextFile;

i: Integer;

begin

try

assignfile(f,ExtractFilePath(paramstr(0))+'psw.hrr');

reset(f);

readln(f,s);

closefile(f);

if s='' then begin

MessageDlg('Содержимое файла "psw.hrr" было удалено! Программа

будет закрыта!', mtWarning,[mbOK],0);

Button2.Click;

end

else begin

psw:=Edit1.Text;

psw1:='';

for i := 1 to length(s) do

begin

s[i]:=Chr(key xor Ord(s[i]));

psw1:=psw1+s[i];

end;

if psw1<>psw then MessageDlg('ПАРОЛЬ НЕВЕРНЫЙ!!!',

mtWarning,[mbOK],0)

else begin

Form5.Close;

Form1.AlphaBlend:=False;

end;

end;

except

MessageDlg('Файл "psw.hrr" не найден! Программа будет закрыта!',

mtWarning,[mbOK],0);

Button2.Click;

end;

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

Form1.Close;

end;

end.

unit Unit6;

interface

uses

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

Dialogs, StdCtrls;

type

TForm6 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.dfm}

procedure TForm6.Button1Click(Sender: TObject);

const key=38;

var pswst,pswnv,s,psw1,ss:string; f:TextFile; i:byte;

begin

pswst:=Edit1.Text;

pswnv:=Edit2.Text;

s:=Edit3.Text;

assignfile(f,ExtractFilePath(paramstr(0))+'psw.hrr');

reset(f);

readln(f,ss);

closefile(f);

psw1:='';

for i := 1 to length(ss) do

begin

ss[i]:=Chr(key xor Ord(ss[i]));

psw1:=psw1+ss[i];

end;

if pswst<>psw1 then MessageDlg('ПАРОЛЬ НЕВЕРНЫЙ!!!',

mtWarning,[mbOK],0)

else if s<>pswnv then MessageDlg('ПАРОЛИ НЕ СОВПАДАЮТ!!!',

mtWarning,[mbOK],0)

else begin

ss:='';

for i := 1 to length(s) do

begin

s[i]:=Chr(Ord(s[i]) xor key);

ss:=ss+s[i];

end;

assignfile(f,ExtractFilePath(paramstr(0))+'psw.hrr');

rewrite(f);

writeln(f,ss);

closefile(f);

MessageDlg('ПАРОЛЬ ИЗМЕНЕН',mtInformation,[mbOK], 0);

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Form6.Close;

end;

end;

end.

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


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

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