Skip to content

Решение финального проекта с курса Основы разработки на C++: жёлтый пояс на coursera

Notifications You must be signed in to change notification settings

y0f0/Simple-database-implementation

Repository files navigation

Simple-database-implementation

Решение финального проекта с курса на coursera

Пример работы БД

stdin

Add 2017-11-21 Tuesday
Add 2017-11-20 Monday
Add 2017-11-21 Weekly meeting
Print
Find event != "Weekly meeting"
Last 2017-11-30
Del date > 2017-11-20
Last 2017-11-30
Last 2017-11-01

stdout

2017-11-20 Monday
2017-11-21 Tuesday
2017-11-21 Weekly meeting
2017-11-20 Monday
2017-11-21 Tuesday
Found 2 entries
2017-11-21 Weekly meeting
Removed 2 entries
2017-11-20 Monday
No entries

Введение


  • Add date event — добавить в базу данных пару (date, event);

  • Print — вывести всё содержимое базы данных;

  • Find condition — вывести все записи, содержащиеся в базе данных, которые удовлетворяют условию condition;

  • Del condition — удалить из базы все записи, которые удовлетворяют условию condition;

  • Last date — вывести запись с последним событием, случившимся не позже данной даты.

Формат ввода и вывода

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

Команда Add

Встретив команду Add date event, ваша программа должна добавить пару (date, event) в базу данных и затем показывать её при поиске (команда Find) или печати (команда Print). Одинаковые события, произошедшие в один и тот же день, сохранять не нужно: добавление в базу уже существующей пары (date, event) должно игнорироваться. В одну и ту же дату может произойти много разных событий, БД должна суметь их все сохранить.

Пример

Для команды Add 2017-11-07 big sport event программа должна добавить в базу данных пару (2017-11-07, big sport event).

Команда Del

Встретив команду Del condition, ваша программа должна удалить из базы данных все события, удовлетворяющие условию condition, и вывести в стандартный вывод количество удалённых записей N в формате «Removed N entries». Если условие пусто, результатом выполнения команды должна стать очистка всей базы данных.

Пример

Ввод

Add 2017-06-01 1st of June
Add 2017-07-08 8th of July
Add 2017-07-08 Someone's birthday
Del date == 2017-07-08

Вывод

Removed 2 entries

Команда Print

Встретив команду Print, ваша программа должна вывести все пары (дата, событие), которые в данный момент содержатся в базе данных. Пары надо выводить по одной в строке. Они должны быть отсортированы по дате по возрастанию. События в рамках одной даты необходимо выводить в порядке добавления (за исключением уже удалённых и попыток добавления повторов)

Пример

Ввод

Add 2017-01-01 Holiday
Add 2017-03-08 Holiday
Add 2017-1-1 New Year
Add 2017-1-1 New Year
Print

Вывод

2017-01-01 Holiday
2017-01-01 New Year
2017-03-08 Holiday

Команда Find

Встретив команду Find condition, ваша программа должна вывести все пары (дата, событие), которые в данный момент содержатся в базе данных и удовлетворяют условию condition.

Пример

Ввод

Add 2017-01-01 Holiday
Add 2017-03-08 Holiday
Add 2017-01-01 New Year
Find event != "working day"
Add 2017-05-09 Holiday

Вывод

2017-01-01 Holiday
2017-01-01 New Year
2017-03-08 Holiday
Found 3 entries

Команда Last

По команде Last date нужно вывести последнее из событий, случившихся к дате date.

  • если date меньше всех имеющихся дат, необходимо вывести «No entries».

Пример

Add 2017-01-01 New Year
Add 2017-03-08 Holiday
Add 2017-01-01 Holiday
Last 2016-12-31
Last 2017-01-01
Last 2017-06-01
Add 2017-05-09 Holiday

Ввод

No entries
2017-01-01 Holiday
2017-03-08 Holiday

сертификаты:

Основы разработки на C++: жёлтый пояс

Основы разработки на C++: белый пояс

About

Решение финального проекта с курса Основы разработки на C++: жёлтый пояс на coursera

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published