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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2014, 16:47   #1
Gonta52
Новичок
Джуниор
 
Регистрация: 07.01.2014
Сообщений: 1
По умолчанию

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



фрагмент кода:
Код:
//exam.h
#ifndef exam_h
#define exam_h
#include "ordeals.h"
#include <iterator>
#include <algorithm>

using namespace std;

class Exam : public Ordeals
{
public:
    Exam(){};
    Exam(string _nameDisciplin, string _date , vector<string>_List);
    ~Exam();
    void addQuestion(string question);
    bool changeQuestion(string newQuestion , string oldQuestion);
    bool verification (string Text) ;
    friend std::ostream& operator<< (std::ostream& os, const Exam& examen);
    friend std::istream& operator>> (std::istream& is, Exam& examen);
protected:
    vector< string > List; //список вопросов
};

class Converter
{
public:
    Converter(string _textQuestion)
    {
        textQuestion=_textQuestion;
    }
    string operator()(string question)
    {
        return question ;
    }
private:
    string textQuestion;
};
#endif
Код:
//exam.cpp
//Реализация класса экзамен
#include "exam.h"
using namespace std;

void Exam::addQuestion(string question)
{
    List.push_back(question);
    return ;
}

bool Exam::changeQuestion(string newQuestion , string oldQuestion)
{
    string question;
    vector<string>::const_iterator it=List.begin();
    for_each(it,it=List.end(),Converter(*it));
    {
        cout << "Fucking question: " << endl;
        copy(List.begin(),List.end(),ostream_iterator<string>(cout," "));
        cout<<"Question:";
       // Converter question;
        if(*it==oldQuestion)
        {
            cout<<"Question:";
            it.insert(it,newQuestion);
            //*it=&newQuestion;
            cout<<"Question:"<<question<<endl;
            return true;
        }
    }
    return false;
}


 bool Exam::verification(string Text)
 {
    unsigned size = List.size();
    for(int i=0 ; i<size ; i++)
    {
        if(List[i].find(Text,0)!=string::npos)
        {
            return true;
        }
    }
    return false;
 }

 std::ostream& operator<< (std::ostream& os, const Exam& examen)
{
    int Size=examen.List.size();
    os <<examen.nameDisciplin << " " <<examen.date<<" "<<Size;
    for(int i=0;i<Size;i++)
    {
        os<<" "<<examen.List[i];
    }
   return os;
}

 std::istream& operator>> (std::istream& is, Exam& examen)
{
    int Size;
    is >>examen.nameDisciplin >>examen.date;
    is>>Size;
    examen.List.resize(Size);
    for(int i=0;i<Size;i++)
    {
        is>>examen.List[i];
    }
   return is;
}


Exam::Exam(string _nameDisciplin, string _date, vector<string>_List):Ordeals(_nameDisciplin,_date)
{

int Size=_List.size();
List.resize(Size);
for(int i=0 ; i<Size ; i++)
{
 List[i]=_List[i];
}
}

Exam::~Exam()
{
}
В этой строке косяк: if(*it==oldQuestion)
помогите пожалуйста,второй день бьюсь,не выходит ни чего.

Последний раз редактировалось Stilet; 07.01.2014 в 18:44.
Gonta52 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка работы программы. Работа с библиотекой STL и шаблонами. С ++ Vasyl'eva Помощь студентам 1 25.12.2011 18:39
Работа с рефлексией: Нужна помощь Arnezami Общие вопросы .NET 3 02.11.2009 01:14
Нужна помощь по STL в С++. Очередь с приоритетами Познающий Помощь студентам 1 31.05.2009 15:06
Работа с файлами, нужна помощь Johnson Общие вопросы Delphi 5 19.07.2008 23:15
Работа с файлами. Нужна помощь. Corwin88 Помощь студентам 9 14.05.2008 22:37