Мне необходимо чтобы в этом коде было так таблица как строится меня всё устраивает однако нужно добавить один столбец он будет называться окр туда я буду выставлять оценки за контрольную работу их не нужно считать в средний бал или куда-то ещё нужно чтобы они просто там находились разместить эту колонку нужно после столбца со средним балом, Функционал программы не меняй!!!!!!

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Журнал успеваемости Машки</title>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet">
    <style>
        .grade-cell {
            min-width: 60px;
            height: 40px;
        }
        .date-input {
            max-width: 120px;
        }
        .modal {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            display: none;
            justify-content: center;
            align-items: center;
            z-index: 1000;
        }
        .modal.active {
            display: flex;
        }
        .modal-content {
            background: white;
            padding: 20px;
            border-radius: 8px;
            max-width: 90%;
            width: 320px;
        }
        .grade-button {
            width: 45px;
            height: 45px;
            margin: 5px;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            background: white;
            cursor: pointer;
        }
        .grade-button:hover {
            background: #f7fafc;
        }
        .table-container {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            margin: 0 -1rem;
            padding: 0 1rem;
        }
        .delete-column {
            position: absolute;
            top: -5px;
            right: 2px;
            font-size: 12px;
            color: #ef4444;
            cursor: pointer;
            padding: 2px;
        }
        .delete-column:hover {
            color: #dc2626;
        }
        .date-header {
            position: relative;
        }
        .highlighted-row {
            background-color: #fef3c7;
            transition: background-color 0.3s;
        }
        @media (max-width: 640px) {
            .grade-button {
                width: 40px;
                height: 40px;
                font-size: 14px;
            }
            .modal-content {
                padding: 15px;
            }
            th, td {
                padding: 8px 4px;
                font-size: 14px;
            }
            .date-input {
                max-width: 100px;
                font-size: 12px;
            }
        }
    </style>
</head>
<body class="bg-gray-50 p-4">
    <div class="max-w-4xl mx-auto bg-white rounded-lg shadow-lg p-4">
        <div class="flex justify-between items-center mb-4">
            <h1 class="text-xl font-bold">Журнал успеваемости</h1>
            <button id="addColumn" class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">
                + Добавить столбец
            </button>
        </div>
        
        <div class="table-container">
            <table id="gradesTable" class="w-full border-collapse">
                <thead>
                    <tr class="bg-gray-100">
                        <th class="border p-2 text-left">Предмет</th>
                    </tr>
                </thead>
                <tbody></tbody>
                <tfoot>
                    <tr class="bg-gray-100 font-bold">
                        <td class="border p-2">Общий средний балл</td>
                    </tr>
                </tfoot>
            </table>
        </div>
    </div>

    <div id="gradeModal" class="modal">
        <div class="modal-content">
            <h2 class="text-lg font-bold mb-4 text-center">Выберите оценку</h2>
            <div class="flex flex-wrap justify-center" id="gradeButtons"></div>
            <div class="text-center mt-4">
                <button class="bg-gray-500 text-white px-4 py-2 rounded hover:bg-gray-600" onclick="closeModal()">
                    Отмена
                </button>
            </div>
        </div>
    </div>

    <div id="deleteModal" class="modal">
        <div class="modal-content">
            <h2 class="text-lg font-bold mb-4 text-center">Удаление столбца</h2>
            <p class="mb-4 text-center">Вы действительно хотите удалить столбец с датой <span id="deleteDate"></span>?</p>
            <div class="flex justify-center gap-4">
                <button class="bg-red-500 text-white px-4 py-2 rounded hover:bg-red-600" id="confirmDelete">
                    Удалить
                </button>
                <button class="bg-gray-500 text-white px-4 py-2 rounded hover:bg-gray-600" onclick="closeDeleteModal()">
                    Отмена
                </button>
            </div>
        </div>
    </div>

    <script>
        const MINIMUM_GRADE = 7;
        const STORAGE_KEY = 'gradesJournal';
        const subjects = [
            "ФизКультура",
            "ЗащНасТерЧС",
            "Охрана Труда",
            "БелЯзПрофЛекс",
            "СтандартСертиф",
            "ИстБелГос",
            "ТрудПраво",
            "ИнфТехнологии",
            "ДелКоммуникаций",
            "Статистика",
            "ОснНацЭконом",
            "ЭкономОрганиз",
            "ДенежОбрКредит"
        ];

        let grades = {};
        let columns = [{
            id: 1,
            date: new Date().toISOString().split('T')[0]
        }];
        let selectedCell = null;
        let selectedColumnForDelete = null;

        // Загрузка данных из localStorage
        function loadData() {
            const savedData = localStorage.getItem(STORAGE_KEY);
            if (savedData) {
                const data = JSON.parse(savedData);
                grades = data.grades || {};
                columns = data.columns || [{
                    id: 1,
                    date: new Date().toISOString().split('T')[0]
                }];
            }
        }

        // Сохранение данных в localStorage
        function saveData() {
            localStorage.setItem(STORAGE_KEY, JSON.stringify({
                grades,
                columns
            }));
        }

        function sortColumns() {
            columns.sort((a, b) => new Date(a.date) - new Date(b.date));
            saveData();
            initializeTable();
        }

        function initializeTable() {
            const thead = document.querySelector('#gradesTable thead tr');
            const tbody = document.querySelector('#gradesTable tbody');
            const tfoot = document.querySelector('#gradesTable tfoot tr');

            // Clear existing content
            while (thead.children.length > 1) {
                thead.removeChild(thead.lastChild);
            }
            tbody.innerHTML = '';
            while (tfoot.children.length > 1) {
                tfoot.removeChild(tfoot.lastChild);
            }

            // Add date headers
            columns.forEach(column => {
                const th = document.createElement('th');
                th.className = 'border p-2 date-header';
                
                const dateInput = document.createElement('input');
                dateInput.type = 'date';
                dateInput.value = column.date;
                dateInput.className = 'date-input w-full text-sm';
                dateInput.addEventListener('change', (e) => handleDateChange(column.id, e.target.value));
                
                const deleteButton = document.createElement('span');
                deleteButton.className = 'delete-column';
                deleteButton.innerHTML = '❌';
                deleteButton.onclick = (e) => {
                    e.stopPropagation();
                    openDeleteModal(column);
                };

                th.appendChild(dateInput);
                th.appendChild(deleteButton);
                thead.appendChild(th);
            });

            // Add average column
            const avgTh = document.createElement('th');
            avgTh.className = 'border p-2';
            avgTh.textContent = 'Средний балл';
            thead.appendChild(avgTh);

            // Add rows for each subject
            subjects.forEach(subject => {
                const tr = document.createElement('tr');
                
                // Subject name cell
                const tdSubject = document.createElement('td');
                tdSubject.className = 'border p-2 font-medium cursor-pointer';
                tdSubject.textContent = subject;
                tdSubject.onclick = () => highlightRow(tr);
                tr.appendChild(tdSubject);

                // Grade cells
                columns.forEach(column => {
                    const td = document.createElement('td');
                    td.className = 'border p-2 text-center grade-cell cursor-pointer hover:bg-gray-50';
                    td.textContent = grades[subject]?.[column.id] || '';
                    td.addEventListener('click', () => openGradeModal(subject, column.id));
                    tr.appendChild(td);
                });

                // Average cell
                const tdAvg = document.createElement('td');
                tdAvg.className = 'border p-2 text-center';
                const avg = calculateAverage(subject);
                tdAvg.innerHTML = `${avg.toFixed(1)}${avg > 0 && avg < MINIMUM_GRADE ? ' ⚠️' : ''}`;
                tr.appendChild(tdAvg);

                tbody.appendChild(tr);
            });

            // Add total average to footer
            columns.forEach(() => {
                const td = document.createElement('td');
                td.className = 'border p-2 text-center';
                tfoot.appendChild(td);
            });
            const tdTotalAvg = document.createElement('td');
            tdTotalAvg.className = 'border p-2 text-center';
            const totalAvg = calculateTotalAverage();
            tdTotalAvg.innerHTML = `${totalAvg.toFixed(1)}${totalAvg > 0 && totalAvg < MINIMUM_GRADE ? ' ⚠️' : ''}`;
            tfoot.appendChild(tdTotalAvg);
        }

        function highlightRow(row) {
            // Убрать подсветку со всех строк
            document.querySelectorAll('#gradesTable tbody tr').forEach(tr => {
                tr.classList.remove('highlighted-row');
            });
            // Добавить подсветку выбранной строке
            row.classList.add('highlighted-row');
        }

        function calculateAverage(subject) {
            if (!grades[subject]) return 0;
            const values = Object.values(grades[subject])
                .filter(grade => grade !== 'Н')
                .map(grade => Number(grade));
            if (values.length === 0) return 0;
            return values.reduce((a, b) => a + b, 0) / values.length;
        }

        function calculateTotalAverage() {
            const subjectAverages = subjects.map(subject => calculateAverage(subject))
                .filter(avg => avg > 0);
            if (subjectAverages.length === 0) return 0;
            return subjectAverages.reduce((a, b) => a + b, 0) / subjectAverages.length;
        }

        function handleDateChange(columnId, newDate) {
            columns = columns.map(col => 
                col.id === columnId ? { ...col, date: newDate } : col
            );
            sortColumns();
        }

        function addColumn() {
            columns.push({
                id: columns.length + 1,
                date: new Date().toISOString().split('T')[0]
            });
            sortColumns();
        }

        function openDeleteModal(column) {
            selectedColumnForDelete = column;
            const modal = document.getElementById('deleteModal');
            document.getElementById('deleteDate').textContent = new Date(column.date).toLocaleDateString();
            modal.classList.add('active');
        }

        function closeDeleteModal() {
            document.getElementById('deleteModal').classList.remove('active');
            selectedColumnForDelete = null;
        }

        function deleteColumn() {
            if (!selectedColumnForDelete) return;
            
            // Удаляем оценки для этого столбца
            Object.keys(grades).forEach(subject => {
                if (grades[subject][selectedColumnForDelete.id]) {
                    delete grades[subject][selectedColumnForDelete.id];
                }
            });
            
            // Удаляем столбец
            columns = columns.filter(col => col.id !== selectedColumnForDelete.id);
            
            closeDeleteModal();
            saveData();
            initializeTable();
        }

        function openGradeModal(subject, columnId) {
            selectedCell = { subject, columnId };
            const modal = document.getElementById('gradeModal');
            const buttonContainer = document.getElementById('gradeButtons');
            buttonContainer.innerHTML = '';
            
            [1,2,3,4,5,6,7,8,9,10,'Н','С'].forEach(grade => {
                const button = document.createElement('button');
                button.className = 'grade-button';
                button.textContent = grade;
                button.onclick = () => handleGradeSelect(grade);
                buttonContainer.appendChild(button);
            });
            
            modal.classList.add('active');
        }

        function closeModal() {
            document.getElementById('gradeModal').classList.remove('active');
            selectedCell = null;
        }

        function handleGradeSelect(grade) {
            if (!selectedCell) return;
            const { subject, columnId } = selectedCell;
            if (!grades[subject]) grades[subject] = {};
            
            // Если выбрано 'С', удаляем оценку
            if (grade === 'С') {
                delete grades[subject][columnId];
            } else {
                grades[subject][columnId] = grade;
            }
            
            closeModal();
            saveData();
            initializeTable();
        }

        // Initialize
        document.getElementById('addColumn').addEventListener('click', addColumn);
        document.getElementById('confirmDelete').addEventListener('click', deleteColumn);
        loadData();
        initializeTable();
    </script>
</body>
</html>