Программирование в среде Microsoft .NET. Проектирование классов. Создание пользовательских элементов управления для Windows Form

Изучение специфики разработки классов для платформы .NET, особенностей наследования, стандартных классов-коллекций. Проектирование пользовательских элементов управления на базе стандартных элементов Windows Form. Создание и реализация интерфейсов классов.

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 04.12.2013
Размер файла 21,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Брянский государственный технический университет

Программирование в среде Microsoft .NET

Проектирование классов. Создание пользовательских элементов управления для Windows Form

Методические указания

к выполнению лабораторной работы №2

для студентов очной формы обучения

специальностей 230105 - «Программное обеспечение вычислительной техники и автоматизированных систем» и 010503 - «Математическое обеспечение и администрирование информационных систем»

Брянск 2011

УКД 004.43

Программирование в среде Microsoft .NET. Проектирование классов. Создание пользовательских элементов управления для Windows Form [Текст] + [Электронный ресурс]: методические указания к выполнению лабораторной работы №2 для студентов очной формы обучения специальностей 230105 - «Программное обеспечение вычислительной техники и автоматизированных систем» и 010503 - «Математическое обеспечение и администрирование информационных систем». - Брянск: БГТУ, 2011. - 22 с.

Разработали:

Д.А. Коростелёв

канд. техн. наук, доц.

Д.И. Булатицкий

канд. техн. наук, доц.

Рекомендовано кафедрой «Информатика и программное обеспечение» БГТУ (протокол №1 от 31.08.11)

Цель работы

Цель работы - изучение специфики разработки классов для платформы .NET, особенностей наследования, стандартных классов-коллекций, создание и реализация интерфейсов классов, делегатов, обработчиков событий и исключений, создание и использование пользовательских элементов управления на базе стандартных элементов Windows Form.

Продолжительность работы - 6 часов.

Проектирование классов

Рассмотрим процесс проектирования классов для следующей задачи. Необходимо спроектировать классы для работы с коллекцией географических объектов разных типов.

Для примера ограничимся двумя видами географических объектов: реки и города. Для начала определим основные данные, характеризующие эти объекты, а также методы работы с ними. Для объекта «Река» можно выделить, например, такие поля: «Название», «Водоём», «Регион», а для объекта «Город» - «Название» и «Страна».

Учитывая, что у разных видов географических объектов имеются общие поля (в т.ч. и у рассматриваемых нами), а также некоторые общие методы доступа к данных, то проектирование классов целесообразно начинать с базового класса - «Географический объект» (GeographicObject). Данный класс лучше сделать абстрактным (т.е. задающим только некоторую базовую функциональность тем классам, которые будут от него наследоваться, без её реализации) с помощью ключевого слова abstract.

В результате получим класс, описанный в листинге 1.

Листинг 1. Описание базового класса «Географический объект»

abstract public class GeographicObject

{

protected string _name;

/// <summary>

/// Название

/// </summary>

virtual public string Name

{

get { return _name; }

set { _name = value; }

}

abstract public string Description

{

get;

}

abstract public string Category

{

get;

}

abstract public string GetLocation();

}

Помимо уже указанных общих полей и соответствующих им свойств, в базовом классе GeographicObject были добавлены публичные свойства только для чтения Description - для получения описания географического объекта и Category - для получения информации о типе географического объекта. В качестве общего для всех видов географических объектов метода в базовый класс был добавлен метод GetLocation() для задания и определения географического местоположения объекта. Также стоит обратить внимание, что все свойства и методы, не имеющие реализации, в абстрактном классе должны помечаться как абстрактные (ключевое слово abstract). Если свойство или метод имеет реализацию, то его помечают ключевым словом virtual.

Учитывая тот факт, что, согласно задаче, наследуемые классы будут объединяться в обобщенную коллекцию, то очень полезным было бы предусмотреть в базовом классе возможность сравнения объектов между собой. Поэтому для базового класса можно унаследовать стандартный интерфейс IComparable без реализации. В итоге наш базовый класс будет выглядеть так, как показано на листинге 2.

Листинг 2. Полное описание базового класса «Географический объект»

abstract public class GeographicObject : IComparable

{

protected string _name;

/// <summary>

/// Название

/// </summary>

virtual public string Name

{

get { return _name; }

set { _name = value; }

}

abstract public string Description

{

get;

}

abstract public string Category

{

get;

}

abstract public string GetLocation();

#region Члены IComparable

virtual public int CompareTo(object obj)

{

throw new NotImplementedException();

}

#endregion

}

После определения базового класса переходим к определению наследуемых от него классов «Река» (River) и «Город» (Town) (листинг 3).

Листинг 3. Описание классов «Река» и «Город»

/// <summary>

/// Город

/// </summary>

public class Town : GeographicObject

{

string _country;

public string Country

{

get { return _country; }

set { _country = value; }

}

public Town()

{

_name = "Город без названия";

_country = "";

}

public Town(string name, string country)

{

_name = name;

_country = country;

}

public override string ToString()

{

return _name;

}

public override string Category

{

get { return "Город"; }

}

public override string GetLocation()

{

return _country;

}

public override string Description

{

get { return "Город " + _name + " находится в стране " + _country; }

}

public override int CompareTo(object obj)

{

if (obj is GeographicObject)

{

if (obj is Town)

{

return _name.CompareTo(((Town)obj).Name);

}

else

{

return this.Category.CompareTo(((GeographicObject)obj).Category);

}

}

else

{

return 1;

}

}

}

/// <summary>

/// Река

/// </summary>

public class River : GeographicObject

{

string _water;

/// <summary>

/// Водоем

/// </summary>

public string Water

{

get { return _water; }

set { _water = value; }

}

/// <summary>

/// Регион

/// </summary>

string _region;

public string Region

{

get { return _region; }

set { _region = value; }

}

public River()

{

_name = "Безымянная река";

_water = "";

_region = "";

}

public River(string name, string water, string region)

{

if (name == "" || water == "" || region == "")

{

throw new DataNotFilledException("Данные не заполнены");

}

else

{

_name = name;

_water = water;

_region = region;

}

}

public override string ToString()

{

return _name;

}

public override string Category

{

get { return "Река"; }

}

public override string GetLocation()

{

return _region;

}

public override string Description

{

get { return "Река " + _name + " впадает в " + _water + ". Бассейн этой реки располагается в " + _region; }

}

public override int CompareTo(object obj)

{

if (obj is GeographicObject)

{

if (obj is River)

{

return _name.CompareTo(((River)obj).Name);

}

else

{

return this.Category.CompareTo(((GeographicObject)obj).Category);

}

}

else

{

return 1;

}

}

}

В приведенном листинге особое внимание обратим на реализацию метода CompareTo, наследованного от интерфейса IComparable. Сравнение происходит следующим образом:

Если объект не унаследован от класса GeographicObject, то возвращаем (т.е. наш объект меньше сравниваемого).

Если объект унаследован от класса River (при сравнении в классе River) или Town (при сравнении в классе Town), то сравнение осуществляется по названию реки.

Иначе (объект является географическим объектом, но не рекой или городом соответственно), сравнение осуществляется по категории.

Реализация классов River и Town содержит также и по два конструктора - конструктор по умолчанию и конструктор с параметрами инициализации. Помимо этого, в конструкторе класса River с параметрами происходит генерация пользовательского исключения DataNotFilledException в случае некорректно переданных параметров. Описания класса исключения DataNotFilledException приведено в листинге 4.

Листинг 4. Описание класса исключения - DataNotFilledException

[global::System.Serializable]

public class DataNotFilledException : Exception

{

public DataNotFilledException()

{

}

public DataNotFilledException(string message)

: base(message)

{

}

public DataNotFilledException(string message, Exception inner)

: base(message, inner)

{

}

protected DataNotFilledException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)

: base(info, context)

{

}

}

Рассмотрим вопрос реализации класса обобщенной коллекции, который будет хранить как реки, так и города - GeographicObjectsCollection. В пространстве имен System.Collection. Net Framework имеются классы стандартный типов коллекций:

ArrayList - реализует интерфейс IList с помощью массива с динамическим увеличением размера до нужного значения.

BitArray - управляет компактным битовым массивом значений, представленных логическими значениями, где значение true соответствует 1, а значение false соответствует 0.

Hashtable - предоставляет коллекцию пар ключ/значение, которые упорядочены по хэш-коду ключа.

Queue - предоставляет коллекцию объектов, которая обслуживается по принципу «первым поступил -- первым обслужен».

SortedList - предоставляет коллекцию пар «ключ-значение», упорядоченных по ключам. Доступ к парам можно получить по ключу и по индексу.

Stack - представляет простую неуниверсальную коллекцию объектов типа «последним пришел -- первым вышел» (LIFO).

Также в пространстве имен System.Collection. Net Framework имеются интерфейсы, используемые для создания нестандартных обобщенных коллекций:

ICollection - определяет размер, перечислители и методы синхронизации для всех нестандартных коллекций.

IComparer - предоставляет метод для сравнения двух объектов.

IDictionary - представляет небазовую коллекцию пар «ключ-значение».

IEnumerable - предоставляет перечислитель, который поддерживает простой перебор элементов неуниверсальной коллекции.

IEnumerator - поддерживает простой перебор по неуниверсальной коллекции.

IList - представляет неуниверсальную коллекцию объектов с индивидуальным доступом, осуществляемым при помощи индекса.

Для организации удобной работы с обобщенной коллекцией географических объектов наиболее удачно подходит интерфейсом IList, который и будем реализовывать. Для хранения различных географических объектов внутри обобщенной коллекции воспользуемся стандартными типизированными коллекциями:

для рек - словарь с числовым ключом Dictionary<int, River>;

для городов - список List<Town>.

Реализация интерфейса IList заключается в определении методов и свойств:

добавление элемента в коллекцию - public int Add(object value);

удаление всех элементов коллекции - public void Clear();

проверка на наличие элемента в коллекции - public bool Contains(object value);

определение индекса элемента в коллекции - public int IndexOf(object value);

вставка элемента в коллекцию в заданную позицию - public void Insert(int index, object value);

удаление элемента из коллекции - public void Remove(object value);

удаление элемента из коллекции по его индексу - public void RemoveAt(int index);

признак фиксированной по размеру коллекции - public bool IsFixedSize;

признак, указывающий, что коллекция доступна только для чтения - public bool IsReadOnly;

доступ к элементу по индексу - public object this[int index].

Пример частичной реализации интерфейса IList приведен в листинге 5.

Листинг 5. Частичная реализация интерфейса IList

public int Add(object value)

{

if (value is Town)

{

_towns.Add((Town)value);

if (CollectionChanged != null)

{

CollectionChanged(this, EventArgs.Empty);

}

return _towns.Count + _rivers.Count;

}

if (value is River)

{

_rivers.Add(_rivers.Count, ((River)value));

if (CollectionChanged != null)

{

CollectionChanged(this, EventArgs.Empty);

}

return _towns.Count + _rivers.Count;

}

return -1;

}

public void Clear()

{

_towns.Clear();

_rivers.Clear();

if (CollectionChanged != null)

{

CollectionChanged(this, EventArgs.Empty);

}

}

public bool Contains(object value)

{

if (value is Town)

{

return _towns.Contains((Town)value);

}

if (value is River)

{

return _rivers.ContainsValue((River)value);

}

else

{

return false;

}

}

public int IndexOf(object value)

{

if (value is Town)

{

return _towns.IndexOf((Town)value) + _rivers.Count;

}

if (value is River)

{

for (int i = 0; i < _rivers.Count; i++)

{

if (_rivers[i].CompareTo(value) == 0) return i;

}

return -1;

}

else

{

return -1;

}

}

public void Insert(int index, object value)

{

throw new NotImplementedException();

}

[XmlIgnore]

public bool IsFixedSize

{

get { return false; }

}

[XmlIgnore]

public bool IsReadOnly

{

get { return false; }

}

public void Remove(object value)

{

throw new NotImplementedException();

}

public void RemoveAt(int index)

{

throw new NotImplementedException();

}

public object this[int index]

{

get

{

if (index >= 0)

{

if (index < _rivers.Count)

{

return _rivers[index];

}

else

{

return _towns[index - _rivers.Count];

}

}

else

{

return null;

}

}

set

{

throw new NotImplementedException();

}

}

Так как интерфейс IList наследуется от интерфейсов ICollection и IEnumerable, необходимо реализовать соответствующие методы и свойства этих интерфейсов. Пример реализации приведен в листинге 6.

Листинг 6. Реализация интерфейсов ICollection и IEnumerable

#region Члены ICollection

public void CopyTo(Array array, int index)

{

throw new NotImplementedException();

}

public int Count

{

get { return _towns.Count + _rivers.Count; }

}

public bool IsSynchronized

{

get { return false; }

}

public object SyncRoot

{

get { return null; }

}

#endregion

#region Члены IEnumerable

public IEnumerator GetEnumerator()

{

throw new NotImplementedException();

}

#endregion

Для реализации поддержки сравнимости элементов коллекции (что, например, может быть использовано при сортировке коллекции) также добавим реализацию интерфейса IComparer<GeographicObject> (листинг 7).

Листинг 7. Реализация интерфейса IComparer<GeographicObject>

#region Члены IComparer<GeographicObject>

public int Compare(GeographicObject x, GeographicObject y)

{

return x.CompareTo(y);

}

#endregion

Проектирование пользовательских элементов управления.

Для работы с разработанными классами необходимо спроектировать соответствующий пользовательский интерфейс. Для этого добавим на главную форму стандартный элемент управления вкладками - TabControl. Данная форма содержит четыре вкладки для работы с классами географических объектов - «Добавить город», «Добавить реку», «Просмотр коллекции» и «Отсортированная коллекция».

Интерфейс каждой вкладки разработаем с использованием пользовательских элементов управления:

UserControlAddRiver - добавление реки;

UserControlAddTown - добавление города;

UserControlSortedView - отсортированная коллекция;

UserControlViewCollection - просмотр коллекции.

Так как каждый из наших пользовательских элементов управления обязательно будет работать с коллекцией, то заменим конструктор по умолчанию на конструктор с параметром (листинг 8).

Листинг 8. Конструктор класса пользовательского элемента управления
«Добавить реку»

public UserControlAddRiver(GeographicObjectsCollection collection)

{

InitializeComponent();

_collection = collection;

collection.CollectionChanged += new EventHandler<EventArgs>(collection_CollectionChanged);

}

После реализации функциональности пользовательских элементов управления необходимо добавить их на главную форму. Сделаем это программно в конструкторе класса главной формы (листинг 9).

Листинг 9. Конструктор класса главной формы

public FormMain()

{

InitializeComponent();

UserControlAddTown ucat = new UserControlAddTown(_collection);

ucat.Dock = DockStyle.Fill;

tabPageAddTown.Controls.Add(ucat);

UserControlAddRiver ucar = new UserControlAddRiver(_collection);

ucar.Dock = DockStyle.Fill;

tabPageAddRiver.Controls.Add(ucar);

UserControlViewCollection ucvw = new UserControlViewCollection(_collection);

ucvw.Dock = DockStyle.Fill;

tabPageViewCollection.Controls.Add(ucvw);

UserControlSortedView ucsw = new UserControlSortedView(_collection);

ucsw.Dock = DockStyle.Fill;

tabPageSortView.Controls.Add(ucsw);

}

Для поддержки сохранения и загрузки коллекций географических объектов воспользуемся механизмом XML-сериализации. Для того чтобы исключить свойства и поля спроектированных классов из сериализации, необходимо их пометить атрибутом XmlIgnore. Код сохранения и загрузки коллекций с помощью классов XML-сериализации приведен в листинге 10.

Листинг 10. XML-сериализация и десериализация коллекции

private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (saveFileDialogMain.ShowDialog() == DialogResult.OK)

{

XmlSerializer xs = new XmlSerializer(typeof(GeographicObjectsCollection), new Type[2] { typeof(Town), typeof(River) });

StreamWriter sw = new StreamWriter(saveFileDialogMain.FileName);

xs.Serialize(sw, _collection);

sw.Flush();

sw.Close();

}

}

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (openFileDialogMain.ShowDialog() == DialogResult.OK)

{

XmlSerializer xs = new XmlSerializer(typeof(GeographicObjectsCollection), new Type[2] { typeof(Town), typeof(River) });

StreamReader sr = new StreamReader(openFileDialogMain.FileName);

GeographicObjectsCollection newCollection = (GeographicObjectsCollection)(xs.Deserialize(sr));

_collection.Clear();

for (int i = 0; i < newCollection.Count; i++)

{

_collection.Add(newCollection[i]);

}

sr.Close();

}

}

Полностью с исходным кодом спроектированных классов и пользовательских элементов управления можно ознакомиться по адресу: ftp://iipo.tu-bryansk.ru/pub/DotNet/Lab2/LabWork2Sample.zip

Задание

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

2. При проектировании классов обязательно должны быть выполнены следующие требования:

Реализовать базовый класс для всех видов географических объектов.

Реализовать 2 класса специфических географических объектов, унаследованных от базового, согласно варианту.

Реализовать классы пользовательских исключений (не менее 2-х) и генерировать их в классах географических объектов.

Разработать класс коллекции, реализующий интерфейсы IList, IComparer<T> и объединяющий собой коллекции разных видов географических объектов в единую коллекцию. Для хранения каждого вида географических объектов используется тип коллекции, согласно варианту.

Доступ к членам-данным всех разрабатываемых классов должен осуществляться только через свойства.

* Реализовать возможность сортировки элементов коллекции по выбранному полю.

В классе коллекции реализовать генерацию событий: добавление элемента, удаление элемента.

* Вместо предыдущего пункта в классе коллекции реализовать генерацию следующих событий (при необходимости реализовать соответствующие классы): подготовка к добавлению элемента с возможностью отмены процедуры добавления, добавление элемента произошло успешно, подготовка к удалению элемента с возможностью отмены процедуры добавления, удаление элемента произошло успешно.

3. При проектировании пользовательского интерфейса необходимо реализовать отдельные пользовательские элементы управления для следующих задач:

Добавление элемента 1-го типа географического объекта.

Добавление элемента 2-го типа географического объекта.

Просмотр списка географических объектов с возможностью удаления выбранного элемента коллекции. Использовать стандартный элемент управления - ListView.

Просмотр отсортированного списка географических объектов на основе реализации операции сравнения его элементов. Использовать стандартный элемент управления - DataGridView.

* Дополнительно к предыдущему пункту реализовать возможность выбора поля, по которому осуществляется сортировка.

4. Пользовательские элементы управления должны обрабатывать соответствующие события от класса коллекции.

5. * Для разработанной коллекции реализовать механизм сериализации в файл и десериализации из файла.

Контрольные вопросы

1. Какие виды наследования поддерживаются платформой Microsoft .NET?

2. Как описываются абстрактные классы на языке C#?

3. Какие методы содержит интерфейс IComparable? Каково их назначение?

4. Опишите процедуру создания класса пользовательского исключения.

5. Перечислите классы стандартных коллекций в пространстве имен System.Collection .NET Framework.

6. Перечислите методы интерфейса IList. Каково их назначение?

7. Что такое пользовательский элемент управления? Чем он отличается от стандартных элементов управления?

8. Опишите процедуру разработки и использования пользовательских элементов управления.

9. Какие классы и атрибуты используются для организации XML-сериализации и XML-десериализации в .NET Framework?

интерфейс класс платформа коллекция

Список рекомендуемой литературы

1. Нейген, К. C# и платформа .NET 3.0 для профессионалов: [пер. с англ.] / К.Нейген, Б.Ивьен, Дж.Глинн, М.Скиннер, К.Уотсон. - М.: Вильямс, 2008. - 1376+416 (на CD) с.

2. Неш, Т. C# 2008: ускоренный курс для профессионалов: [пер. с англ.] / Т.Неш - М.: Вильямс, 2008. - 576 с.

3. Снелл, М. Microsoft Visual Studio 2008 / М.Снелл, Л.Пауэрс. - СПб: БХВ-Петербург, 2009. - 1200 с.

4. Троелсен, Э. С# 2008 и платформа .NET 3.5 Framework / Э.Троелсен. - 4-е изд. - М.: Вильямс, 2009. - 1368 с.

5. Рихтер, Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#. Мастер-класс: [пер. с англ.] / Дж.Рихтер. - М.: Русская Редакция; СПб.: Питер, 2007. - 656 с.

Приложение

Варианты заданий

№ Варианта

1-й вид географических объектов

2-й вид географических объектов

Вид коллекции для 1-го вида географических объектов

Вид коллекции для 2-го вида географических объектов

1

Города

Горные вершины

List<T>

LinkedList<T>

2

Горы

Заливы

Dictionary<int, T>

LinkedList<T>

3

Озера

Острова

LinkedList<T>

ArrayList

4

Проливы

Горы

ArrayList

SortedDictionary<string, T>

5

Моря

Озера

SortedDictionary<string, T>

SynchronizedCollection<T>

6

Морские впадины

Острова

SynchronizedCollection<T>

Dictionary<string, T>

7

Реки

Горные вершины

Dictionary<string, T>

SortedDictionary<int, T>

8

Острова

Проливы

SortedDictionary<int, T>

List<T>

9

Заливы

Города

List<T>

ArrayList

10

Горные вершины

Озера

Dictionary<int, T>

ArrayList

11

Города

Морские впадины

LinkedList<T>

SortedDictionary<string, T>

12

Горы

Океанские течения

ArrayList

SynchronizedCollection<T>

13

Озера

Горы

SortedDictionary<string, T>

Dictionary<string, T>

14

Проливы

Реки

SynchronizedCollection<T>

SortedDictionary<int, T>

15

Моря

Горные вершины

Dictionary<string, T>

List<T>

16

Морские впадины

Моря

SortedDictionary<int, T>

LinkedList<T>

17

Реки

Океанские течения

List<T>

SortedDictionary<string, T>

18

Острова

Горы

Dictionary<int, T>

SortedDictionary<string, T>

19

Заливы

Океанские течения

LinkedList<T>

SynchronizedCollection<T>

20

Горные вершины

Проливы

ArrayList

Dictionary<string, T>

21

Города

Озера

SortedDictionary<string, T>

SortedDictionary<int, T>

22

Острова

Заливы

SynchronizedCollection<T>

Dictionary<int, T>

23

Озера

Реки

Dictionary<string, T>

LinkedList<T>

24

Проливы

Морские впадины

SortedDictionary<int, T>

ArrayList

25

Моря

Острова

List<T>

SynchronizedCollection<T>

Размещено на Allbest.ur

...

Подобные документы

  • Классы и свойства объектно-ориентированного пространства. Методика создания новых классов в delphi: выбор родительского класса, изменение существующих компонентов, создание подклассов для элементов управления windows. Создание новой ветви классов.

    контрольная работа [13,0 K], добавлен 07.07.2012

  • Обзор технологии OpenStack, область ее применения. Реализация библиотеки классов. Реализация базовых классов и интерфейсов архитектуры. Создание виртуального сервера. Интеграция разработанной библиотеки классов и архитектура проектного решения.

    дипломная работа [1,0 M], добавлен 09.08.2016

  • Цели объектно-ориентированного программирования, абстрактные классы и адреса базовых классов, множественное и виртуальное наследование. Инициализация элементов производного класса, программный вызов конструкторов базового и производного классов.

    реферат [21,8 K], добавлен 31.10.2011

  • Описание используемых понятий и механизмов объектно-ориентированного программирования. Разработка и описание необходимых классов. Демонстрационный модуль с кратким описанием использованных стандартных компонентов. Внешний вид и листинг программы.

    курсовая работа [1,3 M], добавлен 24.07.2013

  • Оценка функциональных возможностей стандартных классов представления данных на примерах использования избранных методов ("detect: ifNone:" класса Set, "to:by:do:" класса Number и "copy: ReplaceFrom: to: with:" класса OrderedCollection), их тестирование.

    лабораторная работа [1,1 M], добавлен 14.10.2012

  • Изображение класса на диаграмме UML. Инкапсуляция как средство защиты его внутренних объектов. Использование принципа полиморфизма для реализации механизма интерфейсов. Создание новых классов путем наследования. Ассоциация как вид отношений между ними.

    лекция [516,6 K], добавлен 03.12.2013

  • Описание предметной области коучинга, его основные понятия. Разработка, реализация прикладной программы на базе WindowsForms. Описание пользовательских классов и реализованных форм. Описание принципа работы программы, структур хранения и получения данных.

    курсовая работа [1,3 M], добавлен 09.09.2012

  • Разработка Windows-приложений с использованием библиотеки MFC. Базовый набор классов, написанных на языке С++ и предназначенных для упрощения процесса программирования под Windows. Фундаментальные идеи объектно-ориентированного программирования.

    курсовая работа [348,1 K], добавлен 02.07.2011

  • Принципы и методы разработки пользовательских интерфейсов, правила их проектирования. Классические способы создания прототипов пользовательских интерфейсов в Microsoft Expression Blend. Работа с текстом и графическими изображениями в Expression Blend.

    курсовая работа [1,5 M], добавлен 19.03.2012

  • Ознакомление с программой проведения сборки компьютера из деталей, имеющихся в базе данных. Рассмотрение правил создания иерархии классов. Описание основных методов и пользовательского интерфейса. Изучение системных требований и текстов основных классов.

    курсовая работа [710,2 K], добавлен 26.07.2014

  • Иерархия и типы классов в программе, особенности обеспечения наследования. Наследование по принципу подчиненности. Включение в другие классы или делегирование. Понятие изолированных классов. Конструкторы и деструкторы. Иерархия классов NET Framework.

    презентация [91,8 K], добавлен 09.12.2013

  • Архитектура клиент-сервер на основе сокетов Windows. Описание утилиты Ipconfig. Конфигурирование стека TCP/IP. Реализация сокетов через классы NET. Структура библиотечных и пользовательских классов. Схема интерфейса пользователя и работы приложения.

    курсовая работа [419,5 K], добавлен 13.12.2012

  • Основные понятия объектно-ориентированного программирования, особенности описания функций и классов. Разработка программы для работы с универсальной очередью установленного типа, добавления и удаления ее элементов и вывода содержимого очереди на экран.

    курсовая работа [187,2 K], добавлен 27.08.2012

  • Создание библиотеки классов на основе C-строк и управляемую пользователем программу с псевдографическим интерфейсом, тестирующую её работу и отображающую результат. Упрощённая структура библиотек, взаимодействие классов и объектов, основные алгоритмы.

    курсовая работа [37,5 K], добавлен 15.08.2012

  • Изучение принципов объектно-ориентированного программирования. Понятие класса в Delphi, в основе которых лежат три фундаментальные принципы - инкапсуляция, наследование и полиморфизм. Разработка классов транспортных средств и структур классов (кошки).

    курсовая работа [29,7 K], добавлен 29.10.2011

  • Использование операционных систем Microsoft Windows. Разработка операционной системы Windows 1.0. Возможности и характеристика последующих версий. Выпуск пользовательских операционных систем компании, доработки и нововведения, версии Windows XP и Vista.

    реферат [23,3 K], добавлен 10.01.2012

  • Применение персональных компьютеров различных классов. Работа со встроенными программами Windows. Характеристика распространенных операционных систем (Windows 3.Х, 9Х, NT, 2000, XP, Windows7, Vista). Виды антивирусных программ и защита данных от вирусов.

    контрольная работа [32,3 K], добавлен 23.01.2011

  • Создание инструмента проектирования и прототипирования графических пользовательских интерфейсов сложных информационных систем. Интерфейс пользователя и командной строки. Средства прототипирования и их характеристики. Создание интерактивных прототипов.

    дипломная работа [2,4 M], добавлен 04.07.2011

  • Архитектурная организация ЭВМ основных классов и типов. Классификация компьютеров по поколениям. Операционные системы: Windows 95, Windows XP и Windows Vista. Защита от компьютерных вирусов: сканирование, эвристический анализ, антивирусные мониторы.

    контрольная работа [122,9 K], добавлен 08.04.2009

  • Эволюция графических пользовательских интерфейсов. Устройство системы X Window и менеджеры окон. Описание рабочего стола и приложения KDE и GNOME. Обзор основных принципов организации интерфейса в системе Windows, описание пакета ее прикладных программ.

    реферат [1,8 M], добавлен 15.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.