Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснювальна записка.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
597.32 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ

«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»

ФАКУЛЬТЕТ ІНФОРМАТИКИМ ТА ОБЧИСЛЮВАЛЬНОЇ ТЕХНІКИ КАФЕДРА ОБЧИСЛЮВАЛЬНОЇ ТЕХНІКИ

КУРСОВА РОБОТА

З дисципліни

ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ-2

ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОЕКТУВАННЯ

Виконав:

студент 2 курсу ФІОТ,

Група ІП-12

Оніщук А.А.

З/к № 1204

Керівник:

ст. викладач каф. ОТ

Невдащенко М.В.

Київ-2012

РЕФЕРАТ

Ключові слова: SAX PARSER, XSD СХЕМА, XML СЕРІАЛІЗАЦІЯ, XML ДЕСЕРІАЛІЗАЦІЯ, JAVA ВАЛІДАЦІЯ XML, ОПОДАТКУВАННЯ ДОХОДІВ, ДЕКЛАРАЦІЯ ПРО ДОХОДИ, ПІДРАХУНОК ПОДАКТІВ.

Відомості про об’єм записки: Записка займає 43 сторінки, 31 з яких складають додатки (всього їх 13), крім цього містить 2 ілюстрації допоміжного характеру. Кількість елементів у списку використаних джерел рівна семи.

Текст реферату

У даній курсовій роботі об’єктом розробки та дослідження являється запис та зчитування інформації у форматі XML, перевірка XML файлів на коректність та відповідність заданій структурі.

Цілю даного проекту являється створення програми, для завдання декларації про доходи, що зводиться до завдання множини доходів фізичної особи за рік, а також визначення суми податку для кожного з них, сортування доходів за сумою оподаткування.

При дослідженні теми використовувались як теоретичні так й експериментальні методи дослідження, а саме: теоретичний аналіз прочитаної документації, навчальних матеріалів, а також сирцевих кодів мов програмування, а також експериментальний аналіз результатів спостережень за роботою написаних вихідних файлів та фрагментів коду, за процесом валідації XML файлу для розуміння принципів роботи XSD схем, тощо.

У результаті виконання роботи отримано вихідний код Java класів, а також схему валідації XML файлу, хоча й існує багато бібліотек що беруть на себе майже всю можливу роботу по серіалізації та десеріалізації об’єктів, проте створені у програмі класи є зручної обгорткою вище названих класів, та дають клієнту можливість більш просто виконувати ці ж операції саме з класами доходів, із програми.

ЗМІСТ

Вступ 4

1. Технічне завдання 5

2. Використані засоби 6

3. Опис реалізації 8

3.1 Зчитування вмісту XML файлу 8

3.2 Валідація XML файлу 8

3.3 Запис у XML файл 9

3.4 Консольне меню 9

3.5 Подання множини прибутків 10

4. Тестування програми 11

Список використаних джерел 12

Додаток 1. UML Діаграма класів пакету edu.kpi.profit 13

Додаток 2. UML Діаграма класів пакету edu.kpi.menu 14

Додаток 3. UML Діаграма класів пакету edu.kpi.menu 14

Додаток 4. UML Діаграма класів пакету edu.kpi.XML 15

Додаток 5. Документація - пакети програми 16

Додаток 6. Документація – пакет edu.kpi.declaration) 17

Додаток 7. Документація – пакет edu.kpi.menu 18

Додаток 8. Документація – пакет edu.kpi.profit 19

Додаток 9. Документація – пакет edu.kpi.XML 20

Додаток 10. Документація – внепакетні класи 21

Додаток 11. Отриманий XML файл 21

Додаток 12. XSD схема 22

Додаток 13. Сирцевий код програмного додатку 25

ВСТУП

Серіалізація є невід’ємним аспектом зберігання, а також передачі інформації, що забезпечує виконання ряду задач: збереження об’єктів у файл; методи віддаленого виклику процедура (наприклад, SOAP); методи для розподілу об’єктів (наприклад, COM, CORBA); методи для визначення змін даних у часі.

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

Обмін такими даними є досить проблемним, а при використанні власних форматів даних - взагалі неможливий.

Рішенням даної проблеми являється серіалізація у файли мови текстової розмітки XML, яка дає можливість задавати складні мовні конструкції, при цьому залишаючись відносно прозорою.

  1. Технічне завдання

Вимоги до системи

Створити консольний додаток, що задовольняє наступним вимогам:

  • Використати можливості ООП: класи, наслідування, поліморфізм та інкапсуляцію

  • Кожен клас повинен мати осмислену назву та інформативну складову

  • Наслідування повинно застосовуватися коли в ньому є сенс.

  • При проектуванні потрібно дотримуватися правил оформлення коду – java code convention

  • Класи повинні бути грамотно розкладені по пакетам.

  • Консольне меню користувача повинно бути мінімальним

  • Для збереження початкових параметрів можна використовувати файли

  • Створити XSD схему XML-файлу. При її розробці використовувати прості на комплексні типи, множини, шаблони та граничні значення, обов’язкове використання атрибутів та типу ID.

  • Передбачити збереження (зчитування колекції об’єктів до XML-файлу (бази даних). Зчитування (розбір) XML-файлу потрібно виконати за допомогою SAX парсера.

  • Перевіривши за допомогою XSD схеми XML-файл.

Варіант завдання

Податки. Визначити множину податкових виплат фізичної особи за рік з урахуванням доходів з основного і додаткового місць роботи, авторських винагород, продажів майна, отримання в подарунок грошових сум і майна, переводів з-за кордону, пільг на дітей і матеріальної допомоги. Провести сортування податків за сумою.

  1. Використані засоби

Для виконання завдання були використані наступні засоби.

Зчитування вхідних даних з файлу реалізовано за допомогою засобів для організації файлових потоків java.io.FileOutputStream та java.io.FileInputStream. Клас java.util.Scanner використовується для організації зручного зчитування даних з потоків. Колекція ArrayList для роботи з даними змінного розміру (java.util.ArrayList). Для можливості використання стандартних методів сортування для екземплярів потрібних класів реалізується інтерфейс java.util.Comparator. Для сортування колекцій використовуються метод бібліотеки java.util.Collections . Серіалізація файлів у XML виконується за допомогою класу javax.xml.bind.Marshaller, екземпляр цього класу «просимо» у javax.xml.bind.JAXBContext. Для уточнення змісту XML файлу записаного використовується анотації з бібліотеки javax.xml.bind.annotation: XmlAttribute - вказування атрибуту тегу, XmlElement – вказування елементу XML, XmlRootElement – клас з якого розпочинається серіалізація, XmlSeeAlso – вказування на що ще треба «звернути увагу» класу Marshaller при виконанні серіалізації у XML, таким чином повідомляємо класу Marshaller про наслідників суперкласу, XmlNs – використовується для вказування namespace у певному елементі, у нашому випадку у всьому документі. javax.xml.validation.Schema – клас що представляє об’єкт схеми для перевірки валідності XML файлу відповідно заданої схеми, javax.xml.validation.SchemaFactory – клас що контролює створення екземплярів схеми валідації XML. javax.xml.validation.Validator – використовується для запуску перевірки на валідність заданої схеми.

javax.xml.parsers.SAXParser – використовується для десеріалізації XML файлу шлях зворотних викликів. javax.xml.parsers.SAXParserFactory – від заданого класу отримуються екземпляри класу SAXPasrer. org.xml.sax.helpers.DefaultHandler - розширення даного класу дає змогу отримувати інформацію про зміст XML файлу у досить зручній формі для організації процесу десеріалізації. org.xml.sax.Attributes – клас для представлення множити атрибутів певного XML елемента.