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

  • ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ Кафедра компьютерных систем в управлении и проектировании (КСУП)

  • Д. В. Гарайс, А. Е. Горяинов, А. А. Калентьев Новые технологии в программировании Методические указания по лабораторным работам

  • 1.1 Integrated development environment

  • НТП_МУ_ЛР. Томский государственный университет систем управления и радиоэлектроники кафедра компьютерных систем в управлении


    Скачать 1.31 Mb.
    НазваниеТомский государственный университет систем управления и радиоэлектроники кафедра компьютерных систем в управлении
    Дата19.11.2022
    Размер1.31 Mb.
    Формат файлаpdf
    Имя файлаНТП_МУ_ЛР.pdf
    ТипРеферат
    #798260
    страница1 из 6
      1   2   3   4   5   6

    Министерство образования и науки Российской Федерации
    Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
    УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ
    Кафедра компьютерных систем в управлении
    и проектировании (КСУП)
    Д. В. Гарайс, А. Е. Горяинов, А. А. Калентьев
    Новые технологии в программировании
    Методические
    указания
    по
    лабораторным
    работам
    2015

    Корректор: Осипова Е. А.
    Гарайс Д. В., Горяинов А. Е., Калентьев А. А.
    Новые технологии в программировании: методические указания по лабораторным работам. — Томск: Факультет дистанционного обучения, ТУСУР, 2015. — 79 с.
    © Гарайс Д. В., Горяинов А. Е.,
    Калентьев А. А., 2015
    © Факультет дистанционного обучения, ТУСУР, 2015

    3
    Содержание
    Введение............................................................................................................5 1 Лабораторная работа № 1. Бизнес-логика ...................................................6 1.1 Integrated development environment ........................................................6 1.2 Знакомство с Microsoft Visual Studio .....................................................7 1.3 Первое приложение на C# ....................................................................10 1.4 Ввод/вывод на языке С# .......................................................................12 1.5 Задание на лабораторную работу ........................................................15 1.6 Выбор варианта лабораторной работы................................................16 1.7 Варианты заданий.................................................................................17 1.8 Рекомендуемая литература ..................................................................18 2 Лабораторная работа № 2. Пользовательский интерфейс........................19 2.1 Создание оконного приложения ..........................................................19 2.2 Дизайнер форм......................................................................................20 2.3 Валидация данных ................................................................................21 2.4 Условная компиляция...........................................................................24 2.5 Сериализация ........................................................................................25 2.6 Задание на лабораторную работу ........................................................28 2.7 Список используемых источников ......................................................31 3 Лабораторная работа № 3. Система контроля версий ..............................32 3.1 Об управлением версиями....................................................................32 3.1.1 Локальные системы управления версиями....................................33 3.1.2 Централизованные системы управления версиями ......................34 3.1.3 Распределённые системы контроля версий...................................35 3.1.4 Краткий экскурс в историю появления Git....................................36 3.1.5 Особенности Git ..............................................................................37 3.1.6 Слепки вместо патчей.....................................................................37 3.1.7 Почти все операции — локальные.................................................38

    4 3.1.8 Git следит за целостностью данных...............................................39 3.1.9 Чаще всего данные в Git только добавляются ..............................40 3.1.10 Три состояния ...............................................................................40 3.2 Сервис Github........................................................................................41 3.3 Инструменты работы с Git ...................................................................43 3.3.1 Работа с помощью командной строки ...........................................43 3.3.2 Работа с помощью SourceTree (GUI) .............................................47 3.4 Удачная модель ветвления для Git ......................................................56 3.5 Задание на лабораторную работу ........................................................56 3.6 Список использованных источников...................................................57 4 Лабораторная работа № 4. Юнит-тестирование .......................................58 4.1 Задание на лабораторную работу ........................................................59 5 Лабораторная работа № 5. Рефакторинг и сборка установщика..............68 5.1 Задание на лабораторную работу ........................................................69 5.2 Список использованных источников...................................................73 6 Лабораторная работа № 6. Проектная документация...............................74 6.1 Задание на лабораторную работу ........................................................74 6.2 Список использованных источников...................................................79

    5
    Введение
    Ввиду ограниченности времени, отведенного на выполнение лабора- торных работ, студентам предлагается следующая модель работы: часть лабораторных работ выполняется обязательно, часть лабораторных работ остаётся необязательной для выполнения.
    Обязательные для выполнения лабораторные работы:

    Лабораторная работа № 1. Бизнес-логика.

    Лабораторная работа № 2. Пользовательский интерфейс.

    Лабораторная работа № 4. Юнит-тестирование.

    Лабораторная работа № 5. Рефакторинг и сборка установщика.
    Необязательные для выполнения лабораторные работы:

    Лабораторная работа № 3. Система контроля версий.

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

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

    1.
    Бизнес
    -
    логика
    Целью данной работы является реализация простого проекта в IDE
    Visual Studio 2013 на языке C#.
    1.1 Integrated development environment
    Когда программирование только зарождалось и им еще занималась не программисты, а научные работники, не было никаких средств для эф- фективного написания кода, программы писались в примитивных тексто- вых редакторах и компилировались из командной строки. Такой подход не вызывает сложностей при написании небольших программ. При разработ- ке крупных программных проектов он становится затруднительным. По- этому со временем стали появляться специализированные среды разработ- ки, позволяющие по возможности автоматизировать часть задач и упро- стить написание кода, такие среды называются IDE.
    IDE (Integrated development environment, интегрированная среда раз- работки) — система программных средств, используемая программистами для разработки программного обеспечения. В базовом виде IDE включают в себя текстовый редактор, компилятор, средства автоматизации сборки, отладчик. Однако современные IDE включают в себя большое количество дополнительных инструментов, позволяющих значительно облегчить про- цесс написания кода, например:
    1.
    Подсветка синтаксиса.
    2.
    Статические анализаторы, которые проверяют ошибки в про- грамме прямо во время написания (а не на этапе компиляции).
    3.
    Инструменты для эффективного рефакторинга.
    4.
    Фреймворки для генерации и написания модульных тестов и др.
    Существует множество различных IDE, которые поддерживают как несколько языков (Microsoft Visual Studio, IntelliJ IDEA, NetBeans), так и

    7 всего один (PyCharm, Delphi). Одной из лучших IDE для разработки при- ложений для Windows является Microsoft Visual Studio. Кроме того, что
    Microsoft Visual Studio позволяет эффективно разрабатывать на популяр- ных языках (С++, С#, VB.NET), значительным преимуществом является возможность ее расширения различными плагинами, начиная от продвину- той подсветки синтаксиса и интеграции систем контроля версий до под- ключения дополнительных языков программирования. На сайте Microsoft можно скачать бесплатную версию Visual Studio Express 2013, которая по- надобится для выполнения лабораторных работ.
    1.2
    Знакомство
    с
    Microsoft Visual Studio
    После установки и запуска Microsoft Visual Studio Express 2013 (да- лее MSVS) запустится стартовое окно программы. Для того чтобы создать проект, необходимо нажать Create Project на стартовой странице либо вы- брать FILE->Create->Project,после чего появится окно создания проекта.
    В лабораторных работах будут использоваться 3 вида проектов:
    1.
    Class library — библиотека классов — проект такого типа компи- лируется в файл формата *.dll. Используется для описания бизнес- логики приложения.
    2.
    Console application — консольное приложение — компилируется в *.exe. Позволяет создать приложение с которым можно взаимо- действовать через консоль.
    3.
    Windows forms application — оконное приложение — компилиру- ется в *.exe. Позволяет создавать оконные приложения для Win- dows, используя технологию WinForms.
    После создания проекта MSVS создает Solution (Решение), в котором находится созданный проект. Решение содержит элементы, необходимые для создания приложения. Решение может включать один или несколько проектов, а также файлы и метаданные, необходимые для определения ре-

    8 шения в целом. Решение необходимо для того, чтобы хранить все проекты, которые относятся к одному приложению, а также для отслеживания их взаимодействий. MSVS хранит определение решения в двух файлах: *.sln и *.suo. Файл решения (*.sln) содержит метаданные, которые определяют решение, в том числе:
    1.
    Проекты, связанные с решением.
    2.
    Элементы, которые не связаны с определенным проектом (тексто- вые файлы, картинки и т. д.).
    3.
    Конфигурации сборки, определяющие, какие конфигурации про- екта применяются в каждом типе сборки.
    Для добавления файлов в проект необходимо вызвать контекстное меню решения (нажать правой кнопкой на корневом узле в Обозревателе решения (Solution Explorer)), после чего выбрать пункт Добавить (Add).
    Таким образом, в решение можно добавить новые проекты или различные файлы (Create element…).
    Project (Проект) MSVS служит контейнером для файлов с исходным кодом, подключенным библиотекам и файлам. Управление проектом так- же осуществляется через контекстное меню, которое можно вызвать через
    Обозреватель решения. Через контекстное меню можно добавлять файлы с исходным кодом в проект (Add->Create element…).
    Важно!!! После установки MSVS файлы с расширением *.cs ассо- циируются с ней. То есть такие файлы будут открываться в MSVS. Следу- ет понимать, что открытые таким образом файлы не добавляются в проект или решение и они не могут быть скомпилированы. Чтобы добавить суще- ствующий файл в проект, необходимо вызвать контекстное меню проекта и в пункте Добавить выбрать существующий проект (Add->Exiting element…).

    9
    Часто один проект должен использовать некоторые типы данных, определенные в другом проекте. Для этого необходимо в основной проект добавить ссылку на зависимый проект. Для этого необходимо вызвать кон- текстное меню элемента References основного проекта и выбрать пункт
    Добавить ссылку (Add Reference…). После этого появится окно, изобра- женное на рис. 1.1. Зависимость можно добавить как на проекты, находя- щиеся в том же решении (для этого надо выбрать пункт Решение), так и на существующие сборки, входящие в .NET Framework, или дополнительно установленные библиотеки (пункт Сборки). После выбора необходимой библиотеки необходимо установить флаг слева от названия в положение
    «используется» и нажать ОК. После этого можно использовать типы дан- ных, определенные в выбранной библиотеке в вашем проекте.
    Рисунок 1.1 — Окно добавления зависимостей проекта

    10
    1.3
    Первое
    приложение
    на
    C#
    Во всех учебниках по программированию в качестве первой про- граммы всегда используется «Hello, World». Единственная функция этой программы — выводить в консоль строку «Hello, World!».
    В первую очередь необходимо создать новое консольное приложе- ние. Назовем его «HelloWorld». После создания MSVS сгенерирует Реше- ние HelloWorld и проект HelloWorld. Будет сгенерирован единственный файл с кодом Program.cs. Ниже следует его содержимое. namespace HelloWorld
    { class
    Program
    { static void Main(string[] args)
    {
    }
    }
    }
    Рассмотрим листинг подробнее. На первой строке находится объяв- ление пространства имен, название которого по умолчанию совпадает с именем проекта.
    Затем идет объявление класса Program. Ввиду того, что С# — полно- стью объектно-ориентированный язык, в нем не может быть функций, ко- торые не принадлежат какому-либо классу, в данном случае класс Program необходим для определения метода Main. Класс Program является обыч- ным классам, и с ним можно делать все то же, что и с другими, созданны- ми пользователем, классами. Например, его можно переименовать.
    Далее идет объявление функции Main. Любое консольное приложе- ние должно содержать метод Main. Метод Main — точка входа в програм- му, начало ее выполнения. В случае отсутствия этого метода будет ошибка при компиляции, потому что компилятор не будет знать, где начинается ваша программа. Соответственно, этот метод нельзя переименовывать и перегружать.

    11
    Вообще существует несколько вариантов сигнатуры этого метода: static void Main(string[] args) static int Main(string[] args) static void Main() static int Main()
    Эти функции будут отличаться типом возвращаемого значения и на- личием входных параметров. Рассмотрим подробнее: в первом случае из программы не возвращается никаких значений (void) и программа прини- мает на вход параметры. Строка string[] args содержит в себе список пара- метров, которые пользователь может передать в программу при вызове из командной строки. Во втором случае программа возвращает в консоль це- лое число, обычно это делается, чтобы после окончания выполнения про- граммы пользователь мог узнать, корректно она завершилась или нет, если корректно, то возвращается 0, в противном случае 1 либо код произошед- шей ошибки. В третьем и четвёртом случаях отсутствуют входные аргу- менты программы. Читатель, знающий С++, может провести прямую ана- логию с функцией Main.
    Теперь необходимо добавить в функцию Main код, который будет выводить необходимую строку. Сделать это можно следующим образом:
    System.Console.Write("Hello, World!"); или
    System.Console.WriteLine("Hello,
    World!");
    Отличия этих двух способов в том, что в первом случае каретка ос- танется на той же строке, а во втором передвинется на следующую строч- ку. То есть если у нас будет несколько вызовов System.Console.Write под- ряд, то аргументы функции будут выводиться на одной строке, а если бу- дет несколько вызовов System.Console.WriteLine, каждый аргумент будет выводиться на новой строчке.

    12
    Для того чтобы запустить приложение, необходимо либо на верхней панели нажать кнопку Запуск (Start), либо через главное меню — Отладка
    (Debug)-> Начать отладку (Start debugging), также можно нажать клавишу F5.
    При первом запуске скорее всего вы увидите, как мелькнет окно кон- соли и тут же пропадет. Это не ошибка, просто программа очень быстро выполнилась и закрылась. Чтобы посмотреть результаты выполнения, не- обходимо остановить выполнение программы. Для этого, например, можно заставить программу ждать, пока не будет нажата какая-нибудь клавиша клавиатуры. Для этого необходимо в конец программы добавить строку:
    System.Console.Read();
    Если запустить программу теперь, то на экране появится окно консо- ли с текстом “Hello, World!”. Чтобы окно пропало, надо нажать произволь- ную клавишу.
    В итоге ваша программа должна выглядеть следующим образом:
    namespace HelloWorld
    { class
    Program
    { static void
    Main()
    {
    System.Console.WriteLine("Hello,
    World!");
    System.Console.Read();
    }
    }
    }
    1.4
    Ввод
    /
    вывод
    на
    языке
    С
    #
    В общем случае, когда говорят о программах, будь то консольное приложение или оконное, подразумевается, что пользователю необходимо с ней взаимодействовать. Программа должна сообщить пользователю о процессе или результатах выполнения, а также работать с данными, кото-

    13 рые пользователь ей подает. Поэтому в данной части речь пойдет о опера- торах ввода и вывода на C#.
    Для получения данных с клавиатуры можно использовать следую- щий метод: string str =
    Console.ReadLine();
    Как видно, этот метод возвращает строку и не существует его пере- грузок или других методов, чтобы считывать целочисленные, символьные и другие типы переменных. Соответственно, для того чтобы ввести с кла- виатуры, необходимо получить строковое значение, а затем сконвертиро- вать его в необходимый нам тип данных. Для этого можно использовать класс Convert. В нем определено множество статических методов конвер- тирования строк в иные типы данных. Далее следуют примеры использо- вания класса Convert. int intValue = Convert.ToInt32(Console.ReadLine()); double doubleValue = Convert.
    ToDouble
    (Console.ReadLine()); bool boolValue = Convert.
    ToBoolean
    (Console.ReadLine()); long longValue = Convert.
    ToInt64
    (Console.ReadLine());
    При этом надо следить, чтобы типы вводимых значений совпадали с типами указанных переменных, потому что в противном случае возникнет исключение. Например, если ввести строку 123.456 и попытаться сконвер- тировать в целочисленное значение, то сгенерируется исключение.
    Для более корректной работы программы, если программа ожидает от пользователя какое-то определенное значение, то лучше ему об этом сказать.
    Необходимо придерживаться правила: перед тем как считывать что-либо с консоли, необходимо сообщить пользователю, что именно он должен ввести: смысл вводимой информации, тип данных, максимальное и минимальное до- пустимые значения и т. п. Примером таких запросов могут служить:
    «Введите имя пользователя (не больше 20 знаков)»
    «Введите возраст, целочисленное значение, от 1 до 100»

    14
    «Введите пол, 0 — мужской, 1 — женский»
    Для вывода текста на экран можно использовать команды, про кото- рые говорилось в предыдущей главе: Console.Write или Console.WriteLine.
    Далее идут примеры использования этих команд.
    Console.WriteLine(s);// переменная
    Console.WriteLine(55.3);// константа
    Console.WriteLine(y*3+7);// выражение
    Console.Write(z);// переменная
    Console.Write(-5.3);// константа
    Console.Write(i*3+7/j);// выражение
    Очень часто в процессе работы необходимо выводить осмысленные предложения с результатами выполнения программы. Например, «Через насос X было перекачано Y литров воды, температура насоса Z градусов», где в различные моменты выполнения программы X, Y, Z могут быть раз- личными значениями. Конечно, можно использовать следующий подход:
    Console.WriteLine(«Через насос » + X + «, было перекачано » + Y +
    « литров воды, температура насоса » + Z + « градусов»);
    Однако такой подход слишком громоздкий, и с ним возникает масса трудностей, например при необходимости добавить дополнительные дан- ные, даже читать такую запись достаточно затруднительно. Поэтому при- нято использовать подход с использованием форматной строки. Сама строка формата содержит большую часть отображаемого текста, но всякий раз, когда в нее должно быть вставлено значение переменной, в фигурных скобках указывается индекс. В фигурные скобки может быть включена и другая информация, относящаяся к формату данного элемента, например та, что описана ниже:

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

    15 больше символов, чем ему отведено форматом, он отображается полностью.

    Спецификатор формата предваряется двоеточием. Это указывает, каким образом необходимо отформатировать элемент. Например, можно указать, должно ли число быть форматировано как денеж- ное значение либо его следует отобразить в научной нотации, в степенном виде, либо шестнадцатиричном.
    Console.WriteLine(«Через насос {0} было перекачано {1} литров воды, температура насоса {2} градусов», X, Y, Z);
      1   2   3   4   5   6


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