Вот код. По заданию надо "начислить" стипендию "студентам", но как обращаться к вектору и отдельным его элементам я не знаю.
class Student
{
public:
int ind;
string fam;
int oc[4];
int uch;
int stip=1500;
};
int main()
{
int i, j=0, v=0, p, a;
vector st;
Student temp;
ifstream fi;
fi.open("dannie.txt");
while (fi >> temp.ind)
{
fi >> temp.fam;
for (int i = 0; i < 4; ++i)
fi >> temp.oc[i];
fi >> temp.uch;
st.push_back(temp);
}
Другие языки программирования и технологии
C++ Как вывести вектор на экран и вообще обращаться к нему?
for( auto i = 0; i < st.size(); ++i ){
st[ i ].fam....
}
--И. Л. И. ----
for( auto & i : st ){
i.fam....
}
st[ i ].fam....
}
--И. Л. И. ----
for( auto & i : st ){
i.fam....
}
Евгений Каменев
Спасибо, работает.
vector <Student > st;
(Парсер скобки жрёт)
(Парсер скобки жрёт)
#include <iostream>
#include <string>
#include <vector>
#include <tuple>
using namespace std;
class Student {
public:
explicit Student(wstring& name) : name_(name), grant_(0) {}
void grant(const int param) { grant_ = param; }
int grant()const { return grant_; }
void name(const wstring& name) { name_ = name; }
wstring name()const { return name_; }
private:
wstring name_;
int grant_;
};
class Students {
public:
using record_t = tuple<size_t, Student, bool>;
void add(const Student& student) {
auto id = students_.size() + 1U;
students_.emplace_back(record_t(id, student, true));
}
size_t size()const { return students_.size(); }
Student* search(const size_t id) {
if (id <= students_.size()) {
auto&[x, student, show] = students_[id - 1U];
if (show) return &student;
}
return nullptr;
}
private:
vector<record_t> students_;
};
int main() {
wcout.imbue(locale(".866"));
wcin.imbue(locale(".866"));
Students students;
for (auto i = 0U; i < 3U; ++i) {
wcout << i + 1U << L". Ф. И. О.: ";
wstring name;
getline(wcin, name);
Student student(name);
students.add(student);
}
wcout.put(L'\n');
const auto last = students.size();
for (auto id = 1U; id <= last; ++id) {
auto next = students.search(id);
if (next) {
wcout << id << L". " << next->name() << L", стипендия: " << next->grant();
wcout << L"\nНазначить стипендию: ";
int rate;
cin >> rate;
next->grant(rate);
}
}
wcout.put(L'\n');
for (auto id = 1U; id <= last; ++id) {
const auto next = students.search(id);
if (next) {
wcout << id << L". " << next->name() << L", стипендия: " << next->grant() << L'\n';
}
}
wcout.put(L'\n');
system("pause");
}
#include <string>
#include <vector>
#include <tuple>
using namespace std;
class Student {
public:
explicit Student(wstring& name) : name_(name), grant_(0) {}
void grant(const int param) { grant_ = param; }
int grant()const { return grant_; }
void name(const wstring& name) { name_ = name; }
wstring name()const { return name_; }
private:
wstring name_;
int grant_;
};
class Students {
public:
using record_t = tuple<size_t, Student, bool>;
void add(const Student& student) {
auto id = students_.size() + 1U;
students_.emplace_back(record_t(id, student, true));
}
size_t size()const { return students_.size(); }
Student* search(const size_t id) {
if (id <= students_.size()) {
auto&[x, student, show] = students_[id - 1U];
if (show) return &student;
}
return nullptr;
}
private:
vector<record_t> students_;
};
int main() {
wcout.imbue(locale(".866"));
wcin.imbue(locale(".866"));
Students students;
for (auto i = 0U; i < 3U; ++i) {
wcout << i + 1U << L". Ф. И. О.: ";
wstring name;
getline(wcin, name);
Student student(name);
students.add(student);
}
wcout.put(L'\n');
const auto last = students.size();
for (auto id = 1U; id <= last; ++id) {
auto next = students.search(id);
if (next) {
wcout << id << L". " << next->name() << L", стипендия: " << next->grant();
wcout << L"\nНазначить стипендию: ";
int rate;
cin >> rate;
next->grant(rate);
}
}
wcout.put(L'\n');
for (auto id = 1U; id <= last; ++id) {
const auto next = students.search(id);
if (next) {
wcout << id << L". " << next->name() << L", стипендия: " << next->grant() << L'\n';
}
}
wcout.put(L'\n');
system("pause");
}
Евгений Каменев
1)Слишком сложно
2)Ответ уже есть
2)Ответ уже есть
st[5].fam
Похожие вопросы
- Создать список. вывести его на экран.
- Как вывести информацию на экран, assembler
- C++17 Чтение вектора элементов типа any
- Как преобразуется обычная прога на си, где надо вывести слово на экран в маш.код и что процессор там считает?
- Как работают устройства ввода-вывода или как вывести пиксель на экран, не задействуя WinAPI и пр.?
- Как в Паскале можно описать курсор мыши? Именно вывести его на экран и определить его положение при выполнении программы
- Вопрос по Ассемблеру - Ввести с клавы 3 слова и вывести их на экран лесенкой Tasm
- Как в visual basic сделать запуск алгоритма щелчком прав. кнопки мыши? Как связать 2 формы и вывести их на экран вместе?
- C++, надо вывести строку только с 1 пробелом вместо нескольких
- Где найти готовый исходник простенькой операционной системы, которая умеет только-загрузится, вывести сообщение на экран