В курсовой работе были созданы следующие функции пользователя:
1. read_file=proc(f_name: array[char])
signals("ERROR").
effects: Открывает файл по чтению с передаваемым ей именем и заполняет структуру данных о блюдах меню. После этого файл закрывается. В случае ошибки открытия файла выводится сообщение "ERROR".
2. open_file=proc() return (int)
effects: Считывает файлы с текущего каталога и выводит их в окне. Также осуществляет возможность предвижения по файлам и выбора нужного файла. Если файл был выбран функция возвращает 0, при отсутствии файлов функция возвращает 1.
3. save_file=proc()
signals("ERROR").
effects: Открывает файл по записи с текущим именем открытого файла и заполняет этот файл текущими данными о блюдах меню. После этого файл закрывается. В случае ошибки открытия файла выводится сообщение "ERROR".
4. save_file_as=proc()
signals("Введите имя файла").
effects: Выводит запрос "Введите имя файла" и вызывает функцию save_file.
5. print_head=proc()
effects: Вывод заголовка меню.
6. write_cell=proc(num_rec :int, y :int, num_col :int, mode :int)
effects: Функция записи ячейки по передаваемым ей номеру блюда, координаты по Y, номера столбца и режиму (нормальный, инверсный).
7. edit_cell=proc(num_rec :int, y :int, num_col :int, mode :int)
effects: Редактирование содержимого ячейки по передаваемым ей номеру блюда, координаты по Y, номера столбца и режиму (нормальный, инверсный).
8. delete_record=proc(num_rec :int)
effects: Удаляет ячейку с номером num_rec.
9. print_menu=proc(st_rec :int)
effects: Выводит меню на экран начиная с записи st_rec.
10. calculate_sum_price=proc()
effects: Вычисляет суммарную стоимость выбранных блюд.
11. print_reference=proc()
effects: Вывод окна "Горячие клавиши".
11. show_window =proc(startx :int, starty :int, endx :int, endy :int)
effects: Выводит окно с координатами левого верхнего угла (startx, starty) и координатами правого нижнего угла (endx, endy).
12. print_about=proc()
effects: Вывод окна "О программе".
13. print_str(str: array[char], x :int, len :int, y :int, mode :int)
effects: Выводит строку str на экран в позицию (x, y) с режимом (нормальный, инверсный) mode и длиной выделения len.
13. edit_menu=proc() returns (int)
effects: Редактирование меню. Возвращает нажатые клавиши в окне редактирования.
14. add_record=proc()
effects: Добавление блюда в меню.
15. sort_menu=proc(by :int)
effects: Сортировка меню по алфавиту (by=0) и по цене (by!=0).
16. cmp_fio=proc(name_A: array[char], name_B: array[char]) returns (int)
effects: Сравнение строки name_A со строкой name_B. В случае равенства возвращается 1, иначе 0.
17. cmp_reit=proc(name_A: const , name_B: const) returns (int)
effects: Сравнивает name_A с name_B и возвращает 0, если равны, отрицательное число, если name_A < name_B, и положительное число, если name_A > name_B.
18. print_status_pos=proc(rec :int)
effects: Выводит номер текущей строки rec и количество строк в нижней части рамки.
19. print_status_file=proc()
effects: Выводит текущее имя файла в верхней части рамки.
20. draw_doubleborder =proc(startx :int, starty :int, endx :int, endy :int)
effects: Выводит двойную рамку с координатами левого верхнего угла (startx, starty) и координатами правого нижнего угла (endx, endy).
21. draw_border =proc(startx :int, starty :int, endx :int, endy :int)
effects: Выводит одинарную рамку с координатами левого верхнего угла (startx, starty) и координатами правого нижнего угла (endx, endy).
22. print_statusbar=proc()
effects: Выводит строку состояния на экран.
23. goto_xy(x :int, y :int)
effects: Устанавливает позицию курсора в положение (x, y).
24. display_vmenu=proc(v_menu: array[char])
effects: Выводит на экран строки вертикального меню v_menu.
25. display_gmenu=proc()
effects: Выводит на экран строки горизонтального меню.
26. display_row=proc(v_menu: array[char], mode :int)
effects: Вывод строки вертикального меню v_menu с режимом mode.
27. init_popup=proc(v_menu: array[char], c :int, b :int, x :int, y :int, num :int)
effects: Функция инициализирует вертикальные меню.
28. get_popup=proc(num :int) returns (int)
effects: Возвращает нажатую клавишу при выборе вертикального меню с номером num.
29. get_resp=proc() returns (int)
effects: Возвращает нажатую клавишу при выборе подменю пункта главного меню.
30. display_col=proc(mode :int)
effects: Выводит текст горизонтального меню в режиме mode.
31. print_status_bar=proc()
effects: Выводит строку состояния и рамку главного окна.
32. print_menu1=proc(st_rec :int)
effects: Выводит список выбранных блюд.
33. create_file=proc()
effects: Создает новое меню.
34. menu_choice=proc(cell: int)
effects: Осуществляет пермещение по списку выбранных блюд и их удаление при необходимости.
