Загрузка данных
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Практическая работа: Экономика и Тестирование</title>
<style>
body { font-family: Arial, sans-serif; margin: 30px; background-color: #f4f6f9; color: #333; }
.container { max-width: 800px; margin: 0 auto; background: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
h1, h2 { color: #2c3e50; border-bottom: 2px solid #ecf0f1; padding-bottom: 8px; }
.form-group { margin-bottom: 12px; }
label { display: inline-block; width: 340px; font-weight: bold; }
input[type="number"] { width: 140px; padding: 6px; border: 1px solid #ccc; border-radius: 4px; }
button { background-color: #27ae60; color: white; border: none; padding: 10px 20px; font-size: 15px; border-radius: 4px; cursor: pointer; margin-top: 10px; }
button:hover { background-color: #219150; }
.result-box { margin-top: 15px; padding: 15px; background-color: #e8f8f5; border-left: 5px solid #2ecc71; border-radius: 4px; font-size: 15px; line-height: 1.6; }
.test-question { margin-bottom: 18px; padding-bottom: 10px; border-bottom: 1px dashed #ddd; }
.test-question p { font-weight: bold; margin-bottom: 6px; }
.score-box { font-weight: bold; font-size: 16px; margin-top: 15px; color: #2980b9; }
</style>
</head>
<body>
<div class="container">
<h1>Практическое задание № 4: Расчет норматива оборотных средств</h1>
<div class="form-group">
<label>Стоимость МПЗ в месяц (тыс. руб.):</label>
<input type="number" id="mpz" value="1120">
</div>
<div class="form-group">
<label>Количество рабочих дней в месяц:</label>
<input type="number" id="days" value="22">
</div>
<div class="form-group">
<label>Объем СМР в год (тыс. руб.):</label>
<input type="number" id="smr" value="14200">
</div>
<div class="form-group">
<label>Выпуск готовой продукции в год (тыс. руб.):</label>
<input type="number" id="gp" value="1350">
</div>
<div class="form-group">
<label>Расходы будущих периодов (тыс. руб.):</label>
<input type="number" id="rbp" value="560">
</div>
<div class="form-group">
<label>Дебиторская задолженность (тыс. руб.):</label>
<input type="number" id="deb" value="520">
</div>
<div class="form-group">
<label>Денежные средства (тыс. руб.):</label>
<input type="number" id="money" value="350">
</div>
<button onclick="calculate()">Рассчитать норматив</button>
<div id="result" class="result-box" style="display:none;"></div>
<h2>Тест: Классификация тестирования ПО</h2>
<form id="quizForm">
<div class="test-question">
<p>1. Тестирование при нагрузке, значительно превышающей запланированные значения:</p>
<label><input type="radio" name="q1" value="0"> Тестирование стабильности</label><br>
<label><input type="radio" name="q1" value="1"> Стресс-тестирование</label><br>
<label><input type="radio" name="q1" value="0"> Тестирование надежности</label>
</div>
<div class="test-question">
<p>2. Самый формализованный метод ревизии кода с обязательным модератором:</p>
<label><input type="radio" name="q2" value="1"> Инспектирование</label><br>
<label><input type="radio" name="q2" value="0"> Неформальная ревизия</label><br>
<label><input type="radio" name="q2" value="0"> Прохождение алгоритма</label>
</div>
<div class="test-question">
<p>3. Программный компонент, вызывающий тестируемый объект и имитирующий внешнюю среду:</p>
<label><input type="radio" name="q3" value="0"> Точка контроля</label><br>
<label><input type="radio" name="q3" value="1"> Драйвер теста</label><br>
<label><input type="radio" name="q3" value="0"> Заглушка</label>
</div>
<div class="test-question">
<p>4. Для диапазона 3 ≤ A < 100 число, являющееся недопустимой верхней границей:</p>
<label><input type="radio" name="q4" value="0"> 99</label><br>
<label><input type="radio" name="q4" value="1"> 100</label><br>
<label><input type="radio" name="q4" value="0"> 3</label>
</div>
<div class="test-question">
<p>5. Интеграционный подход с постепенным добавлением модулей и проверкой сборок:</p>
<label><input type="radio" name="q5" value="1"> Инкрементный подход</label><br>
<label><input type="radio" name="q5" value="0"> Монолитный подход</label><br>
<label><input type="radio" name="q5" value="0"> Регрессионный подход</label>
</div>
<button type="button" style="background-color:#2980b9;" onclick="checkQuiz()">Проверить ответы теста</button>
</form>
<div id="quizResult" class="score-box"></div>
</div>
<script>
function calculate() {
const mpz = parseFloat(document.getElementById('mpz').value) || 0;
const days = parseFloat(document.getElementById('days').value) || 1;
const smr = parseFloat(document.getElementById('smr').value) || 0;
const gp = parseFloat(document.getElementById('gp').value) || 0;
const rbp = parseFloat(document.getElementById('rbp').value) || 0;
const deb = parseFloat(document.getElementById('deb').value) || 0;
const money = parseFloat(document.getElementById('money').value) || 0;
const normDaysMPZ = 33 / 0.95; // (20 + 10 + 3) / (1 - 0.05)
const normMPZ = (mpz / days) * normDaysMPZ;
const normNZP = smr * 0.05;
const normGP = (gp * 5) / (days * 12);
const total = normMPZ + normNZP + rbp + deb + money + normGP;
const resDiv = document.getElementById('result');
resDiv.style.display = 'block';
resDiv.innerHTML = `
<b>Результаты расчета нормативов:</b><br>
1. Норматив МПЗ: <b>${normMPZ.toFixed(2)}</b> тыс. руб.<br>
2. Норматив НЗП: <b>${normNZP.toFixed(2)}</b> тыс. руб.<br>
3. Норматив готовой продукции: <b>${normGP.toFixed(2)}</b> тыс. руб.<br>
-----------------------------------------------------<br>
<b>ИТОГО совокупный норматив: ${total.toFixed(2)} тыс. руб.</b>
`;
}
function checkQuiz() {
let score = 0;
for (let i = 1; i <= 5; i++) {
const val = document.querySelector(`input[name="q${i}"]:checked`);
if (val && val.value === "1") {
score++;
}
}
document.getElementById('quizResult').innerText = `Правильных ответов: ${score} из 5`;
}
</script>
</body>
</html>