Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 20

Иерархия классов

09.01.2013, 21:50. Показов 1686. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Такое задание.
Реализовать иерархию понятий "Студент" , "Группа" , "Факультет" . Группу представить совокупностью студентов , а факультет - набором групп. Решить задачи расчета средней успеваемости по факультету в целом и отдельно по группам , а так жэ задачу перевода указанного списка студентов , каждый элемент списка содержит ФИО студента , название прежней и название новой группы.

Класс "Студент" я вроде бы создал , а вот как реализовать иерархию и группу представить совокупностью студентов , а факультет набором групп , вот тут и возник вопрос , как это сделать? Может кто подскажет , или у кого есть пример хороший , с наследованием как бы разобрался , а тут "совокупность" и "набор групп".
Кликните здесь для просмотра всего текста
.h файл
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
#include "stud.h"
 
   Stud::Stud()
    : FIO(), group(0), zachetka(0) ,mark1(0),mark2(0) ,Male_Felame()
{
 
}
 
std::ostream& operator<< (std::ostream& os, const Stud& studd) // вводим , выводим
{
   os <<studd.FIO << studd.group << studd.predmet1  <<studd.mark1  <<studd.predmet2 <<studd.mark2 << studd.Male_Felame << studd.zachetka ;
   return os;
}
 
std::istream& operator>> (std::istream& is, Stud& studd)
{
   is >> studd.FIO >> studd.group >> studd.predmet1 >> studd.predmet2>> studd.zachetka >> studd.Male_Felame;;
   return is;
}
 
//  
Stud::~Stud()
{
 
}
 
Stud::Stud(const Stud& copy)
    :FIO(copy.FIO), group(copy.group),predmet1(copy.predmet1),zachetka(copy.zachetka),predmet2(copy.predmet2)
{
 
}
Stud& Stud::operator=(const Stud& equals)
{
    group=equals.group;
    predmet1=equals.predmet1;
    predmet2=equals.predmet2;
    FIO=equals.FIO;
    zachetka=equals.zachetka;
    mark1=equals.mark1;
    mark2=equals.mark2;
    group=equals.group;
 
    return *this;
}

Кликните здесь для просмотра всего текста
.срр файл
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
#ifndef stud_h
#define stud_h
#include <iostream>
#include <string>
using namespace std;
class Stud
{
public:
Stud();
~Stud(); // деструктор
Stud(const Stud& copy);
Stud& operator=(const Stud& equals);
unsigned get_mark1();
unsigned get_mark2();
unsigned change_group();
bool progress();    
   friend std::ostream& operator<< (std::ostream& os, const Stud& studd);
   friend std::istream& operator>> (std::istream& is, Stud& studd);
private:
   string   FIO;
   unsigned group;
   unsigned zachetka;
   unsigned mark1;
   unsigned mark2;
   string   Male_Felame;
   string   predmet1;
   string   predmet2;
};
 
функции...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2013, 21:50
Ответы с готовыми решениями:

Иерархия классов
Порядок выполнения работы. 1. Создать проект, который содержит консольную программу Win32. 2. Определить иерархию классов (в...

Иерархия классов
Доброго времени суток, форумчане! Имеется полиморфный класс окна SubWindow class SubWindow { public: SubWindow(); ...

Иерархия классов
Доброво времини суток! Нужна помощ, я не могу понять что я делаю не так в конструкторе с парамитрами производного класса. #include...

1
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
09.01.2013, 22:48
Цитата Сообщение от kvartira Посмотреть сообщение
как реализовать иерархию и группу представить совокупностью студентов
Хранить в классе "группа" коллекцию студентов. Примерно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <vector>
 
#include "stud.h"
 
 
class Group {
 
public:
   void addStudent(Stud const& student) {
      students.push_back(student);
   }
 
   double averageProgress() const {
       // Считаешь среднюю успеваемость
   }
 
   // Остальные методы...
 
 
private:
   std::vector<Stud> students;   // Студенты в группе
};
Аналогично в классе "факультет" хранить коллекцию групп.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2013, 22:48
Помогаю со студенческими работами здесь

Иерархия классов С++
В общем, программа построена правильно(в приложениях фото задания). Но проблема в том, что &quot;х&quot; - это закрытый член класса и он...

Иерархия классов
Пожалуйста помогите написать программу: Иерархия классов: служащий, персона, рабочий, инженер; Вариант запроса: количество служащих со...

Иерархия классов
Помогите, пожалуйста, надо создать иерархию классов: класс строка -&gt; класс строка-идентификатор -&gt; битовая строка отдельные объекты...

Иерархия классов ....
Добрый вечер Всем !!! ))) У меня возникли некоторые трудности с написанием программы, имеющей следующие особенности: 1) Определить...

Иерархия классов
Доброе время суток! есть иерархия классов: #include &lt;iostream&gt; class date { int day; public: data(int day0){ day =...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru