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

Работа добавлена: 2018-09-28






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

Анотация.

Данный документ является пояснительной запиской к курсовому проекту на тему «Поиск и замена подстроки в тексте с откатом изменений». Разработанный продукт предназначен для поиска и исправления орфографических ошибок в тексте, замены подстрок и символов с сохранением пред идущего изменения.

Программный продукт «Orfo-M-pro» разработан для Красноярского Колледжа Радиоэлектроники и Информационных технологий. Отладка программных модулей проводилась наIRUPatriot 502 под управлением операционных системWindows 7,LinuxRosaFreshR7 в кроссплатформенной интегрированной среде разработкиQtcreator.

Содержание.

Введение .....................................................................................................................................4

I Расчетная часть .......................................................................................................................6

1.1 Постановка задачи ..............................................................................................................6

1.2 Требование к программному коду ...........................................................................…......6

1.2.1 Требование к функциональным характеристикам..............................................….......6

1.2.2 Требования к надёжности................................................................................................6

1.2.3 Требования к условиям эксплуатации..................................................................….......7

1.3 Требования к составу и параметрам технических средств....................................…......7

1.4 Информационное обеспечение задачи....................................................................….......7

1.4.1 Описание входной информации..........................................................................….........7

1.4.2 Описание выходной информации...........................................................................….....8

2.2 Описание программного средства.............................................................................….....9

2.3 Контрольный пример работы программного модуля.............................................….......9

2.4 Руководство пользователя по работе с программным модулем..........................….......14

Заключение.................................................................................................................................16

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

Список использованных источников.......................................................................................18

Приложение А.

Блок-схема алгоритма проверки орфографии........................................................................19

Приложение Б.

Листинг функции проверки орфографии................................................................................20

Введение.

Целью курсового проекта является написание самого курсового проекта.

Задачами курсового проекта является:

- Научиться создавать качественные и надёжные программные продукты,

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

-Ознакомится с принципами отладки и тестирования;

-Разработать техническую документацию к разработанному программному продукту.

Подстрока.

Подстрока — это связная не пустая часть строки.

Строка.

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

Регулярное выражение.

Регулярные выражения (англ. regular expressions) — формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов (символов-джокеров, англ. wildcard characters). По сути это строка-образец (англ. pattern, по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска.

Примитивный алгоритм поиска подстрок.

В задачах поиска традиционно принято обозначать шаблон поиска как needle (англ. «иголка»), а строку, в которой ведётся поиск — как haystack (англ. «стог сена»). Также обозначим через Σ алфавит, на котором проводится поиск.

Если считать, что строки нумеруются с 1, простейший алгоритм (англ. naivealgorithm) выглядит так.

for i=0...|haystack|-|needle|

for j=1...|needle|

if haystack[i+j]<>needle[j]

then goto 1

output("Найдено: ", i+1)

Графическое представление  данного алгоритма таблица 1.

Haystack — ABCBCDE

needle — BC

Таблица 1.

A

B

C

B

C

D

E

B

C

B

C

B

C

B

C

B

C

B

C

B

Таким образом скорость работы алгоритма сводится кO(Haystack*needle+1).

Примечание.

Поиск подстрок в на сегодняшний день широко применяется в различных структурах информационных технологий — от текстовых редакторов до поисковых систем. Так же поиск подстрок применяется в научных биологических центрах: к примеру поиск участка кода ДНК. Применение алгоритмов поиска широко используются в СУБД.

Чем быстрей работа алгоритма тем больший  объём информации можно обработать.

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

I Расчетная часть.

1.1 Постановка задачи.

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

Интерфейс программы должен быть разработан с использованием языка программированияC++ .

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

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

Программное средство «Поиск и замена подстроки в тексте с откатом изменений» должно осуществлять поставленную задачу пользователя.

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

1.2 Требование к программному коду.

Требование к программному коду:

1.2.1 Требование к функциональным характеристикам.

На процесс восприятия пользователем, существенно влияет её внешний интерфейс. Он должен соответствовать современным стандартам оформления приложений, быть понятным и гибким в настройках.

1.2.2 Требования к надёжности.

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

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

1.2.3 Требования к условиям эксплуатации.

Программное средство «Поиск и замена подстроки в тексте с откатом изменений» предназначен для работы одного пользователя на одном компьютере, который должен обладать минимальными навыками работы с ПК, минимальными навыками работы в осWndows либоLinux.

1.3 Требования к составу и параметрам технических средств.

Для бесперебойного использования программного средства «Поиск и замена подстроки в тексте с откатом изменений» необходимо наличие следующих технических средств:

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

1.4 Информационное обеспечение задачи

1.4.1 Описание входной информации

Входными данными являются:

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

1.4.2 Описание выходной информации

Выходными данными являются:

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

II. ОПИСАТЕЛЬНАЯ ЧАСТЬ

2.2 Описание программного средства.

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

- Редактирование текста.

- Проверка орфографии.

- Поиск и замена вхождения подстрок.

- Чтение информации с текстового файла.

- Откат к пред идущему изменению.

- Сохранение текста в текстовый файл.

Программа может быть перенесена с одного компьютера на другой без потери информации и работоспособности. При создании данного программного средства была использована среда программированияQtcreator с использованием языка программированияC++, под управлением операционной системыWindows 7 иLinuxRosaFresh 7.

Программный продукт состоит из следующих файлов:

2.3 Контрольный пример работы программного модуля.

1) Для первого контрольного примера была взята фраза с орфографической ошибкой в текстовом файле «превет мир» рис.1.

Рис.1. Загрузка текста из файла.

2) По выбору в панели меню «Правка» - «Проверить» текст заменяется на исправленный Рис.2, Рис. 3.

Рис. 2. Выбор пункта меню.

Рис. 3. Результат проверки орфографии.

3) Отмена действий производится по вызову пункта меню «Правка» - «Отмена» рис. 4. рис. 5.

Рис. 4. Вызов пункта Отмена.

Рис. 5. Результат выполнения отмены.

4) Замена вхождений подстроки производится по вызову пункта меню «Правка» - «Замена» рис. 6., рис. 7.

Рис. 6. Вызов пункта меню замены текста.

Рис. 7. Окно замены текста.

5) Для замены текста выберем существующую подстроку — слово «мир» и заменим на слово «Человек» рис. 8., рис. 9.

Рис. 8. Ввод значений для замены.

Рис. 9. Результат выполнения замены текста.

2.4 Руководство пользователя по работе с программным модулем.

Руководство пользователя по работе с программным модулем «Поиск и замена подстроки в тексте с откатом изменений» программой «Orfo-M-pro» представлено в виде таблицы, см., таблицу 2.

Таблица 2.

Операция

Действия пользователя

Ответ программы

Запуск программы.

Двойной клик по исполняемому файлу программыOrfo-M-pro.exe (Windows),Orfo-M-pro (Linux).

Запуск окна текстового редактора.

Открытие файла.

Выбор пункта меню «Файл» - «Открыть», далее непосредственно выбор файла в диалоговом окне.

Загрузка текстовой информации с файла, вывод текста в текстовый файл.

Проверка текста на содержание орфографических ошибок.

Выбор пункта меню «Правка» - «Проверить»

Замена слов содержащих одну орфографическую ошибку с выводом обработанной информации в текстовый редактор.

Замена текста

Выбор пункта меню «Правка» - «Замена»

Вызов диалогового окна для замены текста.

Ввод в текстовые поля данных и нажатие кнопки «Заменить»

Замена текста в текстовом поле.

Отмена

Выбор пункта меню «Правка» - «Отмена»

Отмена к пред идущему изменению

Сохранение

Выбор пункта меню «Файл» - «Сохранить»

Сохранение текущего изменения в файл.

Сохранить как

Выбор пункта меню «Файл» - «Сохранить как»

Сохранение текущего файла в новый текстовый документ либо замена существующего.

Открыть словарь

Выбор пункта меню «Сервис» - «Открыть словарь»

Открытие пользовательского словаря для проверки.

Настройки

Выбор пункта меню «Сервис» - «Настройки»

Открытие диалогового окна настройки.

Выбор размера символов (для пользователей со слабым зрением)

Изменение размера символов в текстовом редакторе.

Выбор пункта «Включить тулбар»

Включение или отключение панели быстрого доступа.

Нажатие кнопки «Применить»

Применение изменений

Нажатие кнопки «Отменить»

Отмена не сохраненных изменений.

Справка

Выбор пункта меню «Сервис» - «Справка»

Вывод окна информации о

версии, лицензии и информации о разработчике.

Закрыть

Выбор пункта меню

«Файл» - «Закрыть»

Закрытие приложения.

Заключение.

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

Разработка программного продукта«Поиск и замена подстроки в тексте с откатом изменений» способствовала систематизации, закреплению и расширению знаний, полученных при изучении предметов: МДК 01.01 «Системное программирование» и МДК 01.02 «Прикладное программирование». Закрепление теоретического материала происходило в ходе решения поставленной задачи – разработки алгоритма, компиляции кода и исправления появившихся во время решения ошибок.

Во время решения задачи предоставляется возможность воспользоваться необходимыми алгоритмами решения задачи.

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

Ознакомился с принципами отладки и тестирования.

Разработать техническую документацию к разработанному программному продукту.

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

1.Ian Joyner. A Critique of C++ and Programming and Language Trends of the 1990s - 3rd Edition. — 1996.

Список использованных источников.

1.https://gcc.gnu.org/onlinedocs/

2.http://yosefk.com/c++fqa/index.html

3.http://doc.crossplatform.ru/qt/4.7.x/qstring.html

4.http://www.cplusplus.com/doc/tutorial/

5.https://en.wikipedia.org/wiki/Substring

Приложение А.

Блок-схема алгоритма проверки орфографии.

Приложение Б.

Листинг функции проверки орфографии.

#include"orfostart.h"

OrfoStart::OrfoStart(QObject *parent) :QObject(parent)

{

}

voidOrfoStart::OrfoMStart(QStringsText,QStringtText)

{

QStringtext =tText;

QStringListslov =sText.split(QRegExp("\\W+"),QString::SkipEmptyParts);

QStringListtextl=text.split(QRegExp("\\W+"),QString::SkipEmptyParts);//разбиваюнаподстроки

intskiplist[textl.length()];//масивскиплистасовподений

for(inti=0;i<textl.length();i++)skiplist[i]=0;

//всесовподениябудутпредставленыкак1,несовпадениякак0

for(inti=0;i<textl.length();i++)//поканепоследняяподстрокатекста

   {

for(intj=0;j<slov.length();j++)//поканепоследяяподстрокасловаря

{

if(textl.at(i)==slov.at(j))//создаюскиплист

{

skiplist[i]=1;//записываю1вэлементмассива

           }

       }

   }

for(inti=0;i<textl.length();i++)//поканепоследняяподстрокатекста

   {

for(intj=0;j<slov.length();j++)//поканепоследяяподстрокасловаря

{

if(skiplist[i]!=1)//еслиравно0

           {

QStringtextl1=textl.at(i);//переводимвстроку

QStringslov1 =slov.at(j);//переводимвстроку

if(textl1.length()>1)//еслибольшеоднойбуквы

{

if(textl1.length()==slov1.length())//еслидлинасовподает

                   {

QStringListtextl2 =textl1.split(QRegExp(""),QString::SkipEmptyParts);//разбиваюнабуквы

QStringListslov2 =slov1.split(QRegExp(""),QString::SkipEmptyParts);//разбиваюнабуквы

intiter=0;//задаюитераторыпроверки

for(intl =0;l<textl2.length();l++)//выполняюдопоследнейбуквы

                       {

if(textl2.at(l)==slov2.at(l))//еслиестьсовпаденияпобуквам

                           {

iter=iter+1;//считаемколичествосовпадений

}

                       }

if(iter ==textl2.length()-1)//еслисовпаденийменьшечемдлинаподстрокина1символ

                       {

text.replace(textl.at(i),slov.at(j));//заменаподстрокивтексте

}

                   }

               }textl1.remove(text.at(i));slov1.remove(slov.at(j));//очищаюпеременные

           }

       }

   }

emitreturnText(text);//отправляюсигнатсодержащийтекст

}




Возможно эти работы будут Вам интересны.

1. РАЗРАБОТКА ПРОГРАММЫ ОТБОРА МАЛЬЧИКОВ ДЛЯ ЗАНЯТИЙ ФУТБОЛОМ

2. Разработка программного модуля «Лаборатория»

3. Разработка Windows-программы моделирования широко известной головоломки «Пятнашки»

4. Разработка программного обеспечения для контроля интернет трафика

5. Соглашения по оформлению кода

6. Алгоритмы поиска в Delphi лабораторная работа

7. Типы изменений баланса под влиянием хозяйственных операций

8. Виды лексико-синтаксического повтора в немецкоязычном художественном тексте

9. Влияние изменений спроса и предложения на равновесную цену и равновесное количество

10. Найдите в тексте итальянские соответствия следующим русским сочетаниям и предложениям