Лаб раб 9. Лабораторная работа 9. Конструктор класса. Перезагрузка конструкторов класса Цель понять принципы работы конструктора класса
Скачать 69.04 Kb.
|
Лабораторная работа №9. Конструктор класса. Перезагрузка конструкторов класса Цель: понять принципы работы конструктора класса. Контрольные вопросы: 1. Класс – тип данных, объединяющий данные и методы их обработки. Класс – пользовательский шаблон, в соответствии с которым можно создавать объекты. 2. Конструктор класса – метод класса, не возвращающий значение и имеющий то же имя, что и у класса. 3. Перезагрузка методов – несколько версий одного метода с разными сигнатурами. 4. Да, может. Ниже приведен скриншот: Ход работы (14 вариант): using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace laba9 { internal class Program { static void Main(string[] args) { Console.WriteLine("Лабораторная работа №9 - Конструктор класса. Перезагрузка конструкторов класса\nВыполнил: Нотыч А.В., группа БПИ-21\n"); Console.WriteLine("Создание матрицы 3x3 с помощью конструктора №1:"); // конструктор 1 Matrix matrix1 = new Matrix(); Console.WriteLine("\nСгенерирована матрица [3x3]\n"); matrix1.Gen(); matrix1.Output(); // Console.WriteLine("\nСоздание пользовательской матрицы с помощью конструктора №2:\n"); // конструктор 2 int width; int height; do { Console.Write("Введите число M (не менее 1): "); width = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите число N (не менее 1): "); height = Convert.ToInt32(Console.ReadLine()); } while (width < 1 || height < 1); Matrix m = new Matrix(width, height); Console.WriteLine("\nСгенерирована матрица [{0}x{1}]\n", width, height); m.Gen(); m.Output(); // Console.WriteLine("\nСоздание матрицы 3x3 с помощью конструктора №3:\n"); // конструктор 3 width = 3; height = 3; Matrix matrix2 = new Matrix(3, 5, 7, 33, -1, 6, 22, 0, 65); matrix2.Output(); // Console.WriteLine("\nТакже предлагается выполнить несколько действий из предыдущей лабораторной работы:"); Console.Write("\nЧтобы отобразить среднее арифметическое всех элементов, нажмите любую клавишу..."); Console.ReadKey(); Console.WriteLine("\nСреднее арифметическое: {0}", matrix2.Average()); Console.Write("\nЧтобы отобразить транспонированную матрицу, нажмите любую клавишу..."); Console.ReadKey(); Console.WriteLine("\nТранспонированная матрица [{1}x{0}]\n", width, height); matrix2.Trans(); } } public class Matrix { public int width; public int height; public Matrix() { width = 3; height = 3; } public Matrix(int width, int height) { this.width = width; this.height = height; } public Matrix(int a, int b, int c, int d, int e, int f, int g, int h, int i) { width = 3; height = 3; matrix[0, 0] = a; matrix[0, 1] = b; matrix[0, 2] = c; matrix[1, 0] = d; matrix[1, 1] = e; matrix[1, 2] = f; matrix[2, 0] = g; matrix[2, 1] = h; matrix[2, 2] = i; } public int[,] matrix = new int[100, 100]; public void Gen() { Random rand = new Random(); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { matrix[i, j] = rand.Next(-100, 100); } } } public void Output() { for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Console.Write(matrix[i, j] + "\t"); } Console.WriteLine(""); } } public void Trans() { for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { Console.Write(matrix[i, j] + "\t"); } Console.WriteLine(""); } Console.WriteLine(""); } public double Average() { int sum = 0; double average; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { sum += matrix[i, j]; } } average = sum / (width * height); return average; } } } P.S. В самом начале класса Matrix() отображены 3 его перегруженных конструктора. |