Предусмотреть отбор по коду категории посетителя - 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 реализована структура данных для посетителя, которая содержит следующие поля: номер, код категории, фамилия, имя, отчество, причина посещения и стоимость приёма.

  1. (defstruct visitor number insurer surname code reason fee) — определяется структура данных для посетителя.
  2. (defun visitors (n) — определяется функция для создания списка из n посетителей.
  3. (defun surnames (w input) — определяется функция для получения списка фамилий посетителей, у которых код категории совпадает с введённым значением.
  4. (defun code-surnames (w) — определяется функция для получения списка фамилий посетителей, у которых код категории совпадает со значением, введённым пользователем.
  5. (setf clinic (visitors 3)) — создаётся список из трёх посетителей с произвольными значениями.
  6. (code-surnames clinic) — выводится список фамилий посетителей, у которых код категории равен 0.
  7. (code-surnames clinic) — выводится список фамилий посетителей, у которых код категории равен 1.
  8. (code-surnames clinic) — выводится список фамилий посетителей, у которых код категории равен 2. Таким образом, данный код позволяет создавать и оперировать списками посетителей, фильтровать их по коду категории и выводить необходимые данные.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5