Разработка программы построения объемных гистограмм с помощью языка программирования Java
Документация Краткое руководство пользователя Для начала нужно запустить программу. После нужно ввести данные для построения диаграмм и нажать на кнопку «побудувати графік». После чего на экране будут построенные 7 объемных гистограмм. Для того что бы построить графики еще раз — вводим данные и повторно нажимаем на клавишу. Что бы посмотреть информацию о программе, нажимаем в меню Edit… Читать ещё >
Разработка программы построения объемных гистограмм с помощью языка программирования Java (реферат, курсовая, диплом, контрольная)
- Вступление
- 1. Описание и анализ предметной области
- 1.1 Постановка задачи
- 1.2 Анализ предметной области
- 1.3 Формирование требований
- 2. Описание классов и методов
- 2.1 Класс Window
- 2.2 Класс GraphicPanel
- 3. Реализация кода программы
- Вывод
- Список использованной литературы
- Приложения
Вступление
Сегодня существует множество диаграмм для сравнения статистических данных. Однако, я хотел выбрать такую диаграмму, в которой можно легко и просто сравнить урожайность. Объемная гистограмма это наглядный пример такой реализации. Сперва может показаться, что тема довольно проста, и в программе нет ничего сложного, но передо мной встала задача автоматического изменения масштаба диаграмм при изменении главного окна. Ведь если графики будут выходить за размеры окна, то это будет не наглядно выглядеть. Именно поэтому основное время разработки программы я посвятил точному отображению графиков, что бы во время работы с программой пользователь легко и просто мог посмотреть результаты.
1. Описание и анализ предметной области
1.1 Постановка задачи
Необходимо разработать программу, реализующую построение объемной гистограммы. В процессе реализации необходимо использовать свойства языка программирования Java.
1.2 Анализ предметной области
Объемная гистограмма — это столбчатая диаграмма, в которой пользователь наглядно сравнивает полученные статистические данные или анализирует их изменения за определённый промежуток времени. Построение столбчатой диаграммы заключается в изображении статистических данных в виде горизонтальных прямоугольников. Каждый прямоугольник изображает величину уровня данного статистического ряда. Все сравниваемые показатели выражены одной единицей измерения, поэтому удаётся сравнить статистические показатели данного процесса.
1.3 Формирование требований
Необходимо создать программу, которая должна обеспечивать пользователю такие возможности:
1. Возможность графически отобразить статистические данные урожайности.
Пользователь сможет наглядно сравнить урожайность за последние 7 лет.
2. Возможность отображать диаграммы в соответствии с размером окна.
гистограмма объемная язык программирование Необходимо создать свойство, которое будет отображать диаграммы в соответствии с размером окна. Таким образом, если будет увеличиваться (уменьшаться) окно программы — соответственно будет изменяться масштаб отображения данных.
3. Необходимо создать удобный интерфейс.
В программе не должно быть сбоев, зависаний и ошибок. Также, пользователь должен иметь возможность ввести новые данные, не выходя из программы. Должно быть удобное меню и удобная система внесения новых данных.
2. Описание классов и методов
2.1 Класс Window
Этот класс наследует класс JFrame и является главным окном игры. Этот класс содержит в себе все графические компоненты программы. Окно состоит из кнопки «построить график», поля диаграммы и меню. Методы этого класса представлены ниже.
2.1.1 Метод openCreateWindow
Метод реализует всплывание информационного окна, в котором отображена: краткая информация об авторе, номер варианта и тип диаграммы.
2.1.2 Метод fillGraf
Метод считывает входящую информацию и выдает соответствующее сообщение, если данные введены не правильно.
2.2 Класс GraphicPanel
Класс является наследником класса JPanel, и содержит в себе метод paintComponent, который выполняет рисование диаграмм в цвете.
2.3 Класс Yield
Класс, который содержит в себе все значения для построения гистограмм.
2.3.1 Метод maxElem выполняет вычисления максимального элемента, для сопоставления диаграмм между собою.
2.3.2 Метод fillingX
Метод выполняет вычисления оси координат X, и возвращает полученный массив координат.
2.3.3 Метод fillingY
Метод аналогичный методу fillingX, только выполняется вычисления оси координат Y.
3. Реализация кода программы
В качестве примера я выбрал метод paintComponent () класса GraphicPanel, который реализует рисование объемных гистограмм. Я пошагово выполню алгоритм рисования диаграмм, после того как пользователь ввел данные урожайности за последние 7 лет. После того как данные были введены, начинается рисования графика, с помощью функции drawPolyline () объекта Graphics, в качестве параметров передается массив оси координат X, массив оси координат Y и количество точек. Когда график построен, происходит заливка цветом, с помощью функции fill3DRect () объекта Graphics, в качестве параметров передаются: начальные координаты X и Y, ширина и высота которая должна быть зарисована, а также логическое значения, которое определяет размещение прямоугольника над или под поверхностью.
Вывод
В ходе выполнения курсовой работы я разработал программу построения объемных гистограмм с помощью языка программирования Java. Я расширил свои знания в языке Java, узнал широту его возможностей (в частности графические библиотеки).
Кроме того, я научился анализировать свой проект, и визуально отображать его содержимое (диаграммы классов, объектов). Я также научился формулировать требования к проекту и реализовывать их программно.
Также, я расширил свои знания в области создания алгоритмов. Приобретенные знания я смогу использовать в дальнейшем.
1. Герберт Шилдт. Java. Руководство для начинающих. Издание 4
2. Википедия — свободная энциклопедия [Электронный ресурс]. — http://wikipedia.org
3. [Электронный ресурс]. — http://berkut. homelinux.com
Приложения
Приложение А
Фрагменты кода игры
// Класс главного окна
public class Window extends javax. swing. JFrame {
// Метод открытия информационного окна
public void openCreateWindow () {
JFrame frame = new JFrame ();
JOptionPane. showMessageDialog (null, «Студента групи 2141n Кобаля Романа»
+ «Анаталійовичаn варіант № 10nТип графіку — об'ємна гістограма», «Інформація», WIDTH);
}
// Метод считывает веденные данные
void fillGraf () {
String [] n = jTextField1. getText (). trim (). split (««);
int [] x = new int [n. length];
if (n. length > 7) {
jLabel4. removeAll ();
jLabel4. setText («Ви ввели забагато значень, введіть 7 чисел»);
}
if (n. length < 7) {
jLabel4. removeAll ();
jLabel4. setText («Ви ввели не всі значення, введіть 7 чисел»);
} else {
jLabel4. removeAll ();
jLabel4. setText («Якщо бажаете побудувати нові графіки, введіть нові 7 значень»);
for (int i = 0; i < n. length; i++) {
x [i] = Integer. parseInt (n [i]);
}
graphicPanel4. setUroshau (x);
repaint ();
}
}
/*Класс, представляющий собой рисования диаграмм и заполнение их цветом*/
public class GraphicPanel extends javax. swing. JPanel {
int [] uroshau = {100, 100, 100, 100, 100, 100, 100};
public GraphicPanel () {
initComponents ();
}
public void setUroshau (int [] setUroshau) {
uroshau = setUroshau;
}
protected void paintComponent (Graphics g) {
super. paintComponent (g);
int [] X;
int [] Y;
int width = getWidth () — 1;
int height = getHeight () — 1;
int dy = height / 7;
g. setColor (new Color (0, 0, 0));
g. drawLine (0, 0, width, 0);
g. drawLine (0, 0, 0, height);
Y = Yield. fillingY (height);
for (int i = 0; i < 7; i++) {
X = Yield. fillingX ((int) uroshau [i], width, uroshau);
g. setColor (new Color (0, 0, 0));
g. drawString (««+ (2012;i), X — 60, Y +10);
g. setColor (new Color (0, 0, 0));
g. drawPolyline (X, Y,
7);
g. setColor (new Color (12, 25, 205));
g. fill3DRect (X [3], Y [3], uroshau [i] * X — 60, Y — Y [3], true);
g. setColor (new Color (255, 25, 205));
g. fillPolygon (X, Y,
4);
for (int j = 0; j < 7; j++) {
Y [j] += dy;
}
}
}
}
/*Класс представляющий собой вычисления координат для построения гистограмм*/
public class Yield {
// Метод находит максимальный элемент
public static int maxElem (int [] X) {
int max = X [0];
for (int i = 0; i < X. length; i++) {
if (X [i] > max) {
max = X [i];
}
}
return max;
}
// Метод вычисляет координаты оси Х
public static int [] fillingX (int X, int width, int [] uroshau) {
int zapolnenie = (width / maxElem (uroshau));
int [] x = new int [8];
x = X * zapolnenie;
x = (X * zapolnenie) — (6 * X * zapolnenie / 100);
x = 60;
x = 60;
x = x [0];
x = x [4];
x = 60;
x = zapolnenie;
return x;
}
// Метод вычисляет координаты оси Y
public static int [] fillingY (int height) {
int [] y = new int [7];
y = 10;
y = y + (height/7*2/10);
y = 10;
y = y [0];
y = y [0];
y = y + (height/7*6/10);
y = y [5];
return y;
}
} Приложение Б
Документация Краткое руководство пользователя Для начала нужно запустить программу. После нужно ввести данные для построения диаграмм и нажать на кнопку «побудувати графік». После чего на экране будут построенные 7 объемных гистограмм. Для того что бы построить графики еще раз — вводим данные и повторно нажимаем на клавишу. Что бы посмотреть информацию о программе, нажимаем в меню Edit — Информація. Для выхода нажимаем File — Вихід.
Приложение В
Снимки экранных форм представлены на следующих рисунках
Рисунок 1. Окно программы после открытия Рисунок 2. Окно после введения данных Рисунок 3. Информационное окно