Файл содержит сведения о книгах. Определить, имеется ли книга с названием "Информатика" - 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 для чтения информации из файла библиотеки и поиска книги с названием Информатика. Вот список действий, которые выполняет код:

  1. Включаются необходимые заголовочные файлы.
  2. Определяется максимальное количество книг, которое может быть хранено в массиве.
  3. Создается структура данных для представления информации о книге.
  4. Открывается файл с библиотекой для чтения.
  5. Используется цикл while для чтения информации о каждой книге в файле.
  6. Данные каждой книги сохраняются в соответствующем элементе массива структур.
  7. Закрывается файл с библиотекой.
  8. Узнается общее количество книг в библиотеке.
  9. Пользователю предлагается ввести имя автора.
  10. Используется цикл for для проверки, есть ли среди книг книга с именем автора и годом издания, равным или после 1960 года.
  11. Если найдена книга с именем автора, выводится название этой книги.
  12. Используется еще один цикл for для проверки, есть ли среди книг книга с названием Информатика.
  13. Если найдена книга с названием Информатика, выводятся название этой книги, имя автора и год издания.
  14. Если книга с названием Информатика не найдена, выводится сообщение Informatika not found.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы