|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.03.2021, 15:24 | #1 |
Пользователь
Регистрация: 18.03.2021
Сообщений: 26
|
Помогите доделать программу
Я написал код,который в файле записывает в первой строчке:наименование дисциплин,во второй:ФИО студента и в третьей:полученные им оценки.И теперь мне нужно предусмотреть динамическое изменение дисциплин(количество дисциплин может меняться) ,но я незнаю как это реализовать.Кто-нибудь может подсказать?
Вот код: 1. Students.h #include <string> using namespace std; class Students { public: // Запись данных о студенте в файл void save(); // Деструктор класса Students ~Students(); // Конструктор класса Students Students(string, string); // Установка имени студента void set_name(string); // Получение имени студента string get_name(); // Установка фамилии студента void set_last_name(string); // Получение фамилии студента string get_last_name(); // Установка промежуточных оценок void set_scores(int[]); // Получение массива с промежуточными оценками void get_scores(); // Установка предметов void set_predmet(string[]); // Получение массива с промежуточными оценками void get_predmet(); private: // Промежуточные оценки int scores[4]; string predmet[4]; // Средний балл // Имя string name; // Фамилия string last_name; }; 2. Students.cpp #include <string> #include <fstream> #include <iostream> using namespace std; #include "students.h" // Деструктор Students Students::~Students() { Students::save(); } // Запись данных о студенте в файл void Students::save() { ofstream fout("students.txt", ios::app); for (int i = 0; i < 4; ++i) { fout << Students:redmet[i] << " "; } fout << endl; fout << Students::get_name() << " " << Students::get_last_name() << " " << endl; for (int i = 0; i < 4; ++i) { fout << Students::scores[i] << " "; } fout << endl; fout.close(); } // Конструктор Students Students::Students(string name, string last_name) { Students::set_name(name); Students::set_last_name(last_name); } // Установка промежуточных оценок void Students::set_predmet(string predmet[]) { for (int i = 0; i < 4; ++i) Students:redmet[i] = predmet[i]; } // Получение массива с промежуточными оценками void Students::get_predmet() { for (int i = 0; i < 4; ++i) cout << Students:redmet[i] << " "; } // Установка имени студента void Students::set_name(string student_name) { Students::name = student_name; } // Получение имени студента string Students::get_name() { return Students::name; } // Установка фамилии студента void Students::set_last_name(string student_last_name) { Students::last_name = student_last_name; } // Получение фамилии студента string Students::get_last_name() { return Students::last_name; } // Установка промежуточных оценок void Students::set_scores(int scores[]) { for (int i = 0; i < 4; ++i) Students::scores[i] = scores[i]; } // Получение массива с промежуточными оценками void Students::get_scores() { for (int i = 0; i < 4; ++i) cout << Students::scores[i] << " "; } 3. Main.cpp #include <iostream> #include <string> #include "students.h" int main(int argc, char* argv[]) { // Локальная переменная, хранящая имя ученика string name; // И его фамилию string last_name; // Ввод имени cout << "Name: "; getline(cin, name); // И фамилии cout << "Last name: "; getline(cin, last_name); // Передача параметров конструктору Students* student = new Students(name, last_name); // Оценки int scores[4]; string predmet[4]; // Ввод промежуточных оценок for (int i = 0; i < 4; i++) { cout << "Score " << i + 1 << ": "; cin >> scores[i]; } // Сохраняем промежуточные оценки в объект класса Student student->set_scores(scores); for (int i = 0; i < 4; i++) { cout << "Predmet " << i + 1 << ": "; cin >> predmet[i]; } student->set_predmet(predmet); // Выводим данные по студенту student->get_predmet(); cout << endl << student->get_name() << " " << student->get_last_name() << " is " << endl; student->get_scores(); // Удаление объекта student из памяти delete student; return 0; } |
23.03.2021, 15:34 | #2 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
1.
Код:
2. Вычитываете строку с дисциплинами. Полностью и бьете по разделителям, или сразу по частям. 3. Заменяете фиксированные циклы до 4 - циклами до размера вектора/массива с дисциплинами. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите доделать программу | Artur221 | Общие вопросы C/C++ | 2 | 23.03.2021 21:40 |
Помогите доделать программу | V-alterman | Общие вопросы по Java, Java SE, Kotlin | 4 | 19.11.2014 17:12 |
помогите,пожалуйста, доделать программу | alenkas | Помощь студентам | 25 | 29.10.2014 17:23 |
помогите доделать программу на С | anshelika | Общие вопросы C/C++ | 0 | 03.01.2014 20:10 |