Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Наследование, Имеется 3 исходные кафедры... 
:(
    Опции темы
Ambition
  Дата 20.8.2007, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Необходимо написать программку на С++ по теме Наследование. Не могу даже оттолкнуться от чего-либо  smile . Вот условие:
Имеется 3 исходные кафедры: Экономики, Права и Управления информационными ресурсами.
На каждой кафедре работает коллектив преподавателей, причем каждый имеет свою должность, звание, стаж работы, семейное положение.
Вывести всех преподавателей, имеющих многодетные семьи (больше 2-ух детей).
Заранее спасибо, кто ответит


PM MAIL   Вверх
sentry
  Дата 20.8.2007, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: 4
Всего: 10



Не понял, где тут наследование? Есть кафедра, есть преподаватель. Но кафедра это не преподаватель, а преподаватель это не кафедра smile
К тому же по кафедрам вообще никаких данных, кроме названия нет. Да и вообще условие не понятно: нужно вывести всех многодетных 
преподавателей, зачем тут вообще кафедры?
PM MAIL   Вверх
MAKCim
Дата 20.8.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 6
Всего: 207



Ambition
если нет хоть каких-то своих идей, тебе в центр помощи
за тебя тут делать ничего не будут

Это сообщение отредактировал(а) MAKCim - 20.8.2007, 09:52


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Earnest
Дата 20.8.2007, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 2
Всего: 183



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
...
PM   Вверх
Ambition
Дата 20.8.2007, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Сори, забыла, что мне в Центр надо было. А программа должна быть написана по теме Наследование!!!!
PM MAIL   Вверх
Greeen
Дата 20.8.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



Ambition, но это же бред будет. Тут наследованием и не пахнет. Имеем структуру "преподаватель" и класс кафедры с вектором этих самых преподавателей. Где тут наследование влепить не представляю.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Ambition
Дата 20.8.2007, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Вот, я над этим думала. В условии просто задано на эту тему, видимо ты прав. Тогда тему Наследование опустим. Ниписать, не опираясь на нее  smile Спасибо.

Это сообщение отредактировал(а) Ambition - 20.8.2007, 11:00
PM MAIL   Вверх
Greeen
Дата 20.8.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



Код

#include <iostream>
#include <vector>

using std::string;
using std::cout;
using std::ostream;
using std::vector;

class Teacher
{
private:
    string _post;            // должность
    string _rank;            // звание
    unsigned int _seniority; // стаж
    bool _sex;               // пол: true - мужчина, false - женщина
    bool _mary;              // сем. положение: true - в браке, false - холост
    unsigned int _children;  // кол-во детей

    friend ostream& operator << (ostream& Stream, const Teacher& teacher);

public:
    Teacher() : _post(""), _rank(""), _seniority(0), _sex(false), _mary(false), _children(0) {}

    Teacher(const string& post, const string& rank, unsigned int seniority,
            bool sex, bool mary, unsigned int children) :
    _post(post), _rank(rank), _seniority(seniority), _sex(sex), _mary(mary), _children(children) {}

    bool moreThanOneChild()
    {
        return (_children > 1);
    }

    ~Teacher() {}
};

ostream& operator << (ostream& stream, const Teacher& teacher)
{
    stream << "Должность: " << teacher._post << "\n";
    stream << "Звание: " << teacher._rank << "\n";
    stream << "Стаж: " << teacher._seniority << " лет \n";
    stream << "Пол: " << (teacher._sex ? "м" : "ж") << "\n";
    stream << "Семейное положение: " << (teacher._mary ? "в браке" : "холост") << "\n";
    stream << "Количество детей: " << teacher._children << "\n";
    return stream;
}

class Faculty
{
public:
    void addTeacher(const Teacher& teacher)
    {
        _teachers.push_back(teacher);
    }

    void printTeachers()
    {
        for(vector<Teacher>::iterator i = _teachers.begin(); i != _teachers.end(); i++)
            if(i->moreThanOneChild())
                cout << *i;
    }

private:
    vector<Teacher> _teachers;
};

int main()
{
    Faculty faculty;
    faculty.addTeacher(Teacher("1", "1", 1, true, true, 1));
    faculty.addTeacher(Teacher("2", "2", 2, true, true, 2));
    faculty.printTeachers();
    return 0;
}


Это сообщение отредактировал(а) Greeen - 20.8.2007, 12:30


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Ambition
Дата 20.8.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Пасибки, буду разбираться


M
Guedda
Модератор: Не забываем отмечать вопрос решенным!


Это сообщение отредактировал(а) Guedda - 20.8.2007, 12:40
PM MAIL   Вверх
Arks
  Дата 20.8.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



Greeen, не подскажите, а где вы в вашем примере использовали наследование?
PM MAIL ICQ Skype MSN   Вверх
Ambition
Дата 20.8.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Arks, Greeen писал, что "наследованием" тут и не пахнет вовсе, поэтому писалась она без него
PM MAIL   Вверх
sentry
Дата 20.8.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.1.2007
Где: Москва

Репутация: 4
Всего: 10



Цитата(Arks @  20.8.2007,  16:00 Найти цитируемый пост)
Greeen, не подскажите, а где вы в вашем примере использовали наследование?

Читаем:

Цитата(Greeen @  20.8.2007,  11:38 Найти цитируемый пост)
бред будет. Тут наследованием и не пахнет

Цитата(Ambition @  20.8.2007,  11:43 Найти цитируемый пост)
Тогда тему Наследование опустим


В данном случае уместна только композиция, но никак не наследование... А вы можете привести пример с наследованием?  smile 
PM MAIL   Вверх
Arks
Дата 20.8.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



В принципе можно.
Раз сказано наследование, значит будет оно:
Можно создать класс кафедра, и от него наследовать три различных её вида, а в каждом добавить какое-нибудь уникальное поле. Бред, конечно, но раз препод требует  smile 

Цитата(Ambition)
Тогда тему Наследование опустим

А вот это я проглядел.  smile 
PM MAIL ICQ Skype MSN   Вверх
Rockie
Дата 22.8.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 13
Всего: 31



У нас есть преподаватели. У каждого есть имя и какое-то количество детей. Поэтому преподавателей можно, как уже сказали раньше, оформить в структуру. Нечто вроде 
Код

typedef struct teachers{
string name;
int howMuchChildrens;
}


У нас есть 3 кафедры. Но каждая кафедра имеет общие с другой особенности: у нее есть ЗавКаф(..НифНиф, НафНаф smile ), и группа учителей, когорая на этой кафедре работает. Также нам необходимо реализовать метод, отображающий учителей с несколькими детьми. Его тоже помещаем в класс кафедры и таким образом получаем:
Код

class Cafedra{
protected:
string ZavKaf;
teachers* pArrayOfTeachers;
void DisplayTeachersWithChildren();
};


И далее просто наследуем от класса кафедры класс Экономической кафедры, Управленческой и тд. Таким образом мы получим 3 кафедры с однообразным набором данных, но тем не менее разных(на кафедре экономики можно добавить одни предметы, на другую - другие). Ну и, само собой, по типу указателя можно будет определить, к какой кафедре какой преподаватель относится.




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Ambition
Дата 5.9.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Так может кто начиркает кодик с Наследованием, такое поставили условие  smile 
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1387 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.