Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tetra91
0 / 0 / 0
Регистрация: 19.05.2010
Сообщений: 9
#1

STL - C++

21.06.2010, 16:18. Просмотров 631. Ответов 0
Метки нет (Все метки)

Есть такая задача...
Каждая строка текстового файла DATA.TXT содержит информацию о студенте, предмете и оценке, полученной по этому предмету.
Данные разделены точкой с запятой, все остальные символы являются частью данных. Все строки различны, однако никакой сортировки нет.
Необходимо прочитать данные из файла в контейнер вида
map < студент, vector <pair <предмет, оценка> > >
После этого требуется обработать файл запросов QUERY.TXT, каждая строка которого соответствует одному запросу.
Возможны следующие строки с запросами:
1:студент
Требуется вывести всю информацию об успеваемости указанного студента
2:предмет
Требуется вывести информацию о количестве оценок, выставленных по указанному предмету
3:
Требуется вывести все различные пары <предмет, оценка> (для обработки этого запроса можно создавать дополнительные контейнеры).
Результаты обработки запросов поместить в текстовый файл ANSWER.TXT в удобном для чтения виде.
Порядок вывода результатов должен соответствовать порядку запросов.
Предусмотреть ситуацию, когда информация из запросов отсутствует во входном файле.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*MyPair*/
#pragma once
#include <iostream>
#include <string>
#include <map>
#include <fstream>
#include <sstream>
using namespace std;
 
class MyPair
{
private: 
    pair<string,string> mypair;
public:
    string getMark(){return mypair.second;};
    string getSub(){return mypair.first;};
    void setPair(string s, string m){mypair.first=s; mypair.second=m;};
    void writeToStream(ostream& s){
    s << mypair.first << " " << mypair.second;}
 
    void writeToFile(const string filename)
    {ofstream out(filename.c_str()); writeToStream(out);};
 
    void print_pair()
    {
        cout<<getSub()<<" "<<getMark()<<endl;
    }
};
 
/*MyVector*/
#pragma once
#include "MyPair.h"
#include <fstream>
#include <sstream>
#include <vector>
 
class MyVector
{
    vector<MyPair> myvect;
public:
    
    void setVector(MyPair m1)
    {myvect.push_back(m1);}
 
    void writeToStream(ostream& s)
    {
    vector<MyPair>::iterator t;
    for(t=myvect.begin();t!=myvect.end();t++)
        s << t->getSub()<< t->getMark();
    }
 
    void writeToFile(const string filename)
    {ofstream out(filename.c_str()); writeToStream(out);};
 
    void print_vector()
    {
        vector<MyPair>::iterator t;
        for(t=myvect.begin();t!=myvect.end();t++){
            t->print_pair();}
    }
};
 
/*Student*/
#pragma once
#include "StdAfx.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
class Student
{
private:
    string name;
    string surname;
public:
    Student(string n, string s):
      name(n), surname(s){};
      Student(){};
    Student(string s){
    istringstream is(s);
    is >> surname;
    is >> name;}
    string getName() const {return name;};
    string getSurname() const {return surname;};
    void setName(string new_name) {this->name=new_name;};
    void setSurname(string new_surname){this->surname=new_surname;};
    void setStudent( string new_name,string new_surname){setName(new_name);setSurname         (new_surname);};
    void writeToStream(ostream& s){
    s << getSurname() << " " << getName();}
    void print_Student(){cout<<getSurname()<<"  "<< getName()<<endl;}
    void writeToFile(const string filename)
    {ofstream out(filename.c_str()); writeToStream(out);};
};
 
/*Data*/
#pragma once
#include "Student.h"
#include "MyPair.h"
#include "MyVector.h"
#include <fstream>
#include <sstream>
 
class Data
{
 
private:
    map< Student, MyVector> data;
 
public:
    void writeToFile(const string filename)
    {ofstream out(filename.c_str()); writeToStream(out);};
    
    void setData(Student s1, MyVector v1){ data.insert(make_pair(s1,v1));};
    void writeToStream(ostream& s)
    {
        map<Student, MyVector>::iterator t;
        for (t = data.begin(); t != data.end(); ++t)
        {
            s << t->first.writeToStream(s)<< t->second.writeToStream(s);
            
        }
    
    };
};
 
 
 
/*main*/
int main()
{
    setlocale(LC_ALL,".1251");
    MyPair m1;
    m1.setPair("Proga","8");
    MyVector v1;
           v1.setVector(m1);
           Student s1;
           s1.setStudent("Ivan", "Ivanov");
           Data d1;
           d1.setData(s1,v1);
    return 0;
 
}

Почему вылазят ошибки такого рода:
error C2784: 'bool std::operator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)' : could not deduce template argument for 'const std::vector<_Ty,_Alloc> &' from 'const Student' d:\учёба\visual studio 2005\vc\include\functional 143

error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const Student' d:\учёба\visual studio 2005\vc\include\functional 143

error C2784: 'bool std::operator <(const std:: pair<_Ty1,_Ty2> &,const std:: pair<_Ty1,_Ty2> &)' : could not deduce template argument for 'const std:air<_Ty1,_Ty2> &' from 'const Student' d:\учёба\visual studio 2005\vc\include\functional 143

error C2784: 'bool std::operator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'const std::basic_string<_Elem,_Traits,_Alloc> &' from 'const Student' d:\учёба\visual studio 2005\vc\include\functional 143

error C2784: 'bool std::operator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)' : could not deduce template argument for 'const std::basic_string<_Elem,_Traits,_Alloc> &' from 'const Student' d:\учёба\visual studio 2005\vc\include\functional 143

error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const Student' d:\учёба\visual studio 2005\vc\include\functional 143

error C2784: 'bool std::operator <(const _Elem *,const std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'const _Elem *' from 'const Student' d:\учёба\visual studio 2005\vc\include\functional 143

error C2676: binary '<' : 'const Student' does not define this operator or a conversion to a type acceptable to the predefined operator d:\учёба\visual studio 2005\vc\include\functional 143


Как их исправить?
И подскажите пожалуйста как организовать чтение из файлов(см. услвие)...
Заранее благодарю за ответы...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2010, 16:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос STL (C++):

STL - C++
Добрый вечер всем кто открыл эту вкладку! Надо реализовать кольцевой упорядоченный двозвязний список на STL + некоторые функции работы с...

STL - C++
Всем привет :) Задача следующая - Нужно считать из файла строки, запихнуть их в стек и вывести на экран, чтобы перед ними был номер...

STL в С++ - C++
Нужна помощь! Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые...

STL - C++
std::vector&lt;char*&gt; files; Объясните пожалуйста как правильно заполнять такой вектор

STL - C++
где можно посмотреть исходный код STL??

STL - C++
помогите сделать ввод ФИО и возраста через STL .Вот часть моего кода#include &lt;string&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2010, 16:18
Привет! Вот еще темы с ответами:

STL - C++
Задача 2. Во входном файле in.txt расположена таблица, в каждой строке которой хранится &quot;владелец&quot;, &quot;домашнее животное&quot;, &quot;кличка&quot;....

STL - C++
Блин нарорд... я затупил по жоскому.... у меня std::vector, пытаюсь добавить элемент на n-e место: using namecpace std; ...

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

STL. - C++
Всем доброго времени суток. У меня имеется два вопроса. 1) У нас имется квадратная матрица. И чтобы найти в строках, к примеру,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru