Создание проекта и библиотеки пользовательских программ обработки текстовых файлов
Распознавание параметров командной строки и обработка данных. Выбор четырех вариантов обработки данных. Запрос номера обрабатываемого файла. Построение гистограммы распределения. Смешивание, выравнивание, поиск и статистика как типы обработки данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 20.05.2015 |
Размер файла | 16,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Контрольное домашнее задание по курсам «Компьютерный практикум», «Информатика», «Технологии и языки программирования»
«Создание проекта и библиотеки пользовательских программ обработки текстовых файлов»
1. Постановка задачи
Программа должна:
- обрабатывать два входных текстовых файла;
- не изменять данные в файлах;
- распознавать параметры командной строки и обрабатывать данные, в соответствии с ними;
- предоставлять пользователю возможность выбора четырёх (А, Б, В, Г) вариантов обработки данных (по вариантам);
- для пунктов Б, В, Г запрашивать номер обрабатываемого файла;
- для пункта Г строить гистограмму распределения;
- контролироваться пользователем посредством меню;
- обеспечивать возможность задать имена файлов;
- давать возможность пользователю вводить исходные данные в файлы;
- выводить результат на экран
2. Варианты типов обработки
А (смешивание)
Все чётные слова первого файла заменить на нечётные слова из второго файла
Б (выравнивание)
Установить красную строку размером N пробелов, если строка начинается с пробела
В (поиск)
Найти в файле слово по заданной центральной части, вывести слово и его позицию командный строка гистограмма данные
Г (статистика)
Подсчитать в файле общее количество и число разных пар слов
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
struct _x; /создание структуры типа x(массив из указателей), таким образом мы сможем создать массив структур(массив из строк)
{
char *s;
}
void function1(struct a, struct b, int n, int m ); / функция, которая все чётные слова первого файла заменяет на нечётные слова из второго файла( делает это на уровне массива строк), а потом заносит это в третий файл, создаваемый в функции
int i, n,m;/ n - количество слов первого файла, m - количество слов второго файла
{
for( i = 0, i <min(m,n),i = i +2)/ цикл идёт пока не закончатся слова первого файла
{
a[i+1].s =b[i].s;
if (i = m) / (на тот случай, если во втором файле слов больше чем в первом, цикл остановится);
{break}
}
FILE *pTextFile = fopen("C:\\TextFileW.txt", "a+");/создание нового текстового файла для занесения в него данных
for ( i = 0; i <= n; i++)
{
fprinf(p,"%s", a[i].s);
}
fclose("C:\\TextFileW.txt");/закрытие файла
}
void function2(FILE *f, int n); Устанавливает красную строку размером N пробелов
{
char prob[50]; /массив из пробелов, количество которых определяется входными данными
int i;
for ( i = 0; i < n ; i++) / цикл по занесению n - го количество пробелов в маасив пробелов
{
prob[i] = " _ " ;
}
fopen(*f , "rt");/открывается текстовый файл(который мы подаём в функцию)
void rewind(FILE f);/переводит курсор в начало текстового файла
fprintf(f,"%s", prob); /записывает в текстовый файл заданное количество пробелов
fclose(*f);/закрытие файла
}
void function3(_x a, char zentr)/ ищет слово по заданной центральной части
int e, i, pos, e1;
for (i=0; i <= n; i++)/ цикл идёт по всем словам заданного файла( точнее по массиву из строк, в который занесены все слова исходного файла
{
e= sscanf(a[i].s,"%[^zentr^],e1);
if(e=1)
{
printf("%s", a[i].s);
printf(i, %d", pos);
}
}
int function4(_x a, int n);/функция, которая считает в файле общее количество и число разных пар слов, подаётся структура и кол во слов этой структуры
int o, i, p, r,
for( i =0, i <=n, i++)/перебираем все слова
{
if(a[i] <> "0")
{
for (p=0, p<=n, p++);/для каждого слова опять перебираем все слова и если находим такое же слово на другой позиции в массиве то учитываем его (находим количество таких слов для каждого слова)
{
if(a[i].s = a[p].s && i !=p)/проверяем каждое слово на совпадение с исходным
{
a[i] = "0"если попадается совпадающее слово, то мы его обнуляем
o++;
}}}}
r = n - o;/ число разных слов
for i =0, i<r, i++;/ считаем сколько пар слов может образовать r - ое количество разных слов (t = ?(n - i) от
i = 0 , до n с шагом 1;
{
t = t + r - i;
}
return t
}
void main()
{
file *f
_x a; /создание структуры а типа х
int i, k, g, n, h, z, prob;
char word1, text, word, zentr;
a = (struct _x)*malloc(20.sizeof(struct _x));/ выделение памяти под структуру а (массива из строк)
for ( i = 0; i < 20; i++)
{
a[i].s = (char *)(malloc(30));
}/
fopen("new1.txt", "rt");/открывается текстовый файл
fscanf(f, "%[]" , text);/строка из файла заносится в переменную text
fclose(*f);/закрытие файла
fopen("new2.txt",rt);
fscanf(f, "%[]" , text2);/строка из файла заносится в переменную text
fclose(*f);/закрытие файла
sscanf (text ,"%s" , word 1);/ из строики считывается первое слово(т.к. все остальные слова мы будем идентифицировать по стоящим перед ними пробелам, а перед первым словом пробела нет
k = strlen(word1);/узнаём длину первого слово(нужно для цикла, откуда начинать)
a[0].s = word1;/заносим первое слово файла в первый элемент массива структур
for i = k; i <=strlen(text); i ++;/начинаем цикл по заполнения массива структур словами текстового файла ( со второго слова)
{
/(для выделение слова используется следующий алгоритм: идём пошагово (i++) по строке - массиву символов, и проверяем на наличие пробелов , если встречается пробел, то проверяем, какой следующий симов, если не пробел , то начинается слово, которое мы заносим другим циклом(уже следующим циклом который заносит символы в строке (идёт до пробела) в переменную word, в последствии из этой переменной текст считывается в элемент массива строк) if(text[i]=" ")
{
if(text[i+1] ! = " ")
{
g =0;
whill (text[i +1] !=" ")
{
word[g] = text[i +1];
g++;
i++;
}
n++;
sscanf(word; "%s", a[n].s);
}
}
}/ то же самое делаем и для второго файла
struct _x b; /создание структуры b типа х
b = (struct _x)*malloc(20.sizeof(struct _x));/ выделение памяти под структуру b (массива из строк)
for (i = 0; i = 20; i++)
{
b[i].s = (char *)(malloc(30));
}
fopen("new2.txt" , "rt");/открывается текстовый файл
fscanf(f, "%[]" , text);/строка из файла заносится в переменную text
fclose(*f);/закрыие файла
fopen("new2.txt",rt);
fscanf(f, "%[]" , text2);/строка из файла заносится в переменную text
fclose(*f);/закрытие файла
sscanf (text ,"%s" , word 1)
for ( i = k; i <=strlen(text); i ++)
if(text[i]=" ")
{
if(text[i+1] ! = " ")
{
g =0;
whill (text[i +1] !=" ")
{
word[g] = text[i +1];
g++;
i++;
}
m++;
sscanf(word,"%s", b[m].s);
}
}
}
printf("введите номер пункта");
scanf("%d",& h);
if(h == 1);
{
function 1(a,b,n,m);
}
if(h==2);
{
printf("введите номер файла");
sscanf("%d",& z);
if(z==1)
{
printf("введите количество пробелов");
scanf("%d",&prob);
void function2(("new1".txt, prob);
}
if(z==2);
{
printf("введите количество пробелов");
scanf("%d", &prob);
void function2(("new2".txt, prob);
}
}
if(h==3)
{
printf("введите номер файла");
scanf("%d", &z);
if(z==1)
{
printf("введите центральную часть слова");
scanf("%s", &zentr);
function3(_x a ,zentr);
}
if((z==2)
{
printf("введите центральную часть слова");
scanf("%s", & zentr);
function3( _x b, zentr);
}
}
if(h==4)
{
printf("введите номер файла");
scanf("%d", &z);
if(z==1)
{
function3(_x a ,n);
}
if((z==2)
{
function3(_x b, m);
}
}
}
Размещено на Allbest.ru
Подобные документы
Обработка текстовых данных, хранящихся в файле. Задачи и алгоритмы обработки больших массивов действительных и натуральных чисел. Практические задачи по алгоритмам обработки данных. Решение задачи о пяти ферзях. Программа, которая реализует сортировку Шел
курсовая работа [29,2 K], добавлен 09.02.2011Система компьютерной обработки данных для сбора, систематизации, статистической обработки, анализа результатов учебного процесса за четверть, полугодие, год. Модуль обработки данных о качестве обучения, итогов успеваемости и данных о движении учащихся.
реферат [22,5 K], добавлен 05.02.2011Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.
лекция [15,5 K], добавлен 19.08.2013Режимы компьютерной обработки данных. Централизованный, децентрализованный, распределенный и интегрированный способы обработки данных. Средства обработки информации. Типы ведения диалога, пользовательский интерфейс. Табличный процессор MS Excel.
курсовая работа [256,9 K], добавлен 25.04.2013Разработка структурной схемы системы. Выбор и обоснование не указанных в задании элементов. Анализ временных параметров системы. Разработка файла конфигурации для системы сбора-обработки данных на языке AHDL. Моделирование цифровой части системы.
курсовая работа [1,1 M], добавлен 26.10.2014Изучение особенностей информационного процесса обработки данных. Процессы, связанные с поиском, хранением, передачей, обработкой и использованием информации. Основные режимы обработки данных на ЭВМ. Организация обслуживания вычислительных задач.
реферат [130,9 K], добавлен 28.09.2014Функциональные зависимости и нормализация отношений. Ограничения целостности данных. Описание таблиц на языке SQL. Интерфейс пользователя и надёжность программ обработки данных. Обработка данных с помощью запросов. Работа с данными из внешних источников.
дипломная работа [1,6 M], добавлен 25.04.2015Рассмотрение основ работы в Microsoft Visual Studio 2010 с языком программирования С#. Реализация программы обработки данных авиапассажиров. Выбор метода ввода данных из текстового файла. Создание фильтра для обработки списка по определенным критериям.
курсовая работа [1,4 M], добавлен 17.01.2016Структура автомата для сбора данных. Программы, реализующие заданный пользователем алгоритм автоматизации процедуры обработки журнальных данных. Описание микропроцессорной системы, ее упрощенная модель, система команд, блок-схема алгоритма обработки.
контрольная работа [65,8 K], добавлен 14.11.2010Изучение программы обработки баз данных Microsoft Access. Особенности и принципы создания баз данных, форм для работы с ними, межтабличных связей. Конструирования различных видов отчетов. Создание кнопочной формы с помощью диспетчера, итоговых запросов.
лабораторная работа [2,1 M], добавлен 11.03.2013