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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

»ова не будут подсвечены до тех пор, пока не произойдет обновление RichEdit:

 

 

После загрузки словаря в StatusBar приложения отобразится информация о количестве загруженных слов. Ключевые слова подсвечиваются красным цветом и жирным начертанием:

 

Слова подсвечиваются по мере их набора. Части ключевых слов подсвечиваться не будут:

 

 

Кроме этого, не будут подсвечены и слова, включающие в себя ключевые, но не являющиеся ими, как на рисунке ниже:

 

 

Пользователь может сохранить измененный файл, выбрав подменю Сохранить файл в меню Файл:

 

Системные требования и имеющиеся ограничения

 

Программа работает под управлением операционных систем семейства Microsoft Windows NT с установленным.NET Framework (версии 2.0 и старше).

Для работы программы требуется 2 Мб дискового пространства и 128 Мб оперативной памяти.

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

Размер словаря ограничен 200 словами. При вводе большего количества слов программа может работать некорректно.

Программа не требует защиты и может свободно распространяться.

 

Результаты тестирования приложения

 

Для тестирования приложения откроем прилагающийся текстовый файл, подключим словарь и обновим RichEdit1:

 

Анализ временных характеристик и выводы. Тест 1

Количество словРазмер словаря Количество ошибокВремя работы программы, мс50330145100330260200330420

Анализ временных характеристик и выводы. Тест 2

Количество словРазмер словаряКоличество ошибокВремя работы программы, мс100170175100330260100450340

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

приложение подсвечивание ключевой слово

 

Заключение

 

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

 

Список литературы

 

1.Алгоритмы и структуры данных: учеб. пособие/Л.Г. Гагарина, В.Д. Колдаев. - М., 2009. - 309 стр.

2.Краткое описание класса TRichEdit / Онлайн-учебник по языку С++ URL:

.TStringList - Тип. Справочник Delphi / Онлайн-учебник по языку С++ URL:

.Работа с файлами C++/ Онлайн-учебник по языку С++ URL:

 

Приложение

notebad;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Menus, ComCtrls;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TOpenDialog;: TSaveDialog;: TMenuItem;: TMenuItem;: TRichEdit;: TOpenDialog;: TStatusBar;btnOpenClick(Sender: TObject);btnSaveClick(Sender: TObject);btnExitClick(Sender: TObject);FormCreate(Sender: TObject);btnAddDictonaryClick(Sender: TObject);RichEdit1Change(Sender: TObject);

{Private declarations}

{Public declarations};: TForm1;: array [1..200] of string;

-1do.SelStart:=foundAt;.SelLength:=Length(word[i]);.SelAttributes.Style:=RichEdit1.SelAttributes.Style+[FsBold];.SelAttributes.Color:=clRed;:=RichEdit1.FindText(word[i],foundAt+1,Length(RichEdit1.Text),[StWholeWord]);;;.SelStart:=curPos;.Lines.EndUpdate;.OnChange:=RichEdit1Change;;;.">{$R *.dfm}TForm1.btnOpenClick(Sender: TObject);OpenDialog1.Execute then.Caption := OpenDialog1.FileName;.Lines.LoadFromFile(OpenDialog1.FileName);.SelStart := 0;.Panels[0].Text := Файл загружен;.Enabled:=true;;;TForm1.btnSaveClick(Sender: TObject);.FileName := Form1.Caption;SaveDialog1.Execute then.Lines.SaveToFile(SaveDialog1.FileName + .txt);.Caption := SaveDialog1.FileName;.Panels[0].Text := Файл сохранен;;;TForm1.btnExitClick(Sender: TObject);.Terminate;;TForm1.FormCreate(Sender: TObject);OpenDialog1 do:= Options + [ofPathMustExist, ofFileMustExist];:= ExtractFilePath(Application.ExeName);:= Текстовые файлы (*.txt)|*.txt|Все файлы (*)|*;;OpenDialog2 do:= Options + [ofPathMustExist, ofFileMustExist];:= ExtractFilePath(Application.ExeName);:= Файл словаря (*.nbdic)|*.nbdic;;SaveDialog1 do:= ExtractFilePath(Application.ExeName);:= Текстовый файл (*.txt)|*.txt;;;TForm1.btnAddDictonaryClick(Sender: TObject);: integer;: TStringList;OpenDialog2.Execute then:=TStringList.Create;.LoadFromFile(OpenDialog2.FileName);.Panels[0].Text := Словарь загружен. Добавлено слов: + IntToStr(strList.Count);i:=0 to strList.Count-1 do[i]:=strList[i];.free;.Enabled:=false;;;TForm1.RichEdit1Change(Sender: TObject);, foundAt, curPos, i: integer;.OnChange := nil;.Lines.BeginUpdate;:= RichEdit1.SelStart;.SelectAll;.SelAttributes.Style := RichEdit1.SelAttributes.Style - [FsBold];.SelAttributes.Color := clBlack;i := Low(word) to High(word) do:= RichEdit1.FindText(word[i], 0, Length(RichEdit1.Text), [StWholeWord]);foundAt <> -1 do.SelStart := foundAt;.SelLength := Length(word[i]);.SelAttributes.Style := RichEdit1.SelAttributes.Style + [FsBold];.SelAttributes.Color := clRed;:= RichEdit1.FindText (word[i], foundAt + 1, Length (RichEdit1.Text), [StWholeWord]);;;.SelStart := curPos;.Lines.EndUpdate;.OnChange := RichEdit1Change;;;.