Разработка программы "Текстовый редактор"

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

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

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

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

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

ВВЕДЕНИЕ

В данной пояснительной записке рассматривается описание программы «Текстовый редактор».

Программа очень проста в использовании и имеет простой и интуитивно-понятный интерфейс.

В качестве основного инструмента разработки применяется Microsoft Visual Studio 2010 Professional. Язык программирования C#.

1. ВНЕШНЕЕ ОПИСАНИЕ

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

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

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

1.2 Спецификация качества программного обеспечения

Функциональность: программа должна являться полностью завершенным программным продуктом, не требующим каких-либо дополнительных специальных компонентов.

Надёжность: программа должна быть автономной.

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

1.3 Функциональная спецификация

Минимальные технические характеристики компьютера, на котором гарантируется стабильная работа программы:

компьютер/процессор: компьютер с процессором класса Pentium II 450 МГц;

память: 64 МБ ОЗУ;

монитор: монитор Super VGA с разрешением 800x600 точек или более высоким, поддерживающий 256 цветов;

операционная система: операционная система Windows XP Service Pack 3, необходимо наличие Microsoft .NET Framework Runtime v4.0;

наличие свободного дискового пространства на жёстком.

Внешние функции:

открытие и сохранение текстовых документов;

поиск по документу;

форматирование и редактирование текста;

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

2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

2.1 Основание для разработки

Углубление знаний в C#. Создание текстового редактора, работа с текстом.

2.2 Назначение разработки

Создание программного средства для работы с текстом.

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

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

2.4 Требования к программной документации (документы)

Документация прилагается

2.5 Требования к эргономике и технической эстетики

Программа легко осваиваемая и проста в эксплуатации.

2.6 Стадии и этапы разработки

Разработка технического задания.

Проектирование.

Разработка классов.

Дизайн главного меню и интерфейса.

Написание кода, исправление ошибок, корректировка дизайна.

2.7 Порядок контроля и приемки

Автоматические тесты, документация приложена

2.8 Диаграмма классов (Рисунок 1)

Описание классов и методов рассмотрено в пункте 4.

Рис. 1 - Диаграмма классов

3. ПРОЕКТИРОВАНИЕ

3.1 Проектирование архитектуры приложения

Данное программное средство можно разбить на подсистемы, взаимодействующие друг с другом в соответствии с рисунком 2.

Рисунок 2 - Структура программы

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

3.2 Проектирование пользовательского интерфейса

Главная форма содержит основные элементы интерфейса и даёт доступ к большинству функциям (рисунок 3).

Рисунок 3 - Главная форма программы

Форма содержит панель с ниспадающими списками, при помощи которых осуществляется доступ к основным функциям программы.

Главное меню содержит следующие вкладки:

- «Файл»: подменю включает в себя кнопки выполнения создания, открытия, сохранения файла и закрытие данной программы (Рисунок 4);

Рисунок 4 - Подменю «Файл»

«Правка»: подменю включает в себя возможность отменить последнее действие, а так же вырезать, скопировать, выставить и удалить выделенный текст. Присутствует возможность поиска по тексту и автозамены. Вывод текущей даты и времени (Рисунок 5);

Рисунок 5 - Подменю «Правка»

- «Формат»: подменю включает в себя возможность включения / выключения режима «Перенос по словам» а так же возможность изменить цвет и шрифт выделенного текста (Рисунок 6);

Рисунок 6 - Подменю «Формат»

Форма dialogPoisk предоставляет пользователю удобный интерфейс для поиска подстроки в тексте (Рисунок 7):

Рисунок 7 - Форма поиска по тексту

Форма dialogZamena предоставляет пользователю удобный интерфейс для быстрого поиска и замены необходимых подстрок в тексте. (Рисунок 8):

Рисунок 8 - Форма замены

4. РЕАЛИЗАЦИЯ

4.1 Спецификация классов

Подсистема интерфейса - объединяет все остальные подсистемы. Здесь реализован весь пользовательский интерфейс. Основные методы, реализованные в классе Редактор, в котором находятся все важные функции, класс Поиск, в котором находятся методы поиска, и класс Form2, в котором находится метод замены, все находится ниже:

private void Заменить(object sender, EventArgs e) - метод, вызывающий форму замены;

private void Найти(object sender, EventArgs e) - метод, вызывающий форму поиска;

private void Удалить(object sender, EventArgs e) - метод, позволяющий удалить выделенный текст;

protected void ВыборЦвета(object sender, EventArgs e) - метод, вызывающий форму изменения цвета выделенного текста;

protected void ВыборШрифта(object sender, EventArgs e) - метод, вызывающий форму изменения шрифта выделенного текста;

protected void ВставкаВремениИДаты(object sender, EventArgs e) - метод, позволяющий вставить в текст текущую дату и время;

protected void ВыделитьВсе(object sender, EventArgs e) - метод, позволяющий выделить весть текст в редакторе;

protected void Вставить(object sender, EventArgs e) - метод, позволяющий вставить подстроку хранящуюся в буфере обмена;

protected void Копировать(object sender, EventArgs e) - метод, позволяющий скопировать выделенную подстроку в буфер обмена;

protected void Вырезать(object sender, EventArgs e) - метод позволяющий вырезать выделенный текст;

protected void Отменить(object sender, EventArgs e) - метод, позволяющий отменить последнее изменение в тексте;

protected void Вернуть(object sender, EventArgs e) - метод, позволяющий вернуть состояние текста до отмены последнего изменения;

protected void СохранитьФайл(object sender, EventArgs e) - метод, позволяющий сохранить текст в текстовый документ;

protected void СохранитьКак(object sender, EventArgs e) - метод, позволяющий сохранить текст предварительно предложив выбрать каталог и имя файла куда будет сохранен текст;

protected void СоздатьНовыйФайл(object sender, EventArgs e) - метод позволяющий отчистить окно редактора для создания нового документа;

protected void ОткрытьФайл(object sender, EventArgs e) - метод, вызывающий диалоговое окно с проводником для поиска и открытия нужного документа;

private void ВыходИзПрограммы(object sender, EventArgs e) - метод, завершающий работу программы.

4.2 Описание алгоритма на естественном языке

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

5. ТЕСТИРОВАНИЕ

5.1 Разработка тестов

Для тестирования программы искусственно создавались критическая ситуации. Цель тестирования: убедится что программа обрабатывает все критические ситуации и не завершает работу.

Тест 1. Пустая строка поиска.

Проверим поведение программы при нажатии кнопки «Найти далее», предварительно не введя строку поиска

Программа выводит текстовое сообщение, предоставленное на рисунке 9, с предупреждением о том, что не введена строка для поиска.

Рисунок 9 - Ошибка отсутствия строки поиска

Аналогичные ситуации наблюдается при нажатии кнопки «Найти» если строка поиска не введена. А так же при пустых строках в окне автозамены.

6. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

6.1 Назначение программного средства

Данное программное средство позволяет решать прикладные задачи по работе с текстовыми документами.

6.2 Порядок установки программного средства

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

6.3 Руководство пользователя

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

ЗАКЛЮЧЕНИЕ

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

Для разработки данной программы нужно было грамотно спроектировать внутреннюю архитектуру программы и реализацию необходимых классов.

При разработке данного программного средства применялся язык программирования С# как один из наиболее современных и перспективных языков программирования.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Веретнов М.Ю. Гусаков Л.В., Комаров В.И. Работы студентов. Общие требования и правила оформления [Книга] - Архангельск: "Архангельский государственный технический университет", 2006. - стр. 104.

2. Дж. Рихтер CLR via C#. Программирование на платформе Microsoft .NET [Книга] - СПб : "Питер", "Русская Редакция". - стр. 656. - ISBN 978-5-91180-303-2.

3. Е.А. Жоголев «Технология программирования» [Книга] - М., Научный мир, 2004, 216 с.

4. Начните разрабатывать вместе с Microsoft [В Интернете] - MSDN, 2011 г.. - http://msdn.microsoft.com/ru-ru/.

5. Т.А. Павловская С#. Программирование на языке высокого уровня [Книга] - СПб : "Питер", 2007. - стр. 432. - ISBN 978-5-91180-174-8.

ПРИЛОЖЕНИЕ А

Листинг класса Редактор

using System;

using System.ComponentModel;

using System.Drawing;

using System.Resources;

using System.Windows.Forms;

namespace Editor

{

public class Редактор : Form

{

private Container components;

private ColorDialog ДиалогВыбораЦвета;

private FontDialog ДиалогВыборШрифта;

private SaveFileDialog ДиалогСохранить;

private OpenFileDialog ДиалогОткрытьФайл;

private MainMenu ГлавноеМеню;

private MenuItem ПунктМенюПереносСлов;

static public RichTextBox Текст;

private string _filename = "";

private string filename

{

get { return _filename; }

set

{

_filename = value;

Text = value;

}

}

public Редактор()

{

InitializeComponent();

}

public void InitializeComponent()

{

ResourceManager resources = new ResourceManager(typeof(Редактор));

components = new Container();

ДиалогВыборШрифта = new FontDialog();

Текст = new RichTextBox();

ДиалогОткрытьФайл = new OpenFileDialog();

MenuItem ПунктМенюФормат = new MenuItem();

MenuItem ПунктМенюПомощь = new MenuItem();

ГлавноеМеню = new MainMenu();

ДиалогВыбораЦвета = new ColorDialog();

ДиалогСохранить = new SaveFileDialog();

Текст.AutoWordSelection = true;

Текст.Size = new Size(600, 300);

Текст.TabIndex = 1;

Текст.ScrollBars = RichTextBoxScrollBars.ForcedBoth;

Текст.Font = new Font("Comic Sans MS", 10, FontStyle.Regular);

ДиалогОткрытьФайл.Filter = "Текстовый файл|*.txt";

ДиалогОткрытьФайл.ReadOnlyChecked = true;

ДиалогОткрытьФайл.DefaultExt = "txt";

ДиалогОткрытьФайл.Multiselect = true;

ПунктМенюПереносСлов = new MenuItem("Перенос по словам", new EventHandler(ПереносСлов));

ПунктМенюПомощь = new MenuItem("Помощь", new MenuItem[]

{

new MenuItem("О программе", new EventHandler(ОПрограмме))

});

ГлавноеМеню.MenuItems.AddRange(new MenuItem[]

{

new MenuItem("&Файл",new MenuItem[]

{

new MenuItem("Создать", new EventHandler(СоздатьНовыйФайл), Shortcut.CtrlN),

new MenuItem("Открыть...", new EventHandler(ОткрытьФайл), Shortcut.CtrlO),

new MenuItem("Сохранить", new EventHandler(СохранитьФайл), Shortcut.CtrlS),

new MenuItem("Сохранить как...", new EventHandler(СохранитьКак)),

new MenuItem("-"),

new MenuItem("Выход", new EventHandler(ВыходИзПрограммы) )

} ),

new MenuItem("&Правка",new MenuItem[]

{

new MenuItem("Отменить", new EventHandler(Отменить), Shortcut.CtrlZ),

new MenuItem("Вернуть", new EventHandler(Вернуть)),

new MenuItem("-"),

new MenuItem("Вырезать", new EventHandler(Вырезать), Shortcut.CtrlX),

new MenuItem("Копировать", new EventHandler(Копировать), Shortcut.CtrlC),

new MenuItem("Вставить", new EventHandler(Вставить), Shortcut.CtrlV),

new MenuItem("Удалить", new EventHandler(Удалить), Shortcut.Del),

new MenuItem("-"),

new MenuItem("Найти...", new EventHandler(Найти), Shortcut.CtrlF),

new MenuItem("Заменить...", new EventHandler(Заменить), Shortcut.CtrlH),

new MenuItem("Перейти...", new EventHandler(Перейти), Shortcut.CtrlG),

new MenuItem("-"),

new MenuItem("Выделить все", new EventHandler(ВыделитьВсе), Shortcut.CtrlA),

new MenuItem("Время и дата", new EventHandler(ВставкаВремениИДаты), Shortcut.F5)

} ),

new MenuItem("Формат",new MenuItem[]

{

ПунктМенюПереносСлов,

new MenuItem("Шрифт", new EventHandler(ВыборШрифта) ),

new MenuItem("Цвет", new EventHandler(ВыборЦвета) )

}),ПунктМенюПомощь});

ДиалогСохранить.Filter = "Текстовый файл|*.txt";

ДиалогСохранить.InitialDirectory = System.IO.Directory.GetCurrentDirectory(); // System.IO.Path.GetDirectoryName("");

ДиалогСохранить.DefaultExt = "txt";

ДиалогСохранить.FileName = "Untitled";

ДиалогСохранить.CheckFileExists = true;

Text = "NotePad";

AutoScaleBaseSize = new Size(5, 15);

Menu = ГлавноеМеню;

ClientSize = new Size(600, 300);

Resize += new EventHandler(rs);

Controls.Add(Текст);

}

private void Перейти(object sender, EventArgs e)

{

MessageBox.Show("Не сделано(", "Не сделано(", MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

private void Заменить(object sender, EventArgs e)

{

Form Заменить = new Replace.Form2();

Заменить.Show();

}

private void Найти(object sender, EventArgs e)

{

Form find = new NotePad.find();

find.Show();

}

private void Удалить(object sender, EventArgs e)

{

if (Текст.SelectedText.Equals("")) return;

Текст.SelectedText = "";

}

protected void ОПрограмме(object sender, EventArgs e)

{

MessageBox.Show("Жжж", "О программе", MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

protected void ПереносСлов(object sender, EventArgs e)

{

ПунктМенюПереносСлов.Checked = !ПунктМенюПереносСлов.Checked;

Текст.WordWrap = ПунктМенюПереносСлов.Checked;

}

protected void ВыборЦвета(object sender, EventArgs e)

{

ДиалогВыбораЦвета.ShowDialog();

Текст.SelectionColor = ДиалогВыбораЦвета.Color;

}

protected void ВыборШрифта(object sender, EventArgs e)

{

ДиалогВыборШрифта.ShowDialog();

Текст.SelectionFont = ДиалогВыборШрифта.Font;

}

protected void ВставкаВремениИДаты(object sender, EventArgs e)

{

Текст.SelectedText = DateTime.Now.ToString();

}

protected void ВыделитьВсе(object sender, EventArgs e)

{

Текст.SelectAll();

}

protected void Вставить(object sender, EventArgs e)

{

DataObject Data = (DataObject)Clipboard.GetDataObject();

Текст.SelectedText = (string)Data.GetData(DataFormats.Text);

}

protected void Копировать(object sender, EventArgs e)

{

if (Текст.SelectedText.Equals("")) return;

Clipboard.SetDataObject(Текст.SelectedText, true);

}

protected void Вырезать(object sender, EventArgs e)

{

if (Текст.SelectedText.Equals("")) return;

Clipboard.SetDataObject(Текст.SelectedText, true);

Текст.SelectedText = "";

}

protected void Вернуть(object sender, EventArgs e)

{

Текст.Redo();

}

protected void Отменить(object sender, EventArgs e)

{

Текст.Undo();

}

protected void СохранитьФайл(object sender, EventArgs e)

{

if (filename.Equals(""))

{

ДиалогСохранить.ShowDialog();

if (!ДиалогСохранить.FileName.Equals(""))

{

filename = ДиалогСохранить.FileName;

}

}

Текст.SaveFile(filename, RichTextBoxStreamType.PlainText);

Text = filename;

}

protected void СохранитьКак(object sender, EventArgs e)

{

ДиалогСохранить.ShowDialog();

if (!ДиалогСохранить.FileName.Equals(""))

{

filename = ДиалогСохранить.FileName;

Текст.SaveFile(filename, RichTextBoxStreamType.PlainText);

Text = filename;

}

}

protected void СоздатьНовыйФайл(object sender, EventArgs e)

{

Текст.Clear();

}

protected void ОткрытьФайл(object sender, EventArgs e)

{

ДиалогОткрытьФайл.ShowDialog();

filename = ДиалогОткрытьФайл.FileName;

if (!filename.Equals(""))

{

Текст.LoadFile(filename, RichTextBoxStreamType.PlainText);

Text = filename;

}

}

protected void rs(object sender, EventArgs e)

{

Текст.Size = Size;

}

private void ВыходИзПрограммы(object sender, EventArgs e)

{

Close();

}

[STAThreadAttribute]

public static void Main(string[] args)

{

Application.Run(new Редактор());

}

}

ПРИЛОЖЕНИЕ Б

Листинг класса Find

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Text.RegularExpressions;

namespace NotePad

{

public partial class find : Form

{

public find()

{

InitializeComponent();

}

Match match;

public void button1_Click(object sender, EventArgs e)

{

string f = text.Text;

string pattern = @"\b" + f + @"\b";

string input = Editor.Редактор.Текст.Text;

match = Regex.Match(input, pattern);

if (match.Success == true)

{

Editor.Редактор.Текст.Select(match.Index, f.Length);

Editor.Редактор.Текст.Focus();

button1.Enabled = false;

}

else

MessageBox.Show("Строчка не найдена", "Найти", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

private void button2_Click(object sender, EventArgs e)

Close();

private void button3_Click(object sender, EventArgs e)

{

string f = text.Text;

match = match.NextMatch();

if (match.Success == true)

{

Editor.Редактор.Текст.Select(match.Index, f.Length);

Editor.Редактор.Текст.Focus();

}

else

MessageBox.Show("Строчка не найдена", "Найти", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

private void text_TextChanged(object sender, EventArgs e)

{

button1.Enabled = true;

}

}

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


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

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

    курсовая работа [664,4 K], добавлен 26.08.2012

  • Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.

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

  • Редактирование текста как очень важная часть оформления документов. Разработка программы по работе с текстом "Текстовый редактор" в среде разработки C++Builder 6 как приложения, использующегося в качестве замены встроенного редактора "WordPad".

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

  • Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.

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

  • Основание для разработки автоматизированной информационной системы "Будущий абитуриент". Технические требования к программному изделию. Порядок контроля и приемки продукта. Рассмотрение исходной базы данных. Описание интерфейса программного обеспечения.

    дипломная работа [3,3 M], добавлен 08.02.2013

  • Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.

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

  • Предпроектное обследование объекта автоматизации. Область применения разработки Web-приложения "Туристическое агенство", ее назначение, требования к программному продукту и документации. Календарный план и порядок приемки. Приемы работы с программой.

    курсовая работа [60,3 K], добавлен 28.12.2011

  • Разработка программы ведения базы данных для отделения диспансеризации подростков студенческой поликлиники. Требования к программному изделию и программной документации. Стадии и этапы разработки программы. Требования к написанию пояснительной записки.

    курсовая работа [18,9 K], добавлен 02.05.2009

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

    курсовая работа [2,6 M], добавлен 13.10.2012

  • Разработка программного продукта для спирографического обследования. Структура базы данных программы "СпирографОтдел". Выбор программного продукта и руководство пользователя. Минимальные рекомендуемые требования к техническому и программному обеспечению.

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

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