ri58-sibsutis / irregular-verbs

0 stars 3 forks source link

Задачи #2

Closed Nevarkir closed 8 years ago

Nevarkir commented 8 years ago
  1. Реализовать окошку главное меню, в котором есть три кнопки вход, регистрация и выход.
  2. Реализовать функцию регистрации пользователя, при котором программа заходит в директорию save и создает текстовый файл названный именем пользователя, в самом текстовом файле хранится пароль, уровень и процент выполнения заданий. В первой строке приписывается пароль пользователя, а во второй строке назначается первый уровень, а на третьей 0% выполнения заданий. Должно также быть реализовано допустимость символов в имени пользователя идентичные с допустимостью символов текстового файла. И реализовать окошку регистрации со строками имя пользователя и пароль, а также с кнопкой выхода в главное меню. После регистрации должно перейти в окно пользователя.
  3. Реализовать функцию входа, при котором программа заходит в директорию save и ищет совпадения названий текстовых файлов с данными, которые ввел пользователь в первой строке. Если есть совпадение то открывает данный текстовый файл и сравнивает первую строку этого файла с данным, которые ввел пользователь во второй строке. Если и тут совпало то пользователь успешно заходит. Далее программа смотрит вторую строку, число введенное во вторую строку принимается за уровень и пользователь автоматически переходит на тот уровень, который указан в тексте. Далее смотрит процент выполнения, это третья строка, и также автоматически засчитывает процент выполнения пользователю. Реализовать окно входа с строками: имя пользователя и пароль, а также с кнопкой выхода в главное меню. После входа должно перейти в окно пользователя.
  4. Реализовать окно пользователя, в котором есть две кнопки: старт и выход в главное меню. Также есть информация об уровне пользователя и о проценте выполнения заданий, считанные с текстового файла пользователя. При вводе старт проходит задание согласно уровню, и пропускает некоторые задания согласно % выполнения заданий.
  5. Реализовать первый уровень приложения. Программа должна выводить случайную строку, в котором содержатся слово на английском и его перевод, из текстового файла "Слова для первого уровня", из данной строки на экран вводится первое слово, она также стирается из данной строки. А также программа должна вывести вторые слова из двух случайно подобранных строк, т.е. два слова на русском. Далее в случайном порядке присваивает номера перед каждым словом из чисел: 1, 2 и 3. Номер первого слова запоминается. Далее пользователь вводит число-номер слова, идет сопоставление, и если верно увеличивает процент выполнения заданий пользователя, затем либо повторяет данную программу, либо переходит на следующий уровень. Чтобы понять переходит ли пользователь на следующий уровень вводится проверка после каждого задания. После каждого задания текстовый файл пользователя обновляется, так проценты постоянно изменяются.
  6. Реализовать функцию проверки, которая проверяет достаточно ли процента выполненных заданий, чтобы перейти на следующий уровень. Если процента достаточно то пользователю присваивается n уровень в текстовом файле пользователя, а также задания n-1 уровня заменяются заданиями n уровня.
  7. Реализовать функцию, при котором все делается как в первом уровне, только на экран вводится второе слово, а также из двух случайно подобранных строк выбираются первые слова, а не вторые. Это второй уровень.
  8. Реализовать третий уровень. Тут открывается текстовый файл с неправильными глаголами. В этом случае в каждой строке приведены все три формы неправильного глагола. Из них на экран вводится случайно слово. Пользователь должен ввести остальные две формы глагола. Далее просто сопоставляются/сравниваются вводные слова со строкой.
  9. Реализовать четвертый уровень. Тут все как в третьем уровне, только открывается другой текстовый файл, в котором, помимо трех форм глаголов есть и перевод глагола, которое стоит на первом месте в строке. Так вот это первое слово вводится на экран. Пользователь должен расписать все три формы глагола. Далее сопоставление/сравнение.
evgeny-p commented 8 years ago

Работа декомпозирована на слишком мелкие задачи. В рамках выполнения большинства из них недостаточно контекста для корректной реализаци. Например:

Написать функцию принимающую число.

Согласно формулировке этой задачи достаточно написать:

void foo(int a) {

}

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

Декомпозицию лучше проводить не до уровня функций, а до уровня сценаирев использования, подсистем, модулей, библиотек. Реализация модуля сохранения пользовательской статистики. Реализация модуля аутентификации. Реализация графического интерфейса (может быть декомпозировано на отдельные окна или элементы, если их функционал слабо пересекается). Реализация подсистемы управления сложностью. Справедлива декомпозиция по сценариям использования. И т. д.

Nevarkir commented 8 years ago

Я обновил, так сойдет или попроще делать? @evgeny-p

evgeny-p commented 8 years ago

Так получше. Оформите как отдельные задачи.

Замечание по формулировкам. В каждом пункте Вы предлагаете реализовать «программу». По факту же приложение будет одно.

Nevarkir commented 8 years ago

Сделано, все верно? @evgeny-p

evgeny-p commented 8 years ago

Принят финальный вариант.