Объектно-ориентированное программирование» для студентов специальности 5В070300 «Информационные системы» идля оп 6В06120 «Информационные системы» Шымкент 2022



бет23/43
Дата28.03.2023
өлшемі1,44 Mb.
#76860
1   ...   19   20   21   22   23   24   25   26   ...   43
Байланысты:
ООП ЛЕКЦИОННЫЙ КОМПЛЕКС 2022рус (1)

Контрольные вопросы:
1. Опишите правила создания объектной модели: абстракция, инкапсуляция, модульность.
2. Опишите правила создания объектной модели: иерархия, типизация, параллелизм, хранение
3. Охарактеризуйте типы отношений между классами.
4. Опишите состояние, поведение и идентичность объекта.

Лекция 15.Компоненты, создающие интерфейс между Пользователем и приложением.


Цель лекции: формирование у студентов умений демонстрировать свои представления о компонентах, создающие интерфейс между Пользователем и приложением
В результате освоения данной лекции студенты приобретают следующие способности: во многих языках программирования следующим типом описания данных после массивов являются структуры, которые рассматриваются как типы данных, объединяющие переменные разных типов.

В C# структура — это форма описания данных типа класса, но с некоторыми ограничениями.


Кроме того, структура может иметь разные типы полей данных, а также различные методы и конструкторы, работающие с этими полями, например класс.
В отличие от класса структура не имеет подчиненных или подчиненных структур, но имеет методы класса Object.
Количество и состав переменных, объединяемых в структуру, ограничивается только объемом памяти компьютера. Обычно в фреймворке переменные группируются в соответствии с объектом или процессом. Например, описание товара, человек, технологический процесс, данные о динамике курса и т.д.
Структура определяется в следующем формате:
[атрибуттар][спецификаторлар] struct құрылым_аты [:интерфейстер]
{ құрылым_денесі }
здесь, атрибуты-дают дополнительную информацию о структуре; спецификаторы-обычно определяют условия использования структуры; интерфейсы-базовые классы, которые структура может использовать (без полей): тело структуры-определяет состав элементов структуры. Публикация структуры очень похожа на публикацию класса, но есть два различия: вместо слова class используется слово struct и отображается список необязательных интерфейсов.
Публикация структуры очень похожа на публикацию класса, но есть два различия: вместо слова class используется слово struct и отображается список необязательных интерфейсов. В тело структуры записываются переменные и их типы. Переменная обычно называется полем структуры. Например, при подготовке записи о студенте могут потребоваться такие характеристики, как рост, вес, размер обуви, цвет глаз. Запишем эти характеристики в структуру:
struct stydent
{
public string name, cvet_gl;
public int rost, ves, god_roj;
public float raz_ob;
};
stydent styd = new stydent();
Осы мысалда жазба (styd) объявлены одна переменная типа и шесть переменных разных типов для полей записи:
stуd.name -переменная строки;
stуd. rost, ctуd.ves, stуd.god_roj-переменная целочисленного типа;
stуd.raz_ob-переменная реального типа;
stуd.cvet_gl - строковая переменная.
При использовании конкретных полей записи в программировании необходимо использовать имя, образованное таким образом (имя переменной, символ точки, имя поля). Например, присвоение им значений:
styd.name = " Makanov";
styd.cvet_gl = "kara";
styd.rost = 173;
styd.ves = 68;
styd.raz_ob = 27.5;
styd.god_roj = 1986;
Рассмотрим следующий пример. Необходимо определить запись студенческого типа, ввести значения, вывести данные о студенте. Код программы:
using System;
namespace ConsoleApplication1
{
class Program
{
struct stydent
{
public string name, cvet_gl;
public int rost, ves, god_roj;
public double raz_ob;
};

static void Main()


{
stydent styd = new stydent();
Console.WriteLine("Stydenttin ati {0}", styd.name);
Console.WriteLine("Kozinin tysi {0}", styd.cvet_gl);
Console.WriteLine("boi yzindigi {0}", styd.rost);
Console.WriteLine("tygan jili {0}", styd.god_roj);
Console.WriteLine("sakmagi {0}", styd.ves);
Console.WriteLine("Kiim olshemi {0}", styd.raz_ob);
Console.WriteLine();
styd.name = "Makanov";
styd.cvet_gl = "kara";
styd.rost = 173;
styd.ves = 68;
styd.raz_ob = 27.5;
styd.god_roj = 1986;
Console.WriteLine("Stydenttin ati {0}", styd.name);
Console.WriteLine("Kozinin tysi {0}", styd.cvet_gl);
Console.WriteLine("boi yzindigi {0}", styd.rost);
Console.WriteLine("tygan jili {0}", styd.god_roj);
Console.WriteLine("sakmagi {0}", styd.ves);
Console.WriteLine("Kiim olshemi {0}", styd.raz_ob);
Console.WriteLine();
Console.WriteLine("Enter pernesin basiniz");
Console.ReadLine();
}
}
}
Работа прогрвммы:
Stydenttin ati
Kozinin tysi
boi yzindigi 0
tygan jili 0
sakmagi 0
Kiim olshemi 0

Stydenttin ati Makanov


Kozinin tysi kara
boi yzindigi 173
tygan jili 1986
sakmagi 68
Kiim olshemi 27,5
Enter pernesin basiniz

Вывод полей записи на экран показывает, что поля имеют «нулевые» значения. Объединение данных в запись дает возможность использовать их в других структурах данных (например, в массиве, файлах). Список на языке C# При написании программ необходимо будет определить несколько связанных между собой констант с именами, причем их фактические значения могут не иметь значения. Для этого удобно использовать инвентарный тип данных, все возможные значения которого определяются целочисленным перечнем констант, например: enum Радуга { Красный, Оранжевый, Желтый, Зеленый, Синий, Фиолетовый };


В приведенном выше примере для каждой константы присваиваются значения последовательности типа int, начинающиеся с 0, но могут быть присвоены и другие значения, такие как:
enumNumer { Красный = 2, Оранжевый, Желтый, Зеленый = 10, Синий };

Константы оранжевого и желтого имеют значения 3 и 4, константы Синий11.


Имена констант в каждом списке должны быть уникальными, а значения могут быть одинаковыми. Преимущество списка перед константами заключается в визуализации связанных констант, а также в том, что компилятор выполняет проверку типов, а среда создания отображает возможные значения констант, отображает их как список Формат записи списка:
[атрибуты] [спецификаторы] enum _список [: базовый _тип ] тело _ списка [;]
Значения спецификаторов списка идентичны значениям спецификаторов, используемых для класса, а также разрешены только спецификаторы new, public, protected, internal и private. Базовый тип-тип элементов, составляющих список. Без каких-либо действий используется тип int, но тип может быть выбран из целого типа (кроме типа char) и четко определен: byte, sbyte, short, ushort, int, uint, long, ulong. Тело списка состоит из имен констант, каждому из которых можно присвоить значение. Если значение не указано, то оно вычисляется по одному значению константы, стоящей перед значением. Константы находятся в спецификаторе public без каких-либо действий.
Значения спецификаторов списка идентичны значениям спецификаторов, используемых для класса, а также разрешены только спецификаторы new, public, protected, internal и private. Базовый тип-тип элементов, составляющих список. Без каких-либо действий используется тип int, но тип может быть выбран из целого типа (кроме типа char) и четко определен: byte, sbyte, short, ushort, int, uint, long, ulong. Тело списка состоит из имен констант, каждому из которых можно присвоить значение. Если значение не указано, то оно вычисляется по одному значению константы, стоящей перед значением. Константы находятся в спецификаторе public без каких-либо действий. Арифметических операций с переменными списочного типа(+, -, ++, - -), выполнять логические операции ( ^ ,&,|,~) по разряду, выполнять их операции отношения(<, <=, >, >=, ==, != ) можно сравнить и вычислить объем в байтах (sizeof). Месяц списочного типа в целочисленных выражениях и операциях присвоения
В языке C# есть несколько классов для работы с файлами. Группа определенных классов (они System.IO находится в пространстве имен) работает с файлами как с единицей данных. В их обязанности входит работа с каталогами (папками файлов), перемещение файлов, изменение их названий, копирование, атрибуты файлов, работа с таблицей представления файлов (FAT). Эту группу можно условно назвать классом обработки файлов. В Windows (также на языке C#) для передачи данных между различными устройствами (оперативная память, монитор, дисковая память, сети) используется концепция потока данных (stream). Существуют специальные классы, которые помогают работать с файлами, определяемыми двоичным, символическим, строковым потоком данных. Эти классы также System.IO - определяется в пространстве.
Язык C# имеет специальный набор классов, сгруппированных в понятие сериализации для работы с данными, представленными в виде структур, классов. Понятие сериализации может быть объяснено процессом преобразования объектов, записей в последовательности байтов (информация, записываемая в файл, должна передаваться в последовательности байтов). Обратный процесс-восстановление объектов, записей из последовательности байтов называется десериализацией. Иногда сериализация - это хранение текущего состояния объекта в памяти или информационном устройстве, а обратный процесс-считывание данных с информационного устройства называется десериализацией.
Класс System, который управляет процессами сериализации и десериализации.Runtime.Serialization находится в пространстве имен. Списочные структуры Работа с любой информационной справочной системой требует использования массива данных. Обычно данные хранятся на магнитном диске в виде файлов. Но если вам нужно постоянно получать доступ к файловым данным и выполнять различные поисковые операции, то правильнее будет поместить эти файлы данных в память компьютера, так как время поиска данных в файле, расположенном на магнитном диске, в тысячу раз больше времени поиска в файле, расположенном в памяти компьютера. Возникает проблема размещения в памяти компьютера больших файлов справочной информаци
Класс System, который управляет процессами сериализации и десериализации.Runtime.Serialization находится в пространстве имен. Списочные структуры Работа с любой информационной справочной системой требует использования массива данных. Обычно данные хранятся на магнитном диске в виде файлов. Но если вам нужно постоянно получать доступ к файловым данным и выполнять различные поисковые операции, то правильнее будет поместить эти файлы данных в память компьютера, так как время поиска данных в файле, расположенном на магнитном диске, в тысячу раз больше времени поиска в файле, расположенном в памяти компьютера. Возникает проблема размещения в памяти компьютера больших файлов справочной информации. Существует множество алгоритмов ввода данных из файла в память компьютера, магнитного диска. Например, файл данных может быть представлен в виде различных таблиц, матриц. Одним из вариантов размещения данных в памяти компьютера являются различные списочные структуры. Список записей в память компьютера

Рисунок 1-структура простого списка Списочные структуры обычно выполняют следующие действия (алгоритмы: - создание списка из файла записей; - просмотр списка; - добавление нового элемента в список (начало, середина, конец списка); - удаление элемента из списка (начало, середина, конец списка); - запись списка в файл; - объединение нескольких списков; - разделение одного списка на два или несколько частей; - сортировка элементов в списке и т.д. По способам отключения и включения элемента из простого списка все списочные структуры можно разделить на четыре группы:


- стеки;
- очереди;
- деки;
- простые списки.
Стек-это простой список, в котором отключение и включение элемента выполняется в конце списка в одной боковой части. Принцип работы, обычно выполняемый в стеке, объясняется фразой «первый вход выходит в конце, первый вход в конце». Очередь-это простой список, в котором добавление элемента выполняется в одной боковой части списка (конец очереди), а отключение или работа с элементом выполняется во второй части списка (начало очереди). Дек-простой список, в котором отключение и включение элемента можно выполнить в любом конце (конце) списка. В простом списке отключение и включение элемента можно выполнить в любом месте списка, а также в середине списка.
Организация работы со структурой типа стека
Структура типа стека широко используется в различных вычислительных процессах. Процессор компьютера использует стек в процессе обработки прерывания. Большинство алгоритмов используют стекты для выполнения «возврата» алгоритма в предыдущее восстановление, например, при прохождении лабиринта, графа или ветки. В алгоритмах решения многих транспортных задач стек используется для поиска оптимальных маршрутов и т. д. Очевидно, что в дисциплине» Алгоритмизация и программирование " мы не можем пройти без рассмотрения такой структуры, как стек, в языке C# для него выделен специальный класс (Stack) с набором методов. При выполнении работы со стеками основными алгоритмами являются: алгоритм добавления элемента в стек, алгоритм удаления элемента из стека, просмотр содержимого стека.
Доступ к структуре типа стека возможен только по одному его краю, обычно называемому потолком стека. Класс стека может быть в виде динамической коллекции – объединения данных одного типа. При расширении стека (при добавлении элемента в«заполненный» стек) емкость стека динамически увеличивается вдвое. В классе Stack определены следующие три конструктора:
Public Stack();
Public Stack(int capacity);
Public Stack(ICollection n);
Первый конструктор создает «пустой» стек из 10 элементов. Второй конструктор создает» пустой " стек, емкость которого capacity. Третий конструктор создает N-элементный стек. В таблице 11.1 представлены основные методы класса Stack.
11.1-таблица – Основные методы класса Stack

Метод

Описание

public virtual boolContains(object v)

Возвращает значение True, если объект v находится в стеке, в противном случае возвращается значение false..

public virtual voidClear()

Очищает стек (свойство Count-количество элементов стека приравнивается к нулю).

public virtual object Peek()

Стек возвращает элемент потолка, но не удаляет его.

public virtual object Pop()

Стек возвращает элемент потолка и удаляет его.

public virtual void Push(object v)

добавляет элемент v в стек-на крышу стека

Операция in часто используется для просмотра содержимого стека, например:


Console.Write(" Содержимоестека = ");
foreach (int i in vst)
Console.Write(i + " ");
Console.WriteLine();
Отображаемые строки кода позволяют VST-потолок, а также сканировать статическую панель.




Достарыңызбен бөлісу:
1   ...   19   20   21   22   23   24   25   26   ...   43




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет