Основы программирования на С++ для начинающих

Задачи и решения: Классы C++

Прошло немного времени после публикации вводного урока о классах в C++. Теперь мы предлагаем вам попрактиковаться в решении достаточно простых задач с применением классов. Старайтесь решать самостоятельно.

1. Создать класс Tiles (кафель), который будет содержать поля с открытым доступом: brandsize_hsize_wprice и метод класса getData(). В главной функции объявить пару объектов класса и внести данные в поля. Затем отобразить их, вызвав метод getData().

2. Определить класс Children, который содержит такие поля (члены класса): закрытые – имя ребенка, фамилию и возраст , публичные – методы ввода данных и отображения их на экран. Объявить два объекта класса, внести данные и показать их.

3. Преобразовать строки двумерного массива в столбцы. Например было: 

задачи и решения, классы c++, классы с++ для начинающих, спецификаторы доступа privat и public, методы класса

стало:

задачи и решения, классы c++, классы с++ для начинающих, спецификаторы доступа privat и public, методы класса

Класс будет содержать два метода: один заполнит массив значениями, второй произведет замену значений строк на значения столбцов.

37 thoughts on “Задачи и решения: Классы C++

  1. я по начому зробив 2 задачу
    #include
    #include”windows.h”
    #include

    using namespace std;
    class Children{
    private:
    string name;
    string fleam;
    float vik;
    public:
    Children(): vik(0)
    { }
    Children(string r1,string w2,float w3): name(r1),fleam(w2),vik(w3)
    { }
    void foma();
    void dota();

    };
    void Children::foma(){
    cout<<"Добрий день "<<endl<<"Ведіть імя фімілію і рік"<>vik;
    // cout<<"Імя "<<name<<endl<<"Фамілія "<<fleam<<endl<<"Рік"<<vik<<endl;
    }
    void Children::dota(){
    cout<<"Імя "<<name<<endl<<"Фамілія "<<fleam<<endl<<"Рік "<<vik<<endl;
    }
    int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Привіт !1!";
    Children ee1;
    ee1.foma();
    ee1.dota();

    return 0;
    }

      1. У меня вопрос, уважаемые знатоки!

        В примере решения третьей задачи мы создали временную матрицу tempMatrix новой конфигурации, скопировали в неё поочередно все элементы, после чего освободили память, занимаемую матрицей matrixInClass, выделили новую память для matrixInClass, поочередно скопировали все элементы и освободили память, занимаемую временной матрицей.

        Я пошёл немного другим путем, более коротким. Все работает без ошибок, но хочется знать, может я что-то упускаю(зря сократил). Свой код залил на codepad –> http://codepad.org/vAuUf5pO

        Делал так:

        Создал временную матрицу tempMatrix новой конфигурации, скопировал в неё элементы из матрицы matrixInClass, освободил память, занимаемую matrixInClass.
        До этого момента все точно так же.

        А теперь я просто указателю matrixInClass присвоил значение tempMatrix таким образом:

        matrixInClass = tempMatrix;
        tempMatrix = 0;

        После чего matrixInClass начал указывать на участок памяти, занимаемый tempMatrix. То есть теперь нам не нужно перевыделять память для matrixInClass, как в примере, потом поэлементно копировать матрицу и освобождать память.

        Вопрос у меня следующий: может неспроста вы сделали так, как сделали, а я где-то допускаю утечки памяти??? Заранее спасибо за ответ!

  2. Помогите решить задачу!
    Задача на взаимодействие между классами. Разработать систему «Автобаза». Диспетчер распределяет заявки на Рейсы между Водителями и назначает для этого Автомобиль. Водитель может сделать заявку на ремонт. Диспетчер может отстранить Водителя от работы. Водитель делает отметку о выполнении Рейса и состоянии Автомобиля.

  3. У меня во второй задаче при вводе данных для второго ребенка пропускает ввод имени, сразу к фамилии. Почему? Код абсолютно такой же, но вместо “char” – “string”.

      1. в строке 39 cin.get();
        это написал?
        Это делается для того, чтобы очистить буфер ввода вывода с клавиатуры. Иногда в этом буфере могут сохраниться какие то данные.

    1. в строке 39

      это написал?
      Это делается для того, чтобы очистить буфер ввода вывода с клавиатуры. Иногда в этом буфере могут сохраниться какие то данные.

  4. В третьей задаче в строке 25 массив неправильно заполняется

    я в своей задаче заполнил массив примерно так

    1. В строке 25 – это конструктор матрицы, которая заполняется по любым своим правилам.
      А 11, 22, 33 … в условии показано как “например”.
      Задача – на транспонирование матрицы. Возможно, она написана не лучшим образом, но всё показанное – правильно.

  5. помогите решить задачу:
    Описать класс «ЕГЭ».
    Каждая запись содержит номер бланка, фамилия и инициалы ученика, год сдачи, наименование предметов и оценки.
    Предусмотреть возможность формирования: списка с клавиатуры и из файла, печати всего списка; списка документов, где средний бал по ЕГЭ ниже (выше) среднего; списка документов, максимальными баллами по заданной дисциплине

  6. Задача номер 2
    #include
    #include

    using namespace std;

    класс MyClass
    {
    char name[32];
    голец SourceName[32];
    int age;
    public:
    недействительный Set_MyClass()
    {
    cout <> this->name;
    cout <> this->SourceName;
    cout <> this->age;
    }
    недействительный Get_MyClass()
    {
    cout << "Name " << name << endl;
    cout << "Source " << SourceName << endl;
    cout << "Age " << age << endl;
    }
    };

    int main()
    {
    setlocale(LC_ALL, "Ukrainian");
    system("color A");

    MyClass первым;
    MyClass второй;

    cout << "Enter your date" << endl;
    first.Set_MyClass();
    second.Set_MyClass();
    cout << "\tYour date" << endl;
    first.Get_MyClass();
    second.Get_MyClass();

    _getch();
    return 0;
    }

  7. Там метод должен быть такой. Почему когда забросил какая-то фигня отразилась
    недействительный Set_MyClass()
    {
    cout <> this->name;
    cout <> this->SourceName;
    cout <> this->age;
    }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *