Создание приложения "Подсчет частоты введенных слов в текстовом файле"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ых для анализа слов и знаков, создать статистику, расположив слова и знаки в алфавитном порядке. Возможен также графический вывод статистики.
Рис №3. Интерфейс LitFrequencyMeter
Рис №4. Вывод статистики в LitFrequencyMeter
Рис №5. Графическое представление статистики в LitFrequencyMeter
В данной части производилось описание анализа предметной области, в результате было рассмотрено два варианта частичной реализации поставленной цели (а именно, приложения Google Chrome и Microsoft Word 2010) и один вариант полностью соотвествующий исходным требованиям (приложение LitFrequencyMeter). Исходя из полученных результатов, можно сказать, что наиболее удобным для использования приложениея является LitFrequencyMeter. Тем не менее, стоит отметить, что существует очень мало профессиональных решений послностью соотвествующих поставленной цели.
Проектирование
Для создания приложения Подсчет частоты введенных слов в текстовом файле была выбрана среда Dev-C++ 4.9.9.2.
Программу можно представить в виде схемы(Рис №6):
Рис №6.Схематическое представление программы.
На представленной выше схеме можно увидить поэтапную работу приложения. Обратите внимание на то, что загрузка текста в приложение является обязательным условием для его работы, так же из схемы видно, что результат работы программы можно вывести как в файл, так и в окно консоли.
Для того чтобы предоставить пользователю полное взаимодействие с программой необходимо реализовать меню, а также реализовать вывод ошибки при введении пути на несуществующий файл. Необходимо предусмотреть сигнальный вывод, при запросе пользователя на вывод результата работы программы при отсутствии обрабатываемого файла в памяти программы. Для удобства пользователя указывается полный путь к файлу.
Результат можно вывести как экран ПК, так и в отдельный текстовый файл, путь к которому указывается полностью.
Блок-схемы
В данном разделе приводятся блок-схемы различных функций программы с их описаниями (более полные описания приводятся в главе Отладка и тестирование).
Ниже представленна блок-схема функции Read (чтение данных из файла), на ней видно, каким именно образом осуществляется обработка ошибок и запись в файл:
Рис №7. Блок-схема функции Read
На данной блок-схеме представлен алгоритм подсчёта обработанных слов функции Scan:
Рис №8. Блок-схема функции Scan
Следующая блок-схема показывает, каким именно образом происход очистка слов от различных знаков препинания и машинных символов:
Рис №9. Блок-схема функции Delete
Ниже представленна блок-схема главной функции (части программы, отвечающей за взаимодействие с пользователем):
Рис №10. Блок-схема главной функции
программа приложение подсчет текстовый
Отладка и тестирование
#include - описание стандартных функций ввода и вывода
#include - описание функций для работы со строками
#include - описание функций для работы с клавиатурой и монитором
#include - описание функций контроля выполнения программы
#include - описание функций связанных с локализацией программы
int t=0,e,g; - объявление глобальных переменных с типом int
char words[500000][50]; - объявление глобального массива строк
typedef struct Count{ - описание структуры и ввод нового имени структуры
char word[50]; - объявление строковой переменной внутри структуры
int num; - объявление переменной с типом int внутри структуры
}CNT; - имя-синоним структуры
CNT V[500000]; - объявление структуры заданного типа
void Read(int*j) - прототип функции чтения с файла с параметром указателем типа int
{
int i; - объявление переменной типа int внутри функции
char name[50]; - объявление строковой переменной внутри функции
FILE *book; - объявление указателя на файл
clrscr(); - очистка экрана
printf("Vvedite nazvanie faila i put k nemy\n"); - сообщение о вводе имени и пути к файлу
scanf("%s",&name); - ввод пути и имени файла
if ((book=fopen(name,"r"))==NULL) - открытие файла в режиме чтение и условие на проверку существования введённого пользователем файла. Если файл не существую - программа возвращает сообщение об ошибке
{printf("Fail nevojmojno otkryt\n"); - сообщение об ошибке
getch();} - ожидание нажатия клавиши
else { - если условие не выполняет, то следует выполнение данного оператора("Obrabotka..."); - сообщение о работе программы
for(i=0;!feof(book);i++) { - цикл считывания с файла данных. Запись начинается с нулевого элемента в глобальный массив строк words. После каждого считанного слова выполняется инкрементирование i. Цикл работает до тех пор, пока команда feof не вернёт 1. Feof проверяет выполнение условия окончания файла и в случае невыполнения возвращает 0
fscanf(book,"%s",&words[i]);} - считывание слов с файла
fclose(book); - закрытие обработанного файла
*j=i; - процесс присваивания
t=1; - процесс присваивания глобальной переменной значения 1. Ввод данной переменной обусловлен тем, что вывод результатов программы невозможен до тех пор, пока не будет считана информация с файла. Функции на вывод результатов работают только при положительном значении t
}}
int Scan(CNT*V,int*i) - прототип функции типа int подсчёта введённых слов с файла с параметрами-указателями на структуру и переменную типа int
{
int j,d,s,q=0; - объявление переменных типа int
char vyvod[50],prov[]="::null::"; - объявление строковых переменных
for(j=0;j!=*i;j++) { - цикл обработки все?/p>