Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПР / Хакова Ю. М. Отчет ПР4

.docx
Скачиваний:
0
Добавлен:
07.06.2026
Размер:
206.83 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет Информационных технологий и программной инженерии

Кафедра Систем обработки данных

Направление: 09.03.02 Информационные системы и технологии

Профиль: Прикладные информационные системы и технологии

Практическое задание №4

«Работа с формами в html»

по дисциплине

«ТFeРВП»

Выполнил:

студент группы ИСТ-223

Хакова Ю. М. «____» _________ 2025 г.

Принял:

ассистент кафедры СОД

Коровкина Е.В. «____» _________ 2025 г.

СОДЕРЖАНИЕ

Y

1 ВЫПОЛНЕНИЕ ЗАДАЧИ №1 3

2 ЛИСТИНГ INDEX.HTML 3

3 ЛИСТИНГ STYLE.CSS 5

4 ЛИСТИНГ SCRIPT.JS 5

5 ВЫПОЛНЕНИЕ ЗАДАЧИ №2 6

6 ЛИСТИНГ FORUM.HTML 7

7 ЛИСТИНГ STYLE-FORUM.CSS 8

8 ЛИСТИНГ SCRIPT.JS 12

9 ЗАКЛЮЧЕНИЕ 13

1 ВЫПОЛНЕНИЕ ЗАДАЧИ №1

Создаем тестовый файл с применением технологий java script, в котором будет рассчитываться стоимость товара и обрабатываться отзыв. Результат приведен на рисунке 1.

Рисунок 1 – тестовая страница для расчета стоимости заказа и написания отзыва

2 ЛИСТИНГ INDEX.HTML

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Практическая работа 4</title>

<link rel="stylesheet" href="style.css">

</head>

<body>

<div class="container">

<h2>Калькулятор заказа</h2>

<label>Стоимость товара №1 (руб.):</label>

<input type="text" id="price1">

<label>Количество товара №1:</label>

<input type="text" id="quantity1">

<label>Стоимость товара №2 (руб.):</label>

<input type="text" id="price2">

<label>Количество товара №2:</label>

<input type="text" id="quantity2">

<label>Стоимость всего заказа (руб.):</label>

<input type="text" id="total" disabled>

<button id="calculateButton">Рассчитать</button>

</div>

<div class="container">

<h2>Оставьте отзыв</h2>

<textarea id="review" rows="7" cols="50"></textarea>

<button id="processReviewButton">Сохранить</button>

<div id="output"></div>

</div>

<script src="script.js"></script>

</body>

</html>

3 ЛИСТИНГ STYLE.CSS

body {

font-family: Arial, sans-serif;

padding: 20px;

}

.container {

max-width: 500px;

margin-bottom: 40px;

}

label, input, button, textarea {

display: block;

width: 100%;

margin-bottom: 10px;

}

input:disabled {

background: #f0f0f0;

}

#output {

padding: 10px;

background: #f8f8f8;

border: 1px solid #ddd;

}

4 ЛИСТИНГ SCRIPT.JS

function calculateTotal() {

let price1 = parseFloat(document.getElementById("price1").value);

let quantity1 = parseInt(document.getElementById("quantity1").value);

let price2 = parseFloat(document.getElementById("price2").value);

let quantity2 = parseInt(document.getElementById("quantity2").value);

if (isNaN(price1) || isNaN(quantity1) || quantity1 < 0 || price1 < 0 ||

isNaN(price2) || isNaN(quantity2) || quantity2 < 0 || price1 < 0) {

alert("Введите корректные значения!");

return;

}

let total = (price1 * quantity1) + (price2 * quantity2);

document.getElementById("total").value = total.toFixed(2);

}

function processReview() {

let reviewText = document.getElementById("review").value;

let formattedText = reviewText.charAt(0).toUpperCase() + reviewText.slice(1).toLowerCase();

document.getElementById("output").innerText = formattedText;

}

document.addEventListener("DOMContentLoaded", function() {

document.getElementById("calculateButton").addEventListener("click", calculateTotal);

document.getElementById("processReviewButton").addEventListener("click", processReview);

});

5 ВЫПОЛНЕНИЕ ЗАДАЧИ №2

На одной из страниц сайта, используя HTML, CSS и язык программирования JavaScript (JS), создать поле для ввода текста и реализовать предварительную проверку введенных данных. Результат приведен на рисунке 2.

Рисунок 2 – реализация текстового поля на странице форума

6 ЛИСТИНГ FORUM.HTML

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Форум</title>

<link rel="stylesheet" href="style-forum.css">

</head>

<body>

<header>

<div class="logo">

<span class="logo-text">INTERSLAVIC</span>

</div>

<nav class="nav-menu">

<ul>

<li><a href="index.html">Главная</a></li>

<li><a href="courses.html">Курсы</a></li>

<li><a href="forum.html">Форум</a></li>

</ul>

</nav>

<button class="auth-button">ВХОД/РЕГИСТРАЦИЯ</button>

</header>

<main>

<section class="forum-container">

<h1>Оставьте отзыв</h1>

<textarea id="review-input" placeholder="Напишите ваш отзыв..."></textarea>

<button id="submit-review">Сохранить</button>

<h2>Отзывы пользователей</h2>

<ul id="reviews-list"></ul>

</section>

</main>

<script src="script.js"></script>

</body>

</html>

7 ЛИСТИНГ STYLE-FORUM.CSS

body {

font-family: 'Work Sans', sans-serif;

margin: 0;

padding: 0;

background-color: #f8f8f8;

}

header {

display: flex;

justify-content: space-between;

align-items: center;

padding: 20px 50px;

background-color: white;

}

.logo-text {

font-family: 'Yaldevi Colombo', sans-serif;

font-weight: 600;

font-size: 36px;

color: #291D9A;

}

.nav-menu ul {

list-style: none;

display: flex;

gap: 40px;

margin: 0;

padding: 0;

}

.nav-menu ul li a {

text-decoration: none;

font-size: 16px;

color: #1D253C;

}

.auth-button {

font-weight: bold;

width: 207px;

height: 44px;

border: 2px solid #D2D3D8;

border-radius: 8px;

background: none;

font-size: 14px;

color: #1D253C;

cursor: pointer;

transition: 0.3s;

}

.auth-button:hover {

background: #1D253C;

color: #ffffff;

}

.forum-container {

width: 60%;

margin: 50px auto;

background: white;

padding: 20px;

border-radius: 10px;

box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);

}

h1, h2 {

text-align: center;

color: #1D253C;

}

textarea {

width: 100%;

height: 100px;

padding: 10px;

border-radius: 5px;

border: 1px solid #ccc;

resize: none;

}

button {

display: block;

width: 100%;

padding: 10px;

margin-top: 10px;

background: #291D9A;

color: white;

font-size: 16px;

font-weight: bold;

border: none;

border-radius: 5px;

cursor: pointer;

}

button:hover {

background: #1A0D75;

}

#reviews-list {

list-style: none;

padding: 0;

}

#reviews-list li {

background: #f0f0f0;

padding: 10px;

margin: 10px 0;

border-radius: 5px;

}

8 ЛИСТИНГ SCRIPT.JS

document.addEventListener("DOMContentLoaded", function () {

const reviewInput = document.getElementById("review-input");

const submitButton = document.getElementById("submit-review");

const reviewsList = document.getElementById("reviews-list");

function addReviewToPage(reviewText) {

const li = document.createElement("li");

li.textContent = reviewText;

reviewsList.appendChild(li);

}

function processReviewText(reviewText) {

reviewText = reviewText.toLowerCase();

return reviewText.charAt(0).toUpperCase() + reviewText.slice(1);

}

submitButton.addEventListener("click", function () {

let reviewText = reviewInput.value.trim();

if (reviewText === "") return;

reviewText = processReviewText(reviewText);

addReviewToPage(reviewText);

reviewInput.value = "";

});

});

9 ЗАКЛЮЧЕНИЕ

В ходе выполнения работы был создан тестовая страница для расчета стоимости заказа с применением технологий HTML, CSS и Java Script, а также создан второй уровень личного сайта, где пользователь сможет оставлять отзывы.

Санкт-Петербург

2025