Помощничек
Главная | Обратная связь


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

Завдання до програми 4



Файлове блокове введення-виведення даних

Блок – це група поруч розташованих байт, між яких немає ніяких спеціальних роздільників. Блокове введення-виведення даних виконують в бінарному режимі. За одне звернення переноситься N*size байт, де size – розмір блоку.

Функція блокового запису даних у файл має прототип:

int fwrite(void *ptr, int size, int N, FILE *fp);

Ця функція записує через потік fp у відкритий файл N блоків даних (розміром sizeбайт) з області пам'яті, визначеною покажчиком ptr. У разі успіху повертає число блоків, а у разі помилки – EOF.

Функція блокового читання даних з файлу має прототип:

int fread(void *ptr, int size, int N, FILE *fp);

Ця функція зчитує через потік fp з відкритого файл N блоків даних, (розміром size байт) в область пам'яті, визначеною покажчиком ptr. У разі успіху повертає число блоків, а у разі помилки або досягнення кінця файлу – EOF. Наприклад:

FILE *fp=fopen("abc.txt","wb");

if(fp==NULL){puts("помилка відкриття файлу");return -1;}

struct REC{int a; float b[2];};

REC st1={1, 2.2, 3.3}; //визначення структури (блок з 10 байт)

fwrite(&str1,sizeof(REC),1,fp); //запис в файл структури

//визначення масиву структур (три блоки з 10 байт)

REC st2[3]={{10, 2.5, 1.5},{30, 4.4, 2.5},{50, 6.6, 3.5}};

fwrite(st2,sizeof(REC),3,fp); //запис в файл масиву структур

fclose(fp);

FILE *fp=fopen("abc.txt","rb");

if(fp==NULL){puts("помилка відкриття файлу");return -1;}

REC st3,st4[3]; //резервування пам'яті під блоки даних

fread(&st3,sizeof(REC),1,fp); //читання з файлу структури

//виведення на екран зчитаної структури

printf("%d %.2f %.2f\n",st3.a,st3.b[0],st3.b[1]);

fread(st4,sizeof(REC),3,fp); //читання з файлу масиву структур

//виведення на екран зчитаного масиву структур

for(int i=0;i<3;i++)

printf("%d %.2f %.2f\n",st4[i].a,st4[i].b[0],st4[i].b[1]);

fclose(fp);

Варіанти завдань

Розробіть програму, що записує структури у відкритий файл з іменем, що складається з чотирьох літер Вашого прізвища, за допомо­гою функції fwrite()з можливістю для додавання. Перевірте правильність запису, для цього прочитайте з файлу записані блоки даних за допомогою функції fread() та виведіть їх на екран.

1. Визначте структурний тип, що містить дані про студента (номер запису, прізвище, рік народження, номер курсу). Введіть з клавіатури елементи заданої кількості структур та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

2. Визначте структурний тип, що містить дані про працівника (номер запису, прізвище, рік народження, стаж роботи). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

3. Визначте структурний тип, що містить дані про вищі учбові заклади (номер запису, місто знаходження, назва, кількість факультетів, кількість студентів). Введіть елементи 4-х структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

4. Визначте структурний тип, що містить дані про студента (номер запису, прізвище, назва спеціальності, назва групи, рейтинг останнього). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

5. Визначте структурний тип, що містить дані про погодні умови доби (номер запису, дата, температура, осадки). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

6. Визначте структурний тип, що містить дані про студента (номер запису, прізвище, рік народження, місто народження, освіта). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур зта виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

7. Визначте структурний тип, що містить дані про працівника (номер запису, прізвище, ім’я, рік народження, місце роботи). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

8. Визначте структурний тип, що містить дані про середні учбові заклади (номер запису, місто знаходження, назва, загальна кількість класів, кількість випускних класів). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

9. Визначте структурний тип, що містить дані про кардіологічні заклади (номер запису, назва, район знаходження, кількість місць стаціонару). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.

10. Визначте структурний тип, що містить дані про міста України доби (номер запису, назва, область, кількість населення). Введіть елементи заданої кількості структур з клавіатури та запишіть у відкритий файл. Прочитайте з файлу усі записані елементи структур та виведіть їх на екран.. Додайте до програми можливість додавання нових структур та читання блоку даних за заданим номером запису.


Література

1. Подбельский В.В. Язык Си++: Учеб. пособие. – М.: Финансы и статистика, 2007. – 560 с.

2. Подбельский В.В. Практикум по программированию на языке Си: Учебн. пособие. – М.: Финансы и статистика, 2004. – 576 с.

3. Подбельский В.В., Фомин С.С. Программирование на языке Си: Учебн. пособие. – 2-е изд., – М.: Финансы и статистика, 2009. – 600с.

4. Павловская Т.А. С/С++. Программирование на языке високого уровня. – СПб: Питер, 2009. – 464 с.

5. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си: От Turbo к C Borland C++. – Мн.: Выш. Шк., 1992. – 240 с.

6. Березин Б.И., Березин С.Б. Начальный курс С и С++. – М.: ДИАЛОГ-МИФИ, 2007. – 288 с.

7. Фридман А.Л. Основы объектно-ориентированного программирования на языке Си++. –М: Горячая линия. – Телеком. Радио и связь, 1999. –208 с.

8. Уильям Топп, Уильям Форд. Структуры данных в С++. / Пер. с англ.. – М.: ЗАО "Издательство БИНОМ", 1999. – 816с.: ил.

9. Крячков А.В., Сухинина И.В., Томшин В.К. Программирование на С и С++. Практикум: Учебное пособие для вузов/ А.В.Крячков, И.В.Сухинина, В.К.Томшин.- 2-е изд.,исправ.-М.: Гарячая линия.-Телеком, 2000. –344с.

10. Х.М. Дейтел, П.Дж. Дейтел. Как программировать на С++. – 5-е изд. / Пер. с англ. – М.: ООО "Бином-Пресс", 2008.– 1456 с.

11. Культин Н.Б. С /С++ в задачах и примерах.- СПб.: БХВ: Петербург, 2001. – 288с.

12. Шилдт, Герберт. Полный справочник по С++. – 4-е изд. / Пер. с англ. – М.: Вильямс, 2008. – 800 с.

13. Крупник А. Изучаем Си. – СПб.: Питер, 2001. – 256с.

14. С/С++. Структурное программирование. Практикум / Т.А. Пав­ловская, Ю.А.Щупак. – СПб.: Питер, 2002. – 240с.

 




Поиск по сайту:

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