Цель работы заключается в получении знаний и разработке программы с интерфейсом командной строки, аналогичную по виду системной утилите cmd.exe, в которой по нажатию tab команда подставляться в командную строку.
Автодополнение (англ. autocomplete) — функция в программах, предусматривающих интерактивный ввод текста (редакторы, оболочки командной строки, браузеры и т. д.) по дополнению текста по введённой его части.
Командный интерпретатор cmd.exe поддерживает автодополнение по нажатию клавиши Tab путём перебора имён файлов и поддиректорий текущей директории. Автодополнение команд и имен исполняемых файлов, находящихся за пределами текущей директории, не поддерживается. Подставляемые имена заменяют уже введённые или подставленные.
В ходе выполнения курсового проекта будет спроектировано решение, которое содержит некоторые инструменты для реализации автоматической функциональности автоподстановки для Windows Console Application, без потери ключевых функций при использовании Console.Readkey().
Отчёт по курсовому проекту состоит из следующих разделов:
- введение;
- описание используемых инструментов и технологий;
- описание программной реализации приложения;
- заключение;
- приложения.
Второй раздел представляет собой теоретическую часть курсового проекта и содержит описание использованных в ходе выполнения работы инструментов и технологий.
Третий раздел содержит программную документацию по реализованному приложению.
В заключении делаются выводы по проделанной работе, описывается, какой результат был получен, что в дальнейшем можно улучшить, какие навыки и новые знания были получены в ходе выполнения работы и т.д.
В приложениях приводится программный код, графический материал и таблицы.
1.1 Среда разработки
Visual Studio Community 2015 — это бесплатная полнофункциональная интегрированная среда разработки с мощными, эффективными возможностями для кодирования, инструментами кроссплатформенных разработок мобильных приложений для Windows, iOS и Android, веб- и облачных приложений, а также доступом к тысячам расширений. Этот выпуск Visual Studio доступен бесплатно для отдельных разработчиков, для разработки проектов с открытым исходным кодом, академических исследований, образования и небольших групп специалистов. После установки просмотрите коллекцию Visual Studio. Она предоставляет быстрый доступ к инструментам, элементам управления и шаблонам, которые помогут максимально использовать возможности Visual Studio.
Microsoft Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).
2.1 Использование кода
ConsoleUtils библиотека предоставляет свой собственный ConsoleExt.ReadKey метод, который очень похож на Console.ReadLine метод .NET. Разница в том, что новый метод оставляет большинство ключевых функций неповрежденными (поэтому стрелки вверх и вниз по-прежнему просматривают предыдущие команды и т.д.). Он также возвращает KeyPressResult вместо ConsoleKeyInfo объекта. Этот объект не только скажет программисту, какая клавиша была нажата, но также содержит информацию о полной строке и позиции курсора, как до, так и после нажатия клавиши.
Все объекты на KeyPressResult:
1. ConsoleKeyInfo - та же структура, которая будет возвращена консолью Console.ReadKey().
2. Key – ConsoleKey внутри ConsoleKeyInfo.
3. KeyChar – ключевой символ внутри ConsoleKeyInfo
4. Modifiers – модификаторы, которые были нажаты при вводе данных (например, Shift, Ctrl).
5. LineBeforeKeyPress – LineState класс, содержащий информацию о строке до нажатия клавиши.
6. LineAfterKeyPress – LineState класс, содержащий сведения о строке, как и после нажатия клавиши.
Все объекты на LineState:
1. Line – линия.
2. CursorPosition - положение курсора в консоли.
3. LineBeforeCursor - часть линии, которая была до CursorPosition.
4. LineAfterCursor - часть линии, которая была после CursorPosition.
В ходе написания данной курсовой работы получены знания и разработана программа с интерфейсом командной строки, аналогичную по виду системной утилите cmd.exe, в которой по нажатию tab команда подставляться в командную строку.
Данная работа применима для большинства людей, желающих реализовать автоматическое завершение в консоли, алгоритмы, объясненные в этой работе, могут быть легко использованы без нее. Именно по этой причине обе реализации имеют свой отдельный проект в прилагаемом решении.
В ходе выполнения курсового проекта спроектировано решение, которое содержит некоторые инструменты для реализации автоматической функциональности автоподстановки для Windows Console Application, без потери ключевых функций при использовании Console.Readkey().
Данную работу можно усовершенствовать: в случае большого списка данную программу использовать неудобно, в консоли можно дважды нажать TAB и пропустить VARIANT, если знать все варианты и их небольшое количество, это не проблема.
1. Агуров, Павел C#. Сборник рецептов / Павел Агуров. - М.: «БХВ-Петербург», 2012. - 432 c.
2. Албахари, Джозеф C# 3.0. Справочник / Джозеф Албахари, Бен Албахари. - М.: БХВ-Петербург, 2012. - 944 c.
3. Албахари, Джозеф C# 3.0. Справочник / Джозеф Албахари, Бен Албахари. - М.: БХВ-Петербург, 2013. - 944 c.
4. Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. - М.: Вильямс, 2015. - 266 c.
5. Бишоп, Дж. C# в кратком изложении / Дж. Бишоп, Н. Хорспул. - М.: Бином. Лаборатория знаний, 2013. - 472 c.
6. Вагнер, Билл С# Эффективное программирование / Билл Вагнер. - М.: ЛОРИ, 2013. - 320 c.
7. Зиборов, В.В. Visual C# 2012 на примерах / В.В. Зиборов. - М.: БХВ-Петербург, 2013. - 480 c.
8. Зиборов, Виктор Visual C# 2010 на примерах / Виктор Зиборов. - М.: «БХВ-Петербург», 2011. - 432 c.
9. Ишкова, Э. А. Самоучитель С#. Начала программирования / Э.А. Ишкова. - М.: Наука и техника, 2013. - 496 c.
10. Касаткин, А. И. Профессиональное программирование на языке си. Управление ресурсами / А.И. Касаткин. - М.: Высшая школа, 2012. - 432 c.
11. Лотка, Рокфорд C# и CSLA .NET Framework. Разработка бизнес-объектов / Рокфорд Лотка. - М.: Вильямс, 2010. - 816 c.
12. Мак-Дональд, Мэтью Silverlight 5 с примерами на C# для профессионалов / Мэтью Мак-Дональд. - М.: Вильямс, 2013. - 848 c.
13. Марченко, А. Л. Основы программирования на С# 2.0 / А.Л. Марченко. - М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2011. - 552 c.
14. Подбельский, В. В. Язык С#. Базовый курс / В.В. Подбельский. - М.: Финансы и статистика, Инфра-М, 2011. - 384 c.
15. Прайс, Джейсон Visual C# 2.0. Полное руководство / Джейсон Прайс, Майк Гандэрлой. - М.: Век +, Корона-Век, Энтроп, 2010. - 736 c.
16. Рихтер, Джеффри CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C# / Джеффри Рихтер. - М.: Питер, 2013. - 928 c.
17. Смоленцев, Н. К. MATLAB. Программирование на Visual С#, Borland JBuilder, VBA (+ CD-ROM) / Н.К. Смоленцев. - М.: ДМК Пресс, 2011. - 456 c.
18. Троелсен, Эндрю Язык программирования C# 5.0 и платформа .NET 4.5 / Эндрю Троелсен. - М.: Вильямс, 2015. - 486 c.
19. Троелсен, Эндрю Язык программирования С# 2008 и платформа .NET 3.5 / Эндрю Троелсен. - М.: Вильямс, 2010. - 370 c.
20. Фримен, Адам ASP.NET MVC 3 Framework с примерами на C# для профессионалов / Адам Фримен, Стивен Сандерсон. - М.: Вильямс, 2011. - 672 c.