Обзор проекта
Часть раздела Логика и управление потоком путешествия по Ruby на Coddy — урок 48 из 56.
Вы создадите небольшую систему учета студентов в виде набора методов, которые используют один общий вложенный хэш. Структура будет отличаться от Library Manager: на этот раз обойдемся без цикла меню, только функции, которые вы будете постепенно расширять.
Состояние хранится в одном хеше верхнего уровня:
student_records = {}Каждая запись будет иметь ключ по имени, а значением будет хеш, содержащий возраст, оценки и курсы студента:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Каждый урок добавляет один метод, который работает с этим хешем: add_student, add_grade, average_grade, list_by_course, top_students.
Задание
НовичокИнициализируйте пустой хеш с именем student_records в начале вашего файла. Затем выведите его с помощью inspect, чтобы тест увидел:
{}Это вся задача, этот урок просто настраивает общее состояние для всего последующего.
Шпаргалка
Система учета студентов использует один вложенный хэш в качестве общего состояния:
student_records = {}
Каждая запись индексируется по имени студента и содержит хэш с age, grades и courses:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Используйте inspect для вывода содержимого хэша:
puts student_records.inspectПопробуйте сами
# TODO: инициализируйте student_records = {} и выведите его с помощью inspect
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Обзор методов строкИнтерполяция строкИтерация по строкамSplit и JoinИтоги — String Weaver4Блоки, Proc и лямбды
Что такое блок?do..end против фигурных скобокКлючевое слово yieldПараметры блокаProc и лямбдыИтоги: пользовательский итератор7Хеши. Часть 2
Hash.new со значениями по умолчаниюИтерация по хешамВложенные хешиСлияние и преобразованиеИтоги — счетчик частоты10Проект — Учёт студентов
Обзор проектаДобавить студента2Диапазоны
Что такое диапазон?Методы диапазоновДиапазоны в Case / WhenПовторение — практика по диапазонам5Мощь Enumerable
Select и RejectЦепочки MapReduce / Injectcount, all?, any?, none?group_by и partitionsort_by, min_by, max_byИтоги — Data Pipeline8Продвинутые условные конструкции
Case с классами и RegexМножественные значения в whenТернарный операторОднострочные if / unlessПовторение: Классификатор оценок