0 / 0 / 0
Регистрация: 12.03.2015
Сообщений: 7
|
|
1 | |
Структуры. обработка данных введенных с клавиатуры12.03.2015, 20:39. Показов 636. Ответов 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 | |
12.03.2015, 20:39 | |
Помогаю со студенческими работами здесь
1
Сортировка данных массива введённых с клавиатуры Обработка формы с сохранением введенных данных Обработка введенных данных в консольном приложении Необходимо реализовать проверку данных, введенных с клавиатуры, на принадлежность к числу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |