Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

diary_ovrbbizcvl3t / Протокол выполнения задания

.docx
Скачиваний:
13
Добавлен:
14.03.2016
Размер:
17.63 Кб
Скачать

Протокол выполнения задания.

Следовательно, номер основного задания = 2:

«Создать базу данных(БД) "Режим дня". БД содержит записи о времени и действии в это время(Пример: 16:40, Уход с работы). БД должна загружаться из файла "base.txt" и сохранятся в него. Функции, которые можно выполнять с БД: удалить, добавить, изменить запись. Вывести список дел в заданный промежуток(Пример промежутков: "16:00-14:00","00:00 - 12:00", "12:00-00:00", "15:00-14:00")»

Номера дополнительных заданий - 2, 3:

2

При добавлении новой записи, запись должна добавляться в соответствии её алфавитного порядка(Пример: Бд содержит:"Вася", "Петя", "Саша". Добавляем запись "Женя". В БД должно быть "Вася","Женя", "Петя","Саша"). В процессе добавления, удаления, изменения записей сортировка производиться не должна. И при выводе на экрна то же.

3

Чередовать место записи при добавлении в бд. Сначала в начало потом в конец, потом в начало.

Алгоритм работы основных функций.

  1. Главная функция приложения _tmain() осуществляет основной цикл главного меню.

Пункты меню вызываются вводом ключевых букв.

1) Для чтения базы данных из файла введите r(R).

2) Для записи базы данных в файл введите w(W).

3) Добавить запись в базу данных введите a(A).

4) Удалить запись из базы данных введите d(D).

5) Редактировать запись введите u(U).

6) Показать запись с № введите s(S).

7) Вывести список дел в заданный промежуток введите p(P).

Выход из программы введите q(Q).

  1. Чтение из файла осуществляет read_db() вызовом функций fopen() и fread(). После открытия файла как « для чтения, бинарный» определяется размер файла, резервируется место в памяти под базу данных и считывается содержимое всего файла в зарезервированное место. Число считанных записей в базе данных определяется как отношение размера файла к размеру элемента типа Inventar.

  2. Сохранение базы данных в файл write_db() осуществляется функциями fopen() и fwrite(). Заново создается файл как «для записи, бинарный». Все содержимое базы копируется в файл поэлементно с размером элемента Inventar.

  3. Функция add_item() осуществляет цикл диалога по вводу нового элемента. Пользователю предлагается ввести время события/действия в формате ЧЧ:ММ. Далее запрашивается описание события/действия. Время события сохраняется в поле Type, описание события – в поле Name. Новый элемент добавляется согласно времени события, начиная поиск места вставки с конца или начала базы данных в зависимости от четности числа элементов в базе данных. Пользователю предлагается или продолжить добавление новых элементов, или выход из текущего пункта меню.

  4. Запрос номера элемента для удаления из базы производится функцией delete_item(). После проверки номера на корректность производится удаление элемента: оставляемые элементы копируем во временную базу, старую базу удаляем, делаем временную базу постоянной.

  5. Редактирование (edit_item()) запрашивает у пользователя номер редактируемого элемента, показывает текущее значение полей, позволяет ввести новые значения поля Name.

  6. Отображение текущего значения полей запрошенной записи выполняет функция show_item().

Вводом «p»( или «P») в режиме главного меню вызывается функция task_list() – диалог для отбора из базы данных событий/дел в указанный период времени. В зависимости от введенного периода отбираются и выводятся события одного дня ( например "00:00 - 12:00") или переходящие (для периодов типа "16:00-14:00", "15:00-14:00" и т.п.).

  1. Выход из приложения – по вводу «q»( «Q»).

Соседние файлы в папке diary_ovrbbizcvl3t