Файл содержит сведения о книгах. Определить, имеется ли книга с названием "Информатика" - C (СИ)
Формулировка задачи:
Уважаемые, программисты, очень прошу помощи по данным заданиям. Нужно сделать кто какие сможет. Буду очень благодарен. Предпочитаемый язык Си/Си++.
2. Дан файл Bibl, содержащий сведения о книгах. Сведения о каждой из книг — это фамилия автора, название и год издания.
Найти названия книг данного автора, изданных начиная с 1960 г.
Определить, имеется ли книга с названием «Информатика». Если да, то напечатать фамилию автора и год издания. Если таких книг несколько, то напечатать имеющиеся сведения обо всех этих книгах.
Решение задачи: «Файл содержит сведения о книгах. Определить, имеется ли книга с названием "Информатика"»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define MAX_BOOKS 10 struct str { char name[40]; char title[40]; int year; } kniga[MAX_BOOKS]; int main() { FILE *read; int n,i,tmp=0; char auth[40]; //read from file to struct i=0; read=fopen("bibl.txt","rt"); while(!feof(read)) { fscanf(read,"%s %s %d", kniga[i].name, kniga[i].title, &kniga[i].year); i++; } fclose(read); n=i++; //book count // end of read printf("Enter author:"); gets(auth); for(i=0;i<n;i++) { if( strcmp(kniga[i].name,auth)==0 && kniga[i].year>=1960 ) printf("%s\n",kniga[i].title); } for(i=0;i<n;i++) { if( strcmp(kniga[i].title,"Informatika")==0) { printf("\n%s, %s, %d",kniga[i].name,kniga[i].title,kniga[i].year); tmp=1; } } if(tmp==0) printf("Informatika not found\n"); return 0; }
Объяснение кода листинга программы
В этом коде используется язык программирования C для чтения информации из файла библиотеки и поиска книги с названием Информатика
. Вот список действий, которые выполняет код:
- Включаются необходимые заголовочные файлы.
- Определяется максимальное количество книг, которое может быть хранено в массиве.
- Создается структура данных для представления информации о книге.
- Открывается файл с библиотекой для чтения.
- Используется цикл while для чтения информации о каждой книге в файле.
- Данные каждой книги сохраняются в соответствующем элементе массива структур.
- Закрывается файл с библиотекой.
- Узнается общее количество книг в библиотеке.
- Пользователю предлагается ввести имя автора.
- Используется цикл for для проверки, есть ли среди книг книга с именем автора и годом издания, равным или после 1960 года.
- Если найдена книга с именем автора, выводится название этой книги.
- Используется еще один цикл for для проверки, есть ли среди книг книга с названием
Информатика
. - Если найдена книга с названием
Информатика
, выводятся название этой книги, имя автора и год издания. - Если книга с названием
Информатика
не найдена, выводится сообщениеInformatika not found
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д