Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


ЛАБОРАТОРНАЯ РАБОТА № 12. Цель работы : Изучение работа с файлами в языке С++.




ФАЙЛЫ

Цель работы : Изучение работа с файлами в языке С++.

Задание: Составить алгоритм и написать программу на языке С++ решения задачи согласно своего варианта.

Длительность:2 часа.

Теоретические основы:

Обработка элементов файла.

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

void del(char *filename)

{//удаление записи с номером х

FILE *f;//исходный файл

FILE*temp;//вспомогательный файл

//открыть исходный файл для чтения

f=fopen(filename,”rb”);

//открыть вспомогательный файл для записи

temp=fopen(”temp”,”wb”)

student a;//буфер для чтения данных из файла

//считываем данные из исходного файла в буфер

for(long i=0; fread(&a,sizeof(student),1,f);i++)

if(i!=x)//если номер записи не равен х

{

//записываем данные из буфера во временный файл

fwrite(&a,sizeof(student)1,temp);

}

else

{

cout<<a<<" - is deleting...";

}

fclose(f);//закрываем исходный файл

fclose(temp); //закрываем временный файл

remove(filename);//удаляем исходный файл

rename(”temp”, filename);//переименовываем временный файл

}

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

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

Для добавления элементов конец файла достаточно открыть его в режиме “a” или “a+” (для добавления) и записать новые данные в конец файла.

f=fopen(filename,”ab”);//открыть файл для добавления

cout<<"\nHow many records would you add to file?";

cin>>n;

for(int i=0;i<n;i++)

{

//прочитать объект

fwrite(&a,sizeof(student),1,f);//записать в файл

}

fclose(f);//закрыть файл

 

Задания по вариантам к лабораторной работе №12:

1. Создайте тестовый файл по строкам. Текст переформировать по 80 символов в строке.

2. Создайте тестовый файл по строкам. Подсчитайте количество пустых строк. Перепишите содержимое в новый файл, удалив пустые строки.

3. Создайте тестовый файл по строкам. Слова не переносятся с одной строки на другую. Напечатайте строку с наибольшим количеством слов. Если таких строк несколько, то напечатать первую из них.

4. Создайте тестовый файл по строкам, где строки - это слова. Получите файл, в котором слова разделены одним пробелом.

5. Создайте тестовый файл по строкам. Распечатайте строку, которая содержит наибольшее количество различных слов.

6. Создайте тестовый файл по строкам. Для каждой строки распечатайте слово наибольшей длинны. Если их несколько, то распечатайте все.

7. Создайте тестовый файл по строкам. Удалите строку с заданным номером, если такой строки не существует, то вывести соответствующее сообщение.

8. Создайте тестовый файл по строкам. Распечатайте все строки, которые начинаются с заданного слова.

9. Создайте тестовый файл по строкам. Распечатайте все строки, которые заканчиваются на заданное слово.

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

11. Создайте тестовый файл по строкам. Создайте два выходных файла: в один перепишите из каждой строки первые р слов (р задается вводом), в другой – оставшиеся. Если в строке меньше чем р слов, то во втором файле соответствующая строка должна быть пустой.

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

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

13. Создайте тестовый файл по строкам. Выведите первое слово с наибольшим количеством различных букв.

14. Создайте тестовый файл по строкам. Создайте файл целых чисел, в котором каждой строке исходного файла соответствует число, равное количеству слов в строке исходного файла.

15. Создайте тестовый файл по строкам. Максимальная длинна слова, в этом файле, равна пяти символам. Создайте пять файлов, в которые перенесены через пробел слова соответствующей длинны: в первом файле слова длинной в один символ; во втором – два символа; в третьем – в три и т.д.

16. Создайте тестовый файл по строкам. Выведите номера строк в порядке увеличения длин строк, если строки одинаковой длинны номера выводить в порядке следования.

17. Создайте тестовый файл по строкам. Распечатайте все строки, в которых есть одинаковые слова.

18. Создайте тестовый файл по строкам. Перенесите в новый файл все строки, которые заканчиваются на заданное слово.

19 Создайте тестовый файл по строкам. Распечатайте текст виз файла в формате: 1,4,7,2,5,8,3,6,9 и т.д.

20. Создайте тестовый файл по строкам. Выведите первое слово с наибольшим количеством различных букв.

 

Требования к отчёту по лабораторной работе:

1. оформить отчет по соответствующим требованиям (титульный лист)

2. сформулировать цель работы

3. задание;

4. схема алгоритм программы;

5. текст программы;

6. выводы по результатам выполнения лабораторной работы;

7. список используемой литературы (обязательно из электронной библиотеки).

 

Рекомендуемая литература

1. Б.В. Керниган, Д.М. Ричи Язык С. СПб.: Питер, 2005. – 229 с.

2. Программирование на С++. 4-е изд. / У. Савич. – СПб.: Питер; Киев: Издательская группа BHV, 2004. – 781 с.: ил.

3. Харви Дейтел, Пол Дейтол Как программировать на С++. – М, 2008. – 1006 с.

 


Поделиться:

Дата добавления: 2015-02-09; просмотров: 96; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты