Функциональные модели и блок-схемы решения задачи



Функциональные модели и блок-схемы решения задачи представлены на рисунках 1 – 4.

Условные обозначения:

LST – список студентов и их оценок;

GR – список оценок студента.

 

Рисунок 1 – Функциональная модель решения задачи для функции SUM_GRADE

 

Рисунок 2 – Функциональная модель решения задачи для функции GET_GRADE

 

Рисунок 3 – Блок-схема решения задачи для функции SET_BEST_STUD


 

Рисунок 4 – Блок-схема решения задачи для функции SET_BAD_STUD


 

Программная реализация решения задачи

 

; INPUT - STREAM ПОТОК ВВОДА

(SETQ INPUT-STREAM (OPEN " D:\\STUDENTS.TXT" :DIRECTION :INPUT))

;СЧИТЫВАЕМ СПИСОК СТУДЕНТОВ

(SETQ STUDENTS (READ INPUT-STREAM))

;ЗАКРЫВАЕМ ФАЙЛ

(CLOSE INPUT-STREAM)

;ФУНКЦИЯ СУММИРУЕТ ВСЕ ОЦЕНКИ СТУДЕНТА

(DEFUN SUM_GRADE (LST)

(COND

((NULL LST) 0)

((ATOM LST) LST)

(T (+ (SUM_GRADE (CAR LST)) (SUM_GRADE (CDR LST))))))

;ФУНКЦИЯ ВОЗВРАЩАЕТ ИЗ СПИСКА СТУДЕНТА И ЕГО ОЦЕНОК, ТОЛЬКО ОЦЕНКИ

(DEFUN GET_GRADE (LST)

(CADR LST))

; ПОЛУЧАЕМ СУММУ ОЦЕНОК

(SETQ GRADE (MAPCAR 'SUM_GRADE (MAPCAR 'GET_GRADE STUDENTS)))

;ПОИСК ОТЛИЧНИКА

;ЕСЛИ СУММА ОЦЕНОК = 20 - ПЕЧАТАЕМ OTLICHNIK

(DEFUN SET_BEST_STUD (STUD GR)

(IF (= GR 20)

(APPEND STUD 'OTLICHNIK)

STUD))

;ПОИСК НЕУСПЕВАЮЩЕГО СТУДЕНТА

;ЕСЛИ ЕСТЬ ХОТЬ ОДНА 2 - ПЕЧАТАЕМ NEUSPEVAUWII

(DEFUN SET_BAD_STUD (LST)

(COND

((NULL LST) NIL)

((= (CAR LST) 2) 'NEUSPEVAUWII)

(T (SET_BAD_STUD (CDR LST)))))

; УСТАНАВЛИВАЕМ СТАТУС ОТЛИЧНИКА

(SETQ STUDENTS (MAPCAR 'SET_BEST_STUD STUDENTS GRADE))

; ПОЛУЧАЕМ ОЦЕНКИ

(SETQ STATUS (MAPCAR 'SET_BAD_STUD (MAPCAR 'GET_GRADE STUDENTS)))

; УСТАНАВЛИВАЕМ СТАТУС НЕУСПЕВАЮЩЕГО

(SETQ STUDENTS (MAPCAR 'CONS STUDENTS STATUS ))

;OUTPUT-STREAM ПОТОК ВЫВОДА

(SETQ OUTPUT-STREAM (OPEN " D:\\STUD_INFO.TXT" :DIRECTION :OUTPUT))

;ПЕЧАТАЕМ ПРОАНАЛИЗИРОВАННЫЙ СПИСОК В ФАЙЛ

(PRINT STUDENTS OUTPUT-STREAM)

; ЗАКРЫВАЕМ ФАЙЛ

(CLOSE OUTPUT-STREAM)


 

Пример выполнения программы

 

Пример 1.

 

Рисунок 5 – Входные данные

 

Рисунок 6 – Выходные данные

 

Пример 2.

 

Рисунок 7 – Входные данные


 

Рисунок 8 – Выходные данные


 

ЗАКЛЮЧЕНИЕ

 

В данной курсовой работе разработана информационная система анализа успеваемости студентов. Эта тема является актуальной в настоящее время, так как многие учебные заведения проводят анализ успеваемости учащихся для отслеживания уровня подготовки и выявления возможных недостатков в образовательном процессе. Система анализа успеваемости студентов обеспечивает расчет среднего бала успеваемости студента по дисциплине, выборку преуспевающего и отстающего студента.

Таким образом, данная программа по анализу успеваемости студентов делает наиболее простой работу пользователя в данной области и сокращает время на выполнение соответствующих операций.

В результате выполнения курсовой работы составлена функциональная модель для решения поставленной задачи. Проведён анализ полученных результатов, и сделаны необходимые выводы.

Созданная функциональная модель и ее Лисп-реализация могут служить органической частью решения более сложных задач.


 


Дата добавления: 2023-01-08; просмотров: 15; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!