Главная страница
Навигация по странице:

  • Программу

  • Количество строк «цифрового дисплея»

  • Количество ячеек памяти

  • Дополнительные функции расширенного режима

  • Уточнение

  • контрольная. Хромушкин Александр Николаевич 70174241


    Скачать 284.24 Kb.
    НазваниеХромушкин Александр Николаевич 70174241
    Дата06.10.2022
    Размер284.24 Kb.
    Формат файлаdocx
    Имя файлаконтрольная.docx
    ТипДокументы
    #716858



    Хромушкин Александр Николаевич

    70174241


    Задание № 2





    Разработка экспертной системы

    С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)

    формулировка

    Некоторый банк хочет внедрить систему управления счетами клиентов, поддерживающую следующие операции:


    1. Пополнение счета клиента.

    2. Снятие денег со счета.

    3. Запрос остатка средств на счете.

    4. Перевод денег между счетами клиентов.

    5. Начисление процентов всем клиентам.

    Методические указания

    Необходимо реализовать такую систему. Первоначально у банка 1 кли- ент. Клиент(ы) банка идентифицируются именами (уникальная строка, не содержащая пробелов). Вам необходимо задать в качестве имени клиента

    – свою фамилию на английском языке с большой буквы. На вашу фами- лию должен быть открыт счет с суммой равной вашему ID.

    Ivanov 70121903

    В отдельном поле должна быть предусмотрена возможность ввода про- стых команд, которые поддерживают следующие операции:




    DEPOSIT name sum

    Зачислить сумму sum на счет клиента name. Если клиента нет, то он создает- ся и на него заводится счет с указан- ной суммой.




    WITHDRAW name sum

    Снять сумму sum со счета клиента name. Если клиента, то счет создается. Баланс при выполнении такой опера- ции у вновь созданного клиента дол- жен быть отрицательный.




    BALANCE name

    Узнать остаток средств на счету кли- ента name. Для каждого запроса BALANCE программа должна вывести остаток на счету данного клиента. Ес- ли же у клиента с запрашиваемым именем не открыт счет в банке, выво- дится сообщение «NO CLIENT». Если пользователь не указал имя клиента – то выводится баланс всех существую- щих клиентов.




    TRANSFER name1 name2 sum

    Перевести сумму sum со счета клиента name1 на счет клиента name2. Если у какого-либо клиента, то он заводится в

    системе и ему создается счет с переве-
















    денной суммой.




    INCOME p

    Начислить всем клиентам, у которых открыты счета, p% от суммы счета. Проценты начисляются только клиен- там с положительным остатком на сче- ту, если у клиента остаток отрицатель- ный, то его счет не меняется. После начисления процентов сумма на счету остается целой, то есть начисляется только целое число денежных единиц. Дробная часть начисленных процентов отбрасывается.





    ПРОГРАММА ДОЛЖНА ОБРАБАТЫВАТЬ ТЕКСТОВЫЕ КОМАНДЫ ИЗ ЛЕВОГО ПОЛЯ ТОЛЬКО ПОСЛЕ НАЖАТИЯ КНОПКИ «Calculate».

    То есть, пользователь СНАЧАЛА вводит желаемые команды, при этом каждая новая команда вводится с новой строки, а ПОТОМ нажимает на кнопку «Calculate». Результат должен быть выведен в поле справа.

    Количество команд, которые может ввести пользователь за один раз – не более 20. При необходимости следует предусмотреть прокрутку в поле. Пользователю допускается вводить «пустые строки» - несколько раз нажимать на кнопку «enter». При нажатии клавиши ввода «enter», фокус не должен переходить на кнопку «Calculate».

    Формат и внешний вид окна определяет разработчик. Для «очистки» ле- вого и правого полей можно предусмотреть кнопку «Clear», при этом данные о ранее введенных клиентах не должны быть потеряны.

    ВАЖНО:

    1. Команды вводятся пользователем только большими буквами. Сама ко- манда, имя клиента, суммы (числа) разделяются пробелами.

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

    3. Как только для несуществующего ранее клиента проводится операция пополнения (DEPOSIT), снятия (WITHDRAW) или перевода денег (TRANSFER), он вносится в систему, ему заводится счет с указанным балансом. Все дальнейшие операции проводятся только с этим счетом. Сумма на счету может быть как положительной, так и отрицательной, при этом всегда является целым числом.

    Программу сохранить под именем exercise_2.py

    Входные дан- ные

    Преподаватель вводит текст в текстовый файл resourse_2.txt (5-6 абзацев) и сохраняет его.

    Выходные

    Выведите ответ на задание 1 в текстовый файл result_2.txt.




    данные

    Damme 4

    Is 3

    Name 3

    Van 3

    Bond 2

    claude 2

    hi 2

    my 2

    james 1

    jean 1

    what 1
        1. ЗАДАНИЕ № 3





    Разработка аналитической системы

    С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)

    формулировка

    Разработать калькулятор со стандартным и расширенным функционалом. Стандартный функционал

    1. Арифметические действия + - * /.

    2. Возможность ввода отрицательного числа

    3. Возведение в степень.

    4. Извлечение квадратного корня.

    5. Работа с памятью, состоящей из одной ячейки.

    6. Должна быть кнопка сброса и кнопка «=» (равно).


    Расширенный функционал


    1. Наличие кнопки/меню перехода в расширенный режим

    2. Возможность работы с несколькими ячейками памяти. Количество ячеек памяти выбирается согласно методическим указаниям.

    3. Отображение последовательности математических операций и цифр в n-строчном «дисплее», с возможностью «прокрутки». Количество строк «дисплея» калькулятора выбирается согласно методическим

    указаниям.

    1. Реализация «инженерных» функций расширенного режима. Кон- кретный перечень функций выбирается согласно методическим ука- заниям.

    Методические указания

    Необходимо разработать программу и GUI для реализации стандартных функций калькулятора. Примерный вид внешнего интерфейса представлен на рисунке.









    Конкретная компоновка элементов интерфейса, внешний вил, цветовая па- литра, максимальное количество отображаемых цифр, число отображаемых строк на «дисплее» калькулятора могут отличаться от представленного ри- сунка и должны согласовываться с руководителем курсовой работы.

    Функционал «инженерного» режима работы калькулятора добавляется при нажатии на кнопку перехода в расширенный режим, либо выбора соответ- ствующего пункта меню.

    Расширенный режим работы определяется внешним видом «цифрового дисплея», количеством ячеек памяти (кнопки M+, M-, MS, MR, MS) и кнопками, отвечающими за дополнительные функции.

    Количество строк «цифрового дисплея» должно определяться как после- довательная сумма всех цифр ID студента. Суммирование отдельных цифр числа должно осуществляться до получения однозначного числа, состоя- щей из 1-й цифры. Данный процесс рекомендуется реализовать с помощью рекурсивной функции. Для данной функции должна быть предусмотрена специальная кнопка .







    Например: обучающийся Иванов Иван Иванович, имеет ID 80121986 Сумма всех цифр равна:

    8+0+1+2+1+9+8+6=35;

    3+5=8

    Следовательно, «цифровой дисплей» калькулятора должен иметь 8 строк.


    Если после последовательного суммирования ID получилась цифра «1», например, для ID=82121986:

    8+2+1+2+1+9+8+6=37;

    3+7=10

    1+0=1

    В этом случае количество строк «цифрового дисплея» должно быть равно 10.

    Таким образом, в зависимости от ID число «цифровых строк» дисплея калькулятора может варьироваться от 2-х до 10.

    Количество ячеек памяти калькулятора должно определяться как после- довательная сумма последних 3-х чисел ID. Суммирование отдельных цифр числа должно осуществляться до получения однозначного числа, со- стоящей из 1-й цифры. Данный процесс также рекомендуется реализовать с помощью рекурсивной функции.

    Например: обучающийся Иванов Иван Иванович, имеет ID 80121986 Сумма последних трёх цифр равна:

    9+8+6=23;

    2+3=5

    Следовательно, должно быть предусмотрено 5 ячеек памяти для работы с (M+, M-, MС, MR, MS).








    Если после последовательного суммирования 3-х цифр ID получилась цифра «1», например, для ID=82121001:

    0+0+1=1;

    В этом случае количество ячеек памяти должно быть равно 2.

    Таким образом, в зависимости от ID число ячеек памяти (и соответствую- щих кнопок, реализующий данный функционал) калькулятора может варь- ироваться от 2-х до 9.

    Дополнительные функции расширенного режима, которые должны быть реализованы определяются в соответствие с таблицей по первой бук- ве Фамилии обучающегося




    Первая

    буква фамилии

    Наименова-

    ние функ- ции

    Описание функции




    А

    Pi,

    sin,tan,exp, n!, Frac

    Число Пи, синус, тангенс, экспонента, факто-

    риал; отсекает целую часть, оставляет дроб- ную

    Б

    asin, acos,

    atg, log_xy, n!

    Арксинус, арккосинус, арктангенс, логарифм по основанию, факториал

    В

    //, ctg, 10х,

    asin, acos

    Целочисленное деление, котангенс, 10 в сте-

    пени х, арксинус, арккосинус

    Г

    F – E, y√x, lg10

    переключает ввод чисел в экспоненциальном представлении и обратно, y-ый корень числа

    x, где y обычно является положительным це- лым числом, десятичный логарифм

    Д

    gcd(a, b); tanh, Ln, X3

    Возвращает наибольший общий делитель a и b; гиперболический тангенс, натуральный ло- гарифм по основанию «e»; возвести в степень

    3

    Е

    hypot(x, y),

    isqrt(), Sinh, Mod

    функция вычисляет гипотенузу треугольника c катетами x и y; Возвращает целочисленный квадратный корень аргумента, округлённый вниз; гиперболический синус, вычислить

    остаток от деления одного числа на другое

    Ж

    tanh, Ln, X3,

    гиперболический тангенс, натуральный лога-













    Frac

    рифм по основанию «e», возвести в степень 3;

    отсекает целую часть, оставляет дробную




    З

    sinh-1, exp,

    asin, acos

    обратный гиперболический синус, экспонен-

    та, арксинус, арккосинус

    И

    Mod, tanh, asin, acos

    вычислить остаток от деления одного числа на другое, гиперболический тангенс; арксинус,

    арккосинус

    К

    Ln, X3,

    Dms, sin

    натуральный логарифм по основанию «e», возвести в степень 3; переводит из десятично-

    го вида в формат в градусы, минуты, секунды; синус

    Л

    Х3, asin,

    acos

    Возведение в куб, арксинус, арккосинус

    М

    Sinh, Mod,

    y√x, lg10

    гиперболический синус, вычислить остаток от деления одного числа на другое; y-ый корень

    числа x, где y обычно является положитель- ным целым числом, десятичный логарифм

    Н

    deg, y√x, lg10, sin, cos

    перевод угла в градусах, минутах и секундах в десятичные доли градуса; y-ый корень числа x, где y обычно является положительным це- лым числом, десятичный логарифм; синус,

    косинус

    О

    Int, Pi, tanh, Ln, X3

    отображает целую часть десятичного числа, число Пи, выдает значение Pi для расчетов; гиперболический тангенс, натуральный лога-

    рифм по основанию «e», возвести в степень 3

    П

    Inv, sin, cos, tan

    обратная функция для sin, cos, tan, переключа-

    ет интерфейс на другие функции; синус; коси- нус; тангенс

    Р

    Dms, sin, cos, tan

    переводит из десятичного вида в формат в градусы, минуты, секунды; синус; косинус;

    тангенс

    С

    Dms, 10^x, Pi, tanh, Ln

    переводит из десятичного вида в формат в градусы, минуты, секунды; возведение десяти в произвольную степень, число Пи, гипербо-

    лический тангенс, натуральный логирифм

    Т

    F – E, acos,

    atg, log_xy, n!

    переключает ввод чисел в экспоненциальном

    представлении и обратно; арккосинус, арктан- генс, логорифм по основанию, факториал

    У

    Pi,

    sin,tan,exp, asin, acos

    Число Пи, синус, тангенс, экспонента, аркси- нус, арккосинус

    Ф

    Mod, tanh, Ln, X3, exp, asin, acos

    вычислить остаток от деления одного числа на другое, гиперболический тангенс, натураль-

    ный логарифм по основанию «e», возвести в степень 3, экспонента, арксинус, арккосинус

    Х

    pow(a, b),

    n!, F – E,

    acos

    функция выполняет возведение числа a в сте- пень b и возвращает затем вещественный ре- зультат; вычисление факториала; переключа- ет ввод чисел в экспоненциальном представ-

    лении и обратно; арккосинус

    Ц

    Pi, sin,tan,

    Число Пи, синус, тангенс; Округляет число до













    floor()

    ближайшего целого, но в меньшую сторону




    Ч

    sin, cos, tan,

    Ln, X3

    синус; косинус; тангенс; натуральный лога-

    рифм по основанию «e», возвести в степень 3

    Ш

    Mod, tanh, F E, acos

    вычислить остаток от деления одного числа на другое, гиперболический тангенс, переключа-

    ет ввод чисел в экспоненциальном представ- лении и обратно; арккосинус

    Щ

    F E, acos, tanh, Ln, X3

    переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус; гипер-

    болический тангенс, натуральный логарифм по основанию «e», возвести в степень 3

    Э

    tanh, Ln, X3, log_xy, n!

    гиперболический тангенс, натуральный логи- рифм, возведение в куб, логорифм по основа-

    нию, факториал

    Ю

    X3, 10^x,

    Pi, tanh

    возведение в куб, возведение десяти в произ- вольную степень, число Пи, гиперболический

    тангенс

    Я

    tanh, asin, acos, F E

    гиперболический тангенс; арксинус, арккоси- нус, переключает ввод чисел в экспоненци-

    альном представлении и обратно


    Примерный внешний вид, реализующий данный функционал может быть следующим:









    ВАЖНО:

    1. Программа должна использовать распространенные библиотеки. Если с согласия руководителя предполагается для реализации дополнительных функций и отрисовки интерфейса использование сторонних библиотек, то в пояснительной записке к курсовой работе должно быть представлено обоснование и подробное их описания.

    2. При разработке программы следует использовать принципы объектно- ориентированного программирования.

    3. Калькулятор должен работать и корректно выдавать результат.

    4. Размер кнопок, цветовая палитра, расположение и т.п. определяется са- мостоятельно. Внешний вид калькулятора не оценивается, однако следует придерживаться традиционных компоновок.

    5. При намеренном выполнении некорректных операций, например, извле- чение квадратного корня из отрицательного числа, калькулятор должен на цифровой дисплей выдавать соответствующее сообщение об ошибке. Если же программу останавливает интерпретатор – то проверяемая функция считается не до конца отработанной.


    Программу «Калькулятор» сохранить под именем exercise_3.py

    Входные дан- ные

    Преподаватель с помощью мыши вводит числа и выполняет арифметиче- ские операции.

    Преподаватель с помощью мыши вводит числа и выбирает заявленные до- полнительные функции.

    Преподаватель вводит намеренно некорректные операции (попытка деле- ния на 0)

    Выходные данные

    На цифровом дисплее должен отображаться результат, либо сообщение об ошибке при некорректной операции.
    Проверяется количество строк в «цифровом дисплее» калькулятора и коли- чество ячеек памяти.
        1. ЗАДАНИЕ № 4





    Задача о Ха- нойских баш- нях


    С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)

    формулировка

    Модифицированная задача о Ханойских башнях:

    Существует 8 шпинделей, пронумерованых от 8 до 1 слева направо. На каждом шпинделе надеты диски, в количестве, равном соответствующей цифре из ID студента. Все диски имеют разные диаметры. Диаметр диска равен M * 10 + N, где М – номер шпинделя, на котором надет диск, а N – это номер диска на шпинделе, считая сверху вниз.

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

    2. Необходимо вычислить, за какое минимальное количество итера- ций переместятся все диски на шпиндель номер 1 по следующим правилам:

    а) За одну итерацию можно переместить не более одного диска б) Диски можно класть только с большего на меньший

    в) Со шпинделя номер 8 можно перекладывать диски только на шпиндели 7 и 6

    г) Со шпинделя номер 1 можно перекладывать диски только на шпиндели номер 2 и 3

    д) Со шпинделей от 2 по 7 можно перекладывать диски только на два соседних шпинделя.

    1. Необходимо отобразить начальное и конечное расположение дисков на шпинделях, для этого под изображением Ханойских башен предусмот- реть две кнопки «Начало» и «Окончание». При нажатии на нее, в надписи под схемой должен выводится текст «Итерация ХХ», где ХХ – номер ите- рации (либо 0, либо номер итоговой итерации, соответственно).

    2. Необходимо графически отобразить четыре промежуточные итера- ции перекладывания дисков. Для этого:

    а) общее количество итераций признаётся равным 100%,

    б) ID студента делится на 4 двузначных числа, каждое из которых обозначает итерацию, соответствующую этому проценту выполнения об- щей задачи.

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

    г) Под каждым полем для ввода предусмотреть кнопку, при нажатии на которую схема Ханойской башни отображает расположение дисков на соответствующей итерации. Также в надписи под схемой должен выводит- ся текст «Итерация ХХ», где ХХ номер итерации







    5. Дать возможность пользователю изменять проценты в полях для ввода цифр, и по нажатию соответствующей кнопки просматривать расположе- ние дисков на данной итерации.

    Методические указания

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

    Схема ханойских башен должна выглядеть примерно таким образом:


    (В данном примере расположение дисков соответствует ID студента 70256421)

    Так как размер диска должен соответствовать его номеру на шпинделе и номеру самого шпинделя, умноженного на 10, то как нетрудно догадаться, максимальный диаметр диска может быть 89. Поэтому для правильной ви- зуализации без наложения дисков рекомеднуется выдерживать расстояние между шпинделями примерно в 100-120 пикселей (для окна формата 1280х1024).

    Поскольку диски близких размеров будут отличаться всего на один пик- сель, то для контроля на каждом диске необходимо проставить его диамер в виде цифры. Так как в конце задачи все диски будут находиться на пер- вом шпинделе, а общее количество дисков теоретически может быть равно 72, то рекомендуется сделать толщину одного диска примерно равной 10- 12 пикселям, для указанного окна.

    Остальные элементы управления под схемой Ханойской башни рекоменду- ется выстраивать в следующем порядке:


    На данном рисунке также видно, как следует разбивать ID студента для выведения промежуточных итогов. При нажатии на кнопки, нужно пока- зать итерации, соответствующие 70%, 25%, 64% и 21% выполнения задачи. Уточнение

    Если по какому-либо проценту получается дробная итерация, то необходи- мо её визуализировать как промежуточный этап переноса диска. При этом диск изобразить в воздухе, между тем шпинделем, с которого он снят, и тем, на который он переносится. Номер итерации в таком случае отобра-

    жать как дробный, с округлением до 3 цифр после нуля.










    Программу сохранить под именем

    exercise_4.py







    Входные дан- ные

    Идентификатор студента.
    Промежуточные проценты, вводимые преподавателем в соответсвующие поля над кнопками.

    Выходные данные

    На цифровом дисплее должно отображаться окно с начальным расположе- нием дисков на шпинделях Ханойских башень. Шпиндели пронумерованы, на дисках также обозначены соответствующие диаметры. Под ней отобра- жается шесть кнопок и четыре поля для ввода цифр. В нижней части экрана демонстрируется надпись «Итерация 0»
    При нажатии на любую из шести имеющихся кнопок, либо при заполнении поля ввода другими данными и нажатии на кнопку, схема ханойских ба- шень меняется, для отображения соответствующей итерации. Надпись в

    нижней части экрана также меняется.


    написать администратору сайта