Uploaded by lobidi5644

laba1 java

advertisement
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждениевысшего образования
«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТТЕЛЕКОММУНИКАЦИЙ И
ИНФОРМАТИКИ»
Факультет
Информационных систем и технологий
Кафедра
Программной инженерии
ОТЧЕТ
ПО ЛАБОРАТОРНОЙ РАБОТЕ № 1
по дисциплине
Разработка серверной части web-приложений
название (при наличии)
ВЫПОЛНИЛ (А)
студент(ка) ИВТ-13
Фомин А.В.
(группа)
(ФИО)
ПРОВЕРИЛ
Асси
Самара
2024
Ассистент
Кадирова В.А.
(должность)
(ФИО)
Содержание
Цель работы и описание задачей…………………………………………3
Ход выполнения работы…………………………………………………..4
Результаты выполнения лабораторной работы………………………….8
Вывод по выполнению лабораторной работы…………………………..9
Список используемых источников……………………………………...10
1.
Цель работы и описание задачей
1.1 Цель работы
В процессе написания тестовых заданий ознакомиться с элементами
языка XML и средствами Java для обработки XML-документов.
1.2 Задание 1
Изучить предлагаемый файл описания типа документа сформировать
документ согласно этим правилам.
Рис. 1.1 Код файла group.dtd
1.3 Задание 2
Разработать на Java консольное приложение, имеющее два входных
параметра: имена входного и выходного файла. Задача приложения
заключается в проверке значения средней оценки и его коррекции, если
в исходном документе оно не соответствует действительности.
3
2.
Ход выполнения работы
2.1 Сформировал исходный файл input.xml на основе файла
group.dtd
<group>
<student firstname="Иван" lastname="Иванов" groupnumber="1">
<subject title="Математика" mark="5"/>
<subject title="Физика" mark="4"/>
<subject title="История" mark="3"/>
<average>12</average>
</student>
<student firstname="Петр" lastname="Петров" groupnumber="1">
<subject title="Математика" mark="3"/>
<subject title="Физика" mark="1"/>
<subject title="История" mark="2"/>
<average>0.1</average>
</student>
</group>
2.2 Создание XML Parser для редактирование исходного файла
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
public class XMLParser {
public static void main(String[] args) throws TransformerException, SAXException,
IOException, ParserConfigurationException {
String inputFilename = "input.xml"; // Имя входного XML-файла
4
String outputFilename = "output.xml"; // Имя выходного XML-файла
try
{
// Создание парсера
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// Чтение входного XML-файла
Document document = builder.parse(new File(inputFilename));
// Получение списка всех элементов student
NodeList students = document.getElementsByTagName("student");
// Обработка каждого элемента student
for (int i = 0; i < students.getLength(); i++) {
Element student = (Element) students.item(i);
NodeList subjects = student.getElementsByTagName("subject");
int totalMark = 0;
int totalSubjects = subjects.getLength();
// Чтение атрибута mark для каждого предмета и вычисление общей суммы
for (int j = 0; j < totalSubjects; j++) {
Element subject = (Element) subjects.item(j);
int mark = Integer.parseInt(subject.getAttribute("mark"));
totalMark += mark;
}
// Вычисление средней оценки для студента
double averageMark = (double) totalMark / totalSubjects;
// Получение элемента average
NodeList averageNodes = student.getElementsByTagName("average");
5
// Проверка, есть ли элемент average
if (averageNodes.getLength() > 0) {
Element average = (Element) averageNodes.item(0);
// Проверка значения средней оценки и коррекция, если необходимо
if (averageMark > 5.0) {
averageMark = 5.0;
} else if (averageMark < 1.0) {
averageMark = 1.0;
}
// Запись средней оценки в элемент average
average.setTextContent(String.valueOf(averageMark));
}
}
// Запись изменений в выходной XML -файл
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(outputFilename));
transformer.transform(source, result);
System.out.println("Обработка XML завершена.");
}finally{
//fdfdf
}
}
}
6
3.
Результаты выполнения лабораторной работы
3.1 Виды файлов input.xml и output.xml до запуска программы
Рис. 3.1 Код файла Input.xml
Представление файла Input.xml на Рисунке 3.1
Рис. 3.2 Код файла Output.xml
Представление файла Input.xml на Рисунке 3.2
3.2 Сформированный файл output.xml после запуска программы
7
Рис. 3.3 Код сформированного файла Output.xml
Представление сформированого файла Otput.xml на Рисунке 3.3
4.
Вывод по выполнению лабораторной работы
4.1 Вывод
В
процессе
выполнения
лабораторной
работы
было
изучено
использование языка XML и средств Java для обработки XMLдокументов. Были выполнены задания по созданию документа в
соответствии с заданными правилами и разработке консольного
приложения на Java для проверки и коррекции значений средней
оценки в XML-документе. Таким образом, данная работа позволила
познакомиться с основами работы с XML и обработки данных в
формате XML с использованием языка Java.
8
Список используемых источников
1. "Java in Action" - авторы: Mike Cantelon, Marc Harter, TJ
Holowaychuk, Nathan Rajlich; издательство: Manning Publications;
город: Нью-Йорк; год: 2013; число страниц: 416.
2. "Learning Java: Functional Web Development" - авторы: Alex
Banks, Eve Porcello; издательство: O'Reilly Media; город:
Себастьянполис; год: 2017; число страниц: 350.
9
Download