Дипломная работа на тему Электронный помощник преподавателя дисциплины “Математические методы”. Задача управления запасами

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

Федеральное агенство по образованию Российской Федерации

ГОУ СПО «Миасский геологоразведочный колледж»

ДИПЛОМНАЯ РАБОТА

Тема: «Электронный помощник преподавателя дисциплины «Математические методы». Задача управления запасами»

Специальность 230105.51: «Программное обеспечение вычислительной техники и автоматизированных систем»

г. Миасс 2007 г.

АННОТАЦИЯ

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

Данная программа реализована в среде Delphi 7, которая имеет практичный интерфейс, позволяющий быстро и удобно совершить те или иные действия.

СОДЕРЖАНИЕ

Введение

1. Постановка задачи

2. Метод решения задачи

3. Логическая структура программы

4. Руководство системного программиста

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

6. Интерпретация и анализ результатов решения

7. Информационная безопасность

8. Расчет себестоимости информационной системы

8.1 Расчёт себестоимости информационной системы

8.2 Расчёт отпускной цены информационной системы

8.3 Рекомендации по снижению себестоимости информационной системы

9. Техника безопасности и охрана труда

Заключение

Литература

Приложение

ВВЕДЕНИЕ

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

Данная дипломная работа реализована в среде Delphi 7, которая имеет практичный интерфейс, позволяющий быстро и удобно совершить те или иные действия, находить ошибки и оперативно исправлять их, отлаживать и выполнять отлаженную программу, применять расширенные возможности объектно-ориентированного программирования. Borland Delphi – одно из самых популярных средств визуальной разработки приложений. Этот продукт является логическим развитием Borland Pascal.

1. ПОСТАНОВКА ЗАДАЧИ

Необходимо разработать календарный план выпуска некоторого вида изделий на плановый период, состоящий из N отрезков, для какой-либо фирмы. Предполагается , что для каждого из этих отрезков имеется точный прогноз спроса на выполненную продукцию. Время изготовления партии (t) изделий настолько мало, что им можно пренебречь. Соответственно, продукция, изготавливаемая в течении отрезка t, может быть использована для полного или частичного удовлетворения спроса в течении этого отрезка. Для разных отрезков спрос может быть неодинаковым. Кроме того, на экономические показатели производства влияют размеры изготавливаемых партий. Также фирме нередко бывает выгодно изготавливать в течении некоторого месяца продукцию в объеме, превышающем спрос в пределах этого месяца и хранить излишки, используемые для удовлетворения спроса на последующих отрезках. Вместе с тем хранение, возникающих пи этом запасов связано с определенными затратами. Эти затраты необходимо учитывать при разработке плана выпуска.

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

Данный программный продукт предусматривает два режима:

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

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

2. МЕТОД РЕШЕНИЯ ЗАДАЧИ

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

Вычислительный процесс будет строиться от конечного состояния к исходному. Здесь конечным состоянием будет начало последнего отрезка планового периода, а исходным начало первого отрезка, то есть индекс 1 соответствует конечному, а N- начальному состоянию. Также применим следующие обозначения: dn – спрос на продукцию на отрезке, состоящем то конца планового периода на N отрезков, Сn (Xn , j) – затраты на отрезке n, связанные с выпуском X единиц продукции и содержанием запасов, уровень которых на конец отрезка j единиц. В этой системе обозначений d1=Dn , dn = D1 , C1(X, j)=CN(X,j).

Берем следующее обозначение fn(i) – стоимость, отвечающая стратегии минимальных затрат на n оставшихся отрезках, при начальном уровне запасов i, Xn (i) – выпуск, обеспечивающий достижение fn(i).

Согласно третьему ограничению уровень запасов на конец планового периода равна 0, f0(0)=0 (n=0).

Перейдем к n=1. Начальный уровень запасов может определяться некоторым неотрицательным целым числом, не большим, чем d1 . Независимо от i полного удовлетворения потребности в пределах последнего отрезка объем выпуска должен быть равен d1- i, . Следовательно f1=C1(d1-i, 0), i=0,1…,d1.

Перейдем к n=2. Общие затраты для второго месяца составляют C2(X, i+X-d2)+f1(i+X-d2), причем предполагается, что выбранная стратегия для n=1 является оптимальной. i+X-d2- уровень запасов на конец отрезка 2. i- некоторое целочисленное неотрицательное значение, не превышающее d1+ d2. При заданном значении i d2-i<X>d1+d2-i, так как конечный запас должен быть равен 0, то оптимальному объем у выпуска соответствует такое значение Х, при котором минимизируется указанная выше сумма. Выполненный нами анализ n=2 можно выразить следующим общим выражением

f2(i)=min[ C2(X, i+X-d2)+f1(i+X-d2)],

где i=0,1…,d1+ d2.

Значения f3(i), если известно значение f2(i) и т.д.

Общее рекурентное соотношение строится по формуле:

fn(i)=min[ Cn(X, i+X-dn)+fn-1(i+X-dn)], где i=0,1…,d1+ d2,+…+dn

Для отыскания оптимальной производственной программы определим какой объем выпуска Xn(0) позволяет достичь полученного значения fn(0). Соответствующее решение о выпуске является оптимальным решением для начального отрезка планового периода. Уровень запасов пна начало следующего отрезка будет i0+ Xn(0)-dN. Затем найдем объем выпуска, позволяющий достичь полученного нами значения fn-1(i+ Xn(i0)-dN) и т.д.

3. ЛОГИЧЕСКАЯ СТРУКТУРА ПРОГРАММЫ

Условные обозначения:

CreateRgnFromBitmap – процедура отображения заставки;

Расчет задачи – главная форма программы;

4. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА

Настоящий программный продукт поставляется на CD-диске.

Для правильного функционирования необходимо соблюдать следующие минимальные требования к системе и компьютеру:

Процессор – Pentium 1 и выше;

Операционная система Windows 95 и выше;

Оперативная память – не менее 16 Мб;

Жёсткий диск (HDD) – размер не менее объема дискового пространства, занимаемого операционной системой, плюс размер программного продукта;

CD-Rom для установки программы на HDD;

Клавиатура;

Мышь.

5. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

программирование производственный пользователь

Для того, чтобы начать работать с данной программой необходимо запустить файл econom.exe, который хранится в папке econom. В этом случае на экране появится окно, которое будет запрашивать пароль:

После ввода пароля появляется заставка:

Затем появится окно, которое будет иметь вид:

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

Тогда появится окошко, которое будет иметь вид:

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

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

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

Также можно внести значения вручную, для чего нужно заполнить соответствующие поля, например:

Задачу, введенную вручную можно записать в файл для этого нужно выбрать в пункте меню «Задания» Записать текущее:

Дальше мы видим на форме имеются такие кнопки, как «расчет», «дальше», «результат» и «сохранить»:

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

Причем в поле ,которое находится в левом верхнем углу (1 месяц) всегда будут отражаться расчеты за первый месяц, в поле, которое находится посередине будут отражаться расчеты за остальные месяцы, в поле, которое находится в правом верхнем углу будет отображаться общая таблица, со значениями Xt(i) и ft(i) за все месяцы, и в нижнем с названием «результат», будет отображаться конечный результат, т.е. программа выпуска изделий на какой-либо плановый период.

Если же мы хотим, просмотреть расчет по шагам, то нужно нажать кнопку «расчет», появятся расчеты за первые 2 месяца, затем при нажатии на кнопку «дальше» будут появляться расчеты за остальные месяцы:

Расчет закончится тогда, когда в правой части формы появится надпись «расчет окончен»:

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

В которой нужно выбрать вид сохранения задачи, после чего появится диалоговое окно:

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

Также можно вывести результаты на печать для этого также нужно выбрать в пункте меню «Печать» Печать решения или Печать результата :

Где нужно выбрать, в каком виде вы хотите вывести на печать задачу.

Сведения о программе и помощь можно получить в пункте меню «Справка»:

Также программа предусматривает изменение пароля, для этого нужно нажать кнопку «изменить пароль», в этом случае появится форма:

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

Для выхода из программы нужно выбрать пункт меню «выход»:

6. ИНТЕРПРЕТАЦИЯ И АНАЛИЗ РЕЗУЛЬТАТОВ

При запуске программы появляется главная форма:

Результатом будет решение задачи управления запасами, то есть программа выпуска продукции на какой-либо плановый период, выдаваться он будет в виде таблицы. При нажатии на кнопку «результат», будет сразу выдаваться конечный результат:

Также можно будет просмотреть решение задачи по шагам, с помощью кнопок «расчет» и «дальше»:

7. ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

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

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

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

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

Объекты, подлежащие защите

Для обеспечения информационной безопасности необходимо предусмотреть защиту следующих объектов:

Документация, представленная настоящей пояснительной запиской;

Текст программы.

Установочный диск

Цели и задачи защиты информации

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

Виды мер обеспечения информационной безопасности

Меры обеспечения информационной безопасности классифицируются следующим образом:

Правовые меры – это совокупность существующих в стране НПА, регулирующих сферу информационных отношений в обществе.

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

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

Физические меры – отключение компьютеров от сети Internet и создание прочих препятствий на пути взломщиков.

Технические меры – применение технических, механических, электронных и программных средств.

Основные защитные механизмы

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

8. РАСЧЕТ СЕБЕСТОИМОСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ

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

Себестоимость – это сумма затрат в денежном выражении на производство и реализацию продукции.

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

Калькуляция – это себестоимость единицы продукции в денежном выражении.

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

Прибыль – разница между доходами и расходами.

Для того, чтобы определить себестоимость необходимо определить трудоёмкость работ.

Таблица 1 Перечень работ для создания информационной системы

Наименование услуг

Единица измерения

Количество

Работа с заказчиком

Час

3

Изучение материалов для создания данного информационного продукта

Час

20

Изучение конкретных программных продуктов

Час

10

Обработка информационных массивов

Час

50

Работа с периодической литературой

Час

10

Работа по оформлению информационной системы

Час

25

Проверка работоспособности информационной системы

Час

15

Разработка инструкции по эксплуатации

Час

15

Распечатка документов

Час

1

Профилактические работы

Час

5

Гигиенический уход за компьютером

Час

3

Установка информационной системы

Час

2

Обучение персонала работе с информационной системой

Час

4

Итого:

Час

163

8.1 Расчёт себестоимости информационной системы

Таблица 2 Затраты на материалы

Название материала

Единица измерения

Количество

Цена

Сумма

Бумага

лист

100

0,21

21

Картридж

шт.

1

138

138

Диск

шт.

1

8

8

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

упаковка

4

30

120

Итого

287

Затраты на электроэнергию на технологические цели

Мощность:

-системный блок – 210 Вт

-монитор – 144 Вт

-принтер – 58 Вт

Общее количество часов работы:

-системный блок – 122 часов

-монитор – 122 часов

-принтер – 1 час

С учётом отработанного времени Системный блок – 0,21 * 122 = 25,62 кВт

Монитор – 0,144 * 122 = 17,568 кВт

Принтер – 0,058 * 1 = 0,058 кВт

Общая мощность рассчитывается по формуле:

Мобщ.=Мсб+Мм+Мпр,

где Мсб – мощность системного блока за отработанное время;

Мм – мощность монитора за отработанное время;

Мп – мощность принтера за отработанное время.

Мобщ.= 25,62+17,568 + 0,058 = 43,246 кВ

Стоимость 1КВт/час = 1,04 руб.

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

Сэл= Мобщ.*Скв,

Где Мобщ. – общая мощность;

Скв – стоимость 1КВт/час.

Сэл= 43,246 *1,04 = 44,976 руб.

Заработная плата основная

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

Количество затраченного времени: 163 часов.

Расчёт тарифной ставки:

Разряд – 10

Оклад – 2499,39 руб.

РК= 15% * Оклад = 0,15*2499,39 = 374,909 руб.

Оклад с РК = 2499,39+374,909 = 2874,299 руб.

Количество рабочих часов месяц: 168 часов

Стоимость одного часа работы: 2874,299/168 = 17,109 руб./час

Заработная плата основная рассчитывается по формуле:

ЗПосн=tзатр*Счас,

где tзатр – количество затраченного времени;

Счас – стоимость одного часа работы.

ЗПосн= 163*17,109 = 2788,767 руб.

Дополнительная заработная плата

Она равна 13% от заработной платы основной и рассчитывается по формуле:

ДЗП=

где ЗПосн – заработная плата основная.

ДЗП= (0,13*2788,767)/1 = 362,54 руб.

Единый социальный налог составляет 26% от полной заработной платы, он рассчитывается по формуле:

ЕСН=,

где ЗПосн – заработная плата основная;

ДЗП – дополнительная заработная плата.

ЕСН = 0,26*(2788,767+362,54)/1 = 819,34 руб.

Накладные расходы

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

Амортизационные расходы

Амортизация ПК и оргтехники:

Вычислим суммарную амортизацию за год по формуле:

Агод

где Цоб – цена оборудования;

СР – срок службы оборудования.

а) системный блок:

цена – 12720 руб.

срок службы – 3 года

Агод= руб./год

б) монитор:

цена – 6430 руб.

срок службы – 6 лет

Агод= руб./год

в) клавиатура:

цена – 289 руб.

срок службы – 3 года

Агод= руб./год

г) манипулятор – «мышь»:

цена – 275 руб.

срок службы – 1 год

Агод= руб./год

Д) принтер:

цена – 2950 руб.

срок службы – 5 лет

Агод= руб./год

Рабочих дней в 2007 году – 248 дней

Рабочих часов в 2007 году – 1984 часа

Стоимость амортизации 1 часа работы рассчитывается по формуле:

Ачас=

где Агод – суммарная амортизация за год;

Ф – годовой полезный фонд работы оборудования.

Стоимость амортизации за час:

а) системный блок:

Ачас= руб./час

б) монитор:

Ачас= руб./час

в) клавиатура:

Ачас= руб./час

г) манипулятор – «мышь»:

Ачас= руб./час

д) принтер:

Ачас = руб./час

Амортизация за отработанное время рассчитывается по формуле:

Авр=Ачас*tзатр,

где Ачас – стоимость амортизации 1 часа;

tзатр – количество затраченного времени.

а) системный блок

Авр= 2,14*163 = 348,82 руб.

б) монитор

Авр= 0,54*163 =88,02 руб.

в) клавиатура

Авр= 0,048*163 = 7,824 руб.

г) манипулятор – «мышь»

Авр=0,14*163 = 22,82 руб.

д) принтер

Авр= 0,3*163 = 48,9 руб.

Всего амортизационные отчисления составляют –

348,82 +88,02+7,824+22,82+48,9 = 516,384 руб.

Прочие расходы

Составляют 100% от заработанной платы основной – 2788,767 руб.

Таблица 3 Калькуляция себестоимости услуг по созданию информационной системы

No п/п

Калькуляция статьи

Единица измерения

Сумма

1

Затраты на материалы

руб.

287

2

Затраты на электроэнергию

руб.

44,976

3

Заработная плата основная

руб.

2788,767

4

Заработная плата дополнительная

руб.

362,54

5

Единый социальный налог

руб.

819,34

6

Накладные расходы

руб.

0

7

Амортизационные расходы

руб.

516,384

8

Прочие расходы

руб.

2788,767

Производственная себестоимость:

руб.

7607,774

9

Коммерческие расходы 3%

руб.

228,233

Полная себестоимость:

руб.

7836,007

8.2 Расчёт отпускной цены информационной системы

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

Цотп.=Сп+Пр+НДС,

где Сп – полная себестоимость информационной системы;

Пр – прибыль;

НДС – налог на добавленную стоимость.

Прибыль равна 30% от полной себестоимости и рассчитывается по формуле:

Пр=

где Сп – полная себестоимость информационной системы.

Пр=7836,007*0,3 = 2350,8 руб.

Налог на добавленную стоимость равен 18% от суммы полной себестоимости и прибыли и рассчитывается по формуле:

НДС=

Где Сп – полная себестоимость информационной системы;

Пр – прибыль.

НДС= (7836,007+2350,8)*0,18 = 1833,63 руб.

Рассчитывается отпускная цена информационного продукта:

Цотп.= 7836,007+2350,8 +1833,63 = 12020,437 руб.

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

8.3 Рекомендации по снижению себестоимости информационной системы

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

Расчёт себестоимости информационной системы

Таблица 1 Затраты на материалы

Название материала

Единица измерения

Количество

Цена

Сумма

Бумага

упаковка

100

0,2

20

Картридж

шт.

1

138

138

Диск

шт.

1

8

8

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

шт.

3

20

60

Итого

226

Затраты на электроэнергию на технологические цели

Сэл= 44,976 руб.

Заработная плата основная

ЗПосн = 2788,767 руб.

Дополнительная заработная плата

ДЗП= 362,54 руб.

Единый социальный налог

ЕСН = 819,34 руб.

Накладные расходы

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

Амортизационные расходы Всего амортизационные отчисления составляют – 516,384 руб. Прочие расходы

Составляют 100% от заработанной платы основной – 2788,767 руб.

Таблица 2 Калькуляция себестоимости услуг по созданию информационной системы

Калькуляция статьи

Единица измерения

Сумма

1 затраты на материалы

руб.

226

2 затраты на электроэнергию

руб.

44,976

3 заработная плата основная

руб.

2788,767

4 заработная плата дополнительная

руб.

362,54

5 единый социальный налог

руб.

819,34

6 накладные расходы

руб.

0

7 амортизационные расходы

руб.

516,384

8 прочие расходы

руб.

2788,767

Производственная себестоимость

руб.

7546,774

9 Коммерческие расходы 3%

руб.

226,4

Полная себестоимость

руб.

7773,174

Расчёт отпускной цены информационной системы

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

Цотп.=Сп+Пр+НДС,

где Сп – полная себестоимость информационной системы;

Пр – прибыль;

НДС – налог на добавленную стоимость.

Прибыль равна 20% от полной себестоимости и рассчитывается по формуле:

Пр=

где Сп – полная себестоимость информационной системы.

Пр=7773,174*0,2 = 1554,635 руб.

Налог на добавленную стоимость равен 18% от суммы полной себестоимости и прибыли и рассчитывается по формуле:

НДС=

Где Сп – полная себестоимость информационной системы;

Пр – прибыль.

НДС= (7773,174+1554,635)*0,18 = 1679,006 руб.

Рассчитывается отпускная цена информационного продукта:

Цотп.= 7773,174+1554,635+1679,006 = 1106,815 руб.

Расчёт отпускной цены даёт возможность для составления договора с заказчиком. В данном случае мы видим, что отпускная цена изменилась с 12020,437 рублей на 11006,815 рублей, то есть стоимость информационного продукта снизилась на 1013,622 рубля, следовательно, повысилась конкурентоспособность программного продукта на рынке.

9. ТЕХНИКА БЕЗОПАСНОСТИ И ОХРАНА ТРУДА

К работе с ПЭВМ допускаются лица, обученные работе на них, прошедшие вводный инструктаж и первичный инструктаж по охране труда на рабочем месте.

Включить компьютеры и проверить стабильность и чёткость изображения на экранах.

При работе на компьютере расстояние от глаз до экрана должно быть 0,6 – 0,7 метров, уровень глаз должен приходится на центр экрана или на 2/3 его высоты.

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

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

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

При неисправности оборудования прекратить работу и сообщить о неисправностях руководителю.

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

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

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

При окончании работы выключить компьютеры и привести в порядок рабочее место.

Тщательно проветрить и провести влажную уборку кабинета.

ЗАКЛЮЧЕНИЕ

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

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

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

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

2. Семакин И.Г., Шестаков А.П. «Основы программирования» изд.центр «Академия», Москва 1999 г.

3. Фаронов В.В. «Delphi 4 учебный курс» – М.: «Ноллидж», 1999 г.

Приложение

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Button2: TButton;

Label9: TLabel;

Label10: TLabel;

montp: TStringGrid;

month2: TStringGrid;

integra: TStringGrid;

Label11: TLabel;

Button3: TButton;

ende: TStringGrid;

Label12: TLabel;

finish: TLabel;

Button4: TButton;

MainMenu1: TMainMenu;

openfile: TMenuItem;

SavAllDialog: TSaveDialog;

SavResDialog: TSaveDialog;

N3: TMenuItem;

print1: TMenuItem;

exit1: TMenuItem;

SavAll: TMenuItem;

SavRes: TMenuItem;

openTask: TMenuItem;

savTask: TMenuItem;

SavTask1: TSaveDialog;

OpTask: TOpenDialog;

PrintAll: TMenuItem;

PrintRes: TMenuItem;

PrintDialog1: TPrintDialog;

Label13: TLabel;

editTask: TButton;

deleteTask: TButton;

Label14: TLabel;

task: TEdit;

SavResAll: TMenuItem;

SavResAllDialog: TSaveDialog;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure SavAllDialogCanClose(Sender: TObject; var CanClose: Boolean);

procedure SavResDialogCanClose(Sender: TObject;

var CanClose: Boolean);

procedure SavAllClick(Sender: TObject);

procedure SavResClick(Sender: TObject);

procedure savTaskClick(Sender: TObject);

procedure SavTask1CanClose(Sender: TObject; var CanClose: Boolean);

procedure openTaskClick(Sender: TObject);

procedure OpTaskCanClose(Sender: TObject; var CanClose: Boolean);

procedure exit1Click(Sender: TObject);

procedure PrintAllClick(Sender: TObject);

procedure PrintResClick(Sender: TObject);

procedure editTaskClick(Sender: TObject);

procedure deleteTaskClick(Sender: TObject);

procedure SavResAllClick(Sender: TObject);

procedure SavResAllDialogCanClose(Sender: TObject; var CanClose: Boolean);

private

{ Private declarations }

public

end;

const mont:array[1..12]of string=(‘янв’,’фев’,’мар’,’апр’,’май’,’июн’,’июл’,’авг’,’сен’,’окт’,’ноя’,’дек’);

var

Form1: TForm1;

sav:array[1..1000]of string;

t:array[1..50,0..50,0..50] of integer;

d,xmax,imax,a,b,x,m,col,colEnd:integer;

code,j,k,turn,iNow:integer;

s,s1,s2,s3:string;

began:boolean;

F,f1:text;

implementation

{uses Unit2;}

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

halt(0);

end;

procedure TForm1.Button2Click(Sender: TObject);

var j,k,e,leng:integer;

begin

col:=1;

val(edit1.text,d,code);

val(edit2.text,Xmax,code);

val(edit3.text,Imax,code);

val(edit4.text,x,code);

val(edit5.text,m,code);

val(edit6.text,a,code);

val(edit7.text,b,code);

turn:=2;

began:=true;

finish.Caption:=”;

label10.Caption:=’Месяц 2′;

{—————step1—————-}

montp.Cells[0,0]:=’i’;

montp.Cells[1,0]:=’X1( i )’;

montp.Cells[2,0]:=’f1( i )’;

montp.rowcount:=Imax+2;

montp.colcount:=3;

integra.rowcount:=Imax+3;

integra.colcount:=m*2+1;

integra.Cells[1,0]:=’n=1′;

integra.Cells[1,1]:=’X1( i )’;

integra.Cells[2,1]:=’f1( i )’;

for j:=0 to Imax do

begin

t[1,1,j]:=j; str(t[1,1,j],s1);

t[1,2,j]:=d-t[1,1,j]; str(t[1,2,j],s2);

t[1,3,j]:=a*t[1,2,j]+b*t[1,1,j]; str(t[1,3,j],s3);

if t[1,2,j]>=0 then

begin

montp.Cells[0,j+1]:=s1;

montp.Cells[1,j+1]:=s2;

montp.Cells[2,j+1]:=s3;

integra.Cells[1,j+2]:=s2;

integra.Cells[2,j+2]:=s3;

end;

end;

{————-запись первой таблицы———-}

s:=”;

sav[col]:=’ ‘+label9.caption; inc(col);

sav[col]:=”;inc(col);

for j:=0 to Imax do

begin

for k:=0 to 3 do

begin

s1:=montp.Cells[k,j];

leng:=length(s1);

for e:=1 to 4-(leng div 2) do s1:=’ ‘+s1+’ ‘;

if leng mod 2 =1 then s1:=s1+’ ‘;

s:=s+s1;

end;

sav[col]:=s; inc(col); s:=”;

end;

sav[col]:=”; inc(col);

{—————–step2————–}

integra.Cells[3,0]:=’n=2′;

integra.Cells[3,1]:=’X2( i )’;

integra.Cells[4,1]:=’f2( i )’;

month2.rowcount:=Imax+2;

month2.colcount:=Xmax+4;

{—————заголовки таблиц—————-}

for k:=0 to Imax do

begin str(k,s); month2.Cells[0,k+1]:=s;end;

for k:=0 to Xmax do

begin str(k,s); month2.Cells[k+1,0]:=s;end;

month2.Cells[Xmax+2,0]:=’x2′; month2.Cells[Xmax+3,0]:=’f2′;

month2.Cells[0,0]:=’ i x’;

for k:=0 to Imax+1 do

begin str(k,s); integra.Cells[0,k+1]:=s;end;

integra.Cells[0,1]:=’ i’;

{———————————————–}

for k:=0 to Imax do

begin

for j:=0 to Xmax do

begin

if (j+k>d-1) and (j+k-d<Xmax-1) then

begin

t[2,j,k]:=a*j+b*(j+k-d)+t[1,3,j+k-d]; str(t[2,j,k],s);

month2.Cells[j+1,k+1]:=s;

end;

end;

t[2,Xmax+1,k]:=maxint;

t[2,Xmax+2,k]:=0;

for j:=0 to Xmax do

if (j+k>d-1) and (j+k-d<Xmax-1) then

if t[2,Xmax+1,k]>t[2,j,k] then

begin

t[2,Xmax+1,k]:=t[2,j,k];

t[2,Xmax+2,k]:=j;

end;

str(t[2,Xmax+1,k],s); month2.Cells[Xmax+2,k+1]:=s; integra.Cells[4,k+2]:=s;

str(t[2,Xmax+2,k],s); month2.Cells[Xmax+3,k+1]:=s; integra.Cells[3,k+2]:=s;

end;

{————-запись второй таблицы———-}

sav[col]:=’ ‘+label10.caption; inc(col);

sav[col]:=”; inc(col);

s:=”;

for j:=0 to Imax+1 do

begin

for k:=0 to Xmax+3 do

begin

s1:=month2.Cells[k,j];

leng:=length(s1);

for e:=1 to 3-(leng div 2) do s1:=’ ‘+s1+’ ‘;

if leng mod 2 =0 then s1:=s1+’ ‘;

s:=s+s1;

end;

sav[col]:=s; inc(col); s:=”;

end;

sav[col]:=”; inc(col);

end;

procedure TForm1.Button3Click(Sender: TObject);

var j,k,e,leng:integer;

begin

if began then

begin

inc(turn); str(turn,s);

label10.Caption:=’Месяц ‘+s;

month2.rowcount:=Imax+2;

month2.colcount:=Xmax+4;

str(turn,s);

integra.Cells[turn*2-1,0]:=’n=’+s;

integra.Cells[turn*2-1,1]:=’X’+s+'( i )’;

integra.Cells[turn*2,1]:=’f’+s+'( i )’;

month2.Cells[Xmax+2,0]:=’x’+s; month2.Cells[Xmax+3,0]:=’f’+s;

for k:=0 to Imax do

begin

for j:=0 to Xmax do

begin

if (j+k>d-1) and (j+k-d<Xmax-1) then

begin

t[turn,j,k]:=a*j+b*(j+k-d)+t[turn-1,Xmax+1,j+k-d]; str(t[turn,j,k],s);

month2.Cells[j+1,k+1]:=s;

end;

end;

t[turn,Xmax+1,k]:=maxint;

t[turn,Xmax+2,k]:=0;

for j:=0 to Xmax do

if (j+k>d-1) and (j+k-d<Xmax-1) then

if t[turn,Xmax+1,k]>t[turn,j,k] then

begin

t[turn,Xmax+1,k]:=t[turn,j,k];

t[turn,Xmax+2,k]:=j;

end;

str(t[turn,Xmax+1,k],s); month2.Cells[Xmax+2,k+1]:=s; integra.Cells[turn*2,k+2]:=s;

str(t[turn,Xmax+2,k],s); month2.Cells[Xmax+3,k+1]:=s; integra.Cells[turn*2-1,k+2]:=s;

end;

{————-запись остальных таблиц———-}

sav[col]:=’ ‘+label10.caption; inc(col);

sav[col]:=”; inc(col);

s:=”;

for j:=0 to Imax+1 do

begin

for k:=0 to Xmax+3 do

begin

s1:=month2.Cells[k,j];

leng:=length(s1);

for e:=1 to 3-(leng div 2) do s1:=’ ‘+s1+’ ‘;

if leng mod 2 =0 then s1:=s1+’ ‘;

s:=s+s1;

end;

sav[col]:=s; inc(col); s:=”;

end;

sav[col]:=”; inc(col);

{——————————————}

if turn>=m then

begin finish.Caption:=’Расчет окончен’; began:=false;

{————вывод результатов—————}

ende.rowcount:=Imax+2;

ende.colcount:=m+3;

for j:=1 to Imax+1 do

begin str(j,s); ende.Cells[0,j]:=s; end;

for k:=1 to Xmax do

ende.Cells[k,0]:=mont[k mod 12];

ende.Cells[Xmax+1,0]:=’Общ стоим’; ende.Cells[Xmax+2,0]:=’Cреднемес’;

ende.Cells[0,0]:=’ i’;

integra.Cells[1,1]:=’X1( i )’;

integra.Cells[2,1]:=’f1( i )’;

{————первое значение—————}

iNow:=x;

if iNow>D then

begin

str(t[1,2,D],s); iNow:=iNow-D;

str(t[1,3,D],s1); str(t[1,3,D],s2);

end

else

begin

str(t[1,2,iNow],s);

str(t[1,3,iNow],s1);str(t[1,3,iNow],s2);

iNow:=0;

end;

ende.Cells[1,1]:=s;

ende.Cells[Imax+2,1]:=s1;

ende.Cells[Imax+3,1]:=s2;

{—————остальные——————}

for j:=1 to Imax do

begin

iNow:=x;

if iNow>D then begin

str(t[j+1,Xmax+1,D],s1); s2:=floattostr(t[j+1,Xmax+1,D]/(j+1));

end

else begin

str(t[j+1,Xmax+1,iNow],s1); s2:=floattostr(t[j+1,Xmax+1,iNow]/ (j+1));

end;

for k:=0 to j do

begin

if iNow>D then

begin

str(t[j+1,Xmax+2,D],s); iNow:=iNow-D;

end

else

begin

str(t[j+1,Xmax+2,iNow],s);

iNow:=0;

end;

ende.Cells[k+1,j+1]:=s;

end;

ende.Cells[Imax+2,j+1]:=s1;

ende.Cells[Imax+3,j+1]:=s2;

end;

{————-запись общей таблицы———-}

sav[col]:=’ ‘+label11.caption; inc(col);

sav[col]:=”; inc(col);

s:=”;

for j:=0 to Imax+3 do

begin

for k:=0 to m*2+1 do

begin

s1:=integra.Cells[k,j];

leng:=length(s1);

for e:=1 to 3-(leng div 2) do s1:=’ ‘+s1+’ ‘;

if leng mod 2 =0 then s1:=s1+’ ‘;

s:=s+s1;

end;

sav[col]:=s; inc(col); s:=”;

end;

sav[col]:=”; inc(col);

colend:=col;

{————-запись итоговой таблицы———-}

sav[col]:=’ ‘+label12.caption; inc(col);

sav[col]:=”; inc(col);

s:=”;

for j:=0 to Imax+2 do

begin

for k:=0 to m+3 do

begin

s1:=ende.Cells[k,j];

leng:=length(s1);

for e:=1 to 3-(leng div 2) do s1:=’ ‘+s1+’ ‘;

if leng mod 2 =0 then s1:=s1+’ ‘;

s:=s+s1;

end;

sav[col]:=s; inc(col); s:=”;

end;

sav[col]:=”; inc(col);

{——————————————}

end;

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

var j:integer;

begin

Button2.Click;

for j:=1 to m-2 do

button3.Click;

end;

procedure TForm1.SavAllDialogCanClose(Sender: TObject;

var CanClose: Boolean);

var j:integer;

begin

assignFile(F,savalldialog.filename{+SavAllDialog.DefaultExt});

rewrite(F);

for j:=1 to col do

begin

writeln(F,sav[j]);

end;

closefile(F);

end;

procedure TForm1.SavResDialogCanClose(Sender: TObject;

var CanClose: Boolean);

var j:integer;

begin

assignFile(F,SavResDialog.filename{+SavResDialog.DefaultExt});

rewrite(F);

for j:=colend to col do

begin

writeln(F,sav[j]);

end;

closefile(F);

end;

procedure TForm1.SavAllClick(Sender: TObject);

begin

savAllDialog.Execute;

end;

procedure TForm1.SavResClick(Sender: TObject);

begin

SavResDialog.Execute;

end;

procedure TForm1.savTaskClick(Sender: TObject);

begin

SavTask1.Execute;

end;

procedure TForm1.SavTask1CanClose(Sender: TObject; var CanClose: Boolean);

begin

assignFile(F,SavTask1.filename);

if fileexists(SavTask1.filename) then append(F)

else rewrite(f);

writeln(F,’————————— ‘);

writeln(F,label1.caption+’=’+edit1.text);

writeln(F,label2.caption+’=’+edit2.text);

writeln(F,label3.caption+’=’+edit3.text);

writeln(F,label7.caption+’=’+edit4.text);

writeln(F,label8.caption+’=’+edit5.text);

writeln(F,label5.caption+edit6.text);

writeln(F,label6.caption+edit7.text);

closefile(F);

end;

procedure TForm1.openTaskClick(Sender: TObject);

begin

OpTask.Execute;

end;

procedure TForm1.OpTaskCanClose(Sender: TObject; var CanClose: Boolean);

var j:integer;

begin

assignFile(F,OpTask.filename);

reset(F);

readln(f,s);

readln(f,s); j:=length(s); s:=copy(s,8,j-7); edit1.text:=s;

readln(f,s); j:=length(s); s:=copy(s,8,j-7); edit2.text:=s;

readln(f,s); j:=length(s); s:=copy(s,7,j-6); edit3.text:=s;

readln(f,s); j:=length(s); s:=copy(s,18,j-17); edit4.text:=s;

readln(f,s); j:=length(s); s:=copy(s,18,j-17); edit5.text:=s;

readln(f,s); j:=length(s); s:=copy(s,3,j-2); edit6.text:=s;

readln(f,s); j:=length(s); s:=copy(s,3,j-2); edit7.text:=s;

closefile(F);

label13.caption:=optask.FileName;

end;

procedure TForm1.exit1Click(Sender: TObject);

begin

halt(0);

end;

procedure TForm1.PrintAllClick(Sender: TObject);

begin

assignFile(F,’print’);

rewrite(F);

for j:=1 to col do

begin

writeln(F,sav[j]);

end;

closefile(F);

printdialog1.Execute;

deletefile(‘print’);

end;

procedure TForm1.PrintResClick(Sender: TObject);

begin

assignFile(F,’print’);

rewrite(F);

for j:=colend to col do

begin

writeln(F,sav[j]);

end;

closefile(F);

printdialog1.Execute;

deletefile(‘print’);

end;

procedure TForm1.editTaskClick(Sender: TObject);

var k:integer;

begin

val(task.text,j,code);

assignFile(F,OpTask.filename);

reset(F);

for k:=1 to j do

begin

readln(f,s);

readln(f,s); j:=length(s); s:=copy(s,8,j-7); edit1.text:=s;

readln(f,s); j:=length(s); s:=copy(s,8,j-7); edit2.text:=s;

readln(f,s); j:=length(s); s:=copy(s,7,j-6); edit3.text:=s;

readln(f,s); j:=length(s); s:=copy(s,18,j-17); edit4.text:=s;

readln(f,s); j:=length(s); s:=copy(s,18,j-17); edit5.text:=s;

readln(f,s); j:=length(s); s:=copy(s,3,j-2); edit6.text:=s;

readln(f,s); j:=length(s); s:=copy(s,3,j-2); edit7.text:=s;

end;

closefile(F);

end;

procedure TForm1.deleteTaskClick(Sender: TObject);

var k:integer;

begin

{SavResDialog.Execute;}

val(task.text,j,code);

assignFile(F,OpTask.filename);

reset(F);

assignFile(F1,’temp’);

rewrite(F1);

for k:=1 to (j-1)*8 do

begin

readln(f,s); writeln(f1,s);

end;

for k:=1 to 8 do readln(f,s);

while not eof(f) do

begin

readln(f,s); writeln(f1,s);

end;

closefile(F1);

closefile(F);

deletefile(OpTask.filename);

renamefile(‘temp’,OpTask.filename);

end;

procedure TForm1.SavResAllClick(Sender: TObject);

begin

SavResAllDialog.execute;

end;

procedure TForm1.SavResAllDialogCanClose(Sender: TObject;

var CanClose: Boolean);

var w,j:integer;

sss:string;

begin

w:=0;

assignFile(F,OpTask.filename);

reset(F);

assignFile(F1,SavResAllDialog.filename);

while not eof(f) do

begin

inc(w);

if w=1 then rewrite(F1) else append(f1);

str(w,sss);

task.text:=sss;

{————–чтение очередного задания———-}

readln(f,s);

readln(f,s); j:=length(s); s:=copy(s,8,j-7); edit1.text:=s;

readln(f,s); j:=length(s); s:=copy(s,8,j-7); edit2.text:=s;

readln(f,s); j:=length(s); s:=copy(s,7,j-6); edit3.text:=s;

readln(f,s); j:=length(s); s:=copy(s,18,j-17); edit4.text:=s;

readln(f,s); j:=length(s); s:=copy(s,18,j-17); edit5.text:=s;

readln(f,s); j:=length(s); s:=copy(s,3,j-2); edit6.text:=s;

readln(f,s); j:=length(s); s:=copy(s,3,j-2); edit7.text:=s;

{—————————————————-}

button4.Click;

writeln(f1,’Задание№’+sss);

for j:=colend to col do

writeln(F1,sav[j]);

closefile(F1);

end;

closefile(f);

end;

end.

nit Unit2;

interface

uses

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

StdCtrls, Mask;

type

TPassForm = class(TFrame)

Label1: TLabel;

MaskEdit1: TMaskEdit;

OkPass: TButton;

PassEnd: TButton;

private

{ Private declarations }

public

{ Public declarations }

end;

implementation

{$R *.DFM}

end.

unit Unit3;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, jpeg;

type

TForm3 = class(TForm)

Memo1: TMemo;

Panel1: TPanel;

Image1: TImage;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

end.

nit Unit4;

interface

uses

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

Dialogs, StdCtrls;

type

TForm4 = class(TForm)

Memo1: TMemo;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

end.

unit Unit5;

interface

uses

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

Dialogs, StdCtrls, jpeg, ExtCtrls;

type

TForm5 = class(TForm)

Panel1: TPanel;

Image1: TImage;

Label1: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses econ;

{$R *.dfm}

begin

end.

unit Unit6;

interface

uses

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

Dialogs, StdCtrls;

type

TForm6 = class(TForm)

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.dfm}

procedure TForm6.Button2Click(Sender: TObject);

begin

Application.Terminate;

end;

procedure TForm6.Button1Click(Sender: TObject);

var

i,j: integer;

tmps,text,key:string;

f: textfile;

begin

if not FileExists(GetCurrentDir+’ira.dat’) then

begin

AssignFile(f,GetCurrentDir+’ira.dat’);

Rewrite(f);

text:=’Irina’;

key:=’nnn’;

for i:=1 to length(text) do

begin

if i>length(key) then

j:=i mod length(key)

else

j:=i;

tmps:=tmps+chr((ord(text[i]))xor(ord(key[j])));

end;

write(f,tmps);

CloseFile(f);

end;

AssignFile(f,GetCurrentDir+’ira.dat’);

Reset(f);

Read(f,text);

CloseFile(f);

key:=’nnn’;

tmps:=”;

for i:=1 to length(text) do

begin

if i>length(key) then

j:=i mod length(key)

else

j:=i;

tmps:=tmps+chr((ord(text[i]))xor(ord(key[j])));

end;

if Edit1.Text=tmps then

close

else

begin

ShowMessage(‘Вы ввели неправильный пароль’);

Edit1.SetFocus;

end;

end;

procedure TForm6.Edit1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key=VK_RETURN then

Button1Click(self);

end;

end.

unit Unit7;

interface

uses

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

Dialogs, StdCtrls;

type

TForm7 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);

var

i,j: integer;

tmps,text,key:string;

f: textfile;

begin

if Edit2.Text<>Edit3.Text then

begin

ShowMessage(‘Первый и второй ввод нового пароля не совпадают’);

Edit2.SetFocus;

exit;

end;

if Edit2.Text=” then

begin

ShowMessage(‘Пароль не может быть пустым’);

Edit2.SetFocus;

exit;

end;

AssignFile(f,GetCurrentDir+’ira.dat’);

Reset(f);

Read(f,text);

CloseFile(f);

key:=’nnn’;

for i:=1 to length(text) do

begin

if i>length(key) then

j:=i mod length(key)

else

j:=i;

tmps:=tmps+chr((ord(text[i]))xor(ord(key[j])));

end;

if Edit1.Text=tmps then

begin

AssignFile(f,GetCurrentDir+’ira.dat’);

Rewrite(f);

text:=Edit2.Text;

key:=’nnn’;

tmps:=”;

for i:=1 to length(text) do

begin

if i>length(key) then

j:=i mod length(key)

else

j:=i;

tmps:=tmps+chr((ord(text[i]))xor(ord(key[j])));

end;

Write(f,tmps);

CloseFile(f);

ShowMessage(‘Пароль заменен’);

close;

end

else

begin

showmessage(‘Неправильный пароль’);

Edit1.SetFocus;

end;

end;

procedure TForm7.Button2Click(Sender: TObject);

begin

Close;

end;

end.

Поделиться статьёй
Поделиться в telegram
Поделиться в whatsapp
Поделиться в vk
Поделиться в facebook
Поделиться в twitter
Леонид Федотов
Леонид Федотов

Ещё статьи

Образец оформления дипломной работы

С точки зрения ГОСТов дипломная работа относится к широкой категории «текстовых работ». По крайней мере так считают вузы, которые отсылают студентов к стандартам, регламентирующие оформление

Читать полностью »
Этапы исследования в дипломной работе с примерами

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

Читать полностью »
Как оформить цитату в дипломе

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

Читать полностью »
Нет времени делать работу? Закажите!
Вид работы
Тема
Email

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