|
0 / 0 / 0
Регистрация: 12.03.2015
Сообщений: 7
|
|
Структуры. обработка данных введенных с клавиатуры12.03.2015, 20:39. Показов 729. Ответов 0
Метки нет (Все метки)
Написать программу для обработки данных о книгах, находящихся в
библиотеке. Каждая книга характеризуется следующими полями: автор, название, издательство, год издания, количество страниц. Программа должна выполнять следующие действия: ввод с клавиатуры данных не менее чем о 8 книгах (в массив структур); вывод списка всех книг заданного (с клавиатуры) автора, находящихся в библиотеке; вывод информации о книгах заданного издательства, у которых количество страниц больше значения, заданного с клавиатуры; отсортировать данные массива по авторам (в алфавитном порядке) и вывести все данные массива на экран. #include <iostream> #include <iomanip> #include <Windows.h> #include <conio.h> using namespace std; const int max_len = 50; struct Book { char fio[max_len],izd[max_len]; // Ф.И.О. автора книги, издательство char title[max_len]; // Заголовок книги int year, pages; // Год издания, количество страниц }; void input(Book *Catalog, int i); // Ввод информации о книге void DisplayCatalog(Book *, int size); // Печать католога void avtor(Book *Catalog, char *fio,int size); //вывод книг нужного автора void izdat(Book *Catalog, char *izd,int size,int s);//вывод информации о книгах нужного издательства с количеством страниц ббольше заданного void alfa(Book *Catalog, char *fio,char *izd,char *tit, int size,int g,int s);// сотировка по авторам(в алфавитном порядке) int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); const int Size = 2; Book Catalog[Size]; for (int i=0;i<Size;i++) input(Catalog,i); DisplayCatalog(Catalog, Size); char *fio; char *izd; char *tit; int s,g; cout<<"Введите Ф.И.О. автора для поиска его книг"<<'/n'; cin>>fio; avtor(Catalog,fio,Size); cout<<"Введите название издательства"<<"/n"; cin>>izd; cout<<"Введите количество страниц"<<"/n"; cin>>s; izdat(Catalog,izd,Size,s); alfa(Catalog,fio,izd,tit, Size, g, s); return 0; _getch(); } void input(Book *Catalog, int i) { char buffer[max_len]; cout << "Ф.И.О. автора книги:"; cin.getline(Catalog[i].fio, max_len); cout << "издательство:"; cin.getline(Catalog[i].izd, max_len); cout << " Название книги:"; cin.getline(Catalog[i].title, max_len); cout << " Год издания:"; cin >> Catalog[i].year; cout << " Количество страниц:"; cin >> Catalog[i].pages; cin.get(); } void DisplayCatalog(Book *Catalog, int size) { cout<<"Печать каталога:\n"; for(int i=0; i<size; i++) { cout << setw(10) << Catalog[i].fio; cout << setw(10) << Catalog[i].izd; cout << setw(10) << Catalog[i].title; cout << setw(5) << Catalog[i].year; cout << setw(4) << Catalog[i].pages<< '\n'; } } void avtor(Book *Catalog, char *fio,int size) { cout<<fio<<"автор книг:\n"; for(int i=0; i<size; i++) { if (Catalog[i].fio==fio) { cout << setw(10) << Catalog[i].title<< "\n"; } } cin.get(); } void izdat(Book *Catalog, char *izd,int size,int s) { cout<<"книги издательства "<<izd<<" с колличеством страниц больше "<<s<<"\n"; for(int i=0; i<size; i++) { if (Catalog[i].izd==izd && Catalog[i].pages>s ) { cout << setw(10) << Catalog[i].fio; cout << setw(10) << Catalog[i].izd; cout << setw(10) << Catalog[i].title; cout << setw(5) << Catalog[i].year; cout << setw(4) << Catalog[i].pages<< '\n'; } } cin.get(); } void alfa(Book *Catalog, char *fio,char *izd,char *tit, int size,int g,int s) { for (int j=0;j<=size;j++) { for (int i=1;i<max_len;i++) { if (strcmp(Catalog[i-1].fio, Catalog[i].fio)>0) { strcpy(fio, Catalog[i-1].fio); strcpy(Catalog[i-1].fio, Catalog[i].fio); strcpy(Catalog[i].fio, fio); strcpy(izd, Catalog[i-1].izd); strcpy(Catalog[i-1].izd, Catalog[i].izd); strcpy(Catalog[i].izd, izd); strcpy(tit, Catalog[i-1].title); strcpy(Catalog[i-1].title, Catalog[i].title); strcpy(Catalog[i].title, tit); g=Catalog[i-1].year; Catalog[i-1].year=Catalog[i].year; Catalog[i].year=g; s=Catalog[i-1].pages; Catalog[i-1].pages=Catalog[i].pages; Catalog[i].pages=s; } } } for (int i=0;i<size;i++) { cout << setw(10) << Catalog[i].fio; cout << setw(10) << Catalog[i].izd; cout << setw(10) << Catalog[i].title; cout << setw(5) << Catalog[i].year; cout << setw(4) << Catalog[i].pages<< '\n'; } }
0
|
|
| 12.03.2015, 20:39 | |
|
Ответы с готовыми решениями:
0
Структуры. Обработка данных, введенных с клавиатуры
Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных? |
| 12.03.2015, 20:39 | |
|
Помогаю со студенческими работами здесь
1
Определение типа данных, введённых с клавиатуры
Обработка формы с сохранением введенных данных Обработка введенных данных в консольном приложении Необходимо реализовать проверку данных, введенных с клавиатуры, на принадлежность к числу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|