Файл: Отчет по лабораторной работе по дисциплине Объектноориентированный анализ и программирование.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 10.11.2023

Просмотров: 11

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра автоматизации обработки информации (АОИ)


Лабораторная работа №1 «Классы»

Отчет по лабораторной работе по дисциплине

«Объектно-ориентированный анализ и программирование»

Студент гр. з-422П8-5

Е. С. Саиспаев

«22» мая 2023 г.


Руководитель доцент каф. АОИ, канд. техн. наук

Ю. В. Морозова

«22» мая 2023г.


Томск 2023
Цель работы

Цель работы: изучить структуру программ на основе использования объектно-ориентированного программирования, а также основные элементы структуры ООП: классы, объекты

Индивидуальный вариант

Определить класс Matrix размерности nxn. Класс должен содержать несколько конструкторов. Реализовать методы вывода матрицы на экран, методы определения и получения размерности матрицы и самой матрицы.
Алгоритм решения задания

Согласно заданию класс должен реализовывать следующие методы:


  1. Конструкторы

  2. Определения и получения размерности матрицы

  3. Определения и получения матрицы

  4. Вывод матрицы на экран


Соответственно, экземпляр класса «Матрица» должен иметь несколько свойств – размер матрицы и данные самой матрицы – int n, int[][] matrix.
class Matrix{

int nxn;

int[][] matrix;

}
Реализуем методы для их получения:
public int getSize(){

return this.nxn;

}

public int[][] getMatrix(){

return this.matrix;

}
Для определения данных экземпляра класса «Матрица» реализованы следующие методы:

private int setSize(int n){

this.nxn = n;

this.matrix = new int[n][n];

return n;

}
private int[][] setMatrix(int[][] data){

for (int i = 0; i < this.nxn; i++) {

if(data[i].length != this.nxn){

System.out.println("Matrix size is not equal to matrix size property");

}

}

this.matrix = data;

return this.matrix;

}
Для вывода матрицы реализован метод printMatrix:
public void printMatrix(){

for (int i = 0; i < this.nxn; i++) {

for (int j = 0; j < this.nxn; j++) {

System.out.print(this.matrix[i][j]);

}

System.out.print("\n");

}

}
Для реализации конструкторов класса можно воспользоваться уже реализованными методами. Реализуем несколько конструктов – для инициализации объекта класса Matrix с размером n и для инициализации объекта с готовым набором данных о матрице:

public Matrix(int n){

this.setSize(n);

}

public Matrix(int[][] matrixData){

this.setSize(matrixData.length);

this.setMatrix(matrixData);

}


Текст программы
class Matrix{

int nxn;

int[][] matrix;

public Matrix(int n){

this.setSize(n);

}

public Matrix(int[][] matrixData){

this.setSize(matrixData.length);

this.setMatrix(matrixData);

}

public int getSize(){

return this.nxn;

}

private int setSize(int n){

this.nxn = n;

this.matrix = new int[n][n];

return n;

}

public int[][] getMatrix(){

return this.matrix;

}

private int[][] setMatrix(int[][] data){

for (int i = 0; i < this.nxn; i++) {

if(data[i].length != this.nxn){

System.out.println("Matrix size is not equal to matrix size property");

}

}

this.matrix = data;

return this.matrix;

}

public void printMatrix(){

for (int i = 0; i < this.nxn; i++) {

for (int j = 0; j < this.nxn; j++) {

System.out.print(this.matrix[i][j]);

}

System.out.print("\n");

}

}

}


public class Main {

public static void main(String[] args) {

int n = 3;

int[][] elements = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

Matrix matrix1 = new Matrix(n);

Matrix matrix2 = new Matrix(elements);
System.out.println("Matrix 1:");

System.out.println("Matrix 2:");

matrix2.printMatrix();

int size = matrix2.getSize();

System.out.println("Matrix size: " + size);

}

}


Результат выполнения программы:


Вывод:
В ходе данной лабароторной работы я изучил основы работы с объектно-ориентированным языком программирования Java, а также основные элементы работы с объектами и классами.