Электронный помощник преподавателя дисциплины "Математические методы". Задача управления запасами
Облегчение работы преподавателям, при проверке практических работ студентов. Возможности объектно-ориентированного программирования. Определение оптимальной производственной программы. Минимальные требования к системе и ПК. Руководство пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 22.05.2013 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство науки и образования Российской Федерации
Федеральное агенство по образованию Российской Федерации
ГОУ СПО «Миасский геологоразведочный колледж»
ДИПЛОМНАЯ РАБОТА
Тема: «Электронный помощник преподавателя дисциплины «Математические методы». Задача управления запасами»
Специальность 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. ЛОГИЧЕСКАЯ СТРУКТУРА ПРОГРАММЫ
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Условные обозначения:
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;
month1: 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----------------}
month1.Cells[0,0]:='i';
month1.Cells[1,0]:='X1( i )';
month1.Cells[2,0]:='f1( i )';
month1.rowcount:=Imax+2;
month1.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
month1.Cells[0,j+1]:=s1;
month1.Cells[1,j+1]:=s2;
month1.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:=month1.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.
Размещено на Allbest.ru
Подобные документы
Особенности объектно-ориентированного программирования. Основные возможности языка программирования Java, классификация платформ. Создание программы, обеспечивающей вычисление арифметических выражений. Руководство пользователя и характеристика функций.
курсовая работа [1,2 M], добавлен 07.07.2012Основные преимущества и возможности объектно-ориентированного языка программирования С#. Руководство пользователя: установка приложения, эксплуатация ежедневника, назначение полей, кнопок и пунктов меню. Руководство программиста. Событие элемента Timer.
курсовая работа [4,5 M], добавлен 16.08.2012Изучение объектно-ориентированного языка программирования Java, его функциональные возможности. Создание программного кода. Описание классов и методов, использованных в программе. Руководство пользователя, запуск сервера и клиентского приложения.
курсовая работа [1,8 M], добавлен 16.09.2015Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Использование основных свойств объектно-ориентированного языка программирования C ++ при написании программы по реализации списка футболистов разных амплуа. Руководство пользователя и руководство программиста. Работа со списком, программный интерфейс.
курсовая работа [516,5 K], добавлен 20.07.2014Сущность, задачи и особенности объектно-ориентированного программирования. Создание и редактирование графических файлов при помощи различных инструментов рисования. Основные требования к аппаратному и программному обеспечению. Руководство пользователя.
курсовая работа [270,9 K], добавлен 09.03.2009Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.
курсовая работа [275,9 K], добавлен 22.12.2011Программа по созданию стрелочных часов. Минимальные требования к составу и параметрам технических средств программы. Выбор и обоснование системы программирования Microsoft Visual Studio. Общее описание алгоритма. Руководство пользователя и программиста.
контрольная работа [1017,1 K], добавлен 11.12.2012Анализ и пути совершенствования коммерческой деятельности предприятий розничной торговли. Обзор программных средств, используемых в торговле, их основные возможности. Проектирование и реализация приложения "Электронный помощник" для магазина "Ваш дом".
дипломная работа [634,1 K], добавлен 12.07.2013Применение объектно-ориентированного программирования для написания нескольких модулей программы. Вычисление алгебраического уравнения методом половинного деления. Применение метода Эйлера в теории численных методов общих дифференциальных уравнений.
курсовая работа [398,1 K], добавлен 26.02.2015