Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

OOP скрити членове,вектори и конструктори


Препоръчан отговор


4 I.Да се състави клас "Студент", съхраняващ информация за студент от компютърни науки. Частни член променливи:

Iа. Фак No ‐ низ;

Iб. Група‐низ, напр. "g1", "gr2", "grupa3".., (номерът е накрая на името). Публични функции и оператори:

 1 I.1. Експлицитен конструктор

I.2. Четене на членовете 

 I.3. Предефиниране на потоко вход >>

  I.3. Предефиниране на потоко изход <<

  I.4 Предефиниране на оператор <

 4 II. Да се състави клас "Специалност". Скрити членове:

IIа.Име на специалност : низ, напр: KST, SIT;

IIб. Вектор от обекти от клас I., включени в специалността : тип vector. Публични членове:

Конструктори: 4 1 II.1. подразбиращ се и

 1 II.2. експлицитен (по име на специалност)

 2 II.2 Четене на членовете

 1 II.3 Промяна на името на специалността

 2 II.4 Функция за сортиране на студентите във вектора по фак. Номер. Оператори (константни):

 1 II.5 Сравнение за == по име на специалност

2 II.6 Сравнение за < по име на специалност, допълнително при необходимост и по брой студенти

 1 II.7 Предефинира потоков вход >> (вижте формата на данните във файла точка III.1 и пример в края )

 1 II.8 Предефинира потоков изход <<

 4 III. Да се състави клас "Дисциплина"‐ ООП1, ООП2... Скрити членове:

IIIа. Име на дисциплина, напр. OOP1

IIIб. Вектор от обекти от клас II, за които се чете дисциплината

4 Публични членове. Конструктори:

III.1 Експлицитен по име на файл с данни‐изключение Формат на файла:

<име на дисциплина>

<име на спец1>SP<брой студенти>SP<фак.номер> SP<група> ....

<име на спец2> SP<брой студенти>SP<фак.номер> <група> ....

Функции:

 2 III.3 Четене/промяна на име на дисциплина

 1 III.4 Четене на вектора от обекти от клас II

4 III.5 Създаване и връща карта с ключ име на специалност и стойност‐списък от групите, които същата включва – map<string, list<string>>

 5 III.6 Създаване и връща списък от фак. номера на студенти, по зададени като параметри име на специалност и група. Оператори:

 4 III.7 Оператор за вход >>

4 III.8 Оператор за изход <<

 

 

 

#include<iostream>

#include<string>

#include<fstream>

using namespace std;
class Student
{ private:
string    fn;
string grupa;
public:    
     Student(const string newFN, const string newGrupa){                     //ekspliciten
      this->fn = newFN;
      this ->grupa=newGrupa;

   }
     string getFN()const{           // chetene    na chlenovete
         return this->fn;
     }
     string getGrupa()const{
         return this->fn;
     }
     bool operator<(const Student &student)const{ //predifinirane na protokol vhod i izhod
         return this->fn < student.fn;
     }
     friend istream& operator >>(istream&,Student&);
     friend ostream& operator <<(ostream&,const Student&);
};

istream& operator>>(istream& is , Student& student) // predifinirane na operator 
{
    cout<<"enter student fn!"<<endl;
    string newFN;
    is>> newFN;
    cout<<"enter  student group"<<endl;
    string newGroup;
    is>>newGroup;
    student.fn=newFN;
    student.group=newGroup;
    return is;
}
ostream& operator <<(ostream & os , const Student& student)
{
    os<<"student fn is " <<student.fn<<"."<<endl;
    os<<"student group is "<<student.group<<"."<<endl;
    return os;
}
class Specialnost 
{ private: 
string specialnost ;
public:

 

ако може да попитам как да продължа с векторите и конструкторите

Линк към този отговор
Сподели в други сайтове
на 28.01.2021 г. в 12:27, vachetyy написа:

4 I.Да се състави клас "Студент", съхраняващ информация за студент от компютърни науки. Частни член променливи:

Iа. Фак No ‐ низ;

Iб. Група‐низ, напр. "g1", "gr2", "grupa3".., (номерът е накрая на името). Публични функции и оператори:

 1 I.1. Експлицитен конструктор

I.2. Четене на членовете 

 I.3. Предефиниране на потоко вход >>

  I.3. Предефиниране на потоко изход <<

  I.4 Предефиниране на оператор <

 4 II. Да се състави клас "Специалност". Скрити членове:

IIа.Име на специалност : низ, напр: KST, SIT;

IIб. Вектор от обекти от клас I., включени в специалността : тип vector. Публични членове:

Конструктори: 4 1 II.1. подразбиращ се и

 1 II.2. експлицитен (по име на специалност)

 2 II.2 Четене на членовете

 1 II.3 Промяна на името на специалността

 2 II.4 Функция за сортиране на студентите във вектора по фак. Номер. Оператори (константни):

 1 II.5 Сравнение за == по име на специалност

2 II.6 Сравнение за < по име на специалност, допълнително при необходимост и по брой студенти

 1 II.7 Предефинира потоков вход >> (вижте формата на данните във файла точка III.1 и пример в края )

 1 II.8 Предефинира потоков изход <<

 4 III. Да се състави клас "Дисциплина"‐ ООП1, ООП2... Скрити членове:

IIIа. Име на дисциплина, напр. OOP1

IIIб. Вектор от обекти от клас II, за които се чете дисциплината

4 Публични членове. Конструктори:

III.1 Експлицитен по име на файл с данни‐изключение Формат на файла:

<име на дисциплина>

<име на спец1>SP<брой студенти>SP<фак.номер> SP<група> ....

<име на спец2> SP<брой студенти>SP<фак.номер> <група> ....

Функции:

 2 III.3 Четене/промяна на име на дисциплина

 1 III.4 Четене на вектора от обекти от клас II

4 III.5 Създаване и връща карта с ключ име на специалност и стойност‐списък от групите, които същата включва – map<string, list<string>>

 5 III.6 Създаване и връща списък от фак. номера на студенти, по зададени като параметри име на специалност и група. Оператори:

 4 III.7 Оператор за вход >>

4 III.8 Оператор за изход <<

 

 

 

#include<iostream>

#include<string>

#include<fstream>

using namespace std;
class Student
{ private:
string    fn;
string grupa;
public:    
     Student(const string newFN, const string newGrupa){                     //ekspliciten
      this->fn = newFN;
      this ->grupa=newGrupa;

   }
     string getFN()const{           // chetene    na chlenovete
         return this->fn;
     }
     string getGrupa()const{
         return this->fn;
     }
     bool operator<(const Student &student)const{ //predifinirane na protokol vhod i izhod
         return this->fn < student.fn;
     }
     friend istream& operator >>(istream&,Student&);
     friend ostream& operator <<(ostream&,const Student&);
};

istream& operator>>(istream& is , Student& student) // predifinirane na operator 
{
    cout<<"enter student fn!"<<endl;
    string newFN;
    is>> newFN;
    cout<<"enter  student group"<<endl;
    string newGroup;
    is>>newGroup;
    student.fn=newFN;
    student.group=newGroup;
    return is;
}
ostream& operator <<(ostream & os , const Student& student)
{
    os<<"student fn is " <<student.fn<<"."<<endl;
    os<<"student group is "<<student.group<<"."<<endl;
    return os;
}
class Specialnost 
{ private: 
string specialnost ;
public:

 

ако може да попитам как да продължа с векторите и конструкторите

class Specialnost
{
private:
    string specialnost;
    vector<Student>v_student;
public:
    //podrazbirasht
    Specialnost()
    {
        specialnost = " ";
    }
    Specialnost(const string& Spec)
    {
        specialnost = Spec;
    }
};

Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване