Организовать отбор данных по направлению подготовки и степени владения иностранным языком - Lisp

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

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

Кадровое агентство занимается поиском квалифицированных специалистов. Требования к специалисту: квалификация по диплому (ИНН, фамилия, направление подготовки по диплому, свидетельство о прохождении повышения квалификации, стаж работы по специальности, степень владения иностранным языком). Организовать отбор данных по направлению подготовки и степени владения иностранным языком. Степени владения иностранным языком: A1 — может объясниться в простейшей бытовой ситуации; A2 — может объясниться в магазине, на вокзале, при занятии неквалифицированным трудом; B1 — уверенно общается в быту, читает и адекватно воспринимает несложные тексты, может объясниться при занятии квалифицированным трудом; B2 — читает и адекватно воспринимает сложные тексты, пишет без ошибок; C1 — владеет языком в достаточной мере для работы в должности инженера; C2 — владеет языком в достаточной мере для работы в должности юриста, журналиста. Помогите, пожалуйста

Решение задачи: «Организовать отбор данных по направлению подготовки и степени владения иностранным языком»

textual
Листинг программы
  1. (defstruct head ssn name speciality cert experience fluency)
  2.  
  3.  (defun heads (n)
  4.    (when (> n 0)
  5.      (cons (make-head
  6.             :ssn (read)
  7.             :name (read)
  8.             :speciality (read)
  9.             :cert (read)
  10.             :experience (read)
  11.             :fluency (read))
  12.            (heads (1- n)))))
  13.  
  14. (defun names (w s f)
  15.   (loop for a in w
  16.         when (and (equalp (head-speciality a) s)
  17.                   (equalp (head-fluency a) f))
  18.         collect (head-name a)))
  19.  
  20. (defun spec-fluency-names (w) (names w (read) (read)))
  21.  
  22. > (setf agency (heads 3))
  23. 111-22-3333
  24. Carmen
  25. Biochemistry
  26. Certificate
  27. 4
  28. A1
  29. 123-45-6789
  30. Jason
  31. Law
  32. Certificate
  33. 7
  34. C1
  35. 333-22-4444
  36. Brian
  37. Law
  38. Certificate
  39. 6
  40. C1
  41. (#S(HEAD :SSN |111-22-3333| :NAME CARMEN :SPESIALITY BIOCHEMISTRY
  42.     :CERT CERTIFICATE :EXPERIENCE 4 :FLUENCY A1)
  43.  #S(HEAD :SSN |123-45-6789| :NAME JASON :SPESIALITY LAW :CERT CERTIFICATE
  44.     :EXPERIENCE 7 :FLUENCY C1)
  45.  #S(HEAD :SSN |333-22-4444| :NAME BRIAN :SPESIALITY LAW :CERT CERTIFICATE
  46.     :EXPERIENCE 6 :FLUENCY C1))
  47. > (spec-fluency-names agency)
  48. Biochemistry
  49. A1
  50. (CARMEN)
  51. > (spec-fluency-names agency)
  52. Law
  53. C1
  54. (JASON BRIAN)

Объяснение кода листинга программы

  1. Создание структуры данных HEAD с полями ssn, name, speciality, cert, experience, fluency.
  2. Функция heads используется для создания списка структур данных HEAD. Она запрашивает данные (ssn, name, speciality, cert, experience, fluency) и добавляет структуру данных HEAD в список, пока не будет введен ноль.
  3. Функция names используется для фильтрации структур данных HEAD на основе заданных параметров (speciality и fluency). Она собирает имена структур данных HEAD, которые соответствуют заданным параметрам.
  4. Функция spec-fluency-names используется для получения имен структур данных HEAD, которые соответствуют заданным параметрам (speciality и fluency).
  5. Пример использования функции spec-fluency-names: сначала создается список структур данных HEAD с помощью функции heads, затем используется функция spec-fluency-names для получения имен структур данных HEAD, которые соответствуют заданным параметрам (speciality и fluency).

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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