Основи програмування на С ++ для початківців

Задачі та рішення: Классы C

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

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

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

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

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

стало:

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

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

38 думки про "Задачі та рішення: Классы C

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

    using namespace std;
    діти класу{
    private:
    ім'я рядка;
    рядок ланцет;
    поплавок вик;
    public:
    діти(): скласти(0)
    { }
    діти(Рядок г1, рядок w2, w3 з плаваючою точкою): name(г1),ланцет(w2),скласти(W3)
    { }
    недійсним Foma();
    DOTA недійсними();

    };
    Діти зізнаються недійсними::foma(){
    cout<<"Добрий день "<<endl<<"Ведіть імя фімілію і рік"<>скласти;
    // cout<<"Імя "<<name<<endl<<"Фамілія "<<ланцет<<endl<<"Рік"<<скласти<<endl;
    }
    Діти зізнаються недійсними::DOTA(){
    cout<<"Імя "<<name<<endl<<"Фамілія "<<ланцет<<endl<<"Рік "<<скласти<<endl;
    }
    int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Привіт !1!";
    діти 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. Допоможіть вирішити задачу!
    Завдання на взаємодію між класами. Razrabotat Systems 'депо'. Диспетчер розподіляє заявки на Рейси між Водіями і призначає для цього Автомобіль. Водій може зробити заявку на ремонт. Диспетчер може відсторонити Водія від роботи. Водій робить позначку про виконання Рейса і стані Автомобіля.

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

      1. в строке 39 cin.get();
        це написав?
        Це робиться для того, щоб очистити буфер введення виведення з клавіатури. Іноді в цьому буфері можуть зберегтися якісь дані.

    1. в строке 39

      це написав?
      Це робиться для того, щоб очистити буфер введення виведення з клавіатури. Іноді в цьому буфері можуть зберегтися якісь дані.

  4. У третій задачі в рядку 25 масив неправильно заповнюється

    я в своєму завданню заповнив масив приблизно так

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

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

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

    using namespace std;

    class MyClass
    {
    char name[32];
    char sourcename[32];
    int age;
    public:
    void Set_MyClass()
    {
    cout <> this->name;
    cout <> this->sourcename;
    cout <> this->age;
    }
    void Get_MyClass()
    {
    cout << "Name " << name << endl;
    cout << "Source " << sourcename << endl;
    cout << "Age " << age << endl;
    }
    };

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

    MyClass first;
    MyClass second;

    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. Там метод має бути такий. Чомусь коли закинув якась фігня відобразилась
    void Set_MyClass()
    {
    cout <> this->name;
    cout <> this->sourcename;
    cout <> this->age;
    }

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *