Предусмотреть отбор по коду категории посетителя - Lisp
Формулировка задачи:
В поликлинике ведется учет посетителей: номер полиса обязательного медицинского страхования, страховщик, фамилия, код категории посетителя, причина посещения, сумма, которую должна выплатить страховая компания за прием. Предусмотреть отбор по коду категории посетителя. Коды категории посетителя: 0 — первичный; 1 — состоит на амбулаторном учете; 2 — состоит на специальном учете.
Решение задачи: «Предусмотреть отбор по коду категории посетителя»
textual
Листинг программы
- (defstruct visitor number insurer surname code reason fee)
- (defun visitors (n)
- (when (> n 0)
- (cons (make-visitor
- :number (read)
- :insurer (read)
- :surname (read)
- :code (read)
- :reason (read)
- :fee (read))
- (visitors (1- n)))))
- (defun surnames (w input)
- (loop for a in w
- when (equalp (visitor-code a) input)
- collect (visitor-surname a)))
- (defun code-surnames (w) (surnames w (read)))
- > (setf clinic (visitors 3))
- 111
- MA
- Willis
- 0
- pain
- 200
- 112
- MB
- Walsh
- 1
- pain
- 200
- 113
- MC
- Wolfgang
- 2
- pain
- 200
- (#S(VISITOR :NUMBER 111 :INSURER MA :SURNAME WILLIS :CODE 0 :REASON PAIN :FEE 200)
- #S(VISITOR :NUMBER 112 :INSURER MB :SURNAME WALSH :CODE 1 :REASON PAIN :FEE 200)
- #S(VISITOR :NUMBER 113 :INSURER MC :SURNAME WOLFGANG :CODE 2 :REASON PAIN :FEE 200))
- > (code-surnames clinic)
- 0
- (WILLIS)
- > (code-surnames clinic)
- 1
- (WALSH)
- > (code-surnames clinic)
- 2
- (WOLFGANG)
Объяснение кода листинга программы
В данном коде на языке Lisp реализована структура данных для посетителя, которая содержит следующие поля: номер, код категории, фамилия, имя, отчество, причина посещения и стоимость приёма.
- (defstruct visitor number insurer surname code reason fee) — определяется структура данных для посетителя.
- (defun visitors (n) — определяется функция для создания списка из n посетителей.
- (defun surnames (w input) — определяется функция для получения списка фамилий посетителей, у которых код категории совпадает с введённым значением.
- (defun code-surnames (w) — определяется функция для получения списка фамилий посетителей, у которых код категории совпадает со значением, введённым пользователем.
- (setf clinic (visitors 3)) — создаётся список из трёх посетителей с произвольными значениями.
- (code-surnames clinic) — выводится список фамилий посетителей, у которых код категории равен 0.
- (code-surnames clinic) — выводится список фамилий посетителей, у которых код категории равен 1.
- (code-surnames clinic) — выводится список фамилий посетителей, у которых код категории равен 2. Таким образом, данный код позволяет создавать и оперировать списками посетителей, фильтровать их по коду категории и выводить необходимые данные.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д