Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2013, 15:32   #1
Mario_Boom
Новичок
Джуниор
 
Регистрация: 19.03.2013
Сообщений: 1
По умолчанию Разработать программу, которая поможет ученику начальной школы изучить названия месяцев года на английском языке ( на C / C++ )

Здравствуйте. Я студент 2 курса. Учусь на специальности "Компьютерные науки".
Задали нам курсовую. Прошу вас помочь мне. Подсказать как примерно делать программу и какие источники информации использовать.
Тема курсовой: Разработать программу,которая поможет ученику начальной школы изучить названия месяцев года английским языком. Обеспечить выведения задания,получения ответа,анализ на правильность ответа и выведения соответствующего сообщения.
Разработка программы на С (С++)


_________
Название темы должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В дальнейшем темы с подобным названием будут закрываться/удаляться,
а автор такой темы получать штрафы.

Прошу учесть на будущее...

Модератор.

Последний раз редактировалось Serge_Bliznykov; 19.03.2013 в 15:44.
Mario_Boom вне форума Ответить с цитированием
Старый 19.03.2013, 16:31   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

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

Второй вопрос - Ваш нынешний уровень компетентности. Полагаю, что задание уровня "взять введённую пользователем строку, проверить её на равенство строкам из заданного набора - как строгое, так и с возможностью пропустить/добавить/перепутать одну букву" не представляет для Вас значимой сложности. Если это не так - рекомендуется любой приличный учебник по С/С++, например Шилдт.

Ну и, собственно, задание скорее на педагогику - нужно давать клиенту задания ("Как будет по-английски 'январь'? Какой месяц следующий за June?"), получать ответы, проверять на правильность и вести статистику. Если ответ был правильным - хвалить (а если это пятый правильный ответ подряд - сильнее хвалить), почти правильный - давать возможность исправить самому, неправильный исправлять и предлагать ввести правильный ответ "под диктовку". Также желательно отслеживать, какую пару насколько хорошо ученик знает и давать новые задания в зависимости от этого.
Архитектурно, видимо, есть сущность "пара слов" (русское-английское), есть сущность "задание", которое может быть задано, проверено и по результатам проверки уточняет, насколько хорошо обучаемый знает те или иные пары. Есть сущность "монитор", которая отслеживает прогресс обучаемого и предлагает пару для дальнейшего обучения. Есть сущность "справочный материал", который можно показать. Примерно:
Код:
struct VocabularyPair {
  std::wstring rus, eng;
};

class Tutor{
private:
  std::vector<VocabularyPair> m_vocabulary;
  std::vector<float> m_rates;
  float m_currentSuccessRate;
  float m_overallSuccessRate;
  unsigned m_rightAnswersInARow;
public:
  Tutor(std::vector<VocabularyPair> vocabulary);
  void MarkResult(const VocabularyPair& pair, float success);
  const VocabularyPair& NextPair(void)const;
  const std::vector<VocabularyPair>& Vocabulary(void)const;
  float OverallSuccess(void)const;
};

class Task {
  enum Result {RIGHT, ALMOST, MISSED_ENCODING, WRONG};

protected:
  Result CompareWords(std::wstring right, std::wstring answer);
public:
  virtual void Run(const Tutor& t)const=0;
  virtual ~Task();
};

class RusToEngTask : public Task {
private:
  const VocabularyPair& m_pair;
public:
  RusToEngTask(const VocabularyPair& p) : m_pair(p) {}
  void Run(const Tutor& t)const{
    std::cout << "Как будет по-английски \"" << m_pair.rus << "\"?" << std::endl;
    std::wstring answer;
    std::getline(std::cin, answer);
    if(CompareWords(m_pair.eng, answer) == Task::RIGHT)
      t.MarkResult(m_pair, 1.0);
    else
      t.MarkResult(m_pair, 0.0);
  }
};
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработать программу , которая работает следующим образом Oraner Паскаль, Turbo Pascal, PascalABC.NET 3 03.12.2012 20:30
Разработать программу, которая строит график Функция y =Cos x. bajge Общие вопросы Delphi 2 16.06.2011 18:55
фильм на английском языке с субтитрами на русском и английском veter_s_morya Свободное общение 6 04.05.2011 13:29
Разработать программу на С++,которая выводит на экран горизонтальную линию из звездочек. mephistophel Помощь студентам 1 11.03.2010 00:43
Сложите программу, которая поможет работникам милиции. SINISTER Паскаль, Turbo Pascal, PascalABC.NET 7 21.10.2008 07:04