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

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

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

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

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

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

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

стало:

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

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

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

  1. #include
    #include
    using namespace std;
    class Point {
    public:
    void setArray(int** arr, int Row, int Col) {

    for (int i = 0; i < Row; i++) {
    arr[i] = new int[Col];
    for (int g = 0; g < Col; g++) {
    arr[i][g] = rand() % 50;
    }
    }
    }
    void swap(int **arr,int **arr1,int Col,int Row) {

    for (int g = 0; g < Col; g++) {
    arr1[g] = new int[Row];
    for (int i = 0; i < Row; i++) {
    arr1[g][i] = arr[i][g];
    }
    }
    }
    };
    void main() {
    int Row = 4, Col = 2;
    srand(time(NULL));
    Point a;
    int** arr;
    int** arr1;
    arr1 = new int* [Col];
    arr = new int* [Row];
    a.setArray(arr, Row, Col);
    for (int i = 0; i < Row; i++) {
    for (int g = 0; g < Col; g++) {
    cout << arr[i][g] << "\t";
    }
    cout << endl;
    }
    a.swap(arr, arr1, Col, Row);
    cout << endl << endl;
    for (int g = 0; g < Col; g++) {
    for (int i= 0; i < Row; i++) {
    cout << arr1[g][i] << "\t";
    }
    cout << endl;
    }
    }

  2. Pflfxf #2

    #include
    #include

    void sp() {
    std::cout << '\n';
    }

    class Children {
    private:
    std::string firstName;
    std::string lastName;
    int age{};
    public:
    void enterInformation() {
    std::cout <> firstName;

    std::cout <> lastName;

    std::cout <> age;

    sp();
    }
    void printInformation() {
    std::cout << "Name: " << firstName;
    sp();
    std::cout << "Last name: " << lastName;
    sp();
    std::cout << "Age: " << age;
    }
    };

    int main()
    {
    Children a;
    a.enterInformation();
    a.printInformation();

    return 0;
    }

  3. Доповнити клас, включивши метод перевірки
    на парність цілих значень вузлів дерева.
    Непарні значення повинні бути збільшені до
    найближчого парного, причому дублікати
    створюватися не повинні
    ”Очень прошу помогите”

  4. Доповнити клас, включивши метод перевірки
    на парність цілих значень вузлів дерева.
    Непарні значення повинні бути збільшені до
    найближчого парного, причому дублікати
    створюватися не повинні

  5. #include
    using namespace std;

    class Matrica
    {
    public:
    void vvod()
    {
    cin >> ctroka;
    cin >> stolbcy;
    int** mass = new int* [ctroka];
    int** mass2 = new int* [stolbcy];
    Mass(mass, mass2);
    zamena(mass, mass2);
    vyvod(mass, mass2);
    }

    private:
    int ctroka, stolbcy;

    void Mass(int** mass, int** mass2)
    {
    for (int i = 0; i < stolbcy; i++)
    mass[i] = new int[stolbcy];

    for (int i = 0; i < stolbcy; i++)
    for (int j = 0; j > mass[i][j];

    system(“cls”);

    for (int i = 0; i < stolbcy; i++)
    {
    for (int j = 0; j < ctroka; j++)
    cout << mass[i][j] << " ";
    cout << endl;
    }

    for (int i = 0; i < ctroka; i++)
    mass2[i] = new int[ctroka];
    }

    void zamena(int** mass, int** mass2)
    {
    for (int i = 0; i < ctroka; i++)
    for (int j = 0; j < stolbcy; j++)
    mass2[i][j] = mass[j][i];
    }

    void vyvod(int** mass, int** mass2)
    {
    for (int i = 0; i < ctroka; i++)
    {
    for (int j = 0; j < stolbcy; j++)
    cout << mass2[i][j];
    cout << " " << endl;
    }
    }
    };

    void main()
    {
    Matrica A;
    A.vvod();
    }

  6. Создайте класс, который включает результаты тестирования учащихся в группе по трем предметам,а затем получите функцию для ввода и вывода данных.
    Включите члены следующей функции.
    1. Произведена фамилия ученика,не сдавшего хотя бы один класс
    2. Качество успеваемости,то есть процент студентов,набравших более 75 баллов.
    3. Название курса с наибольшим процентом достижений
    4. Перечислить в порядке убывания достижений учащихся

  7. #include <iostream> using namespace std; class Matrix { private: int** arr; int** arr2; int rows, cols; public: void Fill_array(int rows_value, int cols_value) { rows = rows_value; cols = cols_value; arr = new int* [rows]; for (int i = 0; i < rows; i++) { arr[i] = new int[cols]; } for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { arr[i][j] = 10 + rand()% + 50; cout << arr[i][j]<< "\t"; } cout << endl; } } void Change_rows_with_cols() { arr2 = new int* [cols]; for (int i = 0; i < cols; i++) { arr2[i] = new int[rows]; } cout << endl << endl; for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { arr2[i][j] = arr[j][i]; cout << arr2[i][j] << "\t"; } cout << endl; } } ~ Matrix() { for (int i = 0; i < cols; i++) { delete[]arr2[i]; } cout << "Destructor for second matrix" << endl; delete[]arr2; for (int i = 0; i < rows; i++) { delete[]arr[i]; } cout << "Destructor for first matrix" << endl; delete[]arr; } }; int main() { Matrix first; first.Fill_array(2, 4); first.Change_rows_with_cols(); }

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

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