АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция
|
Задание к работе
ЛАБОРАТОРНАЯ РАБОТА №4
Работа с файлами на языке программирования С – Часть 2
Цель работы: получение навыков работы с файлами, изучение метода блочной записи и чтения из файла
Задания для подготовки к работе
1. Изучить организацию блочной записи и чтения из файлов
2. Разметить структуру, которую необходимо записать/считать из файла.
3. Разработать алгоритм и составить программу для решения задачи
4. Подобрать наборы тестовых данных.
Содержание отчета
1. Описание используемых структур данных.
2. Блок-схема алгоритма основной задачи.
3. Наборы тестовых данных с обоснованием их выбора.
4. Текст программы.
5. Описание и анализ ошибок, выявленных при отладке программы.
Краткие теоретические сведения
Две следующие функции предназначены для осуществления неформатированного блочного ввода и вывода в файловые потоки.
Функция fread() имеет следующий прототип:
size_t
fread(void *ptr, size_t size, size_t n, FILE *stream);
Эта функция считывает из потока streamв буфер, указанный параметром ptr, ровно n блоков данных, каждый из которых содержит по size байтов. В случае успеха функция возвращает число прочитанных блоков. Если прочитан конец файла или произошла ошибка, она возвращает число полностью прочитанных блоков или 0.
Функция fwrite() имеет следующий прототип:
size_t
fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
Она записывает в выходной поток stream из буфера, указанного параметром ptr, ровно n блоков данных, каждый из которых содержит size байтов. В случае успеха функция возвращает число записанных блоков. В случае ошибки, она возвращает число полностью записанных блоков или 0.
Задание к работе
Некоторый завод выпускает N различных видов измерительных приборов, каждые из которых может быть охарактеризован одним из признаков:
|
| Габариты
| | Длина
| Высота
| Ширина
|
|
| Диапазон температур
| | Минимальная
| Максимальная
|
|
| Источник питания
| | Напряжение
| Сила тока
| Частота
|
|
| Измеряемая величина
| | Величина 1
| …
| Величина k
| | Наименование
| Нижняя граница
| Верхняя граница
| Погрешность
| Наименование
| Нижняя граница
| Верхняя граница
| Погрешность
| | | | | | | | | | | |
|
| Заказчик
| | Заказчик 1
| …
| Заказчик k
| | Название
| Адрес
| Название
| Адрес
| | | | | | | |
Наконец, заказчик может сделать заказ на некоторое количество определенных приборов:
|
| Заказ
| | Заказ 1
| …
| Заказ k
| | Заказчик
| Прибор
| Количество
| Заказчик
| Прибор
| Количество
| | | | | | | | | |
Соответствующие структуры должны записываться и считываться в бинарный файл блочным методом. Пример организации структур приведен в конце документа.
Написать программу, содержащую следующий функционал, согласно варианту:
| № вар
| Список характеристик
| Задание
| |
| 1, 5, 9, 10
| Составить список заказчиков, покупающих товары, имеющие гарантийный срок менее Т1
| |
| 1, 4, 9, 10
| Вывести список заказов, общая сумма которых превышает C1
| |
| 1, 2, 9, 10
| Составить список заказчиков, которые заказали более K1 приборов разных типов
| |
| 1, 2, 3, 6, 8
| Составить список приборов, размеры которых не превышают Д1, Д2, Д3, а вес – М1, рассчитанных на работу в диапазоне температур [ T1 ; T2 ]
| |
| 1, 4, 5, 9, 10
| Составить список приборов, заказанных заказчиком З1
| |
| 1, 3, 4, 9, 10
| Составить список заказчиков и суммарную стоимость заказа для каждого из них
| |
| 1, 3, 9, 10
| Составить список заказчиков, которые заказали более Д1 приборов одного типа
| |
| 1, 4, 5, 7, 8
| Составить список приборов, рассчитанных на напряжение V1, требующих для подпитки силу тока меньше I1 и гарантийные сроки меньше Т1
| |
| 1, 4, 6, 8
| Составить список приборов, измеряющих величину А1 в диапазоне [ Н1; В1 ] с погрешностью ≤ Е1
| |
| 1, 4, 7, 9, 10
| Составить список заказчиков и суммарных стоимостей заказанных ими товаров, если среди их заказов есть товары, рассчитанные на напряжение больше чем V1.
| |
| 1, 4, 5, 6, 7
| составить список приборов, которые работают в диапазоне температур [ T1 ; T2 ], и стоимость которых меньше C2.
| |
| 1, 4, 5, 7, 8
| Составить список приборов для измерения величины А2, которые работают на постоянном напряжении и имеют стоимость меньше C3.
| |
| 1, 2, 3, 4, 7
| Составить список K3 наиболее дорогих приборов (K3 < N).
| |
| 1, 4, 8, 9, 10
| Составить список городов, в которые заказываются приборы для измерения величины А3
| |
| 1, 4, 7, 9, 10
| Составить список заказчиков, которые заказали наибольшее число товаров каждого типа
| |
| 1, 4, 5, 9, 10
| Составить список заказчиков, которые заказали товаров на наибольшую сумму для каждого прибора
| |
| 1, 5, 8, 9, 10
| Составить список заказчиков, которые покупают приборы для измерения величины А4, с гарантийным сроком Г2.
| |
| 1, 2, 3, 5, 8
| Составить список приборов для измерения величины А5, которые имеют массу М2 и габариты, не превышающие Д1, Д2, Д 3.
| |
| 1, 4, 5, 9, 10
| Составить список приборов, для которых отношение "СТОИМОСТЬ/ИТОГОВАЯ СТОИМОСТЬ" (где "ИТОГОВАЯ СТОИМОСТЬ" – суммарная стоимость всех купленных приборов) лежит в диапазоне [ О1 ; О2 ]
| |
| 1, 5, 8, 9, 10
| Составить список заказчиков, покупающих приборы с погрешностью ≤ Е2.
| |
| 1, 3, 4, 9, 10
| Вывести наименования самых дорогих приборов, купленных каждым заказчиком
| |
| 1, 4, 5, 6, 8
| Составить список приборов, которые измеряют величину А6 с погрешностью < Е3 и имеют стоимость С4.
| |
| 1, 2, 3, 4, 5, 7
| Составить список K4 наиболее дешевых приборов (K4 < N) среди тех, которые работают от источника питания с частотой Ч1
| |
| 1, 2, 3, 4, 9, 10
| Составить список K5 заказчиков, которые заказали приборов на наибольшую сумму
| |
| 1, 2, 3, 5, 8
| Составить отформатированный список всех (доступных) характеристик приборов, предназначенных для измерения величины А7
|
Поиск по сайту:
|