Модифицировать код с использованием ООП - C#
Формулировка задачи:
Помогите преобразовать программный код в ООП или что-то вроде,плохо понял,надеюсь на вашу помощь
Буду Благодарен!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Задаём цвет программы
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.BackgroundColor = ConsoleColor.Green;
Console.Clear();
// Создаём переменные под размерность массива
int n, m;
// Выводим на консоль фразу в кавычках
Console.WriteLine("Размерность массива n*m");
// Запрашиваем размерность матрицы
Console.Write("n= ");
// Считаем количество строк
n = int.Parse(Console.ReadLine());
Console.Write("m= ");
// Считаем количество столбцов
m = int.Parse(Console.ReadLine());
// Создаем массив для хранения элементов матрицы
int[,] mas = new int[n, m];
// Запрашиваем элементы с консоли
Console.WriteLine("ВВЕДИТЕ ЭЛЕМЕНТЫ МАССИВА:");
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
mas[i, j] = int.Parse(Console.ReadLine());
Console.WriteLine();
Console.Clear();
// Выводим на экран получившийся массив
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
Console.Write("{0,4}", mas[i, j]);
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine("Сумма по столбцам");
// Считаем суммы для каждого стобца
// Первый цыкл - перебор по столбцам
for (int j = 0; j < m; j++)
{
// Временная переменная, для каждого нового столбца она будет новая ( изначальная 0 )
int sum1 = 0;
// Суммыруем текущий столбец
for (int i = 0; i < n; i++)
sum1 += mas[i, j];
// Выводим результат
Console.Write("{0,4}", sum1);
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Сумма по строкам");
// Переменная для хранения суммы всех элементов
int sum3 = 0;
// тут перебор аналогично столбцам
for (int i = 0; i < n; i++)
{
int sum2 = 0;
for (int j = 0; j < m; j++)
sum2 += mas[i, j];
Console.WriteLine(sum2);
sum3 += sum2;
}
//переменная для хранения суммы всех элементов
int sum_glav = 0;
// суммируем по главной диагонали
for (int j = 0; j < n; j++)
{
sum_glav = mas[j, j] + sum_glav;
}
//выводим результат
Console.WriteLine("Сумма элементов по главной диагонали = " + sum_glav);
//переменная для хранения суммы всех элементов
int sum_neglav = 0;
// Суммируем по побочной диагонали
for (int i = 0; i < n; i++)
{
sum_neglav = mas[i, n - i - 1] + sum_neglav;
}
//Выводим результат
Console.WriteLine("Сумма элементов по побочной диагонали = " + sum_neglav);
Console.WriteLine();
Console.WriteLine("Общая сумма элементов матрицы");
Console.WriteLine(sum3);
Console.Write("\t\t\t");
// Выводим на консоль фразу в кавычках
Console.WriteLine(" Для завершения работы с программой нажмите Enter");
Console.ReadLine();
}
}
}Решение задачи: «Модифицировать код с использованием ООП»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class ArrayMethods
{
private int [,] mas;
public ArrayMethods(int[,] array)
{
mas = array;
}
public void PrintArray()
{
for (int i = 0; i < mas.GetLength(0); i++)
{
for (int j = 0; j < mas.GetLength(1); j++)
Console.Write("{0,4}", mas[i, j]);
Console.WriteLine();
}
}
public void PrintColSum()
{
for (int j = 0; j < mas.GetLength(1); j++)
{
// Временная переменная, для каждого нового столбца она будет новая ( изначальная 0 )
int sum = 0;
// Суммыруем текущий столбец
for (int i = 0; i < mas.GetLength(0); i++)
sum += mas[i, j];
// Выводим результат
Console.Write("{0,4}", sum);
}
}
public void PrintRowSum()
{
// тут перебор аналогично столбцам
for (int i = 0; i < mas.GetLength(0); i++)
{
int sum2 = 0;
for (int j = 0; j < mas.GetLength(1); j++)
sum2 += mas[i, j];
Console.WriteLine(sum2);
}
}
public int MainDiagonalSum()
{
//переменная для хранения суммы всех элементов
int sum_glav = 0;
// суммируем по главной диагонали
for (int j = 0; j < mas.GetLength(0); j++)
{
sum_glav = mas[j, j] + sum_glav;
}
return sum_glav;
}
public int SecondaryDiagonalSum()
{
int sum_neglav = 0;
// Суммируем по побочной диагонали
for (int i = 0; i < mas.GetLength(0); i++)
{
sum_neglav = mas[i, mas.GetLength(0) - i - 1] + sum_neglav;
}
return sum_neglav;
}
public int GeneralSum()
{
int sum = 0;
for (int j = 0; j < mas.GetLength(0); j++)
{
for (int i = 0; i < mas.GetLength(1); i++)
sum += mas[j, i];
}
return sum;
}
}
static class Menu
{
public static void Start()
{
// Задаём цвет программы
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.BackgroundColor = ConsoleColor.Green;
Console.Clear();
// Создаём переменные под размерность массива
int n, m;
// Выводим на консоль фразу в кавычках
Console.WriteLine("Размерность массива n*m");
// Запрашиваем размерность матрицы
Console.Write("n= ");
// Считаем количество строк
n = int.Parse(Console.ReadLine());
Console.Write("m= ");
// Считаем количество столбцов
m = int.Parse(Console.ReadLine());
// Создаем массив для хранения элементов матрицы
int[,] mas = new int[n, m];
// Запрашиваем элементы с консоли
Console.WriteLine("ВВЕДИТЕ ЭЛЕМЕНТЫ МАССИВА:");
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
mas[i, j] = int.Parse(Console.ReadLine());
Console.WriteLine();
Console.Clear();
ArrayMethods arr = new ArrayMethods(mas);
arr.PrintArray();
Console.WriteLine();
Console.WriteLine("Сумма по столбцам");
arr.PrintColSum();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Сумма по строкам");
arr.PrintRowSum();
Console.WriteLine();
Console.WriteLine("Сумма элементов по главной диагонали = " + arr.MainDiagonalSum());
Console.WriteLine();
Console.WriteLine("Сумма элементов по побочной диагонали = " + arr.SecondaryDiagonalSum());
Console.WriteLine();
Console.WriteLine("Общая сумма элементов матрицы = " + arr.GeneralSum());
Console.Write("\t\t\t");
// Выводим на консоль фразу в кавычках
Console.WriteLine(" Для завершения работы с программой нажмите Enter");
Console.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
Menu.Start();
}
}
}