Автор работы: Пользователь скрыл имя, 04 Июня 2012 в 12:17, курсовая работа
Целью курсовой работы является разработка программного продукта, реализующего преобразование Си текста в RTF-файл. Для реализации поставленной цели были определены следующие задачи:
1. Разобрать структуру RTF-файла.
2. Реализовать алгоритм чтения файла.
3. Реализовать алгоритм преобразования Си в RTF.
4. Реализовать запись полученных данных в файл.
Введение 3
I.Теоретический раздел 4
1.1 RTF- Rich Text Format 4
II. Технологический раздел 11
2.1. Стандартные заголовочные файлы. 11
2.2.Стандартные типы данных. 13
2.3. Описание собственных функций 14
Заключение 16
Литература 17
Приложение 18
<iostream>(<iostream.h>) — заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от Input/Output Stream («поток ввода-вывода»). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки ввода-вывода, вместо этого используется библиотека функций. iostream управляет вводом-выводом, как и stdio.h в Cи. iostream использует объекты cin, cout, cerr и clog для передачи информации в и из стандартных потоков ввода, вывода, ошибок (без буферизации) и ошибок (с буферизацией) соответственно. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён — std.
<cstdlib>(<stdlib.h>) — заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ и известен в нём как cstdlib. Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).
<cstring>(<string.h>) — заголовочный файл стандартной библиотеки языка Си, содержащий функции для работы с нуль-терминированными строками и различными функциями работы с памятью.Функции объявленные в string.h широко используются, так как являясь частью стандартной библиотеки, они гарантированно работают на всех платформах, поддерживающих Си. Кроме этого, строковые функции работают только с набором символов ASCII или его совместимыми расширениями, такими как ISO-8859-1; многобайтовые кодировки такие как UTF-8 будут работать, с отличием, что «длина» строки будет определяться как число байтов, а не число символов Юникода, которым они соответствуют.
<fstream> (сокращение от «FileStream») — заголовочный файл из стандартной библиотеки C++, включающий набор классов, методов и функций, которые предоставляют интерфейс для чтения/записи данных из/в файл. Для манипуляции с данными файлов используются объекты, называемые потоками («stream»).
Функции, включенные в данный файл, позволяют производить чтение из файлов как побайтово, так и блоками, и записывать так же. В комплект включены все необходимые функции для управления последовательностью доступа к данным файлов, а также множество вспомогательных функций.
Это корневые функции библиотеки, не вошедшие ни в один из основных классов. Они используются довольно часто и могут быть применимы ко всем объектам потоков в каждом из классов.
rdbuf. Все объекты fstream могут быть ассоциированы с объектом буфера файлов filebuf. Чтобы сопоставить объект класса fstream с объектом буфера, используют функцию rdbuf (без аргументов). Объект буфера предоставляет намного большие возможности по управлению данными в файле, чем стандартные функции подклассов fstream.
open(). Этим методом можно открыть заданный файл, сопоставив его с одним из объектов потока. В зависимости от передаваемых аргументов, файл может быть открыт для чтения, для записи (либо для полной, либо для добавления данных), как бинарный, или как текстовый файл.
is_open(). Функция, определяющая, открыт ли в данный момент файл, которому сопоставлен определенный объект потока. Возвращает булевское значение. Используется в основном для предотвращения ошибок доступа при попытке открыть уже использующийся файл. Без аргументов.
close(). Функция закрывает файл, то есть прекращает доступ к нему, таким образом освобождая его для других функций или програм
В данной программе используются следующие стандартные переменные:
int целочисленный знаковый тип данных, диапозон от -32768…32767. Размер 1 байт
char символьный тип данных, предназначенный для хранения одного символа в определённой кодировке. Если char определён как signed (знаковый), то его диапазон значений составляет от −127 до 127 (на единицу больше в положительную или отрицательную сторону, в зависимости от реализации). Если он определён как unsigned (беззнаковый), то его значения могут составлять от 0 до 255. Значение, содержащееся в этом типе, можно всегда безопасно привести к значению типа int. В Си нет примитивных типов для работы со строками, поэтому для работы с ними используется указатель char *.
Так же, C++ не поддерживает встроенный строковый тип. Однако он предоставляет два способа обработки строк. Во-первых, для представления строк можно использовать традиционный символьный массив с завершающим нулем. Во-вторых, можно использовать объекты класса string, которые я и использовал.
В действительности класс string представляет собой специализацию более общего шаблонного класса basic_string. Существует две специализации типа basic_string:
тип string, который поддерживает 8-битовые символьные строки, и
тип wstring, который поддерживает строки, образованные двухбайтовыми символами.
Существует три причины для включения в C++ стандартного класса string:
непротиворечивость данных (строка определяется самостоятельным типом данных),
удобство (программист может использовать стандартные С++ операторы) и
безопасность (границы массивов отныне не будут нарушаться).
string brackets (string &text) –функция вставки «\» перед скобками { и }. Это позволяет программе, читающей RTF-последовательность, распознать, что символ не следует интерпретировать как управляющий.
string param (string &text) – функция замены символов «\n» и «\r «на спецификатор RTF «\par».
string colorCM(string &text)- фунция подсветки комментариев ,строгих /* ~*/, так и не строгих //.
string colorLib(string &text)- функция подсветки заглавных библиотек.
string colorIF(string &text,string &base) –функция подсветки условного оператора «if»
string colorFOR(string &text,string &base)- функция подсветки цикла «for».
string colorDO(string &text,string &base) - функция подсветки цикла «do».
string coloWHILE(string &text,string &base)- функция подсветки цикла «while».
string colorSWITCH(string &text,string &base) - функция подсветки оператора «switch».
string colorCASE(string &text,string &base) - функция подсветки инструкции «case».
string colorDEFAULT(string &text,string &base) - функция подсветки инструкции «default».
string colorRETURN(string &text,string &base) - функция подсветки инструкции «return».
string colorCONTINUE(string &text,string &base) - функция подсветки инструкции «continue».
string colorBREAK(string &text,string &base) - функция подсветки инструкции «break».
string colorGOTO(string &text,string &base) - функция подсветки инструкции «goto».
string colorNEW(string &text,string &base) - функция подсветки оператора «new».
string colorDELETE(string &text,string &base) - функция подсветки оператора «delete».
string colorNAMESPACE(string &text,string &base) - функция подсветки пространства имен .
string colorINT(string &text,string &base) - функция подсветки типа «int».
string colorCHAR(string &text,string &base) - функция подсветки типа «char».
string colorVOID(string &text,string &base) - функция подсветки типа «void».
string colorFLOAT(string &text,string &base) - функция подсветки типа «float».
string colorDOUBLE(string &text,string &base) - функция подсветки типа «double».
string colorBOOL(string &text,string &base) -функция подсветки типа «bool».
string colorSIGNED(string &text,string &base) - функция подсветки модификатора типа «signed».
string colorUNSIGNED(string &text,string &base) -функция подсветки модификатора типа «unsigned».
string colorLONG(string &text,string &base) - функция подсветки модификатора типа «long».
string colorSHORT(string &text,string &base) - функция подсветки модификатора типа «short».
void WRITE(string text) - функция записи полученного текста в файл.
В результате написания курсовой работы была достигнута цель исследующие задачи:
разобрана структура RTF
реализован алгоритм чтения файлов
реализовано преобразование Си в RTF
реализована запись полученных данных в RTF-файл
Литература
1. Базовый Курс С++, Герберт Шилдт. 2007.
2. http://ru.wikipedia.org/wiki/
3. Программирование на языке высокого уровня СИ. Часть II: практикум/ Сост. О. В. Шестопал, О. В. Сташкова. – Тирасполь, 2010. – 83 с.
Приложение
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
string param (string &text){
string par ("\\par ");
string endline("\r\n");
int position=0;
while(position!=-1){
position=text.find(endline);
}
return text;
}
string brackets (string &text) {
return text;
}
string colorCM(string &text){
string cm1("{\\i \\cf4 ");
string cm12("{\\i \\cf4 ");
string cm2("}");
string cm21("}");
int k=text.length();
int position=0;
while(position!=k){
if((text[position]=='/') && (text[position+1]=='*')){
}
Информация о работе Программа преобразования исходного текста на С++ в RTF-файл