Создание приложения на Java

Расчет заработной платы

Математическая модель:

Создание приложения на Java - student2.ru

Создание приложения на Java - student2.ru

Создание приложения на Java - student2.ru

Создание приложения на Java - student2.ru ,

где

Создание приложения на Java - student2.ru – сумма выдачи

Создание приложения на Java - student2.ru – оклад сотрудника;

Создание приложения на Java - student2.ru – количество календарных дней;

Создание приложения на Java - student2.ru – количество отработанных дней;

Создание приложения на Java - student2.ru – премия сотруднику в %;

Создание приложения на Java - student2.ru – подоходный налог в %;

Создание приложения на Java - student2.ru – соц.фонд в %;

Создание приложения на Java - student2.ru – проф.взнос в %;

Математическая модель используется для всех сотрудников.

Данный пример расчета заработной платы сотрудников был выполнен в среде разработки NetBeans IDE 8.1., база данных – MySQL Workbench 6.2

Создание базы данных

1.Создайте новую базу данных в MySQL Workbench. Для этого нажмите в левой области Navigartor, правой кнопкой мыши, после чего выберите Create Scheme.

Смотрите рис.1.1.

Создание приложения на Java - student2.ru

Рис.1.1. Создание базы данных

Далее появится следующее окно (рис.1.2), где необходимо ввести название базы данных. После чего нажмите кнопку «Apply».

Создание приложения на Java - student2.ru

Рис.1.2. Создание базы данных

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

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

3.Для создания таблицы выполните действия, изображенные на рисунке 2.1. Т.е. нужно нажать правой кнопкой мыши по Tables / Create Table

Создание приложения на Java - student2.ru
Рис.2.1. Создание таблицы

4.Далее появится окно, в котором вы должны заполнить Название таблицы и ее поля. Создадим таблицу employees. Рис.2.2.

Создание приложения на Java - student2.ru

Рис.2.2. Создание полей таблицы

Название поля Тип данных Описание
id_employees INT Код сотрудника
surname VARCHAR Фамилия сотрудника
name VARCHAR Имя сотрудника
date DATE Дата поступления
address VARCHAR Адрес сотрудника
phone VARCHAR Телефон сотрудника
email VARCHAR Почта сотрудника
post_id INT Код должности сотрудника

5. Задание: Создайте самостоятельно остальные таблицы с соответствующими названиями posts, grafik. Структура таблиц предоставлена в таблицах 2.2,2.3

Таблица 2.2. Должности сотрудников.

Название поля Тип данных Описание
idposts INT Код должности
post_id VARCHAR Фамилия должности
wage VARCHAR Имя должности

Таблица 2.3. Табель сотрудников.

Название поля Тип данных Описание
idgrafik INT Код табеля
employer_id VARCHAR Код сотрудника
postid VARCHAR Код должности
wtime TINYINT Отработанное время
premia INT Премия

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

Для того, чтобы установить связи в MySQL сделайте следующее:

· Зайдите в таблицу employees

· Нажмите внизу вкладкуForeign Keys

· Задайте название связи в поле Foreign Key Name

· Выберите поля для создания связи (Рис.2.4)

Создание приложения на Java - student2.ru Рис.2.4. Создание связей между таблицами

· В области справа Foreign Key Options, вы можете задать значения для обновления/удаления записей, т.е. изменив, например фамилию сотрудника, она поменяется и в других связанных таблицах.

· После чего нажмите кнопку «Apply»

7. Самостоятельно создайте связь между таблицами «Табель сотрудников» и «Сотрудники».

Создание приложения на Java

1.Откройте среду разработки NetBeans

2.Создайте новый проект, введите название и нажмите кнопку «Далее» (Рис.2.5)

Создание приложения на Java - student2.ru

Рис.2.5. Создание проекта Java

3.Созданный проект появится в области Проекты. Теперь создайте форму JFrame. Для этого нажмите правой кнопкой по пакету своего проекта и выберите «Новый -> Форма JFrame»Рис.2.6.

Создание приложения на Java - student2.ru

Рис.2.6. Создание формы

4.В появившемся окне задайте Имя формы (Рис.2.7.) и нажмите кнопку Готово.

Создание приложения на Java - student2.ru

Рис.2.7. Создание формы

5.Создайте форму, как показано на рис.2.8. Элементы управления переносятся из Панели.

Создание приложения на Java - student2.ru

Рис.2.8. Создание формы

Примечания. Для того чтобы добавить элемент JXDatePicker (дата отображается в виде календаря) выполните следующие действия:

a. Выберите меню Сервис -> Палитра -> Компоненты Swing/AWT

Создание приложения на Java - student2.ru

b. Нажмите «Добавить из архива JAR»

Создание приложения на Java - student2.ru

c. Выберите путь, где находится ваш NetBeans.

[NETBEANS HOME]\ide\modules\ext и выберите swingx-x.x.x.jar (в зависимости от версии NetBeans)

Создание приложения на Java - student2.ru

d. Нажмите Далее и выберите JXDatePicker

Создание приложения на Java - student2.ru

e. Далее выберите категорию Элементы управления Swing, где должен появиться этот элемент в палитре

Создание приложения на Java - student2.ru

f. Теперь в Палитре появился новый элемент

Создание приложения на Java - student2.ru

6.Создайте класс для соединения с базой данных. Для этого добавьте в проект библиотеку Создание приложения на Java - student2.ru

7.Напишите следующий код. Добавьте свою бд, пользователя и пароль MySQL

Создание приложения на Java - student2.ru

Создание запроса Select

Создание приложения на Java - student2.ru

8.Зайдите во вкладку Источник и наберите следующий код.

Создание приложения на Java - student2.ru

Создание приложения на Java - student2.ru

9.Добавьте событие на кнопку «Рассчитать» и наберите следующий код.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

try {

Integer ktime = Integer.parseInt(ktimeField.getText());

Integer prof_souz = Integer.parseInt(souzField.getText());

Integer prof_vznos = Integer.parseInt(vznosField.getText());

Integer soc_fond = Integer.parseInt(fondField.getText());

ResultSet rs = connection.select("a.employer_id, a.wtime, a.premia, b.wage,d.surname,d.name", "grafik as a, posts as b, employees as d", "a.postid = b.idposts and a.employer_id = d.id_employees");

DefaultTableModel dtm = new DefaultTableModel();

int i=0;

while(rs.next()){

String id = rs.getString("employer_id");

String surname = rs.getString("surname");

String name = rs.getString("name");

Double oklad = rs.getDouble("wage");

Integer premia = rs.getInt("premia");

Integer wtime = rs.getInt("wtime");

Double a = (oklad / ktime)*wtime;

Double b = (a * premia)/100;

Double k = (a+b);

Double psouz = (k * prof_souz )/100;

Double pvznos = (k * prof_vznos )/100;

Double sfond = (k * soc_fond )/100;

Double c = psouz + pvznos + sfond;

Double wage = k-c;

String row[] = {"№","Сотрудник","Соц.фонд","Проф.союз","Проф.взнос","Начислено" };

dtm.setColumnIdentifiers(row);

dtm.setColumnCount(6);

dtm.setRowCount(i+1);

dtm.setValueAt(i+1, i, 0);

dtm.setValueAt(surname + " " + name, i, 1);

dtm.setValueAt(Math.round(sfond), i, 2);

dtm.setValueAt(Math.round(psouz), i, 3);

dtm.setValueAt(Math.round(pvznos), i, 4);

dtm.setValueAt(Math.round(wage), i, 5);

i++;

}

}

rs.close();

ds.close();

} catch (Exception e) {

}

}

// Примечание: вам необходимо самостоятельно разобраться в данном коде. Ознакомьтесь с мат.моделью ,предоставленной в начале.

В представленном коде рассчитанная зарплата нигде не сохраняется. Просто выводится в таблицу на форме.

Задание.

Наши рекомендации