Здавалка
Главная | Обратная связь

О каких наших функциях идет речь?

Задание №1.

ТЕМА -- СТРУКТУРЫ

 

Цель: Конструирование пользовательского типа данных – структур, создание массива структур в динамической памяти, ввод исходных данных из файла, запись результатов работы в файл.

 

Задание:

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

В соответствии со своим вариантом создать структуру и на ее основе создать массив в динамической памяти.

 

Ваша программа должна выполнять следующие действия:

 

· Читать исходные данные из файла в динамический массив

· Иметь возможность просмотреть данные, хранящиеся в массиве.

· Откорректировать данные конкретной заданной строки.

· Выполнить заданные вычисления.

· Сохранить данные в новом файле. Имя файла вводится с клавиатуры.

 

 

Исходные данные хранятся в файле “myfile1.txt”

Результирующие данные записываем в файл “myfile2.txt”

 

Теоретический материал, необходимый для решения задания №1:

 

1 Структуры.

2. Динамическое выделение памяти.

3. Управление потоками данных. Стандартные потоки и файловые потоки. (Работа с файлами)

 

 

Разбор одного из вариантов

 

Вариант N 17

Количество строк 5. Столбцы: Фамилия абонента.

Продолжительность разговора в минуту. Стоимость минуты разговора. Вычислить стоимость всех разговоров.

 

Что должна делать программа?

 

1. Чтение данных из файла в динамический массив и просмотр прочитанных данных. –функция input(sudscriber *psub,int n);

2. Редактирование данных заданной строки и вычисления– функция goal(sudscriber *psub,int n);

3. Сохранение данных в новом файле –

функция output(sudscriber *psub,int n);

 

Исходные данные хранятся в файле “myfile1.txt”

Результирующие данные записываем в файл “myfile2.txt”

 

До начала работы с программой мы в обычном текстовом редакторе создаем файл с именем myfile1.txt. Предположим, что мы создали следующий файл:

 

Ivanov 5 10

Petrov 3 20

Sidorov 15 5

_____________________________

surname time price/min

 

После редактирования этого файла мы измененный(отредактированный) файл сохраним под именем myfile2.txt. Пусть мы заменим в нем вторую строку и файл примет вид:

 

Ivanov 5 10

Popov 40 30

Sidorov 15 5

 

 

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

 

Структура

 

Шаблон | Структурная переменная

 

Структура – это тип данных, задаваемый пользователем.

Включает в себя:

 

Задание шаблона структуры .

Собственно описание структурной переменной.

 

· Шаблон – правила формирования структурной переменной.

Задание шаблона не связано непосредственно с резервированием памяти . Шаблон дает компилятору всю необходимую информацию о полях структурной переменной для резервирования памяти и организации доступа к этой памяти при объявлении структурной переменной и ссылках на отдельные поля структурной переменной.

 

Фактически шаблон есть задание нового типа struct имя. Каждый шаблон имеет собственное имя.

Шаблон имеет область определения( видимость). Может быть локальным, если описан внутри блока {}. Если шаблон помещен вне блоков, то он виден во всех функциях ниже точки описания до границы файла.

 

· Структурная переменная. Это место в памяти, где будет располагаться информация о вашей структуре.

Когда задан шаблон, то можно объявить структурную переменную.

Компилятор выделяет под структурную переменную число байтов, достаточное для хранения всех ее полей

 

Структура служит для объединения в одной переменной элементов разных типов.

 

 

Создадим наш проект для решения поставленной задачи. Разобьем проект на файлы, в которых разместятся код и ресурсы нашей программы. Часть этих файлов будет создана системой автоматически. Файлы, реализующие алгоритм решения задачи, будут созданы нами.

 

 

Проект lab1_struct

|

______________________________________________

funclab1.h funclab1.cpp mainlab1.cpp

 

файл,содержащий файл, содержащий файл, содер-

шаблон созданной определения наших жащий функ-

нами структуры и функций цию main().

прототипы наших

функций

 

 

О каких наших функциях идет речь?

 

1 Чтение данных из файла myfile1.txt в динамический массив и просмотр прочитанных данных. –функция input(sudscriber *psub,int n);

 

2 Редактирование данных заданной строки и вычисления– функция goal(sudscriber *psub,int n);

3 Сохранение данных в новом файле myfile2.txt

функция output(sudscriber *psub,int n);

 

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

Вторая функция goal() редактирует базу данных и подсчитывает в отредактированной БД стоимость всех разговоров.

Третья функция output()производит запись отредактированной БД в новый файл myfile2.txt.

 

Работа с файлами.

Для обмена информацией с файлом приложение должно создать объект класса ifstream для чтения из файла, или объект класса ofstream для вывода в файл. После этого файл должен быть открыт, а при завершении обмена – закрыт. Описание классов ifstream и ofstream находится в заголовочном файле <fstream>, отвечающим за потоковый ввод-вывод в файлы.

 

Потоковые классы предназначены для управления потоками данных между ОП и внешними устройствами. Потоки описаны в заголовочном файле <iostream>. Элементы заголовочных файлов определены в пространстве имен std. Поток – это перенос данных от источника к приемнику. Потоки определяются последовательностью байтов и не зависят от конкретного устройства, с которым производится обмен. Входной поток – это данные, которые вводятся в ОП. Выходной поток – это данные, которые выводятся из ОП.

Стандартные потоки- от клавиатуры и на экран.

Файловые потоки – обмен с внешними носителями.

 

Операторы ввода >> и вывода << выбирают необходимые функции для преобразования данных в поток байтов или обратное преобразование.

 

При вводе строк извлечение происходит до ближайшего пробела.

 

:: - оператор разрешения области видимости

 

 





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.