Форум программистов, компьютерный форум, киберфорум
Наши страницы

Усовершенствование кода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В Одномерном массиве, состоящем из n вещественных элементов, вычислить: http://www.cyberforum.ru/cpp-beginners/thread1099072.html
1)количество элементов массива,равных 0; :) 2)сумму элементов массива,расположенных после минимального элемента. Упорядочить элементы массива по возрастанию модулей элементов.
C++ Базовый класс цветы, производный тля, условие: тля уничтожает красные цветы Базовый класс цветы, производный тля, условие:тля уничтожает красные цветы. http://www.cyberforum.ru/cpp-beginners/thread1099068.html
Выдает ошибку C++
#include <iostream> #include <sstream> class Spec { private: std::string sName; int quant; public:
C++ Морской бой!
Народ помогите Нужна блок схема с подробным описание действий на курсовую)) Мне хотя бы блок схему расстановку кораблей компьютером)) поле игры 10Х10.
C++ Найти сумму положительных элементов в массиве через указатели http://www.cyberforum.ru/cpp-beginners/thread1099055.html
Найти сумму положительных элементов в массиве через указатели. Ввод массива можно осуществить любым способом.
C++ Вычислить количество элементов массива, лежащих в диапазоне от А до B В Одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)количество элементов массива, лежащих в диапазоне от А до B; 2)сумму элементов массива,расположенных после максимального... подробнее

Показать сообщение отдельно
SergeyS
153 / 145 / 6
Регистрация: 12.03.2011
Сообщений: 807

Усовершенствование кода - C++

17.02.2014, 20:46. Просмотров 351. Ответов 8
Метки (Все метки)

Добрый вечер форумчане. Только вхожу в C++ и объектно-ориентированное программирование на нём, хочется учиться сразу писать правильно.

В общем накатал следующее: два класса, книга(Book) и библиотека(Library). Библиотека инициализируется 10-ю книгами, нужно было предусмотреть возможность поиска по полю и сортировку. Хотелось бы услышать советов по улучшению кода (без сильных извращений) и указать на ошибки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <algorithm>
#include <string.h>
 
class Book {
      public:
             char *Author,*Title,*Publishers;
             int Year;
   
};
      
class Library {
      
      Book books[10];
      int BooksCount;
      
      public:
             Library() { BooksCount = 0; }
                
             bool SearchByAuthor(char* Query) {
                   int i = 0; bool IsSearched = false;
                   while (i < BooksCount) {
                         if (strstr(books[i].Author, Query)) {
                             std::cout << i+1 << "." << books[i].Author <<" "
                                       << "\"" << books[i].Title<<"\", "
                                       << books[i].Publishers <<", "
                                       << books[i].Year << "\n";
                             IsSearched = true;                      
                         }
                         i++;
                   }
                   return IsSearched;          
             }
                             
             void SortByYear() {
                  for (int i = BooksCount - 1 ; i >=0 ; i--) {
                      for (int j = 0 ; j < i ; j++) {
                          if (books[j].Year > books[j+1].Year) {
                                       Book tmp = books[j];
                                       books[j] = books[j+1];
                                       books[j+1] = tmp;
                                       }
                      }
                  } 
             }
             
             void AddBook(char* Author,char* Title,char* Publishers,int Year) {
                  books[BooksCount].Author = Author;
                  books[BooksCount].Title = Title;
                  books[BooksCount].Publishers = Publishers;
                  books[BooksCount].Year = Year; 
                  
                  BooksCount++;  
             } 
             
             void ShowBooks() {
                  for (int i = 0 ; i < BooksCount ; i++) {
                      std::cout << i+1 << "." << books[i].Author <<" "
                                         << "\"" << books[i].Title<<"\", "
                                         << books[i].Publishers <<", "
                                         << books[i].Year << "\n";
                      }
             }
      };
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    Library* lib = new Library();
    
    lib->AddBook("Шилдт Г.","Введение в C++","Osborne",2009);
    lib->AddBook("Бьерн Страуструп","Язык программирования C++","OZON",2011);
    lib->AddBook("Дэвид Р. Мюссер","STL Tutorial and Reference guide","OZON",2010);
    lib->AddBook("Robert Lafore","Object-Oriented Programming in C++","Osborne",2011);
    lib->AddBook("Б. Страуструп","The Design and Evolution of C++ ","Addison–Wesley Pub Co",1994);
    
    std::cout << "Библиотека содержит:\n"; lib->ShowBooks();
    lib->SortByYear();
    std::cout << "\nCортировка по году издания:\n"; lib->ShowBooks();
    std::cout << "\nВсе книги автора \"Страуструп\":\n" ;lib->SearchByAuthor("Страуструп");
    system("PAUSE");
}
Заранее благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru