задачи и решения с++, практика программирования

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

Задачи и решения: Классы C++
3.5 (70%) 4 votes

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

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




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




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

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

стало:

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

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

Чтобы поддержать наш сайт — нажмите на копилку и выберите любой удобный для Вас способ.

Рассылка новых уроков по программированию:

Задачи и решения: Классы C++: 9 комментариев

  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 массив неправильно заполняется

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

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

Код размещайте в тегах: <pre class="lang:c++ decode:true ">YOUR CODE</pre>