Текстовой редактор. Курсовой проект по мдк 02. 01. Разработка, внедрение и адаптация программного обеспечения отраслевой направленности Тема Разработка приложения Windows Текстовый редактор Разработчик студент (ка) гр. 5П17
Скачать 116.21 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ЧЕЧЕНСКОЙ РЕСПУБЛИКИ ГБПОУ «ГУДЕРМЕССКИЙ ЖЕЛЕЗНОДОРОЖНЫЙ ТЕХНИКУМ» Специальность 09.02.05 Прикладная информатика (по отраслям) КУРСОВОЙ ПРОЕКТ по МДК 02.01. Разработка, внедрение и адаптация программного обеспечения отраслевой направленности Тема Разработка приложения Windows «Текстовый редактор» Разработчик: студент (ка) гр. 5П-17 Магамадов Т.А Руководитель: Яхахажиев И. Б. Результат защиты: ______________ Дата защиты: «__» _________ 2019 г. г. Гудермес 2019 СОДЕРЖАНИЕ Введение 3 Постановка задачи 5 1. Внешнее описание 6 1.1 Определение требований к программному средству 6 1.2 Спецификация качества программного обеспечения 6 1.3 Техническое Задание 6 2. Теоретические основы программирования с использованием технологий Microsoft.NET 8 2.1.Создание приложения Windows Forms в среде Microsoft Visual Studio 2015 8 3. Проектирование пользовательского интерфейса 9 3.1 Реализация 9 4. Руководство пользователя 11 4.1 Назначение программного средства 11 4.2 Порядок установки программного средства 11 4.3 Руководство пользователя 11 5. Разработка приложения Windows «Текстовый редактор» 12 Заключение 14 Список использованных источников 15 Приложение ВВЕДЕНИЕ Текстовый редактор — самостоятельная компьютерная программа или компонент программного комплекса (например, редактор исходного кода интегрированной среды разработки или окно ввода в браузере), предназначенная для создания и изменения текстовых данных в общем и текстовых файлов, в частности. Текстовые редакторы предназначены для работы с текстовыми файлами в интерактивном режиме. Они позволяют просматривать содержимое текстовых файлов и производить над ними различные действия — вставку, удаление и копирование текста, контекстный поиск и замену, сортировку строк, просмотр кодов символов и конвертацию кодировок, печать и т. п. Часто интерактивные текстовые редакторы содержат дополнительную функциональность, призванную автоматизировать действия по редактированию (от записываемых последовательностей нажатий клавиш до полноценных встроенных языков программирования), или отображают текстовые данные специальным образом (например, с подсветкой синтаксиса). Многие текстовые редакторы являются редакторами исходного кода, то есть они ориентированы на работу с текстами программ. В данной пояснительной записке рассматривается описание программы «Текстовый редактор». Программа очень проста в использовании и имеет простой и интуитивно-понятный интерфейс. В качестве основного инструмента разработки применяется Microsoft Visual Studio 2015 Professional. Язык программирования C#. Цель данного курсового проекта – является систематизация, углубление и активное применение знаний по программированию, закрепление знаний, полученных в лекционном курсе, а также га практических занятиях. Одной из подзадач является создание описание алгоритма программы И составление математической модели. Задачи курсового проекта: написать программу, позволяющую редактировать, сохранять и открывать текстовые документы. АКТУАЛЬНОСТЬ ТЕКСТОВОГО РЕДАКТОРА Практически каждый пользователь компьютера встречается с необходимостью подготовки тех или иных документов — писем, статей, служебных записок, отчетов, рекламных материалов и т.д. Разумеется, эти документы можно подготавливать и без компьютера, например, на пишущей машинке. Однако с появлением персональных компьютеров стало значительно проще и удобнее, а, следовательно, и выгоднее подготавливать документы с помощью компьютеров. ПОСТАНОВКА ЗАДАЧИВ данном курсовом проекте описана программа, написанная на языке Visual C# с использованием технологий Microsoft.NET. В пояснительной записке содержится теоретическая информация о значение Microsoft .NET. Отдельное внимание уделено аспектам программирования приложений с использованием технологий доступа к данным ADO .NET. 1. ВНЕШНЕЕ ОПИСАНИЕ 1.1 Определение требований к программному средству программный обеспечение архитектура руководство. Программа должна создавать и открывать текстовые документы, форматировать и редактировать текст. Также должна быть предусмотрена возможность сохранения текста в файл. 1.2 Спецификация качества программного обеспечения Функциональность: программа должна являться полностью завершенным программным продуктом, не требующим каких-либо дополнительных специальных компонентов. Надёжность: программа должна быть автономной. Эффективность: программа должна предъявлять минимальные требования к аппаратному обеспечению, требования к аппаратным ресурсам должны быть намного ниже, чем для самой ОС. Программа должна иметь интуитивно понятный пользовательский графический интерфейс. 1.3 Техническое задание Основание для разработки Углубление знаний в C#. Создание текстового редактора, работа с текстом. Назначение разработки Создание программного средства для работы с текстом. Требования к программному средству Программа должна создавать и открывать текстовые документы, форматировать и редактировать текст. Также должна быть предусмотрена возможность сохранения текста в файл. Стадии и этапы разработки Разработка технического задания. Проектирование. Разработка классов. Дизайн главного меню и интерфейса. Написание кода, исправление ошибок, корректировка дизайна. 2. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ MICROSOFT.NETПлатформа NET Framework по большей части состоит из гигантской библиотеки кода, который можно использовать из клиентских языков путем применения различных приемов объектно-ориентированного программирования. Эта библиотека поделена на модули, которые применяются в зависимости от того, какие результаты требуется получить. Для разработки клиентских приложений под Windows используются две технологии.NET: Windows Forms (WinForms) и Windows Presentation Foundation (WPF). Обе эти технологии — по сути, набор классов и элементов управления пользовательского интерфейса (предоставляемых.NET Framework), позволяющих разработчикам быстро создавать приложения, которые инсталлируются и работают под управлением операционной системы Microsoft Windows. 2.1. Создание приложения Windows Forms в среде Microsoft Visual Studio 2015Под написанием приложения с помощью NET Framework подразумевается просто написание кода с использованием одного из языков, поддерживающих NET Framework, и библиотеки кода.NET. Для выполнения курсового проекта было использовано средство Microsoft Visual Studio 2015 – продукт компании Майкрософт, включающий интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Одной из основных целей Visual Studio является обеспечение быстрого создания форм Windows Forms. При помощи визуального конструктора Windows Forms, панели инструментов Controls и различных элементов управления общего назначения. Процесс создания приложения Windows Forms начинается точно так же, как и проекты всех других типов в Visual Studio: выбирается шаблон проекта Windows Application в диалоговом окне New Project и указывается местоположение исходных кодов приложения. Проекты типа Windows Forms Application состоят по умолчанию из класса формы и (в случае языка С#) из статического класса Program. После создания проекта мы получаем пустую форму, открытую в визуальном конструкторе Windows Forms. Внутри визуального конструктора находится макет реальной формы – холст для интерфейса пользователя. При помощи этого холста можно добавлять на форму элементы управления и визуальные элементы, подстраивать внешний вид самой формы и переходить непосредственно к коду, который связан с формой. Visual Studio выполняет за нас огромный объем работы, существенно упрощая создание функциональных оконных приложений и экономя наши усилия. Созданное приложение ведет себя так же, как и другие окна: его можно перемещать, закрывать, минимизировать и т. п. Нам не требуется писать для этого никакого кода – все и так работает. То же самое справедливо и для кнопок, помещённых в окно. Достаточно два раза щелкнуть по ней мышью, чтобы Visual Studio понял: мы желаем иметь код, который должен выполняться при нажатии на эту кнопку. Все, что от нас требуется – это предоставить необходимый код. Оконные приложения, естественно, не ограничиваются простыми формами с кнопками. Если посмотреть на панель с инструментами, то можно обнаружить большое количество самых разнообразных блоков, с помощью которых можно строить пользовательский интерфейс. 3. ПРОЕКТИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА Главная форма содержит основные элементы интерфейса и даёт доступ к большинству функциям Форма содержит панель с ниспадающими списками, при помощи которых осуществляется доступ к основным функциям программы. Главное меню содержит следующие вкладки: «Файл»: подменю включает в себя кнопки выполнения создания, открытия, сохранения файла и закрытие данной программы. «Вид»: подменю включает в себя возможность включения / выключения режима «Перенос по словам» а также возможность изменить цвет и шрифт выделенного текста. 3.1. Реализация Описание алгоритма на естественном языке Сразу после загрузки Текстовый редактор автоматически создает пустой текстовый документ. Создание текстового документа происходит с помощью отчистки области набора текста. 4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 4.1 Назначение программного средства Данное программное средство позволяет решать прикладные задачи по работе с текстовыми документами. 4.2 Порядок установки программного средства Программное средство не требует сложной процедуры установки. Установка происходит путем копирования файлов программы в любой раздел жесткого диска компьютера. Важным условием является сохранность целостности компонентов программы. 4.3 Руководство пользователя Программа проста в использовании и имеет достаточно необходимых функций. Основное пространство рабочего окна редактора занимает область набора текста, в которой отображается мигающий курсор. Сразу после загрузки Текстовый редактор автоматически создает пустой текстовый документ. Вы можете открыть для редактирования уже существующий текстовый файл, воспользовавшись пунктом “Открыть” в меню Файл. Все функции программы можно вызвать посредством ниспадающего меню в верхней части программы, а также горячими клавишами. 5. РАЗРАБОТКА ПРИЛОЖЕНИЯ WINDOWS «ТЕКСТОВЫЙ РЕДАКТОР» Форма приложения (рис.1) Открыта вкладка «Файл» (Рис.2) Открыта вкладка «Вид» (Рис.3) Лента инструментов, «Жирный текст». «Курсив». «Подчеркнутый текст», «Зачёркнутый текст», «Размер текста + 2», «Размер текста - 2», «Изменить шрифт», «Выбрать размер шрифта», «Выравнивание по левому краю», «Выравнивание по центру», «Выравнивание по правому краю». (Рис.4) ЗАКЛЮЧЕНИЕ В рамках курсового проекта была разработана программа для создания и редактирования текстовых документов. В процессе проектирования использовались методологии модульного и объектно-ориентированного программирования. Для разработки данной программы нужно было грамотно спроектировать внутреннюю архитектуру программы и реализацию необходимых классов. При разработке данного программного средства применялся язык программирования С# как один из наиболее современных и перспективных языков программирования. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1.Веретнов М.Ю. Гусаков Л.В., Комаров В.И. Работы студентов. Общие требования и правила оформления [Книга] - Архангельск: "Архангельский государственный технический университет", 2009. - стр. 104. 2.Дж. Рихтер CLR via C#. Программирование на платформе Microsoft .NET [Книга] - СПб : "Питер", "Русская Редакция". - стр. 656. - ISBN 978-5-91180-303-2. .Е.А. Жоголев «Технология программирования» [Книга] - М., Научный мир, 2009, 216 с. Сайт: www.thecodingguys.net Сайт: http://www.frolov-lib.ru Сайт: http://www.cyberforum.ru/ Сайт: http://studlearn.com ПРИЛОЖЕНИЕ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using System.Drawing.Text; namespace WindowsFormsApplication5 { public partial class Form1 : Form { private int TabCount = 0; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //toolStripComboBox1_Fonts_names_Load(); GetFontCollection(); PopulateFontSizes(); } public System.Drawing.Font SelectionFont { get; set; } public void AddTab() { RichTextBox richTextBox1 = new RichTextBox(); richTextBox1.Name = "Body"; richTextBox1.Dock = DockStyle.Fill; richTextBox1.ContextMenuStrip = contextMenuStrip1; TabPage NewPage = new TabPage(); TabCount += 1; string DocumentText = "Document " + TabCount; NewPage.Name = DocumentText; NewPage.Text = DocumentText; NewPage.Controls.Add(richTextBox1); tabControl1.TabPages.Add(NewPage); } private void RemoveTab() { if (tabControl1.TabPages.Count != 1) { tabControl1.TabPages.Remove(tabControl1.SelectedTab); } else { tabControl1.TabPages.Remove(tabControl1.SelectedTab); AddTab(); } } private void RemoveAllTabs() { foreach (TabPage Page in tabControl1.TabPages) { tabControl1.TabPages.Remove(Page); } AddTab(); } private void RemoveAllTabsButThis() { foreach (TabPage Page in tabControl1.TabPages) { if (Page.Name != tabControl1.SelectedTab.Name) { tabControl1.TabPages.Remove(Page); } } } RichTextBox GetCurrentDocument { get { return (RichTextBox)tabControl1.SelectedTab.Controls["richTextBox1"]; } } private void открытьToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == DialogResult.OK) { richTextBox1.Text = File.ReadAllText(openFileDialog.FileName); } } private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog saveFile1 = new SaveFileDialog(); saveFile1.DefaultExt = "*.txt"; saveFile1.Filter = "Test files|*.txt"; if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && saveFile1.FileName.Length > 0) { using (StreamWriter sw = new StreamWriter(saveFile1.FileName, true)) { sw.WriteLine(richTextBox1.Text); sw.Close(); } } } private void закрытьToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void очиститьToolStripMenuItem_Click(object sender, EventArgs e) { richTextBox1.Text = ""; } private void текстВСерединеToolStripMenuItem_Click(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Center; } private void текстСправаToolStripMenuItem_Click(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Right; } private void выбратьЦветТекстаToolStripMenuItem_Click_1(object sender, EventArgs e) { ColorDialog color1 = new ColorDialog(); if (color1.ShowDialog() == DialogResult.OK) { richTextBox1.SelectionColor = color1.Color; } } private void выбратьШрифтToolStripMenuItem_Click_1(object sender, EventArgs e) { FontDialog Font1 = new FontDialog(); if (Font1.ShowDialog() == DialogResult.OK) { richTextBox1.SelectionFont = Font1.Font; } } private void текстСлеваToolStripMenuItem_Click_1(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Left; } private void текстВСерединеToolStripMenuItem_Click_1(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Center; } private void текстСправаToolStripMenuItem_Click_1(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Right; } private void переносToolStripMenuItem_Click(object sender, EventArgs e) { } private void даToolStripMenuItem_Click(object sender, EventArgs e) { richTextBox1.WordWrap = true; } private void нетToolStripMenuItem_Click(object sender, EventArgs e) { richTextBox1.WordWrap = false; } private void SetBold() { if (richTextBox1.SelectionFont != null) { System.Drawing.Font currentFont = richTextBox1.SelectionFont; System.Drawing.FontStyle newFontStyle; if (richTextBox1.SelectionFont.Bold == true) { newFontStyle = FontStyle.Regular; } else { newFontStyle = FontStyle.Bold; } richTextBox1.SelectionFont = new Font( currentFont.FontFamily, currentFont.Size, newFontStyle); } } private void SetItalic() { if (richTextBox1.SelectionFont != null) { System.Drawing.Font currentFont = richTextBox1.SelectionFont; System.Drawing.FontStyle newFontStyle; if (richTextBox1.SelectionFont.Bold == true) { newFontStyle = FontStyle.Regular; } else { newFontStyle = FontStyle.Italic; } richTextBox1.SelectionFont = new Font( currentFont.FontFamily, currentFont.Size, newFontStyle); } } private void SetUnderline() { if (richTextBox1.SelectionFont != null) { System.Drawing.Font currentFont = richTextBox1.SelectionFont; System.Drawing.FontStyle newFontStyle; if (richTextBox1.SelectionFont.Bold == true) { newFontStyle = FontStyle.Regular; } else { newFontStyle = FontStyle.Underline; } richTextBox1.SelectionFont = new Font( currentFont.FontFamily, currentFont.Size, newFontStyle); } } private void SetStrikeout() { if (richTextBox1.SelectionFont != null) { System.Drawing.Font currentFont = richTextBox1.SelectionFont; System.Drawing.FontStyle newFontStyle; if (richTextBox1.SelectionFont.Bold == true) { newFontStyle = FontStyle.Regular; } else { newFontStyle = FontStyle.Strikeout; } richTextBox1.SelectionFont = new Font( currentFont.FontFamily, currentFont.Size, newFontStyle); } } public void GetFontCollection() { InstalledFontCollection InsFonts = new InstalledFontCollection(); foreach (FontFamily item in InsFonts.Families) { toolStripComboBox1.Items.Add(item.Name); } toolStripComboBox1.SelectedIndex = 0; } private void PopulateFontSizes() { for (int i = 1; i <= 75; i++) { toolStripComboBox2.Items.Add(i); } toolStripComboBox2.SelectedIndex = 11; } private void toolStripButton1_Click_1(object sender, EventArgs e) { SetBold(); } private void toolStripButton2_Click(object sender, EventArgs e) { SetItalic(); } private void toolStripButton3_Click(object sender, EventArgs e) { SetUnderline(); } private void toolStripButton4_Click(object sender, EventArgs e) { SetStrikeout(); } private void toolStripButton6_Click(object sender, EventArgs e) { float NewFontSize = richTextBox1.SelectionFont.SizeInPoints + 2; Font NewSize = new Font(richTextBox1.SelectionFont.Name, NewFontSize, richTextBox1.SelectionFont.Style); richTextBox1.SelectionFont = NewSize; } private void toolStripButton5_Click(object sender, EventArgs e) { float NewFontSize = richTextBox1.SelectionFont.SizeInPoints - 2; Font NewSize = new Font(richTextBox1.SelectionFont.Name, NewFontSize, richTextBox1.SelectionFont.Style); richTextBox1.SelectionFont = NewSize; } private void toolStripComboBox1_Fonts_names_Load() { InstalledFontCollection InsFonts = new InstalledFontCollection(); foreach (FontFamily item in InsFonts.Families) { toolStripComboBox1.Items.Add(item.Name); } toolStripComboBox1.SelectedIndex = 0; } // private void toolStripComboBox1_TextChanged(object sender, EventArgs e) // { // try // { // richTextBox1.Font = new Font(toolStripComboBox1.SelectedItem.ToString(), richTextBox1.SelectionFont.Size, richTextBox1.SelectionFont.Style); // richTextBox1.SelectionFont = richTextBox1.Font; // } // catch { } // } private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e) { Font NewFont = new Font(toolStripComboBox1.SelectedItem.ToString(),richTextBox1.SelectionFont.Size, richTextBox1.SelectionFont.Style); richTextBox1.SelectionFont = NewFont; // try // { // richTextBox1.Font = new Font(toolStripComboBox1.SelectedItem.ToString(), richTextBox1.SelectionFont.Size, richTextBox1.SelectionFont.Style); // } // catch { } } private void toolStripComboBox2_SelectedIndexChanged(object sender, EventArgs e) { float NewSize; float.TryParse(toolStripComboBox2.SelectedItem.ToString(), out NewSize); Font NewFont = new Font(richTextBox1.SelectionFont.Name, NewSize, richTextBox1.SelectionFont.Style); richTextBox1.SelectionFont = NewFont; } private void timer1_Tick(object sender, EventArgs e) { if (richTextBox1.Text.Length > 0) { toolStripLabel1.Text = richTextBox1.Text.Length.ToString(); } } private void toolStripButton7_Click(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Left; } private void toolStripButton8_Click(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Center; } private void toolStripButton9_Click(object sender, EventArgs e) { richTextBox1.SelectionAlignment = HorizontalAlignment.Right; } private void toolStripButton7_Click_1(object sender, EventArgs e) { } |