Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Лабораторная работа № 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 в струк­туру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта — целое число записей в файле; далее записи в формате структуры NOTE­BOOK.

Написать программу, в которой на основе разработанных функций осуществля­ется запись в двоичный файл данных только о тех ноутбуках, тактовая частота процессора которых больше 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 в гигабайтах (число с десятичной точкой из пяти симво­лов).

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

 





Поделиться с друзьями:


Дата добавления: 2016-12-18; Мы поможем в написании ваших работ!; просмотров: 574 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лучшая месть – огромный успех. © Фрэнк Синатра
==> читать все изречения...

2205 - | 2096 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.