Разработка программного средства автоматизации обслуживания заявок пользователей локальной вычислительной сети филиала РГУ нефти и газа имени И.М. Губкина в г. Оренбурге
Разработка базы данных учета и хранения заявок пользователя. Создание программного средства на основе клиент/серверной технологии. Описание возможностей платформы Tandem Framework. Апробация программы автоматизации процессов подачи и обработки заявок.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 08.03.2013 |
Размер файла | 3,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Затраты на вспомогательные материалы приведены в таблице 4.12
Таблица 4.12 -Затраты на вспомогательные материалы
Наименование затрат |
Количество, шт. |
Сумма, руб. |
|
Бумага для принтера |
1 |
250 |
|
Картридж для принтера |
1 |
700 |
|
CD-RW |
1 |
40 |
|
Доступ в Интернет |
- |
450 |
|
Всего |
1440 |
Затраты на электроэнергию рассчитываются по формуле
, (4.5)
где Р - мощность потребляемой электроэнергии, кВт;
СЭ - стоимость одного киловатт-часа электроэнергии, руб;
- общие затраты труда на разработку программного продукта, час;
- коэффициент загрузки компьютера.
руб.
Основная заработная плата разработчика рассчитывается по формуле
, (4.6)
где Счтс - часовая тарифная ставка разработчика, руб;
- общие затраты труда на разработку программного продукта, час.
руб.
Дополнительная заработная плата разработчика составляет 10% от основной зарплаты, то есть
Отчисления на социальные нужды определяются по формуле
, (4.7)
где Rсн - взнос на страхование и социальное обеспечение, Rсн= 0,26.
Подставив в формулу (4.7), получим
руб.
Накладные расходы рассчитываются по формуле
. (4.8)
Подставив значения, получим руб.
Зная все числовые значения можно рассчитать полную себестоимость разработанного программного продукта
руб.
В таблице 4.13 сведены результаты расчетов себестоимости программного продукта [29].
Таблица 4.13 -Себестоимость программного продукта
Наименование статей расходов |
Затраты, руб. |
|
Вспомогательные материалы |
1440 |
|
Основная зарплата |
8185,5 |
|
Дополнительная зарплата |
818,6 |
|
Отчисления на социальные нужды |
2341,1 |
|
Затраты на электроэнергию |
428,9 |
|
Накладные расходы |
900,4 |
|
Полная себестоимость |
14114,5 |
4.3 Расчет экономического эффекта от внедрения программного продукта
Экономический эффект от внедрения программного продукта рассчитывается по формуле
(4.9)
где N - количество обрабатываемых документов;
t1 ,t2 - трудоемкость обработки документов до и после внедрения программы;
Счтс - часовая тарифная ставка пользователя;
Кдоп - коэффициент отчислений на дополнительную зарплату;
Ксн - взнос на страхование и социальное обеспечение;
Ен - нормативный коэффициент окупаемости капитальных вложений;
К - дополнительные капитальные вложения, связанные с разработкой программного продукта [30].
Используя ранее рассчитанные значения, рассчитываем экономический эффект руб.
Срок окупаемости программного продукта рассчитывается по формуле
, (4.10)
где Спр - себестоимость программного продукта, руб.;
С1 - стоимостные затраты при использовании ручного труда, руб.;
С2 - стоимостные затраты при использовании программы, руб.
руб.,
руб.,
года мес.
Полученные экономические показатели представлены в таблице 4.14.
Таблица 4.14 - Экономические показатели
Наименование показателя |
Значение |
Ед. изм. |
|
Вспомогательные материалы |
1440 |
руб. |
|
Основная зарплата |
8185,5 |
руб. |
|
Дополнительная зарплата |
818,6 |
руб. |
|
Отчисления на социальные нужды |
2341,1 |
руб. |
|
Затраты на электроэнергию |
428,9 |
руб. |
|
Накладные расходы |
900,4 |
руб. |
|
Экономический эффект |
11655,3 |
руб. |
|
Срок окупаемости |
10 |
мес. |
В четвертом разделе проведена следующая работа: осуществлены расчеты трудоемкости разработки, себестоимости, экономического эффекта от внедрения программного продукта, а также срок его окупаемости.
5. Безопасность труда
5.1 Анализ условий труда
Площадь помещения, где работает сотрудник ОИТ, составляет 32,7 = 8,1 кв. метров. Данные параметры не противоречат СанПиН, в которых площадь одного рабочего места составляет 6 м2 при объеме помещения не менее 24,0 м3. В помещении имеется световой проем площадью шириной 2 м. и высотой 2 м.
Высота рабочей поверхности стола составляет 800 мм, ширина 1200, глубина - 785 мм. Рабочее кресло оснащено подъемно-поворотным и регулирующимся по высоте и углам наклона сиденья и спинки, а так же расстоянию спинки от переднего края сиденья. Клавиатура располагается на поверхности стола на расстоянии 150 мм от края и связана с центральным блоком ЭВМ с помощью шнура, что позволяет менять место ее расположения и принимать наиболее удобную рабочую позу.
Рабочие место с ПЭВМ по отношению к световому проему располагается так, что естественный свет падает на спину, сидящего на рабочем месте оператора ЭВМ.
Экран дисплея расположен на расстоянии от 50 до 100 см от глаз оператора. Плоскость экрана перпендикулярна нормальной линии взора. Предусмотрена возможность перемещения дисплейного устройства по высоте, а также вокруг вертикальной оси в диапазоне от минус 20 до плюс 20 градусов (вправо - влево) и наклона в вертикальной плоскости в пределах 30 градусов (вперед -назад). Размер экрана по диагонали составляет 31 см, высота символов на экране варьируется по желанию. Яркость свечения экрана не менее 100 кд/м (светлый фон). Яркость символов на экране составляет от 22 до 31 кд/м. Контрастность изображения знака - не менее 0,8. Частота регенерации изображения при работе с позитивным контрастом в режиме обработки текста - не менее 100 Гц. Количество точек на строке - 1024. Экран имеет антибликовое покрытие [31].
После анализа организации планировки рабочего места администратора ЭВМ можно дать рекомендацию по изменению положения рабочего места относительно светового проема - рабочий стол необходимо повернуть на 900 относительно текущего положения, таким образом, чтобы естественный свет падал преимущественно слева от сидящего оператора.
Для достижения оптимальных условий микроклимата помещения, где работает оператор должны соблюдаться следующие требования:
- оптимальная температура воздуха - 22С (допустимая - 20-24С);
- оптимальная относительная влажность - 40-60% (допустимая - не более 75%), скорость движения воздуха не более 0,1 м/с.
Для создания и автоматического поддержания в помещении независимо от наружных условий оптимальных значений температуры, влажности, чистоты и скорости движения воздуха, в холодное время года используется водяное отопление, в теплое время года используются кондиционеры и помещение проветривается.
Из полученных данных следует, что микроклимат в помещении с ПЭВМ удовлетворяет требованиям СанПиН п.5 "Требования к микроклимату, содержанию аэроионов и вредных химических веществ в воздухе помещений эксплуатации ВДТ и ПЭВМ".
5.2 Расчет искусственного освещения
Искусственное освещение помещения осуществляется лампами дневного света. Оно может быть общим, местным или комбинированным. Общее предназначено для освещения всего производственного помещения. Местное при необходимости дополняет общее и концентрирует дополнительный световой поток на рабочих местах. Сочетание местного и общего освещения называют комбинированным.
Если в светлое время суток уровень естественного освещения не соответствует нормам, то его дополняют искусственным.
При выборе источников света для производственных помещений необходимо руководствоваться общими рекомендациями: отдавать предпочтение газоразрядным лампам как энергетически более экономичным и обладающим большим сроком службы; для уменьшения первоначальных затрат на осветительные установки и расходов на их эксплуатацию необходимо по возможности использовать лампы наименьшей мощности, но без ухудшения при этом качества освещения.
Создание в производственных помещениях качественного и эффективного освещения невозможно без рациональных светильников. Электрический светильник это совокупность источника света и осветительной арматуры предназначенной для перераспределения излучаемого источником светового потока в требуемом направлении, предохранения глаз рабочего от слепящего действия ярких элементов источника света, защиты источника от механических повреждений, воздействия окружающей среды и эстетического оформления помещения.
При распределении светового потока в пространстве различают светильники прямого, преимущественно прямого, рассеянного, отраженного и преимущественно отраженного света. В зависимости от конструктивного исполнения различают открытые, защищенные, закрытые и другие [32].
Норма искусственного освещения общего = 300 лк (определяется при характере выполняемой работы: характеристика зрительной работы - высокой точности, разряд зрительной работы - III, контраст объекта с фоном - средний, характеристика фона - светлый, под-разряд зрительной работы - В).
Для расчета общего равномерного освещения при горизонтальной рабочей поверхности основным является метод светового потока (коэффициент использования), учитывающий световой поток, отраженный от потолка и стен. Количество ламп, которые будут обеспечивать равномерное освещение можно рассчитать по формуле
(5.1) |
где Ен - нормированная минимальная освещенность, лк (в рассматриваемом случае это 300 лк)
n - число ламп в светильнике (3);
S - площадь освещаемого помещения, м2 (S=32,7 = 8,1м2);
Z - коэффициент минимальной освещенности, равный отношению Еср/Еmin, значение которого для люминесцентных ламп - 1,15;
К - коэффициент запаса, учитывающий снижение освещенности из-за загрязнения и старения лампы. При освещении люминесцентными лампами и при запыленности помещения менее 5 мг/м3 (1,4);
Kз - коэффициент затемнения (0,9);
Ku - коэффициент использования светового потока.
Значения коэффициентов берутся из справочных таблиц. Для определения значения коэффициента Ku находится индекс помещения I и предположительно оцениваются коэффициенты отражения поверхностей помещения: потолка - Pп, стен - Pс, расчетной поверхности или пола - Pр. Pп=50%, Рс=30%, Рр=10%.
Индекс помещения находится по формуле
(5.2) |
где A и B - длина и ширина помещения, м (А=3м, В=2,7 м)
Нр - высота светильников над рабочей поверхностью, м (Нр=2,20)
.
Используя справочную таблицу и рассчитанное по формуле (5.2) значение индекса помещения I, получим коэффициент использования Ku=0,85.
Для освещения выберем лампы люминесцентные мощностью 20 Вт, световой поток которых Fл = 1180 лм.
Рассчитаем необходимое количество светильников, подставив все данные в формулу (5.1) шт.
Таким образом, для освещения помещения требуется 2 светильника по 3 люминесцентных лампы мощностью по 20 Вт.
5.3 Возможные чрезвычайные ситуации
5.3.1 Расчет зоны заражения
Чрезвычайная ситуация (ЧС) - это обстановка на определенной территории, произошедшая в результате аварии, опасного природного явления, катастрофы, стихийного или иного действия, которые повлекли: человеческие жертвы, ущерб здоровью, окружающей среде, нарушению условий жизнедеятельности, материальные потери.
Наибольшую опасность представляет выброс в атмосферу аварийных химических отравляющих веществ (АХОВ).
Выброс АХОВ возможен при аварии автомобиля перевозящего жидкий хлор.
Хлор - зеленовато-желтый газ с резким запахом. Порог восприятия - 0,003 мг/л. ПДК в рабочей зоне - 0,001 мг/л. Следовательно, если ели чувствуется резкий запах - это значит, что уже работать без средств защиты опасно. Хлор в 2,5 раза тяжелее воздуха, поэтому облако хлора будет перемещаться по направлению ветра близко к земле. Температура кипения -34,6 градусов Цельсия, следовательно, даже зимой хлор находится в газообразном состоянии. При испарении на воздухе жидкий хлор образует с водяными парами белый туман.
В малых и средних концентрациях хлор вызывает жжение и резь в глазах, чувство стеснения и боль за грудиной, дискомфорт в горле, слезотечение, сухой мучительный кашель. В больших концентрациях хлор довольно быстро вызывает отек легких. У человека, попавшего в атмосферу с очень высокими концентрациями паров хлора, быстро наступает потеря сознания и смерть от остановки дыхания, что является следствием ожога легких парами хлора.
Первая медицинская помощь - надевание противогаза и быстрая эвакуация из зоны поражения. Кожу и слизистые промыть 2%-м содовым раствором не менее 15 мин. Чтобы смягчить раздражение дыхательных путей, следует вдыхать аэрозоль 0,5%-го раствора питьевой соды. Транспортировать в стационар только в лежачем положении [33].
Предположим, что где-то на железнодорожном пути, на расстоянии в 7 км от рассматриваемого объекта (филиала вуза) в результате железнодорожной аварии произошел выброс в атмосферу 5 тонн жидкого хлора. Скорость ветра 3 м/с. Проведем расчет размеров и площади зоны заражения, а так же время подхода зараженного облака к объекту для трех состояний атмосферы.
Определим глубину зоны заражения из таблицы "Глубина распространения облаков зараженного воздуха с поражающими концентрациями АХОВ на открытой местности".
При инверсии она составляет 23 км. Так как скорость ветра больше 0,1 м/с, определяем поправочный коэффициент по таблице влияния скорости ветра на глубину распространения зараженного воздуха с поражающей концентрацией. При скорости ветра 3 м/с этот коэффициент будет равен 0,45. Отсюда глубина распространения зараженного облака равна км.
При изометрии глубина зоны заражения составляет 4,6 км. Поправочный коэффициент по таблице влияния скорости ветра на глубину распространения зараженного воздуха с поражающей концентрацией будет равен 0,55. Следовательно, глубина распространения зараженного облака равна км.
При конвекции глубина зоны заражения составляет 1 км. Поправочный коэффициент по таблице влияния скорости ветра на глубину распространения зараженного воздуха с поражающей концентрацией будет равен 0,62. Следовательно, глубина распространения зараженного облака равна км.
Определим ширину зоны химического заражения. Ширина (Ш) зоны химического заражения зависит от степени вертикальной устойчивости воздуха и определяется для инверсии как
Ш=0.03·Г, |
(5.3) |
где Г - глубина распространения облака зараженного воздуха с поражающей концентрацией в км.
При инверсии ширина зоны химического заражения будет равна км. При изотермии ширина зоны химического заражения будет равна км. При конвекции ширина зоны химического заражения будет равна км.
Площадь зоны заражения определяется по формуле
. |
(5.4) |
При инверсии площадь зоны заражения будет равна: км2. При изометрии площадь зоны заражения будет равна км2.При конвекции площадь зоны заражения будет равна км2.
Расстояние от места разлива АХОВ (R) до объекта составляет 7км. По таблице для инверсии и скорости ветра 3 м/с определим среднюю скорость переноса облака зараженного веществом W, в данном случае она составляет 16 м/с.
Время подхода облака t к заданному объекту зависит от скорости переноса облака воздушными потоками и определяется по формуле
5.5) |
||
часа. |
Расстояние от места разлива АХОВ (R) до объекта составляет 7 км. По таблице для изометрии и скорости ветра 3 м/с определим среднюю скорость переноса облака зараженного веществом W, в данном случае она составляет 18 м/с. Время подхода облака t к заданному объекту зависит от скорости переноса облака воздушными потоками и определяется по формуле (5.5)
часа. |
Расстояние от места разлива АХОВ (R) до объекта составляет 7 км. По таблице для конвекции и скорости ветра 3 м/с определим среднюю скорость переноса облака зараженного веществом W, в данном случае она составляет 21 м/с. Время подхода облака t к заданному объекту зависит от скорости переноса облака воздушными потоками и определяется по формуле (5.5) часа. Таким образом, в наихудшем случае при конвекции атмосферы подход зараженного облака к объекту составит 0,3 часа или 18 минут.
Времени поражающего действия АХОВ в очагах химического поражения определяется временем испарения АХОВ с поверхности его выброса.
По таблице времени испарения некоторых АХОВ определяем время поражающего действия хлора при скорости ветра 1м/с. Время испарения хлора равно 1,3 ч.
Время испарения используется для определения ориентировочного времени поражающего действия АХОВ в очаге химического поражения. Т.к. скорость ветра больше 1 м/с, введем поправочный коэффициент. Для скорости 3 м/с он будет равен 0,55. Время поражающего действия хлора, составит часа=20 мин.
5.3.2 Расчет времени эвакуации
Проведем расчет времени эвакуации для лаборатории компьютерной графики филиала. Обычно в лаборатории находится до 25 человек. Лаборатория находится на первом этаже и длина L пути эвакуации от лаборатории до выхода составляет 22 м.
Эвакуация при возникновении чрезвычайной ситуации производится в соответствии с планом эвакуации.
Процесс эвакуации из зданий и сооружений характеризуется следующими параметрами: плотность D, скорость движения людского потока v, пропускная способность пути (выходов) Q и интенсивность движения q. Эвакуационные пути, как горизонтальные, так и наклонные, характеризуются длиной L и шириной b движения [34,35]. Расчетное время эвакуации людей Т определяется по формуле
,
где _ время движения людского потока на каждом этапе эвакуации.
Время движения людского потока на участке пути
, |
где _ скорость движения людского потока на одном из участков, определяется по таблице определения скорости движения людского потока в зависимости от плотности D.
Плотность людского потока D, состоящего из N людей, равна
, |
где N - среднее число людей на участке эвакуации;
А - площадь эвакуационного пути.
N = 25.
Вычислим площадь пути эвакуационного участка по формуле
.
Ширина коридора м.
Тогда, плотность людского потока на участках
Скорость движения людского потока зависит от его плотности и вида пути (горизонтальные или наклонные). С увеличением плотности потока скорость движения уменьшается. Для горизонтального пути и значения D = 0,45 значение составит 35 м./мин.
Таким образом, время движения людей, находящихся в лаборатории компьютерной графики, к выходу составит
Пропускной способностью пути называют количество людей, проходящих в единицу времени через поперечное сечение пути шириной b. Эту величину можно вычислить по формуле
.
Тогда пропускная способность на каждом участке будет равна соответственно .
Интенсивностью движения людского потока называется величина, равная произведению плотности и скорости движения. Интенсивность движения не зависит от ширины пути и является характеристикой потока. Интенсивность потока рассчитывается по формуле
, |
Тогда интенсивность движения на каждом участке будет равна соответственно чел/мин.
Так как облако хлора подойдет к объекту через 18 мин. после аварии, а расчетное время эвакуации 38 сек., то в случае своевременного оповещения люди успеют эвакуироваться в безопасное место.
В пятом разделе были проанализированы условия труда, осуществлен расчет искусственного освещения в помещении отдела ИТ, рассчитана зона поражения при аварии цистерны с ядовитым веществом, а также время эвакуации персонала из зоны поражения.
Заключение
Результатом данной дипломной работы является программное средство автоматизации заявок пользователей локальной вычислительной сети филиала РГУ нефти и газа имени И.М. Губкина в г. Оренбурге.
Данный средство предназначено для автоматизации процессов обслуживания заявок пользователей и ведение реестра отчетности сотрудников ОИТ
Разработанное средство позволяет:
- хранить данные централизованно;
- осуществлять контроль за исполнением заявок;
- оперативно генерировать отчеты;
- снизить временные затраты на принятие, обработку и исполнение заявок.
В ходе выполнения данной дипломной работы были выполнены следующие задачи и подзадачи:
- разработка базы данных учета и хранения заявок пользователя;
- разработка программного средства на основе клиент/серверной технологии;
- разработка интерфейса программного средства;
- выбор СУБД;
- выбор языка программирования;
- углубленное ознакомление с платформой Tandem Framework;
- математическое описание решения задачи предметной области;
- первичное апробирование и дальнейшая отладка программного средства автоматизации обслуживания заявок предметной области.
В первом разделе дипломной работы сделано следующее:
- проведен анализ предметной области Филиала;
- исследованы информационные потоки рассматриваемой предметной области;
- проанализированы существующие аналоги разрабатываемому программному средству;
- сформулирована постановка задачи на разработку программного средства для автоматизации процессов подачи, принятия и обработки заявок на обслуживание компьютерной оргтехники, осуществлена декомпозиция задач; база данные учет заявка программный платформа
- сформулированы требования к аппаратному и программному обеспечению разрабатываемого средства.
Во втором разделе дипломной работы сделано следующее:
- представлено обоснование выбора и описание инструментальных средств: языка программирования, СУБД, языка запросов;
- представлено описание технологии клиент/сервер и принципов работы Java web-приложения;
- проанализирована архитектура платформы АСУОД Tandem, функционирующая в Филиале;
- разработана БД проектируемого средства;
- разработано программное средство автоматизации обслуживания заявок пользователей ЛВС Филиала.
В третьем разделе дипломной работы сделано следующее:
- разработано руководство для пользователя проектируемого программного средства. В нем описан пользовательский интерфейс, его функции и приемы работы;
- разработано руководство для серверной части проектируемого модуля. В нем описан метод настройки сервера Tomcat;
- разработано руководство администратора. В нем показаны процесс установки сервера Tomcat и тестирование его работы;
- разработано руководство программиста, в котором описаны фрагменты, ссылающиеся на другие компоненты спроектированного программного средства, и тем самым осуществляющие логическую связь. Так же показана подготовка ЛВС к работе средства.
В четвертом разделе дипломной работы сделано следующее: осуществлены расчеты трудоемкости разработки, себестоимости, экономического эффекта от внедрения программного продукта, а также срок его окупаемости.
В пятом разделе дипломной работы были проанализированы условия труда, осуществлен расчет искусственного освещения в помещении отдела информационных технологий, рассчитана зона поражения при аварии цистерны с ядовитым веществом, а также время эвакуации персонала из зоны поражения.
Внедрение разработанного программного средства позволяет в значительной мере сократить время подачи, обработки и выполнения заявок за счет внедрения процессов автоматизации на смену ручному труду. Срок окупаемости составляет приблизительно 10 месяцев.
Список использованных источников
1 Официальный сайт Филиал Российского государственного университета нефти и газа имени И.М. Губкина в Оренбурге. Режим доступа: http://www.orengubkin.ru/.
2 Положение о филиале государственного образовательного учреждения высшего профессионального образования "Российский государственный университет нефти и газа имени И.М. Губкина" в г. Оренбурге Ип 914-01.
3 Шашков, В. Б. Прикладной регрессионный анализ (многофакторная регрессия) [Текст] : учеб. пособие / В. Б. Шашков; М-во образования Рос. Федерации, Гос. образоват. учреждение высш. проф. образования "Оренбург. гос. ун-т". - Оренбург : ГОУ ОГУ, 2003. - 363 с. - Библиогр. : с. 363 .
4 Симчера, В. М. Методы многомерного анализа статистических данных [Текст] : учеб. пособие для вузов / В. М. Симчера. - М. : Финансы и статистика, 2008. - 400 с. - Библиогр. в конце гл. - Слов. терминов : с. 372-391. - ISBN 978-5-279-03184-9.
5 Сидняев, Н. И. Теория планирования эксперимента и анализ статистических данных [Текст] : учеб. пособие / Н. И. Сидняев. - М. : Юрайт, 2011. - 400 с. - (Магистр). - Библиогр.: с. 396-399. - ISBN 978-5-9916-0990-6.
6 Чепасов, В.И. Руководство по программе для основных методов математической статистики и спектрального анализа в С++[Текст]/ Чепасов В.И. - Оренбург: ОГУ, 2007. - 297 с.
7 Официальный сайт "DIRECTUM" Электронный документооборот и управление взаимодействием. Режим доступа: http://www.directum.ru/
8 Аккуратов, Е.Е. Знакомьтесь: Java [Текст]/ Е.Е. Аккуратов. -- Санкт-Петербург, Вильямс, 2006 г.- 256 с.
9 Хабибуллин, И.И. Самоучитель Java[Текст]/ И.И. Хабибуллин. -- Москва, БХВ-Петербург, 2008 г.- 768 с.
10 Шилдт, Г."Полный справочник по Java. Java SE 6 Edition" 7-е издание [Текст]/ Г. Шилдт. - Вильямс 2009г., ISBN 978-5-8459-1168-1, 0-07-226385-7
11 Перри, Б.У. Java сервлеты и JSP. Сборник рецептов [Текст]/ Б.У. Перри. -- Санкт-Петербург, КУДИЦ-Пресс, 2009 г.- 768 с.
12 Гарнаев, А.И. WEB-программирование на Java и JavaScript [Текст]/ А.И. Гарнаев, С.И. Гарнаев. -- Санкт-Петербург, БХВ-Петербург, 2005 г.- 1040 с.
13 Фаронов, В. В. Разработка приложений для баз данных и Интернета [Текст]/ В.В. Фаронов. - СПбю: Питер, 2006. - 603 с.
14 Хемраджани, А. Гибкая разработка приложений на Java с помощью Spring, Hibernate и Eclipse [Текст]/ А. Хемраджани. - Вильямс 2008, ISBN: 978-5-8459-1375-3. - 352 с.
15 Тимур, М.А. Современные Java-технологии на практике [Текст]/ М.А. Тимур.-- Санкт-Петербург, БХВ-Петербург, 2010 г.- 560 с.
16 Кириллов, В.В. Структурированный язык запросов (SQL) [Текст]/ В.В. Кириллов - СПб.: ИТМО, 1994. - 80 с.
17 Волкова, Т.В. Проектирование и создание БД [Текст]: учебное пособие/Т.В. Волкова - Оренбург: ГОУ ОГУ, 2006. - 140 с.
18 Крёнке, Д.М. Теория и практика построения баз данных. 8-е издание[Текст]/ Д.М. Крёнке - СПб.: Питер, 2003г. - 800 с.
19 Глушаков, С. В., Ломотько Д. В. Базы данных[Текст]: Учебный курс/С.В. Глушаков - М.: Издательство АСТ, 2001. - 504 с.
20 Риордан, Р. Основы реляционных баз данных[Текст]/ Р. Риордан - Пер. с англ. - М.: Русская Редакция, 2001. - 384 с.
21 Тиори, Т. Проектирование структур баз данных[Текст]/ Т. Тиори - М.: Мир, 1985. - 287 с.
22 Коннолли, Т. Базы данных: проектирование, реализация и сопровождение. Теория и практика[Текст] / Т. Коннолли, К. Бегг, А. Страчан. - СПб.: БХВ - Петербург, 2003. - 1125 с.
23Липаев,В.В. Проектирование программных средств [Текст] : учеб. пособие для вузов / В. В. Липаев. - М. : Высш. шк., 1990. - 303 с. : ил. - Библиогр.: с. 301. - ISBN 5-06-001570-Х.
24 Леоненков, А.В. Самоучитель UML[Текст]/ А.В.Леоненков - СПб.: БХВ - Петербург, 2001. - 304 с.
25 Фаулер, М., Скотт, К. UML[Текст]: Основы/М. Фаулер, К. Скотт - Пер. с англ. - СПБ.: Символ-Плюс, 2002. - 192 с.
26 Липаев, В. В.Системное проектирование сложных программных средств для информационных систем [Текст] / В. В. Липаев.- 2-е изд., перераб. и доп. - М. : СИНТЕГ, 2002. - 268 с. : ил. - (Управление качеством) - ISBN 5-89638-60-7.
27 Орлов, С. Технологии разработки программного обеспечения[Текст]: Учебник/С. Орлов - СПб.: Питер, 2002. -- 464 с.
28 Рахматуллин, Р.Р., Тарасов В.Н., Коваленко О.В. Методические указания "Выполнение организационно-экономической части дипломных проектов" [Текст]/ Р.Р. Рахматуллин, В.Н. Тарасов, О.В. Коваленко - Оренбург: ГОУ ОГУ, 1998. - 46с.
29 Брудник, С.С. Экономическое содержание дипломных проектов[Текст]/С.С. Брудник - М.: ГАНГ, 1990. - 125 с.
30 Брудник, С.С. Определение экономической эффективности программных средств в АСУ[Текст]/ С.С. Брудник - М.: ГАНГ, 1995. - 180 с.
31 СанПиН 2.2.2.542-96 Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работ.
32 Ефремов, И. В. Расчет естественного и искусственного освещения: методические указания к практическим занятиям[Текст]/ И.В. Ефремов - Оренбург: ГОУ ОГУ, 2003. - 38 с
33 Александров, В.Н., Емельянов В.И. Отравляющие вещества[Текст]: Учебное пособие/В.Н. Александров - М.: Воениздат, 1990. - 271 с.
34 Жилин, А.Н. Оценка химической обстановки на объектах при выбросах сильнодействующих ядовитых веществ[Текст]/ А.Н. Жилин - Оренбург: ГОУ ОГУ, 2000. - 24 с.
35 Расчет продолжительности эвакуации из общественных и производственных зданий при чрезвычайных ситуациях[Текст]: Методические указания к дипломному проектированию/ И.В. Ефремов, В.А. Василенко, В.А. Грузинцева, Е.А Колобова.- Оренбург: ИПК ГОУ ОГУ, 2008.-28с.
36 ГОСТ 34.601-90. Автоматизированные системы. Стадии создания[Текст].- Введ. 1992-01-01.-[М.]: Изд-во стандартов.
37 СТП 101-00. Стандарт предприятия. Общие требования и правила оформления выпускных квалификационных работ, курсовых проектов (работ), отчетов по ргр, по уирс, по производственной практике и рефератов[Текст]. - Взамен СТП 2069022.101-88, СТП 2069022.102-93, СТП 2069022.103-92, СТП 2069022.105-95, СТП 2069022.108-93.- Введ. 2000-11-24.-Оренбург.: Оренбургский государственный университет, 2000.-65 с.
38 Буреш, О.В., Юдина, Н.М., Беляева, М.А., Черницкая, Л.А., Панова, Н.Ф., Пирязев, М.М. Учебное пособие по дипломному проектированию[Текст]/О.В. Буреш, Н.М. Юдина, М.А. Беляева, Л.А. Черницкая, Н.Ф. Панова, М.М. Пирязев. - 3-е изд., перераб. и доп-Оренбург.: ГОУ "ОГУ", 2002.-135 с.
39 ГОСТ 19.504-79. Руководство программиста. Требования к содержанию и оформлению. Режим доступа: http://www.rugost.com
40 ГОСТ 19.505-79. Руководство оператора. Требования к содержанию и оформлению. Режим доступа: http://www.rugost.com
Приложение А
Организационная структура
Приложение Б
Листинг программных модулей
//Модуль идентификации и аутентификации login.java
package avk;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class login extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ArrayList<String> ar = null;
String login = req.getParameter("login");
String pas = req.getParameter("pas");
if(validLoginPas(login, pas))
{
ar = getDate(login, pas);
if(ar != null)
{
autorization(ar, req.getSession(true));
resp.sendRedirect("menu.html");
}
else resp.sendRedirect("info.html");
}
else resp.sendRedirect("info1.html");
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req,resp);
}
private boolean validLoginPas(String login, String pas)
{
if(login == null || pas == null )return false;
if(login.length() == 0 || pas.length() == 0 )return false;
return true;
}
private void autorization(ArrayList<String> ar, HttpSession ses)
{
ses.setAttribute("id", ar.get(0));
ses.setAttribute("typeUser", ar.get(7));
ses.setAttribute("shortName", ar.get(6));
}
private ArrayList<String> getDate(String login, String pas)
{
ArrayList<String> ar = null;
try
{
DAOusers dao = new DAOusers();
ar = dao.getUserDate(login, pas);
}
catch(SQLException e)
{
}
catch(ClassNotFoundException e)
{
}
return ar;
}
}
//Модуль регистрации reg.java
package avk;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class reg extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String login, pas, Surname, Name, FName;
req.setCharacterEncoding("utf8");
login = req.getParameter("login");
pas = req.getParameter("pas");
Surname = req.getParameter("Surname");
Name = req.getParameter("Name");
FName = req.getParameter("FName");
if(validUserData(login, pas, Surname, Name, FName))
{
try
{
DAOusers dao = new DAOusers();
if(dao.InsUserDate(login, pas, Surname, Name, FName))resp.sendRedirect("sacsFulReg.html");
else resp.sendRedirect("error.html?Insert_failed");
}
catch(SQLException e)
{
resp.sendRedirect("error.html?User_was_not_added");
}
catch(ClassNotFoundException e)
{
}
}
else resp.sendRedirect("erReg.html");
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req,resp);
}
private boolean validUserData(String login, String pas, String Surname, String Name, String FName)
{
if(login == null || pas == null || Surname == null || Name == null || FName == null )return false;
if(login.length() == 0 || pas.length() == 0 || Surname.length() == 0 || Name.length() == 0 || FName.length() == 0 )return false;
return true;
}
}
//Модуль доступа к БД DAODemands.java
package avk;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class DAOdemands {
private Connection connect = null;
private PreparedStatement pst = null;
//private Statement st = null;
//private String sql;
private ResultSet result = null;
private ResultSetMetaData resMet;
public DAOdemands() throws ClassNotFoundException, SQLException
{
this.connect = getConnection();
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
try
{
Class.forName("org.postgresql.Driver");
}
catch(ClassNotFoundException e)
{
//return null;
throw e;
}
String url, user, password;
url = "jdbc:postgresql://127.0.0.1/zit";
user = "postgres";
password = "xmmGQAKq";
try
{
return DriverManager.getConnection(url, user, password);
}
catch(SQLException e)
{
throw e;
}
}
public boolean addDemand(String forName, String name, String tarqetDate, int tarqetTimeH, int tarqetTimeM, int tarqetAud, String targetMulti) throws SQLException {
String sql = "INSERT INTO \"demands\"(\"forName\", \"name\", \"dateTime\", \"tarqetAud\", \"targetMulti\", "+
"\"requestAccepted\", \"requestDoned\", \"dateTimeRegistration\")VALUES(?, ?, ?, ?, ?, ?, ?, ?);";
try
{
pst = connect.prepareStatement(sql);
pst.setString(1, forName);
pst.setString(2, name);
pst.setTimestamp(3, getTimestamp(tarqetDate,((Integer)tarqetTimeH).toString(),((Integer)tarqetTimeM).toString()));
pst.setInt(4, tarqetAud);
pst.setString(5, targetMulti);
pst.setBoolean(6, false);
pst.setBoolean(7, false);
Timestamp timestamp = new Timestamp((new Date()).getTime());
pst.setTimestamp(8, timestamp);
pst.executeUpdate();
}
catch(SQLException e)
{
throw e;
}
/*finally
{
try{
pst.close();
connect.close();
}
catch(SQLException e)
{
throw e;
}
}*/
return true;
}
private ArrayList<ArrayList<String>> commonRequest(String sqlSuffics) throws SQLException
{
String sql = "SELECT \"idRequest\", \"forName\", \"name\", \"dateTime\","+
"\"tarqetAud\", \"targetMulti\", \"requestAccepted\","+
"\"requestDoned\", \"dateTimeRegistration\" FROM public.requests "+sqlSuffics +" ORDER BY \"dateTime\";";
pst = connect.prepareStatement(sql);
result = pst.executeQuery();
resMet = result.getMetaData();
int colCount = resMet.getColumnCount();
GregorianCalendar cal = new GregorianCalendar(Locale.getDefault());
Formatter frm;
ArrayList<ArrayList<String>> selectRequest = new ArrayList<ArrayList<String>>();
for(int i = 1; i <= colCount; i++)
while(result.next())
{
ArrayList<String> arRow = new ArrayList<String>(colCount);
for(int j = 1; j <= colCount; j++)
{
arRow.add(((Integer)result.getInt(1)).toString());
arRow.add(result.getString(2));
arRow.add(result.getString(3));
cal.setTimeInMillis(result.getTimestamp(4).getTime());
frm = new Formatter();
frm.format("%td.%tm.%tY %tk:%tM", cal,cal,cal,cal,cal);
arRow.add(frm.toString());
frm.close();
arRow.add(((Integer)result.getInt(5)).toString());
arRow.add(result.getString(6));
arRow.add(result.getBoolean(7) ? "ДА" : "НЕТ");
arRow.add(result.getBoolean(8) ? "ДА" : "НЕТ");
cal.setTimeInMillis(result.getTimestamp(9).getTime());
frm = new Formatter();
frm.format("%td.%tm.%tY %tk:%tM:%tS", cal,cal,cal,cal,cal,cal);
arRow.add(frm.toString());
frm.close();
}
selectRequest.add(arRow);
}
pst.close();
connect.close();
return selectRequest;
}
private String getTime(int shiftYear, int shiftMonth, int shiftDay)
{
GregorianCalendar cal = new GregorianCalendar();
cal.set(GregorianCalendar.HOUR_OF_DAY, 0);
cal.set(GregorianCalendar.DAY_OF_MONTH, cal.get(GregorianCalendar.DAY_OF_MONTH)+shiftDay);
cal.set(GregorianCalendar.MONTH, cal.get(GregorianCalendar.MONTH)+shiftMonth);
cal.set(GregorianCalendar.YEAR, cal.get(GregorianCalendar.YEAR)+shiftYear);
Formatter frm = new Formatter();
frm.format("%td.%tm.%tY", cal,cal,cal);
return frm.toString();
}
private String getSqlSuffics(String date, String date1)
{
return
"WHERE requests.\"dateTime\" >= \'"+date+"\' AND requests.\"dateTime\" <= \'"+date1+"\'";
}
private ArrayList<ArrayList<String>> callSel(int shiftYear, int shiftMonth, int shiftDay,int shiftYear1, int shiftMonth1, int shiftDay1) throws SQLException
{
try
{
return commonRequest(getSqlSuffics(getTime(shiftYear, shiftMonth, shiftDay), getTime(shiftYear1, shiftMonth1, shiftDay1)));
}
catch(SQLException e)
{
throw e;
}
}
public Timestamp getTimestamp(String date, String h, String m)
{
int year, month, dayOfMonth, hours = Integer.valueOf(h), minutes = Integer.valueOf(m);
StringTokenizer strTok = new StringTokenizer(date, ".");
dayOfMonth = Integer.valueOf(strTok.nextToken());
month = Integer.valueOf(strTok.nextToken());
year = Integer.valueOf(strTok.nextToken());
GregorianCalendar cal = new GregorianCalendar(year, month-1, dayOfMonth, hours, minutes);
Timestamp timeStamp = new Timestamp(cal.getTime().getTime());
return timeStamp;
}
}
// Модуль добавления заявки на компьютерную оргтехнику addDemand.java
package avk;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.*;
import javax.servlet.http.*;
public class AddDemand extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String name, forName, tarqetDate, tarqetTimeH, tarqetTimeM, tarqetAud, targetMulti;
req.setCharacterEncoding("utf8");
name = req.getParameter("name");
forName = req.getParameter("forName");
tarqetDate = req.getParameter("tarqetDate");
tarqetTimeH = req.getParameter("tarqetTimeH");
tarqetTimeM = req.getParameter("tarqetTimeM");
tarqetAud = req.getParameter("tarqetAud");
targetMulti = req.getParameter("targetMulti");
try
{
DAOdemands dao = new DAOdemands();
if(dao.addDemand(forName, forName, tarqetDate, Integer.parseInt(tarqetTimeH), Integer.parseInt(tarqetTimeM), Integer.parseInt(tarqetAud), targetMulti))
resp.sendRedirect("sacsFulAdReq.html");
}
catch(SQLException e)
{
resp.sendRedirect("error.html?errorAddRequest");
}
catch(ClassNotFoundException e)
{
resp.sendRedirect("error.html?errorAddRequest");
}
}
}
//Модуль создания интерфейса формы создания заявки SubmitDemand.jsp
<?xml version="1.0" encoding="utf8" ?>
<%@page import="avk.DAOdemands"%>
<%@page import="avk.DAOusers"%>
<%@page import="avk.DAODeviceClasses"%>
<%@page import="avk.DAODeviceType"%>
<%@page import="avk.DAODevices"%>
<%@page import="avk.DAORooms"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Formatter"%>
<%@page import="java.util.GregorianCalendar"%>
<%@ page language="java" contentType="text/html; charset=utf8"
pageEncoding="utf8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Заявки</title>
</head>
<body>
<div style="text-align: center; font-weight: bold;"><big><big><big><big>Оформление
заявки<br>
<br>
</big></big></big></big>
<form action="addDemand" method="post">
<div style="text-align: center;"></div>
<table style="text-align: left; height: 180px; width: 922px;" align="center" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="font-weight: bold; text-align: left; width: 343px;"><big><big><big><small>Заявка
от:</small><br>
</big></big></big></td>
<td style="text-align: left; width: 470px;"><big><big>
<%= session.getAttribute("shortName") %>
</big></big></td>
</tr>
<tr>
<td style="text-align: left; font-weight: bold; width: 343px;"><big><big>Заявка на:</big></big></td>
<td style="text-align: left; width: 470px;"><big><big>
<select name="class">
<%
DAODeviceClasses dao = new DAODeviceClasses();
ArrayList<ArrayList<String>> selAllDevClass = dao.selAllDevClass();
for(ArrayList<String> deviceData : selAllDevClass)
{
%><option value="<%= deviceData.get(0)%>"><%= deviceData.get(1) %></option>
<%;} %>
</select>
<br>
</big></big></td>
</tr>
<tr>
<td style="text-align: left; font-weight: bold; width: 343px;"><big><big>Тип оборудования:</big></big></td>
<td style="text-align: left; width: 470px;"><big><big>
<select name="device">
<%
DAODeviceType daot = new DAODeviceType();
ArrayList<ArrayList<String>> selAllDevType = daot.selAllDevType();
for(ArrayList<String> deviceType : selAllDevType)
{
%><option value="<%= deviceType.get(0)%>"><%= deviceType.get(1) %></option>
<%;} %>
</select>
<br>
</big></big></td>
</tr>
<tr>
<td style="text-align: left; font-weight: bold; width: 343px;"><big><big>Аудитория/кабинет, номер</big></big></td>
<td style="width: 470px;">
<select name="name">
<% DAORooms daor = new DAORooms();
ArrayList<ArrayList<String>> selAllRooms = daor.selAllRooms();
String id=null;
for(ArrayList<String> rooms : selAllRooms)
{
%><option value="<%= id=rooms.get(0)%>"><%= rooms.get(1) %></option>
<%;} %>
</select>
<span style="font-weight: bold;">Этаж</span>
<select name="storey">
<%for(ArrayList<String> rooms : selAllRooms)
{
%>
<option value="<%=id %>"><%= rooms.get(3) %></option><%;} %>
</select>
<span style="font-weight: bold;">№</span>
<select name="number">
<%for(ArrayList<String> rooms : selAllRooms)
{
%><option><%= rooms.get(2) %></option><%;} %>
</select>
</td>
</tr>
<tr>
<td style="text-align: left; font-weight: bold; width: 343px;"><big><big>Данные об оборудовании</big></big></td>
<td style="text-align: left; width: 470px;"><big><big>
<select name="device">
<%
DAODevices daod = new DAODevices();
ArrayList<ArrayList<String>> selAllDev = daod.selAllDev();
for(ArrayList<String> device : selAllDev)
{
%><option value="<%= device.get(0)%>"><%= device.get(1) %></option>
<%;} %>
</select>
<br>
</big></big></td>
</tr>
<tr>
<td style="text-align: left; font-weight: bold; width: 343px;"><big><big>Что необходимо сделать:</big></big></td>
<td style="width: 470px;"><big><big><textarea cols="30" rows="3" name="description"></textarea></big></big></td>
</tr>
<tr>
<td style="width: 343px;" colspan="1" rowspan="1"><big><big><a href="menu.html" name="index"><big><big>На
главную</big></big></a></big></big></td>
<td style="width: 470px;"><big><big><button value="Отправить заявку" name="AddRequest"><big><big>Отправить
заявку</big></big></button></big></big></td>
</tr>
</tbody>
</table>
</form>
</div>
</body>
</html>
//Модуль доступа к таблице классов устройств БД DAODeviceClasses.java
package avk;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class DAODeviceClasses {
private Connection connect = null;
private PreparedStatement pst = null;
//private Statement st = null;
//private String sql;
private ResultSet result = null;
private ResultSetMetaData resMet;
public DAODeviceClasses() throws ClassNotFoundException, SQLException
{
this.connect = getConnection();
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
try
{
Class.forName("org.postgresql.Driver");
}
catch(ClassNotFoundException e)
{
//return null;
throw e;
}
String url, user, password;
url = "jdbc:postgresql://127.0.0.1/zit";
user = "postgres";
password = "xmmGQAKq";
try
{
return DriverManager.getConnection(url, user, password);
}
catch(SQLException e)
{
throw e;
}
}
public ArrayList<ArrayList<String>> selAllDevClass() throws SQLException
{
String sql = "SELECT \"idclass\", \"class\" FROM public.\"DeviceClasses\";";
ArrayList<ArrayList<String>> selAllDevClass = null;
try
{
pst = connect.prepareStatement(sql);
result = pst.executeQuery();
resMet = result.getMetaData();
int colCount = resMet.getColumnCount();
selAllDevClass = new ArrayList<ArrayList<String>>();
while(result.next())
{
ArrayList<String> arRow = new ArrayList<String>(colCount);
arRow.add(result.getString(1));
arRow.add(result.getString(2));
selAllDevClass.add(arRow);
}
pst.close();
connect.close();
}
catch(SQLException e)
{
throw e;
}
return selAllDevClass;
}
}
//Модуль доступа к таблице типов устройств БД DAODeviceTypes.java
package avk;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class DAODeviceType {
private Connection connect = null;
private PreparedStatement pst = null;
//private Statement st = null;
//private String sql;
private ResultSet result = null;
private ResultSetMetaData resMet;
public DAODeviceType() throws ClassNotFoundException, SQLException
{
this.connect = getConnection();
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
try
{
Class.forName("org.postgresql.Driver");
}
catch(ClassNotFoundException e)
{
//return null;
throw e;
}
String url, user, password;
url = "jdbc:postgresql://127.0.0.1/zit";
user = "postgres";
password = "xmmGQAKq";
try
{
return DriverManager.getConnection(url, user, password);
}
catch(SQLException e)
{
throw e;
}
}
public ArrayList<ArrayList<String>> selAllDevType() throws SQLException
{
String sql = "SELECT \"idtype\", \"device\", \"idclass\" FROM public.\"DeviceTypes\";";
ArrayList<ArrayList<String>> selAllDevType = null;
try
{
pst = connect.prepareStatement(sql);
result = pst.executeQuery();
resMet = result.getMetaData();
int colCount = resMet.getColumnCount();
selAllDevType = new ArrayList<ArrayList<String>>();
while(result.next())
{
ArrayList<String> arRow = new ArrayList<String>(colCount);
arRow.add(result.getString(1));
arRow.add(result.getString(2));
arRow.add(result.getString(3));
selAllDevType.add(arRow);
}
pst.close();
connect.close();
}
catch(SQLException e)
{
throw e;
}
return selAllDevType;
}
}
//Модуль доступа к таблице устройств БД DAODevices.java
package avk;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class DAODevices {
private Connection connect = null;
private PreparedStatement pst = null;
//private Statement st = null;
//private String sql;
private ResultSet result = null;
private ResultSetMetaData resMet;
public DAODevices() throws ClassNotFoundException, SQLException
{
this.connect = getConnection();
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
try
{
Class.forName("org.postgresql.Driver");
}
catch(ClassNotFoundException e)
{
//return null;
throw e;
}
String url, user, password;
url = "jdbc:postgresql://127.0.0.1/zit";
user = "postgres";
password = "xmmGQAKq";
try
{
return DriverManager.getConnection(url, user, password);
}
catch(SQLException e)
{
throw e;
}
}
public ArrayList<ArrayList<String>> selAllDev() throws SQLException
{
String sql = "SELECT \"iddevice\", \"nameDevice\" FROM public.\"devices\";";
ArrayList<ArrayList<String>> selAllDev = null;
try
{
pst = connect.prepareStatement(sql);
result = pst.executeQuery();
resMet = result.getMetaData();
int colCount = resMet.getColumnCount();
selAllDev = new ArrayList<ArrayList<String>>();
while(result.next())
{
ArrayList<String> arRow = new ArrayList<String>(colCount);
arRow.add(result.getString(1));
arRow.add(result.getString(2));
selAllDev.add(arRow);
}
pst.close();
connect.close();
}
catch(SQLException e)
{
throw e;
}
return selAllDev;
}
}
//Модуль доступа к таблице типов помещений БД DAORoomTypes.java
package avk;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
public class DAORoomTypes {
private Connection connect = null;
private PreparedStatement pst = null;
//private Statement st = null;
//private String sql;
private ResultSet result = null;
private ResultSetMetaData resMet;
public DAORoomTypes() throws ClassNotFoundException, SQLException
{
this.connect = getConnection();
}
public Connection getConnection() throws ClassNotFoundException, SQLException {
try
{
Class.forName("org.postgresql.Driver");
}
catch(ClassNotFoundException e)
{
//return null;
throw e;
}
String url, user, password;
url = "jdbc:postgresql://127.0.0.1/zit";
user = "postgres";
password = "xmmGQAKq";
try
{
return DriverManager.getConnection(url, user, password);
}
catch(SQLException e)
{
throw e;
}
}
public ArrayList<ArrayList<String>> selAllRoomTypes() throws SQLException
{
String sql = "SELECT \"idtype\", \"type\" FROM public.\"RoomTypes\";";
ArrayList<ArrayList<String>> selAllRoomTypes = null;
try
{
pst = connect.prepareStatement(sql);
result = pst.executeQuery();
resMet = result.getMetaData();
int colCount = resMet.getColumnCount();
selAllRoomTypes = new ArrayList<ArrayList<String>>();
Подобные документы
Описание общих закономерностей функционирования организации. Изучение структуры предприятия, определение функций его подразделений и основных бизнес процессов. Разработка клиент-серверной системы по автоматизации получения и обработки заявок от абонентов.
курсовая работа [1,8 M], добавлен 02.10.2011Развитие глобальной сети Интернет. Средства разработки web-сайта. Основные возможности CMS "Joomla", ее достоинства и недостатки, особенности, основные принципы и способы работы с данной системой управления контентом. Help Desk как система заявок.
курсовая работа [213,1 K], добавлен 06.01.2015Создание автоматизированной системы обработки заявок пользователей. Анализ требований к информационному, техническому и программному обеспечению. Проектирование интерфейса системы. Выбор средств реализации. Модель базы данных системы обработки заявок.
курсовая работа [1,6 M], добавлен 22.12.2014Проектирование базы данных системы принятия, обработки и учёта заявок в отдел информационных технологий; разработка инфологической и даталогической моделей, реализация физической модели. Создание приложений для визуализации работы с базой данных.
дипломная работа [2,8 M], добавлен 25.01.2013Простые системы для отслеживания заявок. Информационные потоки, возникающие на этапе поступления запроса для решения инцидента. Концептуальная и логическая модель данных. Разработка программного обеспечения по автоматизации процесса Службы Service Desk.
дипломная работа [2,6 M], добавлен 11.06.2017Разработка программного продукта "ИС Автотранспорт". Автоматизация функционирования автопарка и временного склада товаров, учета заявок клиентов и заполнения путевых листов. Реляционная модель базы данных. Описание функционирования программного продукта.
дипломная работа [1,8 M], добавлен 14.03.2017Расчет издержек предприятия на разработку программного продукта и экономической эффективности от его внедрения. Топология физических связей и структуризация сети. Характеристика программного обеспечения. Средства автоматизации, описание алгоритма задачи.
дипломная работа [867,6 K], добавлен 05.11.2015Автоматизированные системы учета и обработки заявок от пользователей. Функциональное проектирование и моделирование системы учета. Проектирование базы данных, алгоритм работы системы и ее программная реализация. Технико-экономическое обоснование проекта.
дипломная работа [1,6 M], добавлен 05.04.2014Разработка автоматизированной системы учета заявок и предоставление туров при помощи MS Access. Построение реляционной схемы базы данных. Создание таблиц и схем данных БД, запросов и отчетов. Использование интернет-маркетинга туристической фирме.
курсовая работа [5,2 M], добавлен 05.12.2014Разработка автоматизированной информационной системы учета заявок сотрудников на обслуживание компьютерной, офисной и торговой техники в ООО "Платина". Проектирование информационных процессов с помощью средства BPWin в офисном приложении Access.
дипломная работа [2,5 M], добавлен 02.02.2016