Предусмотреть отбор по коду категории посетителя - Lisp

Узнай цену своей работы

Формулировка задачи:

В поликлинике ведется учет посетителей: номер полиса обязательного медицинского страхования, страховщик, фамилия, код категории посетителя, причина посещения, сумма, которую должна выплатить страховая компания за прием. Предусмотреть отбор по коду категории посетителя. Коды категории посетителя: 0 — первичный; 1 — состоит на амбулаторном учете; 2 — состоит на специальном учете.

Решение задачи: «Предусмотреть отбор по коду категории посетителя»

textual
Листинг программы
  1. (defstruct visitor number insurer surname code reason fee)
  2.  
  3.  (defun visitors (n)
  4.    (when (> n 0)
  5.      (cons (make-visitor
  6.             :number (read)
  7.             :insurer (read)
  8.             :surname (read)
  9.             :code (read)
  10.             :reason (read)
  11.             :fee (read))
  12.            (visitors (1- n)))))
  13.  
  14. (defun surnames (w input)
  15.   (loop for a in w
  16.         when (equalp (visitor-code a) input)
  17.         collect (visitor-surname a)))
  18.  
  19. (defun code-surnames (w) (surnames w (read)))
  20.  
  21. > (setf clinic (visitors 3))
  22. 111
  23. MA
  24. Willis
  25. 0
  26. pain
  27. 200
  28. 112
  29. MB
  30. Walsh
  31. 1
  32. pain
  33. 200
  34. 113
  35. MC
  36. Wolfgang
  37. 2
  38. pain
  39. 200
  40. (#S(VISITOR :NUMBER 111 :INSURER MA :SURNAME WILLIS :CODE 0 :REASON PAIN :FEE 200)
  41.  #S(VISITOR :NUMBER 112 :INSURER MB :SURNAME WALSH :CODE 1 :REASON PAIN :FEE 200)
  42.  #S(VISITOR :NUMBER 113 :INSURER MC :SURNAME WOLFGANG :CODE 2 :REASON PAIN :FEE 200))
  43. > (code-surnames clinic)
  44. 0
  45. (WILLIS)
  46. > (code-surnames clinic)
  47. 1
  48. (WALSH)
  49. > (code-surnames clinic)
  50. 2
  51. (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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут