feat: js
This commit is contained in:
		
							
								
								
									
										11
									
								
								articles/static/js/fold-post.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								articles/static/js/fold-post.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| const foldBtns = document.getElementsByClassName('fold-button') | ||||
|  | ||||
| for (const btn of foldBtns) { | ||||
|     btn.addEventListener('click', function (event) { | ||||
|         event.preventDefault() | ||||
|         console.log('you clicked ', event.target) | ||||
|         const div = event.target.parentElement.getElementsByClassName('one-post-content')[0] | ||||
|         div.classList.toggle('hidden') | ||||
|         btn.innerHTML = div.classList.contains('hidden') ? 'Показать' : 'Скрыть' | ||||
|     }) | ||||
| } | ||||
							
								
								
									
										103
									
								
								articles/static/js/students.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								articles/static/js/students.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,103 @@ | ||||
| const groupmates = [ | ||||
|     { name: 'Егор', surname: 'Алексанов', exams: ['Информатика', 'ЭЭиС', 'Web'], marks: [4, 5, 3], group: 'БСТ2202' }, | ||||
|     { name: 'Юрий', surname: 'Алексанов', exams: ['История', 'АиГ', 'КТП'], marks: [3, 4, 4], group: 'БСТ2201' }, | ||||
|     { name: 'Виктор', surname: 'Аникин', exams: ['Философия', 'ИС', 'КТП'], marks: [5, 5, 4], group: 'БСТ2204' }, | ||||
|     { name: 'Артём', surname: 'Бабушкин', exams: ['Информатика', 'Физика', 'Web'], marks: [4, 3, 5], group: 'БСТ2203' }, | ||||
|     { name: 'Дарья', surname: 'Дорогань', exams: ['История', 'Философия', 'КТП'], marks: [5, 4, 4], group: 'БСТ2202' }, | ||||
|     { name: 'Александра', surname: 'Дубровская', exams: ['ИС', 'ЭЭиС', 'Web'], marks: [4, 5, 5], group: 'БСТ2201' }, | ||||
|     { name: 'Анна', surname: 'Кондракова', exams: ['Информатика', 'АиГ', 'Физика'], marks: [3, 4, 5], group: 'БСТ2204' }, | ||||
|     { name: 'Ангелина', surname: 'Коренкова', exams: ['История', 'Философия', 'ИС'], marks: [4, 4, 5], group: 'БСТ2203' }, | ||||
|     { name: 'Ильяс', surname: 'Крымгужин', exams: ['ЭЭиС', 'КТП', 'Физика'], marks: [5, 3, 4], group: 'БСТ2202' }, | ||||
|     { name: 'Даниил', surname: 'Кудряшов', exams: ['Информатика', 'ИС', 'Web'], marks: [4, 5, 4], group: 'БСТ2201' }, | ||||
|     { name: 'Анна', surname: 'Лобанова', exams: ['Философия', 'История', 'КТП'], marks: [5, 4, 4], group: 'БСТ2204' }, | ||||
|     { name: 'Степан', surname: 'Логашов', exams: ['АиГ', 'ЭЭиС', 'Физика'], marks: [4, 4, 5], group: 'БСТ2203' }, | ||||
|     { name: 'Данила', surname: 'Мокров', exams: ['Информатика', 'КТП', 'Web'], marks: [3, 5, 4], group: 'БСТ2202' }, | ||||
|     { name: 'Никита', surname: 'Молоканов', exams: ['История', 'ИС', 'Философия'], marks: [5, 5, 4], group: 'БСТ2201' }, | ||||
|     { name: 'Кристина', surname: 'Мясникова', exams: ['Философия', 'ЭЭиС', 'Web'], marks: [4, 5, 5], group: 'БСТ2204' }, | ||||
|     { name: 'Алексей', surname: 'Обласов', exams: ['КТП', 'Информатика', 'АиГ'], marks: [4, 3, 5], group: 'БСТ2203' }, | ||||
|     { name: 'Илья', surname: 'Образумов', exams: ['Физика', 'История', 'ИС'], marks: [5, 4, 4], group: 'БСТ2202' }, | ||||
|     { name: 'Павел', surname: 'Овчинников', exams: ['Информатика', 'Web', 'ЭЭиС'], marks: [4, 4, 5], group: 'БСТ2201' }, | ||||
|     { name: 'Валерия', surname: 'Сикидина', exams: ['АиГ', 'КТП', 'Философия'], marks: [5, 3, 4], group: 'БСТ2204' }, | ||||
|     { name: 'Дмитрий', surname: 'Смирнов', exams: ['Информатика', 'История', 'ИС'], marks: [4, 5, 4], group: 'БСТ2203' }, | ||||
|     { name: 'Максим', surname: 'Соловьёв', exams: ['Философия', 'ЭЭиС', 'Физика'], marks: [5, 4, 5], group: 'БСТ2202' }, | ||||
|     { name: 'Глеб', surname: 'Степанов', exams: ['КТП', 'Web', 'Информатика'], marks: [3, 5, 4], group: 'БСТ2201' }, | ||||
|     { name: 'Серафим', surname: 'Сухарев', exams: ['Философия', 'История', 'ИС'], marks: [4, 5, 5], group: 'БСТ2204' }, | ||||
|     { name: 'Анна', surname: 'Харченко', exams: ['Информатика', 'ЭЭиС', 'АиГ'], marks: [5, 3, 4], group: 'БСТ2203' }, | ||||
|     { name: 'Олег', surname: 'Хорун', exams: ['Физика', 'КТП', 'Философия'], marks: [4, 5, 4], group: 'БСТ2202' }, | ||||
|     { name: 'Павел', surname: 'Черниговский', exams: ['История', 'ИС', 'Web'], marks: [3, 4, 5], group: 'БСТ2201' }, | ||||
|     { name: 'Дмитрий', surname: 'Шагаров', exams: ['Философия', 'Информатика', 'ЭЭиС'], marks: [4, 4, 5], group: 'БСТ2204' }, | ||||
|     { name: 'Александр', surname: 'Шалавасов', exams: ['КТП', 'АиГ', 'Web'], marks: [5, 3, 4], group: 'БСТ2203' }, | ||||
|     { name: 'Михаил', surname: 'Шестерин', exams: ['История', 'ИС', 'Философия'], marks: [4, 5, 5], group: 'БСТ2202' }, | ||||
|     { name: 'Никита', surname: 'Шулапов', exams: ['Информатика', 'ЭЭиС', 'Физика'], marks: [5, 4, 4], group: 'БСТ2201' } | ||||
| ] | ||||
|  | ||||
| const groups = Array.from(new Set(groupmates.map(mate => mate.group))).sort(); | ||||
|  | ||||
|  | ||||
| function printStudents(students, filters = {}) { | ||||
|     const { targetScore = null, group = null } = filters | ||||
|  | ||||
|     console.log( | ||||
|         'Имя'.padEnd(15), | ||||
|         'Фамилия'.padEnd(15), | ||||
|         'Группа'.padEnd(10), | ||||
|         'Экзамены'.padEnd(40), | ||||
|         'Оценки'.padEnd(20), | ||||
|         'Средняя оценка' | ||||
|     ) | ||||
|  | ||||
|     students.forEach(student => { | ||||
|         const avg = student.marks.reduce((a, b) => a + b, 0) / student.marks.length | ||||
|         const isScoreOk = targetScore === null || avg > targetScore | ||||
|         const isGroupOk = group === null || group === student.group | ||||
|         if (isScoreOk && isGroupOk) { | ||||
|             console.log( | ||||
|                 student.name.padEnd(15), | ||||
|                 student.surname.padEnd(15), | ||||
|                 student.group.padEnd(10), | ||||
|                 JSON.stringify(student.exams).padEnd(40), | ||||
|                 JSON.stringify(student.marks).padEnd(20), | ||||
|                 avg.toFixed(2) | ||||
|             ) | ||||
|         } | ||||
|     }) | ||||
|     console.log('\n') | ||||
| } | ||||
|  | ||||
| function promptFilters() { | ||||
|     let group | ||||
|  | ||||
|     while (true) { | ||||
|         group = prompt(`Введите группу для фильтрации (${groups.join(', ')}):`) | ||||
|  | ||||
|         if (group === '') { | ||||
|             group = null | ||||
|             break | ||||
|         } | ||||
|  | ||||
|         if (groups.includes(group)) { | ||||
|             break | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     let targetScore | ||||
|  | ||||
|     while (true) { | ||||
|         targetScore = prompt('Введите среднюю оценку для фильтрации:') | ||||
|  | ||||
|         if (targetScore === '') { | ||||
|             targetScore = null | ||||
|             break | ||||
|         } | ||||
|  | ||||
|         targetScore = Number(targetScore) | ||||
|  | ||||
|         if (!isNaN(targetScore) && targetScore >= 0 && targetScore <= 5) { | ||||
|             break | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     printStudents(groupmates, { group }) | ||||
| } | ||||
|  | ||||
| // promptFilters() | ||||
		Reference in New Issue
	
	Block a user
	 root
					root