НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ

ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

«УТВЕРЖДАЮ»

Декан факультета

______________

«___ »______________2009  г.

РАБОЧАЯ ПРОГРАММА

«ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ И РАЗРАБОТКИ

ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»


Основная образовательная программа:

Направление 230100 – «Информатика и вычислительная техника»

(подготовка бакалавров)

Направление 230100 – «Информатика и вычислительная техника»

(подготовка дипломированных специалистов)


Специальность высшего профессионального образования

230101 –  «Вычислительные машины, комплексы, системы и сети»


Факультет:

Автоматики и вычислительной техники

(очная форма обучения)

Курс:

2

Семестр:

4

Лекции:

34 часа

Лабораторные занятия:

17 часов

Расч.-граф. работа:

4 семестр

Самостоятельная работа:

32 часа

Зачет:

4 семестр

Всего:

83 часа



Новосибирск

2009 г.

Рабочая программа составлена на основании Государственного образовательного стандарта высшего профессионального образования (ГОСВПО) по направлению 230100 (552800) – «Информатика и вычислительная техника» (регистрационный номер – 35 тех/бак, дата утверждения – 13 марта 2000 г.) и ГОСВПО по направлению подготовки дипломированного специалиста 230100 (654600) – «Информатика и вычислительная техника» (регистрационный номер – 224 тех/дс, дата утверждения – 27 марта 2000 г.).

Индексы дисциплины в ГОСВПО ‑ СД.00 (СД.02)

НЕ нашли? Не то? Что вы ищете?

Цикл СД – Специальные дисциплины

Учебный план по направлению 230100 – «Информатика и вычислительная техника», специализация 230105 – «Программное обеспечение вычислительной техники и автоматизированных систем» (набор 2001 г. и последующие)

Рабочая программа обсуждена на заседании кафедры Вычислительной техники 30 ноября 2009 г., протокол №  .

Программу разработала

к. т.н., доц. каф. ВТ        

Зав. каф. ВТ,

д. т.н., проф.        

Ответственный за основную

образовательную программу

по направлению 230100

д. т.н., проф.        


Внешние требования

Инженер по специальности "Вычислительные машины, комплексы, системы и сети"

должен знать:

    принципы организации и функционирования аппаратных и программных средств ВТ, включая ЭВМ, комплексы, системы и сети различного назначения; методы, технологии и инструментальные средства, применяемые на всех этапах разработки аппаратно-программных комплексов; методы расчета и конструирования основных подсистем, входящих в состав современных средств вычислительной техники; задачи, методы и приёмы, применяемые при наладке аппаратно-программных комплексов; формальные модели, применяемые при анализе, разработке и испытаниях аппаратно-программных комплексов; методы обеспечения надёжности и информационной безопасности аппаратно-программных комплексов; архитектуру многомашинных и многопроцессорных ВС, вычислительных сетей, технологии распределенной обработки, сетевые технологии; прогрессивные методы использования средств вычислительной техники для решения задач науки и практики; методы теоретических и экспериментальных исследований, используемых при разработке перспективных средств ВТ; основные направления научно-технического развития аппаратных и программных средств ВТ;

должен владеть:

    методами проектирования аппаратных и программных средств; методами и средствами теоретического и экспериментального исследования, ориентированными на создание перспективных средств ВТ; методами, языками и технологиями разработки аппаратно-программных комплексов; методами разработки и анализа алгоритмов, моделей, архитектур и структур аппаратно-программных комплексов; методами и средствами анализа аппаратно-программных комплексов, методами метрологии и обеспечения качества их функционирования; методами и средствами анализа, описания и проектирования человеко-машинного взаимодействия, инструментальными средствами разработки пользовательского интерфейса; методами и средствами инсталляции, программирования и администрирования распределенных ВС и сетей; методами и средствами тестирования, отладки и испытаний аппаратно-программных комплексов; математическими и экспериментальными методами анализа, моделирования и исследования аппаратно-программных комплексов; математическими моделями вычислительных процессов и структур ВС; методами и средствами анализа и разработки аппаратных и программных компонентов сетевых и телекоммуникационных систем; методами и средствами защиты информации в ВС, локальных и глобальных сетях; методами и средствами разработки управляющих микропроцессорных систем различного назначения.
Принципы построения курса

Дисциплина “Технология программирования и разработки программного обеспечения” введена  в соответствии с требованиями ГОСВПО по направлению 654600 "Информатика и вычислительная техника" для специальности 230101 (220100) "Вычислительные машины, комплексы, системы и сети"- СД.08.

В основу дисциплины положены следующие принципы:

Основной целью дисциплины является освоение методов и приемов создания программных продуктов с современным интерфейсом, с использованием объектно-ориентированного подхода, с использованием современных программных оболочек, их отладки, документирования. Дисциплина охватывает очень большой объем материала и может читаться с усилением акцентов на разных разделах, в зависимости от уровня подготовки студентов и их пожеланий. Дисциплина рассчитана на студентов, владеющих приемами программирования и знающих язык программирования высокого уровня С++. Возможно самостоятельное изучение дисциплины студентами по индивидуальному графику в случае достаточной подготовки студента и при согласовании графика с преподавателем. Дисциплина изучается после освоения программирования на объектно-ориентированном языке С++. Дисциплина имеет практическую часть - лабораторные работы (17 часов). На лабораторных работах студенты реализуют программы с использованием реальной среды разработки Visual Studio C#.Net. Расчетно-графическая работа  выполняется по индивидуальному заданию с использованием методического пособия, указанного в списке литературы, и изучаемого студентами самостоятельно.

Выдержка из ГОСТа:

Шифр дисциплины

Содержание дисциплины

Часы

СД.08

Технологии программирования ( для спец. 230101):

170

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



Цели дисциплины

Номер цели

Содержание цели

Обучающийся будет знать:

1

что такое “жизненный цикл программы”

2

этапы разработки программного продукта

3

особенности современных оболочек для разработки программных продуктов на основе Visual Studio C#.Net

4

особенности взаимодействия в коллективе при разработке программного продукта

5

правила разработки документации для программного продукта

6

особенности тестирования программных  продуктов

7

особенности сопровождения программных продуктов

8

преимущества использования объектно-ориентированного подхода при создании сложных программных продуктов

Обучающийся будет уметь:

9

создавать приложения на С# c использованием программной оболочки Microsoft Visual

10

cоздавать программы для работы под Windows 32

11

разрабатывать техническое задание на программный продукт

12

документировать программный продукт

13

разрабатывать пользовательский интерфейс на основе стандартных элементов

14

разрабатывать и использовать элементы ActiveX

15

разрабатывать многопоточные приложения

16

использовать готовые библиотеки классов STL каркаса Framework

17

тестировать разработанное программное обеспечение


Структура и содержание дисциплины

4.1. Структура курса


Номер и
наименование модуля и раздела

Объем (в часах)

Номер удовлетво-ряемых требований ГОС

Результаты изучения

Лекции

Лаб. раб.

Сам. раб.

Представления

Знания

Умения и навыки

1

2

3

4

5

6

7

8

Модуль 1. Основные вопросы технологии программирования

8

0

5

5,7

6,7,8

1,2,5

12,17

Модуль 2. Особенности технологии и программирование на С#

10

8

10

1,2,3

3

10

9

Модуль 3. Создание Windows приложений с использованием  .NET Framework

12

9

12

4,6

11,12

14,15

9,10,13,16,17

Модуль 4. Программирование многопоточных приложений

4

0

5

4-7

11,12

16

15,17



4.2. Содержание дисциплины и деятельность обучающегося

Цели модуля

Темы и особенности модулей

Объем в часах  аудит. Занятий (примерный)

Деятельность обучающегося

1, 2, 5, 6, 7, 8, 12, 17

Модуль 1. Основные вопросы технологии программирования

Понятие программного обеспечения. Жизненный цикл программы.

Характеристики программ.  Определение требований. Проблемы разработки сложных программных продуктов. Этапы разработки. Документирование программных продуктов.

Верификация и тестирование. Руководство разработкой программных проектов. Время разработки программ.

Разработка программных компонент. Взаимодействие модулей. Сложность и корректность программ. Программные ошибки. Комплексная отладка программ. Испытания и сопровождение программных продуктов. Подготовка программы к эксплуатации.

Эксплуатационная  документация.

Средства автоматизации разработки программных продуктов.

Лекц. - 8 ч.


Слушает

Задает вопросы

Повторяет материал, изученный в дисциплине “Программирование на С++”

Применение при выполнении расчетно-графической работы

3, 9, 10

Модуль 2. Особенности технологии и программирование на С#

Технология Каркас. NET Framework. Общая среда выполнения CLR и система типов CTS. Библиотека классов. NET Framework. Сборки. JIТ-компиляция. Пространства имен.

Особенности программирования на С#. Типы управляемых данных: структурные, ссылочные.

Базовые типы: строки: классы String и StringBuilder, массивы: класс Array, перечисления класс Enum.

Стандартный ввод/вывод. Форматирование. Классы Math и Random.

Классы и структуры. Статические конструкторы, константы. Свойства. Индексированные свойства. Делегаты. События.

Особенности наследования в. Net. Интерфейсы. Стандартные интерфейсы: IComparable, ISerializable, ICloneable.

Потоковый ввод/вывод в файл. Сериализация и десериализация объектов.

Иерархия исключений. Создание классов исключений.

Параметризованные функции и типы.

Лекц. - 10 ч.

Лаб. раб. 8 час.

Слушает

Задает вопросы

Выполняет лабораторную работу 1,2

Выполняет расчетно-графическую работу


3, 9, 10, 11, 12, 13, 16, 17


Модуль 3. Создание Windows приложений с использованием. NET Framework

Особенности разработки и структура Windows-приложения. Иерархия Windows Forms. Интегрированная среда визуальной разработки Windows-приложений Microsoft Visual .

Процесс построения программы. Мастера. Редакторы ресурсов. Компилятор. Компоновщик. Отладчик. Интерактивная справочная система. Контроль исходного кода.

Построение простых приложений с использованием инструментальных средств разработки программ. NET SDK. Управляющие элементы. Кнопки. Список. Комбинированный список. Текст. Полоса прокрутки. Строка состояния. Панель инструментов. Список с выбором. Список изображений. Просмотр списка. Контейнеры. Менеджеры компоновки.

Простое приложение типа SDI. Обработка событий от мыши и клавиатуры. Модель делегирования событий.

Диалоговые окна. Обмен данными с диалоговыми окнами. Модальные и немодальные формы. Диалоговые окна сохранения и загрузки файла.

Создание иерархического меню в приложении. Всплывающие меню.

Построение MDI-приложения.

Лекц. - 12 ч.

Лаб. раб – 9 ч.

Слушает

Задает вопросы

Выполняет лабораторные работы 3,4.

Использует в расчетно-графической работе

3, 9, 10, 11, 12, 15, 16, 17


Модуль 4 Программирование многопоточных приложений.

Модель приложений. NET. Понятия процесса и потока. Рабочие потоки. Общение основного и рабочего потоков. Синхронизация потоков с помощью мониторов. Потоки пользовательского интерфейса.

Лекц. - 4 ч.


Слушает

Задает вопросы

Использование при необходимости в расчетно-графической работе

Итого:

Лекц. - 34 ч.

Лаб. раб – 17 ч.

Сам. раб. – 32 час



Темы лабораторных занятий

№ п/п

Название

Объем в часах

1

Типы данных и операторы языка С#.

Массивы. Строки. Регулярные выражения.

4

2

Структуры и перечисления как частные виды классов. Классы. Интерфейсы.

4

3

Программирование для Windows. Создание SDI-приложений. Разработка GIU. Обработка событий.

4

4

Программирование для Windows. Создание MDI-приложений. Использование стандартных диалоговых окон. Сериализация и десериализация объектов. Анимация.

5


Задания к лабораторным занятиям

Лабораторная работа 1

Тема: Типы данных и операторы языка С#.

Массивы. Строки. Регулярные выражения

Цель работы:

    изучить многообразие типов данных и отличительные особенности синтаксических конструкция языка C# от C++; изучить базовые типы: Array, String, StringBuilder, а также средства стандартного ввода/вывода и возможности форматирования данных; научиться составлять регулярные выражения и с их помощью проводить в символьном тексте поиск информации, а также ее изменение.

Задания к лабораторной работе

1. Проработать примеры, данные в теоретических сведениях. Внести их в отчет с комментариями. Получить результаты работы программ и уметь их объяснить.

2. Выполнить два задания на двумерный массив по заданному номеру варианта и номеру, отсчитанному с конца.

Точки на плоскости заданы своими координатами х и у, которые хранятся в двумерном массиве. Найти пару самых удаленных друг от друга  точек. Найти суммы элементов двухмерного массива целых чисел, расположенных на линиях, параллельных главной диагонали, и ниже нее. Найти номер столбца двухмерного массива целых чисел, для которого среднеарифметическое значение его эле­ментов максимально. В двухмерном массиве вещественных чисел поменять местами строки и столбцы с одинаковыми номерами. В двухмерном массиве целых чисел поменять места­ ми столбцы, симметричные относительно середины масси­ва (вертикальной линии). В двухмерном массиве целых чисел поменять места­ми строки, симметричные относительно середины массива (горизонтальной линии). Поменять местами значения элементов двухмерно­го массива вещественных чисел, симметричных относитель­но побочной диагонали. Найти максимальный элемент среди максимальных элементов строк двухмерного массива целых чисел. Опре­делить номер строки и столбца для такого элемента. Найти максимальный среди минимальных элементов столбцов двухмерного массива целых чисел. Определить номер строки и столбца для такого элемента. Удалить столбец двухмерного массива вещественных чисел, в котором находится максимальный элемент этого массива. Найти все неповторяющиеся элементы двухмерно­го массива целых чисел. Заполнить двухмерный массив целыми числами от 1 до 100 по спирали. Определить:

а)        сумму элементов главной диагонали массива;

б)        сумму элементов побочной диагонали массива.

в)        среднее арифметическое элементов главной диагона­ли массива;

г)        среднее арифметическое элементов побочной диагонали массива.

Дан двухмерный массив. Вывести на экран его эле­менты следующим образом:

а)        сначала элементы первой строки справа налево, затем второй строки справа налево и т. п.;

б)        сначала элементы первой строки справа налево, затем второй строки слева направо и т. п.;

в)        сначала элементы первого столбца сверху вниз, затем  второго столбца сверху вниз и т. п.;

г)        сначала элементы первого столбца снизу вверх, затем второго столбца снизу вверх и т. п.

3. Выполнить два задания на строки по заданному номеру варианта и № +10. Использовать в задачах два класса строк: String и StringBuilder.


Текстовые сообщения часто печатаются строчными буквами, но многие сотовые телефоны имеют встроенные средства преобразования строчной буквы в прописную после символа пунктуации, как точка или знак вопроса. Составить программу, которая будет вводить сообщение в переменную String (на одной строке), а затем обрабатывать его с получением новой строки с прописными буквами в соответствующих местах. Составить программу, которая будет вводить строку в переменную String. Подсчитать, сколько различных символов встречаются в ней. Вывести их на экран. Составить программу, которая будет вводить строку в переменную String. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой. Составить программу, которая будет вводить строку в переменную String. Определить, сколько раз в строке встречается заданное слово. Строка, содержащая произвольный русский текст, состоит не более чем из 200 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме: например: а — 25 раз, к — 3 раза и т. д. Двумерный массив n x m содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза. Дана строка, содержащая текст и арифметические выражения вида a ® b, где ® — один из знаков +, -, *, /. Выписать все арифметические выражения и вычислить их значения. Составить программу, которая будет вводить строку в переменную String. Удалить из нее все лишние пробелы, оставив между словами не более одного. Результат поместить в новую строку. Составить программу, которая будет вводить строку в переменную String. Напечатать в алфавитном порядке все слова из данной строки, имеющие заданную длину n. Составить программу, которая будет вводить строку в переменную String. Найти слово, встречающееся в каждом предложении, или сообщить, что такого слова нет. Дана строка, содержащая текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или знаком восклицания). Получить в новой строке отредактированный текст, в котором удалены подряд идущие вхождения слов в предложениях. Даны две строки А и B. Составьте программу, проверяющую, можно ли из букв, входящих в А, составить В (буквы можно использовать не более одного раза и можно переставлять).

Например, А: ИНТЕГРАЛ; В: АГЕНТ — составить можно; В: ГРАФ —нельзя.

Дана строка, содержащая текст на русском языке. Заменить все вхождения заданного слова на другое слово.
С клавиатуры вводится предложение, слова в котором разделены символом ‘_’. Напечатать все предложения, которые получаются путем перестановки слов исходного текста. Дана строка, содержащая текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или знаком восклицания). Отредактировать текст, удалив подряд идущие вхождения слов в предложениях. Дана строка, содержащая зашифрованный русский текст. Каждая буква заменяется на следующую за ней (буква я заменяется на а). Получить новую расшифрованную строку. Даны две строки f1 и f2- Строка f1 содержит произвольный текст. Слова в тексте разделены пробелами и знаками препинания. Строка f2 содержит не более 30 слов, которые разделены запятыми. Эти слова образуют пары: каждое второе является синонимом первого. Заменить в строке f1 те слова, которые можно, их синонимами. Результат поместить в новую строку. В записке слова зашифрованы – каждое из них написано наоборот. Написать программу расшифровки текста. Зашифровать введенный текст, написав каждое слово наоборот. C клавиатуры вводится предложение, слова в котором разделены символом ‘_’ и маска (шаблон) для выбора из предложения нужных слов (содержит буквы и символ заполнителя *, который заменяет любое количество символов). Необходимо выбрать из предложения слова, которые подходят под маску (шаблон). Например:

ВЫРАЖЕНИЕ_ЕСТЬ_ПРАВИЛО

Маска        *Н*Е         ВЫРАЖЕНИЕ

               *РА*                ВЫРАЖЕНИЕ, ПРАВИЛО

Проверить является ли данное предложение зашифрованным по описанному выше алгоритму. Если да – выдать расшифрованную строку, если нет -  выдать сообщение об ошибке.

Б_ССКБ_ФУЖПБ_ОБ_МГТФ_БЛФФБ

Выберите 10 произвольных букв русского алфавита. Введите произвольное слово. С помощью ключа длиной от 3 до 8 символов произведите шифровку слова в числовую комбинацию.

В Е Ж М Н О П Р С Т                        КЛЮЧ  - 1234

0 1  2  3  4  5  6 7 8  9

МНОЖЕСТВО

3 4 5 2 1 8 9 0 5 

1 2 3 4 1 2 3 4 1

4 6 8 6 3 1 2 4 6 - РЕЗУЛЬТАТ

Зашифруйте вводимое с клавиатуры предложение следующим образом: сначала выбираются 2 слова из базы (набор слов, находящихся в тексте программы или вводимых с клавиатуры), затем слово из предложения, затем опять 2 слова из базы, после чего слово из предложения и так далее. С клавиатуры вводятся 4 массива слов:

- существительные в именительном падеже (тормоз, дисковод)

- глаголы (ест, сажает)

- качественные прилагательные во множественном числе (ядовитые, прекрасные)

- существительные в винительном падеже множ. числа (колонки, заборы).

Выбрать случайным образом слова из массивов и составить предложения.

ТОРМОЗ ЕСТ ПРЕКРАСНЫЕ ЗАБОРЫ.

4. Выполнить задание на применение регулярных выражений. Выбрать одно по заданному номеру.


Задан текст. Определить входит ли в него заданное слово и сколько раз. Задан текст. Определить является ли он кодом HTML : содержит теги <html>, <form>, <h1>. Задан текст. Определить является ли он программой на PHP: содержит скобки <?  и  ?>. Задан текст. Определить является ли он текстом на английском языке. Задан текст. После каждой буквы «о» вставить сочетание «ок». Задан текст. Определить является ли он текстом на русском языке. Задан текст. Определить содержит ли он цифры. Задан текст. Определить сколько предложений начинается со слова “Информатика”. Задан текст. Выбрать из него все номера телефонов. Задан текст. Определить содержит ли он цифры. Задан текст. Выбрать из него все e-mail адреса. Задан текст, содержащий буквы и цифры. Найти произведение все чисел в тексте. Задано предложение. Распечатать все слова в столбик. Задан текст. Определить количество согласных букв в нем и распечатать их.

Лабораторная работа 2

Тема:  Структуры и перечисления как частные виды классов.

Классы. Интерфейсы

Цель работы:

    Научиться создавать типы данных структуры и перечисление. Изучить методы работы со структурами и перечислениями в программе на С#. Ознакомиться со структурой класса, его созданием и использованием, описанием членов-данных класса и различных методов доступа к ним, возможностью создания и инициализации объектов класса с помощью различных конструкторов.

Задания к лабораторной работе.

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

Описания  компонентных данных пользовательских классов:

  1. СТУДЕНТ :  ФИО, курс, пол, оценки.        

2. СЛУЖАЩИЙ: имя, возраст, рабочий стаж, должности.

3. КАДРЫ: ФИО, номер цеха, разряд, специальности.

4. ИЗДЕЛИЕ: название, шифр, количество, комплектация.

5. ПЕЧАТНОЕ ИЗДАНИЕ: название, ФИО автора, стоимость, оглавление.

6. ЭКЗАМЕН: ФИО студента, дата, оценка, перечень вопросов.

7. АДРЕС: город, улица, номер дома, список жильцов.

8. ТОВАР: название, артикул, стоимость, даты (изготовление, срок реализации)

9. ЦЕХ: название, начальник, кол-во рабочих, перечень номенклатуры выпускаемых изделий.

10. ПЕРСОНА: ФИО, возраст, пол,  список увлечений.

11. АВТОМОБИЛЬ: марка, мощность, стоимость, даты ремонта.

12. СТРАНА: название, форма правления, площадь, список областей.

13. ЖИВОТНОЕ: вид, класс, средний вес, места обитания.

14. КОРАБЛЬ: название, водоизмещение, тип, список категорий кают.

15. КАРТИНА: ФИО автора, название, жанр, список владельцев.

16. МУЗЕЙ: Название, адрес, ФИО директора, кол-во и названия залов.

17. КНИГА: Название, жанр, кол-во страниц, список авторов.

18. САМОЛЕТ: ФИО конструктора, марка, год выпуска, кол-во мест, список городов рейса.

Лабораторная работа 3

Программирование для Windows. Создание SDI-приложений.

Разработка GIU. Обработка событий

Цель работы:

    Изучить приемы разработки Windows приложений в Visual .  Освоить использование элементов управления графического интерфейса для работы приложения и построения иерархического меню. Изучить модель делегирования событий.

Задания к лабораторной работе.

Создать SDI-приложение с элементами ввода и отображения полей класса. Использовать различные элементы управления: текстовые поля, списки, независимые и радио-кнопки, а также панели и менеджеры компоновки. При изменении данных запрашивать подтверждение через окно диалога. В случае неполных данных сообщать об ошибке. Объекты сохранять в коллекции. Реализовать просмотр всей коллекции объектов через комбинированный список и его редактирование. Добавить на форму меню, позволяющее работать с пунктами: добавить, просмотреть, удалить, редактировать, справка. Программа должна иметь нестандартные иконки.

Лабораторная работа 4

Программирование для Windows. Создание MDI-приложений.

Использование стандартных диалоговых окон.

Сериализация и десериализация. Анимация

Цель работы:

    Изучить приемы разработки MDI Windows приложений в Visual . Освоить механизм сериализации и десериализации объектов. Изучить приемы анимации изображений.

Задания к лабораторной работе.

На основании задания лаб. раб 1, 2 создать MDI-приложение. Информация в окне должна отображаться в виде таблицы. Иметь возможность делать выборку данных по различным критериям. Добавить новые формы. Вторая форма должна иметь текстовую область для ввода дополнительной информации об объекте, третья форма - содержать фото объекта. Добавить пункты меню для сохранения коллекции объектов в файл и загрузки. При сохранении использовать стандартные диалоговые окна и механизм сериализации (десериализации). Разработать динамическое приложение по заданию преподавателя. Анимировать изображение.

Проектирование индивидуального расчетно-графического задания с использованием библиотеки классов CLR Framework

Цель работы:

Продемонстрировать умение пользоваться средой визуальной разработки Windows приложений Visual ;

Показать умение работать с литературой и системой помощи Visual

Основное задание: для курсовой работы прошлого семестра по дисциплине «Программирование» разработать графический интерфейс.


Зачет

В билеты  зачета включается одна задача и один теоретический вопрос. Задача должна быть выполнена с использованием технологии ООП на языке C# в Visual

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

Задача решается с применением знаний построения графического интерфейса Window-приложений в среде  Visual . Обработка исключений должна быть реализована в виде сообщений, выводимых в диалоговые окна.

8.1. Примеры задач, выносимых на зачет

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

Разработка класса Текст. Создание приложения с иерархическим меню для задания параметров текста (цвет, шрифт), сохранения и загрузки в/из текстовый файл. Разработка иерархии классов объектов примитивных фигур. Создание коллекции объектов. Сериализация и десериализация объектов. Разработка класса Вычисления. Создание приложения для выполнения вычислительных задач. Сохранение и загрузка объектов в бинарный файл.
Правила аттестации студентов  по учебной дисциплине

Для аттестации студентов по дисциплине используется балльно-рейтинговая система. Рейтинг студента по дисциплине определяется как сумма баллов за работу в семестре (текущий рейтинг) и баллов, полученных в результате итоговой аттестации (зачет).

В таблице приведено максимальное количество баллов, которое может набрать студент по видам учебной деятельности в течение семестра и диапазоны баллов, соответствующие минимальному и максимальному количествам баллов. Максимальная сумма баллов за семестр составляет 100 баллов (текущий рейтинг – 80 баллов, итоговая аттестация – 20 баллов).

Правила текущей аттестации:

В течение четвертого семестра необходимо представить и защитить 4 лабораторные работы и расчетно-графическую работу в сроки, установленные учебным графиком (см. таблицу). К защите лабораторной работы допускаются студенты, выполнившие работу в полном объеме (все задания согласно варианту) и оформившие отчет по работе в соответствии с требованиями. На защите предлагается два теоретических вопроса и один практический вопрос (по теме работы). Максимальное количество баллов 9-10 выставляется, если студент полностью ответил на все вопросы, без серьезных замечаний и недочетов. Количество баллов 7-8 выставляется, если студент ответил на два вопроса из трех, причем один из вопросов – практический. Минимальное количество баллов 5-6 выставляется, если студент ответил на два вопроса из трех частично, с серьезными замечаниями, недочетами. При несвоевременной защите лабораторных работ оценка студента снижается на 2 балла, за каждый пропущенный срок защиты, согласно таблицы. К защите РГР допускаются студенты, выполнившие работу в полном объеме (все задания согласно варианту) и оформившие отчет по работе в соответствии с требованиями. На защите предлагается два теоретических вопроса и один практический вопрос (по ходу выполнения работы). Максимальное количество баллов 26-30 выставляется, если студент полностью выполнил задание, отлично оформил пояснительную записку и ответил на все вопросы, без серьезных замечаний и недочетов. Количество баллов 21-25 выставляется, если студент выполнил задание, оформил пояснительную записку, но были допущены небольшие недочеты в работе или ее оформлении, ответил на два вопроса из трех, причем один из вопросов – практический.  Минимальное количество баллов 15-20 выставляется, если студент выполнил задание, оформил пояснительную записку, но имеются существенные замечания по работе и ее оформлению, ответил на два вопроса из трех частично, с серьезными замечаниями, недочетами. Пересдача лабораторной работы, курсовой работы назначается, если студент не ориентируется в учебном материале, не может объяснить ход и результаты выполнения работы. В случае пересдачи работы происходит потеря баллов (максимальное количество баллов составляет 5 или 2 балла в зависимости от вида работы). В случае представления и защиты РГР с опозданием от учебного графика происходит потеря баллов (опоздание на 1 неделю – потеря 5 баллов, опоздание на 2 недели – 10 баллов, 3-х и более – потеря до 50% баллов от максимально возможного). 

Правила итоговой аттестации:

К зачету допускаются студенты, защитившие все лабораторные работы, РГР и набравшие в сумме не менее 50% (40 баллов) по результатам текущего рейтинга. Зачет проводится в устном виде, предлагается одна задача и один теоретический вопрос (образцы задач и теоретические вопросы приведены в п.8). Максимальное количество 18-20 баллов выставляется, если все задания выполнены полностью, без серьезных замечаний. Количество баллов 14-17 выставляется, если дан полный ответ на теоретический вопрос, а в решении задачи допущены незначительные недочеты. Минимальное количество баллов 10-13 выставляется, если дан неполный ответ на теоретический вопрос и в решении задачи имеются серьезные недочеты.

Таблица

№п/п

Вид учебной работы (учебной деятельности)

Максимальное количество баллов

Диапазоны баллов

Срок

представления и защиты

(неделя семестра)

Четвертый семестр:

1.

Лабораторная работа №1

10

5-10

неделя проведения 2-й лаб. работы по учебному расписанию

2.

Лабораторная работа №2

10

5-10

неделя проведения 3-й лаб. работы по учебному расписанию

3.

Лабораторная работа №3

10

5-10

неделя проведения 4-й лаб. работы по учебному расписанию

4.

Лабораторная работа №4

20

10-20

17 неделя

5.

Расчетно-графическая работа

30

15-30

17 неделя

Итого по текущему рейтингу:

80

40-80

6.

Зачет

20

10-20

Итого за четвертый семестр:

100

50 – 100 зачтено




Литература
, . Технология программирования. Учебник. 2-е изд. перераб. и доп. – М.: Высшая школа, 2006. – 454 с., ил. Эндрю Троелсен. С# и платформа. NET.  – СПб.: Питер, 2005г. - 796 с.: Том Арчер. Основы С#. – М.: Изд.-торговый дом «Русская редакция», 2001г. Си Шарп: Создание приложений для Windows/ .— Мн.: Харвест, 2003. - 384 с. рограммирование для Microsoft Windows на С#. В 2-х томах. Том 1. / Пер. с англ. — М.: Издательско-торговый дом «Русская Редакция», 2002.- 576 с. рограммирование для Microsoft Windows на С#. В 2-х томах. Том 2./Пер. с англ. — М,: Издательско-торговый дом «Русская Редакция*, 2002.— 624 с.