Главная страница
Навигация по странице:

  • Решение Листинг (исходный код программы)

  • Результаты работы программы

  • Цель

  • Результат работы программы

  • Курсовая по программированию. разработка программного обеспечения на языке высокого уровня c#


    Скачать 1.38 Mb.
    Названиеразработка программного обеспечения на языке высокого уровня c#
    АнкорКурсовая по программированию
    Дата28.06.2022
    Размер1.38 Mb.
    Формат файлаdocx
    Имя файлаКурсовая по программированию.docx
    ТипПояснительная записка
    #618156
    страница4 из 6
    1   2   3   4   5   6

    4 Двумерные массивы


    Цель: Изучить способы задания двумерных массивов и методы работы с ними.

    Теоретические сведения

    Простейшей формой многомерного массива является двумерный массив. Местоположение любого элемента в двумерном массиве обозначается двумя индексами. Такой массив можно представить в виде таблицы, на строки которой указывает один индекс, а на столбцы — другой. Пример объявления и инициализации двумерного массива показан ниже:

    // Объявляем двумерный массив

    int[,] myArr = new int[4, 5];

    Random ran = new Random();

    // Инициализируем данный массив

    for (int i = 0; i < 4; i++)

    {

    for (int j = 0; j < 5; j++)

    {

    myArr[i, j] = ran.Next(1, 15);

    Console.Write("{0}\t", myArr[i, j]);

    }

    Console.WriteLine();

    }

    Задание

    Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в зависимости от введённого режима). n может быть больше количества элементов в строке или столбце.

    Решение

    Листинг (исходный код программы)

    namespace Laborat4

    {

    class Program

    {

    static void Main(string[] args)

    {

    Console.WriteLine("Введите размерность матрицы m = ");

    int m = int.Parse(Console.ReadLine());

    Console.WriteLine("Введите величину сдвига n = ");

    int n = int.Parse(Console.ReadLine());

    Console.WriteLine("Для сдвига вправо введите 1, иначе другое число - сдвиг вниз = ");

    int right = int.Parse(Console.ReadLine());
    int[,] matrix = new int[m, m];

    Random rn = new Random();

    for (int i = 0; i < m; i++)

    {

    for (int j = 0; j < m; j++)

    {

    matrix[i, j] = rn.Next(0, 99);

    }

    }

    Console.WriteLine("Исходная целочисленная матрица");

    for (int i = 0; i < m; i++)

    {

    for (int j = 0; j < m; j++)

    {

    Console.Write(String.Format("{0, 3}", matrix[i, j]));

    }

    Console.WriteLine();

    }

    int[,] ShiftMatrix = new int[m, m];

    if (right == 1)

    {

    for (int i = 0; i < m; i++)

    {

    for (int j = 0; j < m; j++)

    {

    ShiftMatrix[i, (j + n) % m] = matrix[i, j];

    }

    }

    Console.WriteLine("Матрица со сдвигом вправо");

    }

    else

    {

    for (int i = 0; i < m; i++)

    {

    for (int j = 0; j < m; j++)

    {

    ShiftMatrix[(i + n) % m, j] = matrix[i, j];

    }

    }

    Console.WriteLine("Матрица со сдвигом вниз");

    }

    for (int i = 0; i < m; i++)

    {

    for (int j = 0; j < m; j++)

    {

    Console.Write(String.Format("{0, 3}", ShiftMatrix[i, j]));

    }

    Console.WriteLine();

    }

    Console.ReadLine();

    }

    }

    }}

    Результаты работы программы

    Результаты работы программы приведены на рис. 14-15.



    Рисунок 14



    Рисунок 15

    5 Классы


    Цель: Изучить основы объектно-ориентированного программирования на языке C#, получить практические навыки описания классов и их использования.

    Теоретические сведения

    Класс представляет собой шаблон, по которому определяется форма объекта. В нем указываются данные и код, который будет оперировать этими данными. В C# используется спецификация класса для построения объектов, которые являются экземплярами класса. Следовательно, класс, по существу, представляет собой ряд схематических описаний способа построения объекта. При этом очень важно подчеркнуть, что класс является логической абстракцией. Физическое представление класса появится в оперативной памяти лишь после того, как будет создан объект этого класса.

    Классы и структуры — это, по сути, шаблоны, по которым можно создавать объекты. Каждый объект содержит данные и методы, манипулирующие этими данными.

    Задание

    1. Описать класс с именем NOTE, содержащий следующие поля:

    • фамилия, имя;

    • номер телефона;

    • день рождения (массив из трех чисел).

    1. Написать программу, выполняющую следующие действия:

    • ввод с клавиатуры данных в массив, состоящий из 8-и объектов класса NOTE; записи должны быть размещены по алфавиту;

    • вывод на экран информации о людях, чьи дни рождения приходятся на месяц, значение которого введено с клавиатуры;

    • если таких нет, выдать на дисплей соответствующее сообщение.

    Решение

    Листинг (исходный код программы)

    namespace Laborat5

    {

    struct NOTE : IComparable

    {


    public string surname;

    public string name;

    public string phone;

    public int[] birthday;
    public int CompareTo(NOTE other)

    {

    if (this.name.CompareTo(other.name) == 0)

    {

    return this.surname.CompareTo(other.surname);

    }

    return this.name.CompareTo(other.name);

    }
    public void Getbirthday(string date)

    {

    string[] tempTokens = date.Split('.');

    this.birthday = new int[] { int.Parse(tempTokens[0]), int.Parse(tempTokens[1]), int.Parse(tempTokens[2]) };

    }
    public void ShowNote()

    {

    Console.WriteLine("Фамилия:{0}, имя:{1}, телефон:{2}, дата рождения:{3:00}.{4:00}.{5} г.", this.surname, this.name, this.phone, this.birthday[0], this.birthday[1], this.birthday[2]);

    }

    };
    class Program

    {

    static void Main(string[] args)

    {

    NOTE[] notes = new NOTE[8];

    for (int i = 0; i < notes.Length; i++)

    {

    notes[i] = new NOTE();

    Console.Write("Введите имя: ");

    notes[i].name = Console.ReadLine().Trim();
    Console.Write("Введите фамилию: ");

    notes[i].surname = Console.ReadLine().Trim();
    Console.Write("Введите номер телефона: ");

    notes[i].phone = Console.ReadLine().Trim();
    Console.Write("Введите дату рождения в формате дд.мм.гггг: ");

    DateTime dt = DateTime.ParseExact(Console.ReadLine(), "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture);

    notes[i].Getbirthday(dt.ToString("dd.MM.yyyy"));
    }
    Console.WriteLine("Вся информация заполнена!");

    Console.WriteLine();
    Array.Sort(notes);
    for (int i = 0; i < 8; i++)

    {

    notes[i].ShowNote();

    }

    Console.WriteLine();
    int num = 0;

    do

    {

    Console.WriteLine("Введите номер месяца для поиска (1-12):");

    num = int.Parse(Console.ReadLine());

    if (num < 1 || num > 12)

    {

    Console.WriteLine("Введен неверный номер месяца!");

    Console.WriteLine();

    }

    } while (num < 1 || num > 12);
    int count = 0;

    for (int i = 0; i < 8; i++)

    {

    if (notes[i].birthday[1] == num)

    {

    notes[i].ShowNote();

    count++;

    }

    else continue;

    }

    if (count == 0)

    {

    Console.WriteLine("Человек с таким месяцем рождения не найден");

    }
    try

    {

    //code

    }

    catch (Exception e)

    {

    Console.WriteLine(e.Message);


    Console.WriteLine("Работа программы завершена");

    Console.ReadKey();
    }}

    }

    }}

    Результат работы программы

    Результат работы программы приведен на рис. 16.



    Рисунок 16 — Результат работы программы


    1   2   3   4   5   6


    написать администратору сайта