bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [157]
АВС [6]
КПиЯП [80]
ОАиП [305]
ОКТ [79]
СиСПО [8]
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ПОИТ » КПиЯП

ПОИТ (д.), КПиЯП, Контрольная работа №1, 2015
Подробности о скачивании 15.12.2015, 16:11
Задание: В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книг, год издания. Определить, имеются ли в данном списке книги, в названии которых встречается некоторое ключевое слово (например, "ПЭВМ"). Если имеются, то выдать на печать фамилии авторов, название и год издания всех таких книг.

Листинг программы.
#include <stdio.h>//библиотека стандартного ввода и вывода
#include <conio.h>//консольный ввод-вывод
#include <stdlib.h>//функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие
#include <locale.h>//нформациюя о текущей кодировке для форматирования чисел
#include <string.h>//работа со строками

#define max 100 //Задаем максимальное кол-во символов для записи книги и автора

struct info{
char book[max];
char author[max];
int year;
}; // Создаем структуру для записи книги, автора и года издания книги.

struct info catalog[10]; //массив структур для создания списка книг

int main()
{
//Объявляем необходимые переменные.
int i;
int records=0;
char pattern[max];
char *isstr; //указатель на строку
//формируем список книг
do {
printf("Book number: %d \n", records+1); // вводим информация о книге номер records+1
puts("Enter author`s name:");
fflush(stdin); // очищаем содержимое буфера перед записью значения
gets(catalog[records].author);//записываем имя автора в поле author в структуре catalog[records]
puts("Enter book`s name:");
fflush(stdin);
gets(catalog[records].book);// записываем название книги в поле book в структуре catalog[records]
puts("Enter issue year for book:");
fflush(stdin);
scanf("%d",&catalog[records].year);// записываем год книги в поле year в структуре catalog[records]
records++;
puts("Please, press 1 to continue or 0 to exit..");// продолжить (1) или выйти (0)
scanf("%d", &i);
if (records==10) i=0; // т.к. массив состоит из 10-ти структур, то выйти после того, как сформируем список из 10 записей
puts("-----------------------------");
} while (i);

printf("%15s %15s %4s\n", "The author", "The book", "Year");
for (i=0;i<records;i++) //выводим весь каталог на экран
{
printf("%15s %15s %4d\n", catalog[i].author, catalog[i].book, catalog[i].year);
}
fflush(stdin);
puts("-----------------------------");
puts("Enter pattern for search:");
gets(pattern); // вводим шаблон для поиска

printf("%15s %15s %4s\n", "The author", "The book", "Year");
for (i=0;i<records;i++)
{
isstr=strstr(catalog[i].book,pattern); // ищем подстроку в строке
if ( isstr != NULL ) {
printf("%15s %15s %4d\n", catalog[i].author, catalog[i].book, catalog[i].year); // если есть совпадение, то выводим на экран.
}
}

puts("Enter any key...");
getchar();
return 0; // выход из программы
}
Категория: КПиЯП | Добавил: ksu
Просмотров: 1149 | Загрузок: 16
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]