Разработка программных средств автоматизированной работы автозаправки
Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.01.2016 |
Размер файла | 962,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П. О. СУХОГО
Факультет автоматизированных и информационных систем
Кафедра «Информационные технологии»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине «Визуальные средства разработки программных приложений»
на тему:
«разработка программных средств автоматизированной работы автозаправки»
Исполнитель: студентка гр. ИТ-41
Месикова К.В.
Руководитель: ст. преподаватель
Стефановский И.Л.
Гомель 2015
СОДЕРЖАНИЕ
Введение
1. Обзор технологий Java
1.1 Особенности архитектуры Java
1.2 Виртуальная машина Java
1.3 Технология Java Database Connectivity
1.4 Кроссплатформенность Java-приложений
1.5 Преимущества языка программирования
2. Структура базы данных
2.1 Логическая структура базы данных
2.2 Физическая структура базы данных
2.3 Аппаратное и программное обеспечение системы
3. Описание разработанного приложения
3.1 Структура программного комплекса
3.2 Руководство пользователя
3.3 Описание результатов
3.4 Верификация разработанных программных средств
Заключение
Список использованных источников
Приложение А. Код главной формы
ВВЕДЕНИЕ
В последнее время информационные технологии развиваются на более высоком уровне, чем раньше. Уже нельзя представить жизнь без компьютера, без мобильного телефона, без интернета. Все, что вокруг нас, все больше и больше создано с применением информационных технологий.
Современный мир информационных технологий трудно представить себе без возможности обработки больших объёмов информации. Такие объёмы информации удобно обрабатывать с помощью баз данных. Практически все системы в той или иной степени связаны с долговременным хранением и обработкой информации. Фактически, информация становится фактором, определяющим эффективность любой сферы деятельности. В связи с увеличением информационных потоков большинство операций не может быть выполнено вручную. Создание информационной системы позволит обеспечить надёжное хранение данных, быстрый и эффективный поиск информации, предотвращение накладок, дублирования, малую вероятность ввода ошибочных данных.
В настоящее время существует множество областей производства, в ходе функционирования которых большая часть времени тратится на учёт различной информации и её обработку, поэтому возникает необходимость в автоматизации таких областей. Правильно организованная автоматизация какой-либо области позволяет в разы сократить расходы предприятий и затрачиваемое время на выполнение каких-либо операций. Успешность реализации автоматизированной информационной системы напрямую зависит от выбранных средств разработки.
Для разработки базы данных была выбрана СУБД SQL-Server. Она представляет собой СУБД, обеспечивающую создание информационных систем с архитектурой «клиент-сервер», в которой он играет роль сервера баз данных. SQL-Server удовлетворяет требованиям, предъявляемым к системам распределенной обработки информации. Эта СУБД поддерживает: тиражирование данных, параллельную обработку, создание и обработку больших баз данных на недорогих аппаратных платформах, отличается простотой управления и использования, а также обеспечивает тесную интеграцию баз данных SQL-Server в Web [1, с. 476].
Для разработки приложения была выбрана технология Java. Java создавался как универсальный язык, предназначенный для прикладного программирования в неоднородных компьютерных сетях как со стороны клиентского компьютера, так и со стороны сервера. В том числе - для использования на тонких аппаратных клиентах (устройствах малой вычислительной мощности с крайне ограниченными ресурсами). При этом скомпилированные программы Java работают только под управлением виртуальной Java-машины, поэтому они называются приложениями Java. Синтаксис операторов Java практически полностью совпадает с синтаксисом языка C, но, в отличие от C++, Java не является расширением C - это совершенно независимый язык, со своими собственными синтаксическими правилами. Он является гораздо более сильно типизированным по сравнению с C и C++, то есть вносит гораздо больше ограничений на действия с переменными и величинами разных типов. [2].
Целью курсовой работы является разработка приложения базы данных «Автозаправка».
Задачами данной курсовой работы являются разработка и создание базы данных, а так же реализация интерфейса пользователя. Разработанная база данных должна содержать всю подробную информацию о заданной предметной области.
1. ОБЗОР ТЕХНОЛОГИЙ JAVA
1.1 Особенности архитектуры Java
Java проста, объектно-ориентирована. Система Java создана на основе простого языка программирования, техника использования которого близка к общепринятой и обучение которому не требует значительных усилий.
Java как язык программирования является объектно-ориентированной с момента основания. Кроме того программист с самого начала обеспечивается набором "стандартных" библиотек, обеспечивающих функциональность от стандартного ввода или вывода и сетевых протоколов до графических пользовательских интерфейсов. Эти библиотеки легко могут быть расширены.
Несмотря на то, что язык С++ был отвергнут, синтаксис языка Java максимально приближен к синтаксису С++. Это делает язык знакомым широкому кругу программистов. В то же время из языка были удалены многие свойства, которые делают С++ излишне сложным для пользования, не являясь абсолютно необходимыми. В результате язык Java получился более простым и органичным, чем С++.
Надежность и безопасность Java существенно облегчает создание надежного программного обеспечения. Кроме исчерпывающей проверки на этапе компиляции, система предусматривается анализ на этапе выполнения. Сам язык спроектирован так, чтобы вырабатывать у программиста привычку писать "правильно". Модель работы с памятью, в которой исключено использование указателей, делает невозможными целый класс ошибок, характерных для С и С++ [3].
В силу того, что Java предназначена для работы в распределенной среде, безопасность становится чрезвычайно важной проблемой. Требования безопасности определяют многие черты, как языка, так и реализации всей системы.
Независимость от архитектуры и переносимость. Компилятор Java производит байт-коды, т.е. модули приложения имеют архитектурно-независимый формат, который может быть проинтерпретирован на множестве разнообразных платформ.
Следующий шаг - «замораживание» стандарта на формат основных встроенных типов данных. Программа, созданная на одной платформе, работает на всех остальных.
Производительность - схема работы системы и набор байт-кодов виртуальной машины Java таковы, что позволяют достичь высокой производительности на этапе выполнения программы:
- анализ кодов на соблюдение правил безопасности производится один раз до запуска кодов на выполнение, в момент выполнения таких проверок уже не нужно, и коды выполняются максимально эффективно;
- работа с базовыми типами максимально эффективна, для операций с ними зарезервированы специальные байт-коды;
- методы в классах не обязательно связываются динамически;
- автоматический сборщик мусора работает отдельным фоновым потоком, не замедляя основную работу программы, но в то же время обеспечивая своевременный возврат свободной памяти в систему;
- стандарт предусматривает возможность написания критических по производительности участков программы в машинных кодах.
Интерпретируемый, многопоточный и динамический. Интерпретируемая природа языка позволяет сделать фазу линкования простой, инкрементальной и, следовательно, быстрой. Это резко сокращает цикл разработки и тестирования программных фрагментов.
Многопоточность позволяет выполнять в рамках одного приложения несколько задач одновременно. Это становится особенно актуально в современных распределенных приложениях, когда процессы сетевого обмена могут идти одновременно и асинхронно. При этом программа продолжает реагировать на ввод информации пользователем без неприятных задержек.
Многопоточность поддерживается на уровне языка - часть примитивов синхронизации встроена в систему реального времени, а библиотека содержит базовый класс Thread. К тому же системные библиотеки написаны thread-safe, т.е. все они могут быть использованы в многопоточных приложениях.
Система обеспечивает динамическую сборку программы. Классы подгружаются по мере необходимости, причем загружены они могут быть с любой точки сети, что позволяет сделать внесение изменений в приложения прозрачным для пользователя. Пользователь может быть уверен, что всегда работает со свежей версией приложения.
Система Java создавалась объектно-ориентированной с самого начала. Объектно-ориентированная парадигма наиболее удобна при создании программного обеспечения типа клиент-сервер, а также для организации распределенных вычислений. Одна из черт, присущих объектам, заключается в том, что объекты обычно переживают процедуру, их создающую. Они затем могут перемещаться по сети, храниться в базах данных и т.д.
Идейными наследниками Java являются такие языки, как C++, Eiffel, Smalltalk и Objective C. За исключением примитивных типов данных, практически все в языке является объектом.
Основные требования к объектно-ориентированной системе:
- инкапсуляция - сокрытие реализации за абстрактным интерфейсом;
- полиморфизм - одно и то же сообщение, посланное различным объектам, приводит к выполнению разных операций;
- наследование - новые классы могут наследовать данные и функциональность уже существующих классов;
- динамическое связывание - новые классы могут появляться в системе откуда угодно, в том числе и из сети. Необходимо иметь возможность динамически включать их в систему.
Система Java предназначена для создания программного обеспечения, которое должно быть интеллектуальным, предельно надежным и безопасным по множеству параметров. Особое внимание уделяется как ранней диагностике возможных проблем, так и поздней, во время выполнения кодов.
Компиляция с языка Java предусматривает жесткую проверку исходных текстов, множество ошибок может быть выявлено уже на этом этапе.
Одним из преимуществ языка С++ как строго типизованного языка является возможность раннего выявления некоторых категорий ошибок. Однако во многом этот язык наследует свойства С, позволяя нарушать требования строгого объявления функций и методов. Язык Java требует явного объявления прототипов и не поддерживает характерных для С неявных преобразований.
Значительное число проверок, производимых компилятором, повторяются виртуальной машиной непосредственно перед выполнением приложения.
Наиболее существенное отличие языка Java от С или С++ заключается в том, что архитектура Java не позволяет случайно или намеренно повредить память программы. Вместо арифметики указателей Java использует полноценные объекты для массивов и строк, что позволяет контролировать индексы доступа к ним во время выполнения. Кроме того, невозможны превращения между целыми числами и указателями.
Естественно, что все это не может полностью гарантировать программиста от любых ошибок, однако, Java устраняет целый класс их, существенно облегчая задачу разработчика.
При сравнении таких языков программирования как C# и Java мы можем сказать, что оба языка используют в качестве синтаксической основы язык программирования C. В частности, от него унаследованы без изменений:
- обозначения начала/конца блока кода фигурными скобками;
- обозначения, ассоциативность и приоритет большинства встроенных операций (присвоение, арифметические, логические, побитовые операции, операции инкремента/декремента, тернарная условная операция “?:”);
- синтаксис описания и использования переменных и функций (порядок “тип имя”, использование модификаторов, обязательность скобок для функций, описание формальных параметров);
- синтаксис всех основных конструкций: условного оператора, циклов, оператора множественного выбора;
- отсутствие процедур (их заменяют функции типа void);
- наименования встроенных элементарных типов (кроме bool, в Java этот тип называется boolean);
- использование точки с запятой и т. д.
Всё это приводит к тому, что программы на Java и C# внешне на первый взгляд выглядят чрезвычайно похоже на C-программы. В обоих языках сделаны однотипные расширения и дополнения по отношению к C (или C++), в частности, расширен алфавит и введён собственный синтаксис, поддерживающий пакеты, импорт описаний, определение единиц компиляции.
1.2 Виртуальная машина Java
Программа, написанная на одном из языков высокого уровня, к которым относится и язык Java, так называемый исходный модуль ("исходник" или "сырец" на жаргоне, от английского "source"), не может быть сразу же выполнена. Ее сначала надо откомпилировать, т. е. перевести в последовательность машинных команд - объектный модуль. Но и он, как правило, не может быть сразу, же выполнен: объектный модуль надо еще скомпоновать с библиотеками использованных в модуле функций и разрешить перекрестные ссылки между секциями объектного модуля, получив в результате загрузочный модуль - полностью готовую к выполнению программу.
Исходный модуль, написанный на Java, не может избежать этих процедур, но здесь проявляется главная особенность технологии Java- программа компилируется сразу в машинные команды, но не команды какого-то конкретного процессора, а в команды так называемой виртуальной машины Java (JVM, JavaVirtualMachine). Виртуальная машина Java- это совокупность команд вместе с системой их выполнения. Виртуальная машина Java полностью стековая, так что не требуется сложная адресация ячеек памяти и большое количество регистров. Поэтому команды JVM короткие, большинство из них имеет длину 1 байт, от чего команды JVM называют байт-кодами (bytecodes), хотя имеются команды длиной 2 и 3 байта. Согласно статистическим исследованиям средняя длина команды составляет 1,8 байта. Полное описание команд и всей архитектуры JVM содержится в спецификации виртуальной машины Java (VMS, Virtual Machine Specification).
Другая особенность Java - все стандартные функции, вызываемые в программе, подключаются к ней только на этапе выполнения, а не включаются в байт-коды. Как говорят специалисты, происходит динамическая компоновка (dynamic binding). Это тоже сильно уменьшает объем откомпилированной программы.
Итак, на первом этапе программа, написанная на языке Java, переводится компилятором в байт-коды. Эта компиляция не зависит от типа какого-либо конкретного процессора и архитектуры некоего конкретного компьютера. Она может быть выполнена один раз сразу же после написания программы. Байт-коды записываются в одном или нескольких файлах, могут храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодами. Затем полученные в результате компиляции байт-коды можно выполнять на любом компьютере, имеющем систему, реализующую JVM. Так как реализуется принцип Java "Writeonce ,runanywhere" - "Написано однажды, выполняется где угодно".
Интерпретация байт-кодов и динамическая компоновка значительно замедляют выполнение программ. Это не имеет значения в тех ситуациях, когда байт-коды передаются по сети, сеть все равно медленнее любой интерпретации, но в других ситуациях требуется мощный и быстрый компьютер. Поэтому постоянно идет усовершенствование интерпретаторов в сторону увеличения скорости интерпретации. Разработаны JIT-компиляторы (Just-In-Time), запоминающие уже интерпретированные участки кода в машинных командах процессора и просто выполняющие эти участки при повторном обращении, например, в циклах. Это значительно увеличивает скорость повторяющихся вычислений.
Кроме реализации JVM для выполнения байт-кодов на компьютере еще нужно иметь набор функций, вызываемых из байт-кодов и динамически- компонующихся с байт-кодами. Этот набор оформляется в виде библиотеки классов Java.
Фирма SUN Microsystems - создатель технологии Java - бесплатно распространяет набор необходимых программных инструментов для полного цикла работы с этим языком программирования: компиляции, интерпретации, отладки, включающий и богатую библиотеку классов, под названием JDK (Java Development Kit).
Набор программ и классов JDK содержит:
- компилятор javac из исходного текста в байт-коды; интерпретатор java, содержащий реализацию JVM;
- облегченный интерпретатор jre (в последних версиях отсутствует);
- программу просмотра апплетов appietviewer, заменяющую браузер;
- отладчик jdb;
- дизассемблер javap;
- программу архивации и сжатия jar;
- программу сбора документации javadoc;
- программу javah генерации заголовочных файлов языка С;
- программу javakey добавления электронной подписи;
- программу native2ascii, преобразующую бинарные файлы в текстовые;
- программы rmic и rmiregistry для работы с удаленными объектами;
- программу serialver, определяющую номер версии класса;
- библиотеки и заголовочные файлы "родных" методов;
- библиотеки классов Java API (Application Programming Interface).
Кроме JDK, компания SUN отдельно распространяет еще и набор JRE (Java Runtime Environment) [4].
Набор программ и пакетов классов JRE содержит все необходимое для выполнения байт-кодов, в том числе интерпретатор java и библиотеку классов. Это часть JDK, не содержащая компиляторы, отладчики и другие средства разработки.
1.3 Технология Java Database Connectivity (JDBC)
JDBC (англ. Java DataBase Connectivity - соединение с базами данных на Java) - платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql, входящего в состав Java SE.
JDBC основан на концепции так называемых драйверов, позволяющих получать соединение с базой данных по специально описанному URL. Драйверы могут загружаться динамически (во время работы программы). Загрузившись, драйвер сам регистрирует себя и вызывается автоматически, когда программа требует URL, содержащий протокол, за который драйвер отвечает.
JDBC API содержит два основных типа интерфейсов: первый - для разработчиков приложений и второй (более низкого уровня) - для разработчиков драйверов.
Соединение с базой данных описывается классом, реализующим интерфейс java.sql.Connection. Имея соединение с базой данных, можно создавать объекты типа Statement, служащие для исполнения запросов к базе данных на языке SQL.
Существуют следующие виды типов Statement, различающихся по назначению:
— java.sql.Statement - Statement общего назначения;
— java.sql.PreparedStatement - Statement, служащий для выполнения запросов, содержащих подставляемые параметры (обозначаются символом '?' в теле запроса);
— java.sql.CallableStatement - Statement, предназначенный для вызова хранимых процедур.
Интерфейс java.sql.ResultSet позволяет легко обрабатывать результаты запроса.
Преимуществами JDBC считают:
— Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает;
— Код не меняется, если компания переходит на другую базу данных;
— Не нужно устанавливать громоздкую клиентскую программу;
— К любой базе можно подсоединиться через легко описываемый URL.
1.4 Кроссплатформенность Java-приложений
Создание приложений, действительно работающих на разных платформах - непростая задача. К сожалению, дело не ограничивается необходимостью перекомпиляции исходного текста программы для работы в другой среде. Много проблем возникает с несовместимостью программных интерфейсов различных операционных систем и графических оболочек, реализующих пользовательский интерфейс.
Программа на языке Java компилируется в двоичный модуль, состоящий из команд виртуального процессора Java. Такой модуль содержит байт-код, предназначенный для выполнения Java-интерпретатором. На настоящий момент уже созданы первые модели физического процессора, способного выполнять этот байт-код, однако интерпретаторы Java имеются на всех основных компьютерных платформах. Разумеется, на каждой платформе используется свой интерпретатор, или, точнее говоря, свой виртуальный процессор Java.
Если ваше приложение Java (или апплет) должно работать на нескольких платформах, нет необходимости компилировать его исходные тексты несколько раз. Вы можете откомпилировать и отладить приложение Java на одной, наиболее удобной для вас платформе. В результате вы получите кроссплатформенное приложение, способное работать в любой среде, поддерживающей процессор Java.
Внутренняя реализация библиотек классов, зависит от платформы. Однако все загрузочные модули, реализующие возможности этих библиотек, поставляются в готовом виде вместе с виртуальной машиной Java, поэтому программисту не нужно об этом заботиться. Для операционной системы Windows, например, поставляются библиотеки динамической загрузки DLL, внутри которых запрятана вся функциональность стандартных классов Java.
Абстрагируясь от аппаратуры на уровне библиотек классов, программисты могут больше не заботиться о различиях в реализации программного интерфейса конкретных операционных систем. Это позволяет создавать по-настоящему мобильные приложения, не требующие при переносе на различные платформы перетрансляции и изменения исходного текста [5].
1.5 Преимущества языка программирования Java
Одно из главных преимуществ языка Java - его независимость от платформы, на которой выполняются программы. Таким образом, один и тот же код можно запускать под управлением операционных систем Windows, Linux, FreeBSD, Solaris, Apple Mac и др. Это становится очень важным, когда программы загружаются посредством глобальной сети интернет и используются на различных платформах.
Другим не менее важным преимуществом Java является большая схожесть с языком программирования C++. Поэтому тем программистам, которые знакомы с синтаксисом С и С++ будет просто освоить Java.
Кроме того, Java - полностью объектно-ориентированный язык, даже в большей степени, чем С++. Все сущности в языке Java являются объектами, за исключением немногих основных типов (primitive types), например чисел. В свое время объектно-ориентированное программирование (ООП) заменило структурное программирование.
Важно и то, что разрабатывать на Java программы, которые не содержат ошибок, значительно легче, чем на С++.
Все дело в том, что разработчиками языка Java из компании Sun был проведен фундаментальный анализ программ на языке С++. Анализировались "узкие места" исходного кода, которые и приводят к появлению трудно вы явимых ошибок. Поэтому было принято решение проектировать язык Java с учетом возможности создавать программы, в которых были бы скрыты наиболее распространенные ошибки [5].
Для этого было сделано следующее:
- разработчики исключили возможность явного выделения и освобождения памяти, память в Java освобождается автоматически с помощью механизма сбора мусора. Программист застрахован от ошибок, которые возникают от неправильного использования памяти;
- введение истинных массивов и запрещение указателей. Программисты не могут стереть данные из памяти по причине неправильного использования указателей;
- полностью исключено множественное наследование. Оно было заменено новым понятием - интерфейсом, идея которого была позаимствована из языка Objective C.
Интерфейс дает программисту практически все, что тот может получить от множественного наследования, избегая при этом сложностей, которые возникают при управлении иерархиями классов.
Выбранная среда программирования хороша тем, что Java одинаково хорошо работает как под Windows, так и под linux и на других Unix системах.
2. СТРУКТУРЫ БАЗЫ ДАННЫХ. АППАРАТНОЕ И ПРОГРАМНОЕ ОБЕСПЕЧЕНИЕ
2.1 Логическая структура базы данных
Изучив заданную предметную область можно выделить 7 основных сущностей: Production, Suppliers, Supply, Description, Fuelling, Description_fuelling, Clients. Каждая из них содержит свои атрибуты определённого типа данных.
Описание всех сущностей и их атрибутов приведено в таблице 1.1.
Таблица 1.1 - Описание сущностей
Название сущности |
Название атрибута |
Тип данных |
Наличие ключа |
|
1 |
2 |
3 |
4 |
|
Production |
Id_production |
Счётчик |
Первичный простой ключ |
|
Type_of_production |
Текстовый |
- |
||
Description |
Текстовый |
- |
||
Quantity |
Числовой |
- |
||
Suppliers |
Id_suppliers |
Счётчик |
Первичный простой ключ |
|
Name_of_the_organization |
Текстовый |
- |
||
Phone |
Текстовый |
- |
||
Director |
Текстовый |
- |
||
Supply |
Id_supply |
Счётчик |
Первичный простой ключ |
|
Id_suppliers |
Счетчик |
Вторичный ключ |
||
Data_plan_supply |
Дата |
- |
||
Data_fact_supply |
Дата |
- |
||
Summ |
Числовой |
- |
||
Description |
Id_description_supply |
Счетчик |
Первичный ключ |
|
Id_supply |
Счетчик |
Вторичный ключ |
||
Id_production |
Счетчик |
Вторичный ключ |
||
Quantity |
Числовой |
- |
||
Summ |
Числовой |
- |
||
Fuelling |
Id_fuelling |
Счетчик |
Первичный ключ |
|
Id_client |
Счетчик |
Вторичный ключ |
||
Date_fuelling |
Дата |
- |
||
Summ |
Числовой |
- |
||
Number_of_the_card |
Числовой |
- |
||
Description_fuelling |
Id_ description_fuelling |
Счетчик |
Первичный ключ |
|
Id_fuelling |
Счетчик |
Вторичный ключ |
||
Id_production |
Счетчик |
Вторичный ключ |
||
Id_client |
Счетчик |
Вторичный ключ |
||
Summ |
Числовой |
- |
||
Clients |
Id_client |
Счетчик |
Первичный ключ |
|
FIO |
Текстовый |
- |
||
Phone |
Числовой |
- |
||
Number_of_the_card |
Числовой |
- |
Между сущностями определяются связи. Все связи типа один ко многим:
- связь между сущностями «Supply» (на стороне один) и «Description» (на стороне многие) по полю «Id_supply»;
- связь между сущностями «Supplier» (на стороне многие) и «Supply» (на стороне один) по полю «Id_supplier»;
- связь между сущностями «Client» (на стороне один) и «Fuelling» (на стороне многие) по полю «Id_client»;
- связь между сущностями «Production» (на стороне один) и «Description» (на стороне многие) по полю «Id_production»;
- связь между сущностями «Production» (на стороне один) и «Description_fuelling» (на стороне многие) по полю «Id_production»;
- связь между сущностями «Fuelling» (на стороне один) и «Description_fuelling» (на стороне многие) по полю «Id_fuelling».
Так же связи могут быть идентифицирующими или неидентифицирующими. Если задана идентифицирующая связь то это значит, что каждому экземпляру дочерней сущности должен соответствовать хотя бы один экземпляр родительской [7]. Неидентифицирующая связь означает, что экземпляр дочерней сущности может быть идентифицирован без использования экземпляра родительской сущности [7]. Связь между сущностями «Supply» и «Supplier» является неидентифицирующей, т.е. не все поставки могут осуществляться одним поставщиком. Все остальные связи идентифицирующие.
Все первичные ключи в сущностях являются простыми - состоят из одного поля и однозначно идентифицируют запись.
2.2 Физическая структура базы данных
По созданной логической структуре была разработана база данных средствами СУБД MS SQL Server. В неё входят 7 таблиц: production, suppliers, supply, description, fuelling, description_fuelling, clients. В свою очередь таблицы содержат столбцы.
В таблицу «Production» входят поля: «Id_production» типа int, «Type_of_production» типа varchar (20), «Description» типа varchar (20), «Quantity» типа int.
В таблицу «Suppliers» - «Id_suppliers» типа int, «Name_of_the_organization» типа varchar(20), «Phone» типа int, «Director» типа varchar(20).
В таблицу «Supply» - «Id_supply» типа int, «Id_suppliers» типа int, «Data_plan_supply» типа data, «Data_fact_supply» типа data, «Summ» типа money.
В таблицу «Description» - «Id_description» типа int, «Id_supply» типа int, «Id_production» типа int, «Quantity» типа int, «Summ» типа money.
В таблицу «Fuelling» - «Id_fuelling» типа int, «Id_clients» типа int, «Date_fuelling» типа date, «Summ» типа money, «Number_of_the_card» типа int.
В таблицу «Description_fuelling» - «Id_description_fuelling» типа int, «Id_fuelling» типа int, «Id_production» типа int, «Id_clients» типа int, «Summ» типа money.
В таблицу «Clients» - «Id_clients» типа int, «FIO» типа varchar (20), «Phone» типа int, «Number_of_the_card» типа int.
Столбцы всех первичных ключей таблицы являются идентифицирующими, т.е. значения этих полей генерируются автоматически
Диаграмма созданной базы данных приведена на рисунке 2.1.
Рисунок 2.1 - Диаграмма базы данных
Данные таблицы соответствуют требованиям нормализации реляционных БД. Таблицы находятся в 1НФ, т.к. все их поля являются простыми (неделимыми), нет повторяющихся полей и каждый столбец таблиц хранит одно-единственное значение и не является ни списком, ни множеством значений. Таблицы находятся во 2НФ, т.к. они находятся в 1НФ, имеют простые первичные ключи и каждое неключевое поле функционально зависит от первичного ключа. Таблицы находится в 3НФ, т.к. они находятся во 2НФ и все не ключевые поля являются взаимно-независимыми [7].
Так же для данной базы данных были разработаны представления [6]:
- выводит подробные сведения о заправках клиентов. На рисунке 2.2 приведен SQL-код представления;
Рисунок 2.2 - SQL-код представления «Inf_about_fuelling»
- выводит сведения поставках на АЗС. На рисунке 2.3 приведен SQL-код представления;
Рисунок 2.3-SQL-код представления «Inf_about_supply»
Целостность базы данных обеспечивается путём задания каскадного удаления и изменения данных в свойствах отношений.
2.3 Аппаратное и программное обеспечение системы
Для работы с базой данных необходимо наличие на компьютере установленного программного комплекса Microsoft Access. Перечислим минимальные системные требования для правильной работы Microsoft Access:
- компьютер и процессор: процессор с тактовой частотой 1 гигагерц (ГГц) или выше (x86) либо 64-разрядный процессор с набором инструкций SSE2. Для Mac: процессор Intel;
- оперативная память: 1 ГБ ОЗУ (для 32-разрядной версии) или 2 ГБ ОЗУ (для 64-разрядной версии). Для Mac: 1 ГБ ОЗУ;
- жесткий диск: 3,0 ГБ свободного места на жестком диске. Для
Mac: 2,5 ГБ, форматирование жесткого диска типа HFS+;
- дисплей: разрешение экрана 1366 x 768. Для Mac: разрешение экрана 1280 x 800;
- графика: для использования аппаратного ускорения графики необходима графическая карта с поддержкой DirectX 10;
- операционная система: Windows 7, Windows 8, Windows Server 2008 R2 или Windows Server 2012. Для Mac: Mac OS X 10.6 или более поздней версии;
- версия .Net: 3.5, 4.0 или 4.5;
- другие: для использования Интернета необходимо подключение к Интернету (может быть платным). Для использования мультисенсорной технологии требуется устройство с поддержкой сенсорного ввода. Новые сенсорные возможности оптимизированы для использования в Windows 8.
Чтобы получить доступ к данным из базы данных Microsoft Access с помощью драйвера Драйвер Microsoft JDBC для Microsoft Access, на компьютере должны быть установлены следующие компоненты:
- Драйвер Microsoft JDBC для SQL Server
- Среда выполнения Java
Требования к среде выполнения Java:
Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии. Среда разработки NetBeans по умолчанию поддерживала разработку для платформ J2SE и J2EE. Драйвер JDK включает в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.
Системные требования для Java:
Windows:
- Windows 8 (Настольные ПК)
- Windows 7
- Windows Vista SP2
- Windows Server 2008
- Windows Server 2012 (64-разрядная версия)
- RAM: 128 МБ; 64 МБ для Windows XP (32-разрядная версия)
- Дисковое пространство: 124 МБ
- Браузеры: Internet Explorer 7.0 и выше, Firefox 3.6 и выше, Chrome
Mac OS X:
- Mac на базе Intel, на котором запущен Mac OS X 10.7.3 (Lion) или более поздней версии.
- Полномочия администратора для установки
- 64-битный браузер
- Для запуска Java 7 на Mac OS X требуется 64-битный браузер (например, Safari или Firefox). 32-разрядные браузеры, такие как Chrome, не поддерживают Java 7 на платформе Mac.
Linux:
- Oracle Linux 5.5+
- Oracle Linux 6.x (32-разрядная версия)*, 6.x (64-разрядная версия)**
- Red Hat Enterprise Linux 5.5+, 6.x (32-разрядная версия)*, 6.x (64-разрядная версия)**
- Ubuntu Linux* 10.04 и выше
- Suse Linux Enterprise Server* 10 SP2, 11.x
- RAM: 64 МБ
- Дисковое пространство: 58 МБ
- Браузеры: все ОС, поддерживающие Firefox 3.6 и выше
3. ОПИСАНИЕ РАЗРАБОТАННОГО ПРИЛОЖЕНИЯ
3.1 Структура программного комплекса
Программное обеспечение для решения поставленной задачи было реализовано в среде разработки Eclipse Kepler на языке Java. Данная среда разработки позволяет быстро, эффективно и просто создать полноценное и многофункциональное приложение.
Проект состоит из 5 основных классов таких как, Form, MyDbConnection, DateTableListModel, DTableModel, JDataBaseComboBox .
Более подробное описание классов можно найти в таблице 3.1.
Таблица 3.1 - Описание классов программы
Класс |
Описание |
|
Form |
Класс главной формы. Реализует интерфейс пользователя. |
|
MyDbConnection |
Класс, служащий для подключения проекта к базе данных. |
|
DateTableListModel |
Класс, отвечающий за правильное удаление, редактирование, добавление и сохранение изменений данных в таблицы. |
|
DTableModel |
Класс, отвечающий за целостный перенос данных из таблиц на форму. |
|
JDataBaseComboBox |
Класс, отвечающий за правильную подстановку данных из выпадающих списков в таблицы. |
Класс MyDbConnection представленный в таблице 3.2 - класс подключения проекта к базе данных. В этом классе реализованы методы для настройки соединения с компонентом SQL Server.
Таблица 3.2 - Содержимое класса MyDbConnection
Имя |
Вид элемента |
Тип |
Описание |
|
Init |
Метод |
void |
Создание подключения |
|
getMyConnection |
Метод |
void |
Возвращение строки подключения |
|
Close |
Метод |
void |
Закрытие |
|
Destroy |
Метод |
void |
Разрыв соединения |
Класс DateTableListModel, представленный в таблице 3.3, служит для корректной работы с информацией, находящейся в базе данных, также отвечает за правильную подстановку, удаление, или изменение данных.
Таблица 3.3 - Содержимое класса DateTableListModel
Имя |
Вид элемента |
Тип |
Описание |
|
getElementAt |
Метод |
Void |
Получение элемента |
|
getSize |
Метод |
Int |
Получение размера элемента |
|
getSelectedItemId |
Метод |
Void |
Получение индекса элемента |
|
addElement |
Метод |
Void |
Добавление элементов |
|
setSelectedIndex |
Метод |
Void |
Получение данных по индексу |
|
getSelectedItem |
Метод |
Void |
Присваивание элементу значений |
|
setSelectedItem |
Метод |
Void |
Получение значений |
|
Init |
Метод |
Void |
Вставка данных |
база данные java приложение
Класс DTableModel, представленный в таблице 3.4, реализует методы, предназначенные для корректного занесения данных из базы в таблицы приложения.
Таблица 3.4 - Содержимое класса DTableModel
Имя |
Вид элемента |
Тип |
Описание |
|
Colnum |
счетчик |
Int |
Количество столбцов |
|
Init |
метод |
void |
Вставка данных в таблицу |
|
getValueAt |
метод |
Void |
Получение числа записей |
|
getRowCount |
метод |
Int |
Получение числа строк |
|
getColumnCount |
метод |
Int |
Получение количества столбцов |
|
getColumnName |
метод |
string |
Получение имени столбцов |
Класс JDataBaseComboBox, представленный в таблице 3.5, отвечает за корректный выбор данных для отображения их в выпадающих списках, также реализованы методы для правильной подстановки и выборки этих данных из выпадающих списков.
Таблица 3.5 - Содержимое класса JDataBaseComboBox
Имя |
Вид элемента |
Тип |
Описание |
|
getSelectedItemId() |
Метод |
void |
выборка элементов |
|
addElement() |
Метод |
Void |
добавление элементов |
|
setSelectedIndex() |
Метод |
Void |
Присваивание элементу значение индекса |
|
Init() |
Метод |
Void |
Вставка элемента в таблицу |
Для графического отображения данных реализован основной класс Form, который служит для отображения, редактирования, удаления или вставки данных в таблицы базы данных, также служит для просмотра запросов, реализованных в проекте [7].
Исходный код проекта представлен в приложении А.
3.2 Руководство пользователя
Для работы с базой данных пользователю не нужно иметь специальных навыков, достаточно лишь ознакомиться с данной пояснительной запиской или с литературными источниками, использовавшимися для выполнения курсовой работы, список которых приведен ниже.
Разработанное приложения позволяет автоматизировать работу автозаправки, а также вносить изменения.
Для отображения и редактирования информации в базе данных, а также для выполнения дополнительных функций по обработке данных был создан набор форм. Пользователь имеет возможность перейти к редактированию любой таблицы путём выбора надписи с её именем в списке.
Для запуска программы следует запустить jar-файл, который находится в папке с проектом: Курсовая\Kursovaja\dist\Kursovaja.jar или открыть проект в среде разработки приложений Eclipse Kepler. В запустившейся программе нажать функциональную клавишу F6, после чего проект будет собран и запущен. После открытия проекта на экране появится главная форма, отображающая таблицу «Информация о продукции», (по умолчанию можно задать отображение любой таблицы), изображённая на рисунке 3.1.
Рисунок 3.1 - Вид главной формы
В левом верхнем углу формы приложения мы можем увидеть надписи «Просмотр справочной информации» и «Дополнительные сведения». Если нажать клавишей на эти названия то мы можем увидеть выпадающие списки с информацией в них, изображённые на рисунках 3.2, 3.3.
Рисунок 3.2 - Выпадающий список «Просмотр справочной информации»
Рисунок 3.3 - Выпадающий список «Дополнительные сведения»
На форме можно также увидеть такие кнопки как «Добавить», «Изменить», «Удалить», «Закрыть», нажав на которые вы можете добавить информацию в таблицы, изменить эту информацию, а также удалить информацию в таблице и закрыть форму.
3.3 Описание результатов
После открытия главной формы, пользователю необходимо выбрать нужную ему таблицу базу данных и работать с ней, которые в свою очередь отображают, добавляют новые, удаляют и изменяют имеющиеся данные.
При выборе пункта меню «Информация о продукции», отображается таблица, представленная на рисунке 3.4. В таблице отображаются поля ID, Type_of_production, Description, Quantity. Возможно редактирование, добавление, удаление данных в таблицу.
Рисунок 3.4 - Вид таблицы «Информация о продукции»
При выборе пункта меню «Информация о поставках», отображается таблица, представленная на рисунке 3.5. В таблице отображаются поля ID, ID_supplier, Date_of_the_plan_supply, Date_of_the_fact_supply, Summ. Возможно редактирование, добавление, удаление.
Рисунок 3.5 - Вид таблицы «Информация о поставках»
При выборе пункта меню «Информация о поставщиках», отображается форма, представленная на рисунке 3.6. На форме представлена таблица с данными: Id, Name_of_the_organization, Phone, Director. Возможно редактирование, добавление и удаление данных.
Рисунок 3.6 - Вид таблицы «Информация о поставщиках»
При выборе пункта меню «Описание поставок», отображается таблица, показанная на рисунке 3.7. На форме представлена таблица с данными: Id, Id_supply, Id_production, Quantity, Summ. Возможна правка, удаление и добавление данных.
Рисунок 3.7 - Вид таблицы «Описание поставок»
При выборе пункта меню «Информация о заправках автомобилей», отображается форма, показанная на рисунке 3.8. На форме представлена таблица с данными Id_client, Summ_fuelling, Date_fuelling. Возможно редактирование, добавление, удаление данных.
Рисунок 3.8 - Вид формы «Информация о заправках автомобилей»
При выборе пункта меню «Информация о клиентах», отображается форма, показанная на рисунке 3.9. На форме представлена таблица с данными. Возможно редактирование, добавление и удаление данных.
Рисунок 3.9 - Вид формы «Информация о клиентах»
При выборе пункта меню «Дополнительные сведения - Сведения о поставках на АЗС» отображается форма, показанная на рисунке 3.10. Параметры в запросе задаются в текстовых полях. На форме показаны полные сведения о наименовании продукта, датах поставок и сумм.
Рисунок 3.10 - Вид формы «Сведения о поставках на АЗС»
При выборе пункта меню «Запросы - Сведения о заправках авто», отображается форма, показанная на рисунке 3.11. На странице показаны сведения о дате заправки, виде топлива, сумме заправки, количестве заправляемого топлива.
Рисунок 3.11 - Вид формы «Сведения о заправках авто»
На страницах, в которых допускается изменение существующих данных, редактирование производится следующим образом: достаточно нажать на строку, которую надо изменить, в текстовых полях ввести новые данные и выбрать кнопку «Изменить», измененная запись будет сохранена.
Для добавления данных нужно внести данные в тестовые поля, нажать кнопку «Добавить». Если данные все введенные данные будут допустимы, запись добавится в таблицу, если нет - продолжить добавление.
Для удаления информации нужно выделить нужную строку и нажать кнопку «Удалить». Данные будут удалены.
Разработанная информационная система имеет интуитивно понятный интерфейс и организована так, что с ней может работать пользователь с минимальными знаниями и навыками работы с компьютером.
Требования к пользователю:
- умение пользоваться компьютерной мышью и клавиатурой;
- ознакомление с предметной областью задачи;
- понимание работы программы для её оценки.
Разработанная информационная система позволяет добавлять, редактировать, удалять и отображать данные о заправках, о поставках продукции. А также данные о поставщиках, о продукции. Кроме того имеются некоторые другие дополнительные возможности обработки данных, описанные в разделе «Руководство пользователя». Программа «Заправочная станция» позволит автоматизировать работу заправки, что уменьшит труд и затрачиваемое время.
Никаких ограничений и требований на режим работы и запуска программы не налагается. Средства восстановления программы после сбоя не предусмотрены.
Для исключения бесполезной, неинформативной или противоречивой информации, введённой пользователем, в приложении осуществляется проверка вводимых данных. Критерии проверки могут быть самыми разными, начиная с того, вводились ли данные вообще, и заканчивая проверкой типа данных.
Также ввод корректных данных обеспечивается использованием выпадающих списков значений для определённых полей. Пользователь не вводит данные с клавиатуры, а лишь выбирает значение из предлагаемого списка.
Пример выпадающих списков, используемых при вводе данных приведен на рисунке 3.12.
Рисунок 3.12 - Пример выпадающих списков, используемых при вводе данных
3.4 Верификация разработанных программных средств
Для проверки правильности работы программы убедимся в правильности выводимых данных. Для этого откроем наше приложение и сравним данные, которые выводятся в таблицах этого приложения и записи, которые находятся в базе данных Microsoft Access. Для сравнения возьмем таблицу Клиенты, показанные на рисунках 3.13 и 3.14
Рисунок 3.13 - Таблица «Клиенты» в базе данных Microsoft Access
Рисунок 3.14 - Таблица «Клиенты»
Как видно из скриншотов выше, данные в приложении и в базе данных полностью совпадает, следовательно, программа работает корректно.
ЗАКЛЮЧЕНИЕ
Курсовая работа - этап обучения студента, где проявляются навыки выполнения самостоятельной научно-исследовательской работы и овладения методикой исследования и эксперимента при решении актуальной задачи в области избранной студентом специальности.
Любая курсовая работа является неотъемлемой частью обучения студентов. В результате выполнения курсовой была спроектирована информационная система «Автозаправка».
В ходе разработки приложения для курсового проекта, были учтены все требования. А так же учтены пожелания пользователя в легкости и доступности данной программы.
В итоге, мы получили не броский и приятный глазам пользователя интерфейс, который не позволяет уставать пользователю. А так же программа реализует наглядный, пошаговый визуализатор.
Итогом курсовой работы стало приложение базы данных, осуществляющее переход из одной таблицы на другую и выполнения операций с данными, а именно: добавление, удаление, правка. Сначала был проведён анализ предметной области, затем был разработан алгоритм работы приложения. Приложение имеет простой и понятный интерфейс, который позволяет пользователям без труда работать с данной ИС, поскольку при разработке были использованы общепринятые стандарты.
Данная курсовая работа даёт возможность глубже изучить пройденный материал, позволяет закрепить навыки решения поставленных задач и научиться поиску необходимой для этого информации, а так же помогла освоить на практике все теоретические знания.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. IBM. Введение в программирование на Java / IBM // Изучение технологий Java [Электронный ресурс]. - Режим доступа: http://www.ibm.com/developerworks/ru/java/newto. - Дата доступа: 9.12.2015.
2. Монахов, В. Язык программирования Java и среда NetBeans. / В. Монахов - СПб.: БХВ - Петербург, 2011. - 704 с.
3. Блинов, И. Java. Промышленное программирование / И. Блинов, В. Романчик - Минск: УниверсалПресс, 2007. - 704с.
4. Вирт, М. Алгоритмы и структуры данных. / М. Вирт - М.: Мир, 1989. - 236 с.
5. Кнут, Д. Искусство программирования для ЭВМ. / Д. Кнут - М.: Мир, 1978. - 164 с.
6. Хомоненко, А. Базы данных: Учебник для высших учебных заведений. / А.Д. Хомоненко, В.М. Цыганков, М.Г. Мальцев - 5-е изд., доп. - М.: Бином-Пресс; СПб.: КОРОНА принт, 2006. -736 с.
7. Эккель, Б. Философия Java. Библиотека программиста. / Б. Эккель - 4-е изд.,доп. - СПб.: Питер, 2009. - 640с.
8. Хабибулин, И. Самоучитель Java. / И.Ш. Хабибулин. - Спб.: БХВ-Петербург, 2001. - 464с.
ПРИЛОЖЕНИЕ А
(обязательное)
Исходный код главной формы
package MyData;
import java.awt.EventQueue;
import java.sql.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.GridLayout;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JMenu;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.UIManager;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JComboBox;
import java.awt.Color;
import java.awt.Font;
import java.awt.SystemColor;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import java.awt.Component;
import javax.swing.SwingConstants;
import java.awt.Rectangle;
import java.awt.Point;
public class Fram extends JFrame {
private JPanel contentPanel;
private JPanel ProdDataPanel;
private JPanel SuppliersDataPanel;
private JPanel SupplyDataPanel;
private JPanel DescriptionDataPanel;
private JPanel FuellingDataPanel;
private JPanel DescFuellingDataPanel;
private JPanel ClientsDataPanel;
private JTable dataTable;
private JPanel viewDataPanel;
private JPanel viewDataPanel1;
private JPanel viewDataPanel2;
private JPanel viewDataPanel3;
private JPanel viewDataPanel4;
private JScrollPane scrollPanel;
private MyDbConnection mdbc;
private java.sql.Statement stmt;
private JTextField textFieldIP;
private JTextField textFieldIP1;
private JTextField textFieldIP2;
private JTextField textFieldIP3;
private JTextField textFieldIP4;
private JTextField textFieldIP5;
private JTextField textFieldIP6;
private JTextField textFieldIP7;
private JTextField textFieldIP8;
private JTextField textFieldTypeProd;
private JTextField textFieldDescProd;
private JTextField textFieldQuantityProd;
private JTextField textFieldNameSupplier;
private JTextField textFieldPhoneSupplier;
private JTextField textFieldDirector;
private JTextField textFieldTitle;
private JTextField textFieldDoTPS;
private JTextField textFieldDoTFS;
private JTextField textFieldSummSupply;
private JTextField textFieldSQuantity;
private JTextField textFieldSSumdesc;
private JTextField textFieldDateFuelling;
private JTextField textFieldSummFueling;
private JTextField textFieldFIOC;
private JTextField textFieldPhoneClient;
private JTextField textFieldNCart;
private JDataBaseComboBox IdProduct2;
private JDataBaseComboBox IdSupply;
private JDataBaseComboBox IdProduct;
private JDataBaseComboBox IdClient;
private JDataBaseComboBox IdSupplier;
private JDataBaseComboBox IdFuelling;
private JMenuBar menuB;
private JMenu mnTable;
private JMenuItem mntmProductions;
private JMenuItem mntmSuppliers;
private JMenuItem mntmSupply;
private JMenuItem mntmDescription;
private JMenuItem mntmFuelling;
private JMenuItem mntmDescFuelling;
private JMenuItem mntmClients;
private JPanel sendPanel;
private enum NameTable{Production,Suppliers,Supply,Description,Fuelling,Description_fuelling,Clients,Inf_about_supply,Inf_about_fuelling}
private enum JDBC{Null,Insert,Update,Delete}
private NameTable SelectTable=NameTable.Production;
private JDBC jDBC=JDBC.Null;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Fram frame = new Fram();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Fram() {
setAlwaysOnTop(true);
setBackground(Color.LIGHT_GRAY);
setTitle("Заправочная станция");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0, 0, 918,633 );
contentPanel = new JPanel();
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPanel);
contentPanel.setLayout(null);
scrollPanel = new JScrollPane();
scrollPanel.setBounds(10, 328, 882, 256);
contentPanel.add(scrollPanel);
sendPanel = new JPanel();
sendPanel.setBounds(556, 61, 346, 45);
contentPanel.add(sendPanel);
sendPanel.setLayout(new GridLayout(4, 0, 5, 15));
//панель для редактирования
RedactionProdPanel();
RedactionSupplyPanel();
RedactionSuppliersPanel();
RedactionDescFuellingPanel();
RedactionClientsPanel();
RedactionFuellingPanel();
RedactionDescriptionPanel();
RedactionViewPanel();
RedactionViewPanel1();
RedactionViewPanel2();
RedactionViewPanel3();
RedactionViewPanel4();
FalsePanel();
ProdDataPanel.setVisible(true);
sendPanel.setVisible(true);
Menu();//меню
try {
QueryTable();//запролнение таблицы из бд
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**Отображения конкретной таблицы */
private void ViewTable()
{
dataTable = new JTable();
scrollPanel.setViewportView(dataTable);
dataTable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
dataTable.getSelectionModel().addListSelectionListener(TableValueChanged());
}
/**Метод реализующий выбор строки таблицы*/
private ListSelectionListener TableValueChanged()
{
return new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent e) {
// TODO Auto-generated method stub
if (e.getValueIsAdjusting() == false)
{
switch (SelectTable) {
case Production:
SelectedRowTableProd(dataTable.getSelectedRow());
break;
case Suppliers:
SelectedRowTableSupplier(dataTable.getSelectedRow());
Подобные документы
История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.
курсовая работа [795,9 K], добавлен 14.12.2012Java DataBase Connectivity как платформенно-независимая технология, позволяющая из программы на Java получить доступ к любой SQL-совместимой базе данных, принцип ее работы и использование. Порядок построения данной системы, основные классы и интерфейсы.
презентация [156,6 K], добавлен 21.06.2014- Создание базы данных автомобилестроительного предприятия в виде настольного приложения на языке Java
Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.
курсовая работа [2,3 M], добавлен 16.12.2013 Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.
курсовая работа [549,2 K], добавлен 23.12.2015Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.
курсовая работа [197,5 K], добавлен 19.11.2009Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.
курсовая работа [276,1 K], добавлен 19.07.2014Обзор программных средств разработки приложений и обоснование выбора языка программирования. Классификация приложений для работы с базами данных. Функциональная структура базы данных с указанием назначения программных модулей, руководство пользователя.
дипломная работа [645,3 K], добавлен 21.11.2010Анализ возможных подходов к созданию web-приложения с использованием программирования Java и CGI. Разработка структуры базы данных и реализация полученной модели в рамках СУБД. Обеспечение диалога CGI-программы с пользователем, используя браузер.
курсовая работа [310,9 K], добавлен 07.08.2011Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.
курсовая работа [508,1 K], добавлен 10.11.2014Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.
курсовая работа [208,6 K], добавлен 03.12.2013