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

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

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

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

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

textual
Листинг программы
(defstruct head ssn name speciality cert experience fluency)
 
 (defun heads (n)
   (when (> n 0)
     (cons (make-head
            :ssn (read)
            :name (read)
            :speciality (read)
            :cert (read)
            :experience (read)
            :fluency (read))
           (heads (1- n)))))
 
(defun names (w s f)
  (loop for a in w
        when (and (equalp (head-speciality a) s)
                  (equalp (head-fluency a) f))
        collect (head-name a)))
 
(defun spec-fluency-names (w) (names w (read) (read)))
 
> (setf agency (heads 3))
111-22-3333
Carmen
Biochemistry
Certificate
4
A1
123-45-6789
Jason
Law
Certificate
7
C1
333-22-4444
Brian
Law
Certificate
6
C1
(#S(HEAD :SSN |111-22-3333| :NAME CARMEN :SPESIALITY BIOCHEMISTRY
    :CERT CERTIFICATE :EXPERIENCE 4 :FLUENCY A1)
 #S(HEAD :SSN |123-45-6789| :NAME JASON :SPESIALITY LAW :CERT CERTIFICATE
    :EXPERIENCE 7 :FLUENCY C1)
 #S(HEAD :SSN |333-22-4444| :NAME BRIAN :SPESIALITY LAW :CERT CERTIFICATE
    :EXPERIENCE 6 :FLUENCY C1))
> (spec-fluency-names agency)
Biochemistry
A1
(CARMEN)
> (spec-fluency-names agency)
Law
C1
(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
Похожие ответы