Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
 

printКурсовая работа

printТемы

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

1. Генератор арифметических примеров

Разработать программу для генерации примеров для контрольных работ по арифметике. На экране настройки вводятся следующие опции:

Настройки генератора

Сгенерированные примеры вместе с ответами вывести в указанный файл, разделяя пустой строкой, в следующем виде:

4 : (1 + 1) = 

Ответ: 2

2 + 3 = 

Ответ: 5

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


Генерацию можно производить следующим образом:

Задать случайным образом результат в указанном диапазоне.

  1. Выбрать арифметическое действие
  2. Выбрать число в указанном диапазоне - это 1-й операнд
  3. Рассчитать 2-й операнд
  4. Если 2-й операнд вне диапазона, перейти к шагу 1
  5. Выбрать случайно N от 0 до общЧислоДействий-1 // N - число действий для разложения 1-го операнда
  6. M=общЧислоДействий-N-1 // M - число действий для разложения 2-го операнда
  7. Если N>0, то разложить 1-й операнд с помощью рекурсивного применения этого алгоритма, иначе использовать число в качестве левого операнда
  8. Если M>0, то разложить 2-й операнд с помощью рекурсивного применения этого алгоритма, иначе использовать число в качестве правого операнда

Для представления примера использовать следующий класс:

конструктор(целое число)
конструктор(пример* левая часть, char действие, пример* правая часть) // для смены знака левая часть = nullptr
действие() // char
приоритет действия() // int, для уменьшения количества выводимых скобок
вывод(ostream &)

Ввод настроек генератора с помощью библиотеки nuklear

loading