Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <math.h>
- #include <iomanip>
- #include <string.h>
- using namespace std;
- struct kniga {
- char naz[50];
- char avtor[50];
- int god;
- int str;
- }*base;
- void show(int, kniga[]);
- void showw(int, kniga[]);
- void enter(int, kniga[]);
- void QuickSort(int, int);
- int main()
- {
- cout << "Vvedite kolvo knig: ";
- int n;
- cin >> n;
- base = new kniga[n];
- enter(n, base);
- for (int i = 0; i < n; i++) {
- show(i, base);
- }
- showw(n, base);
- QuickSort(0, n - 1);
- for (int i = 0; i < n; ++i) {
- cout << "======================================" << endl;
- cout << setw(12) << " Nazvanie |" << setw(12) << " Kolvo str " << endl;
- cout << "======================================" << endl;
- cout << setw(12) << base[i].naz << "|" << setw(12) << base[i].str<<endl;
- }
- system("pause");
- return 0;
- }
- void show(int i, kniga base[]) {
- cout << "=============================================" << endl;
- cout << setw(12) << " Nazvanie |" << setw(12) << " Avtor |" << " God |" << setw(12) << " Kolvo str " << endl;
- cout << "=============================================" << endl;
- cout << setw(12) << base[i].naz << "|" << setw(12) << base[i].avtor << "|" << setw(12) << base[i].god << "|" << setw(12) << base[i].str << endl;
- }
- void enter(int n, kniga base[]) {
- for (int i = 0; i < n; i++) {
- cout << "Vvedite nazvanie " << i + 1 << ": "; cin >> base[i].naz;
- cout << "Vvedite avtora " << i + 1 << ": "; cin >> base[i].avtor;
- cout << "Vvedite god " << i + 1 << ": "; cin >> base[i].god;
- cout << "Vvedite kolvo stranits " << i + 1 << ": "; cin >> base[i].str;
- cout << endl;
- }
- }
- void QuickSort(int Left, int Right) {
- int i,j;
- kniga SR = base[(Left + Right) / 2], buf;
- i = Left;
- j = Right;
- do {
- while ((base[i].str < SR.str) && (i < Right)) {
- i++;
- }
- while ((base[j].str > SR.str) && (j > Left)) {
- j--;
- }
- if (i <= j) {
- buf = base[i];
- base[i] = base[j];
- base[j] = buf;
- i++;
- j--;
- }
- } while (i <= j);
- if (i < Right) {
- QuickSort(i, Right);
- }
- if (j > Left) {
- QuickSort(Left, j);
- }
- }
- void showw(int n, kniga base[]) {
- for (int i = 0; i < n; i++) {
- if (base[i].god < 1990) {
- cout << setw(12) << " Nazvanie " << "|" << setw(12) << base[i].naz << endl<<endl;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement