Лабораторная работа № 11 « функции и файлы».

      Комментарии к записи Лабораторная работа № 11 « функции и файлы». отключены

Цели:

  1. Изучитьособенности работы с передачей параметровв среде Турбо Си++.
  2. Написатьпрограмму, решающую указанные задачи .

Преподавателю на проверку:

  1. Программа,которая:
  1. запрашиваетнеобходимые данные в main,
  2. передаетвходные данные – структуры в качестве параметров в соответствующиефункции,
  3. результатывыводятся из main,в которую осуществляется возврат структур.

Примечания:

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

Вариант 1

Для хранения данных о цветных планшетных сканерах описать структуру вида:

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.

Написать функцию, которая извлекает из этого файла данные о сканере в структуру типа scan_info. Обязательный параметр — номер требуемой записи. Функция должна возвращать нулевое значение, если чтение прошло успешно, и -1 в противном случае.

Привести пример программы, создающей файл с данными о сканерах (данные вводятся с клавиатуры) — 6-8 записей и выводящей на дисплей данные о запрошенной записи.

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

Вариант 2

Для хранения данных о цветных планшетных сканерах описать структуру вида:

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.

Написать функцию, которая сортирует записи в описанном выше бинарном файле по одной из следующих характеристик: цена либо число градаций серого. Обязательный параметр — признак, задающий критерий сортировки.

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

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

Вариант 3

Для хранения данных о цветных планшетных сканерах описать структуру вида:

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

Написать функцию, которая записывает в бинарный файл данныео сканере изприведенной структуры. Структура файла: в первых четырех байтах размещается значение типа long, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.

Написать функцию, которая сортирует записи в описанном выше бинарном файле по наименованию модели сканера.

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

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

Вариант 4

Для хранения данных о цветных планшетных сканерах описать структуру вида:

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

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

Написать функцию, которая извлекает данные о сканере из описанного выше бинарного файла в структуру типа scan_info. Обязательный параметр — номер требуемой записи. Функция должна возвращать нулевое значение, если чтение прошло успешно, и -1 в противном случае.

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

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

Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.

Написать функцию, которая сортирует записи в описанном выше бинарном файле по одной из следующих характеристик: цена либо число градаций серого. Обязательный параметр — признак, задающий критерий сортировки.

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

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

Вариант 5

Для хранения данных о цветных планшетных сканерах описать структуру вида:

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

Написать функцию, которая записывает данные о сканере из приведенной структуры в требуемую позицию в бинарном файле. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах. Запись может осуществляться в любую позицию, причем если между вводимой записью и последней (или началом файла) имеются пропуски, они заполняются нулями.

Написать функцию, которая «уплотняет» описанный выше бинарный файл путем удаления из него записей, содержащих все нули.

Привести пример программы, создающей файл с данными о сканерах (данные вводятся с клавиатуры) из не менее шести записей и осуществляющий его уплотнение.

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

Вариант 6

Для хранения данных о цветных планшетных сканерах описать структуру вида :

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

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

Написать функцию, которая запрашивает данные о сканере в режиме диалога и замещает записи в бинарном файле по заданному номеру. Обязательный параметр — номер замещаемой записи. Функция должна возвращать нулевое значение, если запись прошла успешно, и -1 в противном случае.

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

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

Вариант 7

Для хранения данных о цветных планшетных сканерах описать структуру вида:

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.

Написать функцию, которая вводит данные о сканере с клавиатуры в структуру типа scan_info, и если данные об этом сканере отсутствуют в файле, помещаетсодержимое структуры в конец файла; в противном случае выдает соответствующее сообщение.

Привести пример программы, создающей файл с данными о сканерах (данные вводятся из текстового файла) — 6-8 записей и дополняющей файл записями о 2-3 сканерах, вводимых с клавиатуры.

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

Вариант 8

Для хранения данных о цветных планшетных сканерах описать структуру вида :

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.

Написать функцию, которая вводит данные о сканере с клавиатуры в структуру типа scan_info и помещает ее содержимое на место первой записи в файле. Файл должен существовать. При этом, запись ранее занимавшая первую позицию, помещается на вторую, вторая запись на третью, и т. д.

Привести пример программы, создающей файл с данными о сканерах (данные вводятся из текстового файла) —6-8 записей и дополняющей этот файл 1-2 новыми записями, вводимыми с клавиатуры.

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

Вариант 9

Для хранения данных о цветных планшетных сканерах описать структуру вида :

struct scan_info{

char model[25]: // наименование модели

int price:// цена

double x_s1ze: // горизонтальный размер области сканирования

double y_s1ze; // вертикальный размер области сканирования

int optr: // оптическое разрешение

int grey; // число градаций серого

};

Написать функцию, которая запрашивает количество сканеров, информация о которых будет вводиться, динамически выделяет память под массив структур соответствующего размера и заполняет его данными в режиме диалога (с клавиатуры). При этом имя сканера может содержать пробелы.

Написать функцию, которая записывает данный массив в создаваемый бинарный файл. Если цена сканера меньше 200, то данные об этом сканере в файл не записываются. Информация об остальных сканерах помещается в бинарный файл, причем сначала пишутся данные о всех сканерах, имя которых начинается с заглавной буквы, а затем — с прописной.

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

Привести пример программы, создающей файл с данными о сканерах и осуществляющий вывод на дисплей данных о требуемой записи (либо всех, либопо номеру).

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

Вариант 10

Для хранения данных о ноутбуках описать структуру вида:

struct NOTEBOOK{

char model[21]: // наименование

struct size{ // габаритные размеры

float x;

float у;

float z;

};

float w; // вес

int price; // цена

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта (целое) — число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется чтение данных только для тех ноутбуков, частота процессора которых больше 120 МГц, и запись в бинарный файл по убыванию цены.

Вариант 11

Для хранения данных о ноутбуках описать структуру вида:

struct NOTEBOOK{

char model[21]: // наименование

struct size{ // габаритные размеры

float x;

float у;

float z;

};

float w; // вес

int price; // цена

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта (целое) — число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется чтение данных только для тех ноутбуков, объем HDD которых меньше 1 Гбайт, и запись считанных данных в бинарный файл в алфавитном порядке по наименованию.

Вариант 12

Для хранения данных о ноутбуках описать структуру вида :

struct NOTEBOOK{

char model[21]: // наименование

struct size{ // габаритные размеры

float x;

float у;

float z;

};

float w; // вес

int price; // цена

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла:

первые два байта (целое) — число записей в файле; далее записи в формате структуры NOTEBOOK.

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

Вариант 13

Для хранения данных о ноутбуках описать структуру вида :

char model[21]: // наименование

struct size{ // габаритные размеры

float x;

float у;

float z;

};

float w; // вес

int price; // цена

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта (целое) — число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, максимальный объем ОЗУ которых не менее 40 Мбайт, отсортированных по объему.

Вариант 14

Для хранения данных о ноутбуках описать структуру вида :

char model[21]: // наименование

struct size{ // габаритные размеры

float x;

float у;

float z;

};

float w; // вес

int price; // цена

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта — целое число записей в файле; далее записи в формате структуры NOTEBOOK.

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

Вариант 15

Для хранения данных о ноутбуках описать структуру вида:

Struct NOTEBOOK{

struct disp_res{ // разрешающая способность дисплея

int x; // по горизонтали

int у; // по вертикали

};

int f; // частота регенерации

float d; // размер диагонали дисплея

int price; // цена

char model[21]; // наименование

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла:

первые два байта — целое число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, вес которых менее 7 кг, отсортированных в порядке возрастания цены.

Вариант 16

Для хранения данных о ноутбуках описать структуру вида :

Struct NOTEBOOK{

struct disp_res{ // разрешающая способность дисплея

int x; // по горизонтали

int у; // по вертикали

};

int f; // частота регенерации

float d; // размер диагонали дисплея

int price; // цена

char model[21]; // наименование

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла:

первые два байта — целое число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, объем видеопамяти которых 2 Мбайт, отсортированных в порядке уменьшения тактовой частоты процессора.

Вариант 17 .

Для хранения данных о ноутбуках описать структуру вида:

Struct NOTEBOOK{

struct disp_res{ // разрешающая способность дисплея

int x; // по горизонтали

int у; // по вертикали

};

int f; // частота регенерации

float d; // размер диагонали дисплея

int price; // цена

char model[21]; // наименование

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла:

первые два байта — целое число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, объем HDD которых больше 1 Гбайт, отсортированных в порядке возрастания размера диагонали дисплея.

Вариант 18

Для хранения данных о ноутбуках описать структуру вида:

Struct NOTEBOOK{

struct disp_res{ // разрешающая способность дисплея

int x; // по горизонтали

int у; // по вертикали

};

int f; // частота регенерации

float d; // размер диагонали дисплея

int price; // цена

char model[21]; // наименование

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt (см. после варианта 20) в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла:

первые два байта — целое число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, тактовая частота процессора которых больше 120МГц, отсортированных в порядке уменьшения веса.

Вариант 19

Для хранения данных о ноутбуках описать структуру вида:

struct NOTEBOOK{

struct disp_res{ // разрешающая способность дисплея

int x; // по горизонтали

int у; // по вертикали

};

int f; // частота регенерации

float d; // размер диагонали дисплея

float hdd; // объем диска

char model[21]: // наименование

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта — целое число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, тактовая частота процессора которых больше 120МГц, отсортированные в порядке возрастания цены.

Вариант 20

Для хранения данных о ноутбуках описать структуру вида:

struct NOTEBOOK{

struct disp_res{ // разрешающая способность дисплея

int x; // по горизонтали

int у; // по вертикали

};

int f; // частота регенерации

float d; // размер диагонали дисплея

float hdd; // объем диска

char model[21]: // наименование

}

Написать функцию, которая читает данные о ноутбуках из файла note.txt в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта — целое число записей в файле; далее записи в формате структуры NOTEBOOK.

Написать программу, в которой на основе разработанных функций осуществляется запись в двоичный файл данных только о тех ноутбуках, цена которых больше $3500, отсортированные в порядке возрастания тактовой частоты процессора.

Пример файла note.txt:
Aser Note Light 5.6 02. 0х11 .8х08.3 10.4 1 1024х0768 0.774
ASW ND5123T 7.2 02. 3х11 .8х10.1 12.1 2 1024х0768 1.300
ARMNote TS80CD 7.2 02. 0х11 .5х08.8 133 11.3 1 1024х0768 1,300
AST Ascent-ia P50 7.5 02. 3х11 .3х09.0 11.3 1 0800х0600 0.774
BSI NP8657D 8.0 02. 3х11 .8х09.3 11.3 1 1024х0768 0.810
BSI NP5265A 8.2 02. 5х12 .0х09.0 12.1 2 1024х0768 1.300
Dell Xp1 P100SD 6.0 02. 3х11 .0х08.8 10.3 1 1024х0768 0.773
Digital H-iNote 4.0 01. 3х11 .0х08.8 10.4 1 0800х0600 1.000
Gateway Solo S5 5.6 02. 0х11 .9х08.8 11.3 2 1024х0768 0.686
Hertz Z-Opt-ima NB 8.0 02. 3х11 .9х09.0 11.2 2 1024х0768 1.000
HP OmmBook 5500 7.1 02. 0х11 .5х09.0 11.4 1 1024х0768 1.300
IBM ThinkPad 560 4.1 01. 3х11 .8х08.8 12.1 2 1024х0768 0.774
NEC Versa 4080H 6.6 02. 3х11 .8х09.5 10.4 1 0800х0600 0.776
Polywell Poly 500 7.9 02 . 3х11 .9х09.0 10.4 1 1024х0768 1.000
Samsung SENS 810 8.7 02. 3х11 .5х09.5 11.4 2 1024х0768 0.773
Twinhead SUmnote 7.4 02 . 0х11 .5х08.0 10.4 1 1024х0768 0.772

В файле note.txt находится текстовая информация о ноутбуках. Каждая строка содержит данные об одной модели. Данные в строке размещаются в следующих полях:

1: 20 — наименование модели;

21: 24 — цена в долларах (целое число);

26: 28 — масса ноутбука в кг (число с десятичной точкой из четырех символов);

30: 43 — габаритные размеры ноутбука в дюймах (ВЫСОТАхДЛИНАхШИРИНА — три числа с десятичной точкой (4 символа, включая точку, разделенные ‘х’);

44: 47 — частота процессора в МГц (целое число из трех символов);

49:50 — максимальный объем ОЗУ в мегабайтах (целое число из двух символов);

52:55 — размер диагонали дисплея в дюймах (число с десятичной точкой из четырех символов, включая точку);

57 — размер видеопамяти в мегабайтах — целое число из одного символа;

59: 67 — разрешающая способность дисплея в пикселах (два целых числа, разделенные ‘х’);

69: 70 — частота регенерации дисплея в Гц (целое число из двух символов);

72: 76 — объем HDD в гигабайтах (число с десятичной точкой из пяти символов).

Все неописанные позиции заполнены пробелами.

Статьи к прочтению:

The most complete review of iOS 11 for iPhone, iPod touch and iPad in 4K. 50 new iOS features 11.


Похожие статьи: