Лабораторная работа №8
“Программирование с использованием внешних файлов”
Цель работы: Освоение методов составления программ с использованием внешних файлов, а также закрепление навыков разработки и отладки программ, которые обеспечивают создание файлов, занесение в них информации и чтение информации из файлов. Теоретическая часть 8.1.1. Работа с внешними файлами в языке программирования С++.
Файлы данных могут содержать различную информацию. При работе с файлами обычно выполняют следующие операции: описание указателя на файл, открытие файла, чтение или запись данных, закрытие файла, вспомогательные действия: проверка конца файла, проверка наличия ошибки и др. Описание указателя на файл производится обязательно до открытия файла. Форма описания следующая: FILE *f1, *f2...; где FILE – это описанный в заголовочном файле STDIO.H тип данных, представляющий собой буфер для обмена данными с файлом. Открытие файла: f1 = fopen (“имя файла”,”режим”), где f1 –описанный ранее указатель на файл; fopen – функция открытия файла; “имя файла” – указывается полное имя файла; “режим” – этот параметр определяет тип операции, которые будут выполняться с файлом или режим его работы: “r” – открытие файла для чтения; “w” – для записи; “a” – для дозаписи; “+” – добавка к основному режиму, указывает на возможность выполнения операций в совмещенном режиме чтение/запись. “r+” – чтение с последующей записью; “b” – добавка к основному режиму, указывает, что файл содержит информацию в двоичном коде. Для записи данных в файл используется оператор fprintf: fprintf(f1,“управляющая строка”,” список вывода”); Для чтения данных из файла используется оператор fscanf: fscanf(f1,“управляющая строка”, список адресов); Чтение числовых данных из файла необходимо производить с учетом формата, в котором данные были занесены в файл. Для записи и чтения строк можно использовать функции fprintf()и fscanf() с форматом %s или специальные функции fputs(имя строки, f1), fgets(имя строки, max длина, f1); При закрытии производится выгрузка данных из буфера файла и отключение его от программы. fclose(указатель файла); Проверка конца файла: feof(указатель файла)
8.1.2 Пример составления алгоритма и программы на языке С++ для обработки одномерных массивов с использованием внешних файлов.
Задание: Для массива вещественных чисел A(20) выполнить ввод элементов из текстового файла. Вывести на экран все элементы массива. Разделить в массиве все элементы на среднее арифметическое значение, вывести результат в текстовый файл и на экран. Решение. Опишем массив A в разделе описаний. Для обозначения количества элементов массива A введем переменную n. Для связи с внешними файлами будем использовать одну переменную FILE *f. До начала работы программы создадим файл Data.txt, в который внесем 20 вещественных значений. Процедуру ввода элементов массива из файла выполним с помощью функции fscanf. В переменную A_Sum запомним сумму элементов массива А, а в переменную A_Sr – среднее арифметическое элементов масива А. Преобразованный массив А запишем в файл Result.txt с использованием функции fscanf. Блок-схема алгоритма решения данной задачи выглядит следующим образом:
Текст программы на языке С++ выглядит следующим образом:
#include<stdio.h> #include<stdlib.h> #include<math.h> #include<conio.h> int main() {float A[20],A_Sr,A_Sum; int n=20,i,j; FILE *f; clrscr(); f=fopen("Data.txt","r"); printf("Исходный массив A:\n"); for (i=0;i<n;i++) { fscanf(f,"%f",&A[i]); printf("%8.2f",A[i]); } fclose(f); f=fopen("Result.txt","w"); A_Sum=0; for (i=0; i<n;i++) A_Sum+=A[i]; A_Sr=A_Sum/n; printf("\nСреднее арифметическое матрицы А = %.2f\n",A_Sr); printf("Преобразованный массив A:\n"); for (i=0;i<n;i++) { A[i]=A[i]/A_Sr; printf("%8.2f",A[i]); fprintf(f,"%8.2f",A[i]); } fclose(f); getch(); return 0; } Результаты работы программы:
Результаты с экрана Исходный массив A: 9.00 4.01 -6.08 0.74 -5.66 -2.89 -9.33 -3.30 -9.92 -9.79 5.29 3.71 6.31 -6.70 -9.17 1.29 3.96 -7.82 -1.11 -4.50
Среднее арифметическое матрицы А = -2.10 Преобразованный массив A: -4.29 -1.91 2.90 -0.35 2.70 1.38 4.45 1.57 4.73 4.67 -2.52 -1.77 -3.01 3.19 4.37 -0.61 -1.89 3.73 0.53 2.14 Файл Data.txt 9.00 4.01 -6.08 0.74 -5.66 -2.89 -9.33 -3.30 -9.92 -9.79 5.29 3.71 6.31 -6.70 -9.17 1.29 3.96 -7.82 -1.11 -4.50 Файл Result.txt -4.29 -1.91 2.90 -0.35 2.70 1.38 4.45 1.57 4.73 4.67 -2.52 -1.77 -3.01 3.19 4.37 -0.61 -1.89 3.73 0.53 2.14
Практическая часть
8.2.1 Требования к выполнению работы:
Составить блок-схему алгоритма и программу для решения индивидуального задания. В программе предусмотреть ввод исходных массивов из внешнего текстового файла либо вывод результатов во внешний текстовый файл в соответствии с заданием. Предусмотреть вывод на экран исходных и результирующих массивов, подробных промежуточных и конечных результатов. Порядок выполнения работы. 1. Выполнить анализ задания, сформулировать постановку задачи. 2. Составить блок-схему алгоритма. 3. Подготовить файл исходных данных (если по заданию массив вводится из файла). 4. Составить программу на языке С++ с использованием внешних файлов. Предусмотреть ввод исходных данных и вывод результатов на экран. 5. Выполнить проверку работоспособности программы на различных исходных данных. 6. Выполнить анализ полученных результатов. 7. В отчете предоставить также текст используемых в программе внешних файлов. * - задания предусматривают выполнение следующи требований: ввод исходных данных из текстового файла и вывод результатов в текстовый файл; имена файлов вводятся в программе; если в исходном файле недостаточно данных для заполнения массивов, недостающие данные формируются случайным образом. Варианты индивидуальных заданий.
Варианты индивидуальных заданий выбираются из таблицы 8 в соответствии с номером студента в списке группы в журнале преподавателя. Таблица 8. Варианты индивидуальных заданий
список РЕКОМЕНДОВАНОй ЛиТЕРАТУРЫ 1. Биллиг В. А. Основы объектного программирования на C; Интернет-университет информационных технологий, Бином. Лаборатория знаний - Москва, 2010. - 584 c. 2. Дейтел, Х.М.; Дейтел, П.Дж. Как программировать на С; М.: Бином; Издание 4-е - Москва, 2005. - 633 c. 3. Дьюхарст, Стефан; Старк, Кэти Программирование на C; К.: ДиаСофт - Москва, 1993. - 272 c. 4. Карпов, Б.; Баранова, Т. C: специальный справочник; СПб: Питер - Москва, 2003. - 480 c. 5. Литвиненко Н. Технология программирования на C. Начальный курс; БХВ-Петербург - Москва, 2012. - 288 c. 6. Липпман, С основы программирования на C; М.: Вильямс - Москва, 2002. - 256 c. 7. Страуструп, Б. Язык программирования C; М.: Радио и связь - Москва, 1991. - 350 c. 8. Страуструп, Бьерн Язык программирования С; М.: Бином; Издание 3-е, перераб. - Москва, 2002. - 244 c. 9. Шилдт, Герберт Полный справочник по C; М.: Вильямс; Издание 4-е - Москва, 2003. - 800 c.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ ГОУДАРСТВЕННОЕ ВЫСШЕЕ УЧЕБНОЕ ЗАВЕДЕНИЕ ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра автоматики и телекомуникаций
ОТЧЕТ о выполнении лабораторной работы №__ по дисциплине «Алгоритмические язики и программирование» на тему:__________________________
Выполнил: ст. гр. СУА-14 __________________
Проверил: __________________ __________________
Донецк
Популярное: Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (739)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |