Форум программистов, компьютерный форум CyberForum.ru

Составить программу формирования данных о книгах: автор, название, год издания, цена - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевернуть строку, в чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread1798304.html
Выполните переворот строки, написав её наоборот. #include <iostream> #include <string> using namespace std; int main() { char str; char str1;
C++ Найти в тексте количество вхождений определенного слова Ребята, приветствую! Мне необходимо загрузить из файла текст (перемешанный, т.е. и буквы, и цифры, и знаки препинания, и табуляции есть). После нужно найти в нем число вхождений определенного слова. Я сделал так: string fileName = arguments.at(2); string word = arguments.at(6); string content; char temp; fstream file; file.open(fileName, ios::in | ios::binary | ios::_Nocreate); http://www.cyberforum.ru/cpp-beginners/thread1798287.html
C++ Организация управления типами данных
Поясните, пожалуйста, как происходит разделение типов данных в памяти? как компилятор определяет в каких ячейках хранятся соответствующие данные? Допустим, есть объявление (где int = 4 байта, short = 2 байта и char = 1) short int girls = 13; char name = "Alice"; int boys;В памяти выделяется участок (адрес: значение ) 0000: 0000 1101 (младший байт) 0001: 0000 0000 (старший) 0002: 0100...
Как подключить OpenGL на Dev-C++ C++
#include <iostream> #include <time.h> #include <GL/glut.h>// //2. ÑÎçäà¸ì ôóíêöèþ display void display() { glClear(GL_COLOR_BUFFER_BIT);// glColor3f(0.0,1.0,0.0); //
C++ Как создать функцию ввода элементов массива используя шаблоны? http://www.cyberforum.ru/cpp-beginners/thread1798223.html
Извините, по глупому вопросу, но на данный момент я не смог сообразить сам. Как создать функцию ввода элементов массива с помощью шаблонов? Вернуть этот массив. К примеру, я хочу вывести после ввода элементы массивов разных типов: целых, вещественных, символьных, С- строк Добавлено через 11 минут извините, сам справился Type* get(Type(*array), int size) {
C++ Последовательность сравнения выражения Здравствуйте. Простой код. Скажите, в какой последовательности будет сравниваться выражение i!=j<k) Я ввожу 12,12,12 и оно мне Гуд лак:) #include <iostream> #include <Windows.h> #include <stdlib.h> using namespace std; int main() подробнее

Показать сообщение отдельно
nd2
1030 / 769 / 258
Регистрация: 29.01.2016
Сообщений: 2,406
25.08.2016, 21:16     Составить программу формирования данных о книгах: автор, название, год издания, цена
Доделывай под себя:

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#include <iostream>
#include <cstdlib>
using namespace std;
 
class Book 
{
    char author[30];
    char title[30];
    int year;
    int price;
    public:
        void SetBook();
        int GetYear() const;
        int GetPrice() const
        {
            return price;
        }
        void ShowBook() const;
};
 
class Catalog
{
    Book *list;
    int size;
    public:
        Catalog(): list(0), size(0) {}
        ~Catalog();
        void FillCatalog(int n);
        int GetSize() const; //если понадобится размер каталога книг
        int GetMaxYear() const;
        const Book* GetList() const
        { return list; }
        void ShowCatalog() const;
        void SortingCatalog(char* f);
};
 
int menu();
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Книжный архив" << endl << "Автор: студент гр. РИ-150005 Рогожников Роман Сергеевич" << endl << "Екатеринбург, 2016 г." << endl;
    system ("pause");
    int c, n;
    
    Catalog catalog;
    
    while (true)
    {
        c = menu();
        
       switch (c)
       {
            case 1:
                system("cls");
                if (catalog.GetList())
                    delete [] catalog.GetList();
                cout << "Введите количество книг в каталоге: ";
                (cin >> n).get();
                catalog.FillCatalog(n);
                catalog.ShowCatalog();
                system("pause");
                break;
            case 2:
                system("cls");
                catalog.SortingCatalog("year");
                catalog.ShowCatalog();
                system("pause");
                break;
            case 3:
                system("cls");
                catalog.SortingCatalog("price");
                catalog.ShowCatalog();
                system("pause");
                break;
           default:
                return 0;
        }
    }
}
 
void Book::SetBook()
{
    cout << "Введите имя автора: ";
    cin.getline(author, sizeof(author));
    cout << "Введите название книги: ";
    cin.getline(title, sizeof(title));
    cout << "Введите год публикации: ";
    cin >> year;
    cout << "Введите цену книги: ";
    (cin >> price).get();
}
 
int Book::GetYear() const
{
    return year;
}
 
void Book::ShowBook() const
{
    cout << "Автор: " << author << endl;
    cout << "Заголовок: " << title << endl;
    cout << "Год публикации: " << year << endl;
    cout << "Цена: " << price << endl;
}
 
Catalog::~Catalog()
{
    delete[] list;
}
 
void Catalog::FillCatalog(int s)
{
    size = s;
    if (size <= 0) return;
    list = new Book[size];
    for (int i = 0; i < size; ++i)
    {
        cout << "Введите данные о " << i+1 << " книге:" << endl;
        list[i].SetBook();
        cout << endl;
    }
}
 
int Catalog::GetSize() const
{
    return size;
}
 
int Catalog::GetMaxYear() const
{
    if (!list || size <= 0) return 0;
    int max = 0;
    for (int i = 0; i < size; ++i)
        if (max < list[i].GetYear()) 
            max = list[i].GetYear();
    return max;
}
 
void Catalog::SortingCatalog(char* f)
{
    if (!list || size <= 0) 
        return;
    
    Book temp;
    for(int i = 0; i < size - 1; ++i)
    {
        for(int j = 0; j < size - 1; ++j)
        {
            bool flag = false;
            if (!strcmp(f, "year"))
            {
                flag = (list[j].GetYear() > list[j + 1].GetYear());
            }
            else if (!strcmp(f, "price"))
            {
                flag = (list[j].GetPrice() > list[j + 1].GetPrice());
            }
            if (flag)
            {
                temp = list[j + 1];
                list[j + 1] = list[j];
                list[j] = temp;
            }
        }
    }
}
 
void Catalog::ShowCatalog() const
{
    if (size <= 0) return;
    for (int i = 0; i < size; ++i)
    {
        cout << "Вывод данных о " << i+1 << " книге:" << endl;
        list[i].ShowBook();
        cout << endl;
    }
}
 
int menu()
{
    int choice;
    cout << "1 - Создать каталог" << endl;
    cout << "2 - Показать книги, упорядочив их по датам создания" << endl;
    cout << "3 - Показать книги, упорядочив их по цене" << endl;
    cout << "4 - Выход" << endl;
    cout << "Ваш выбор: ";
    (cin >> choice).get();
    return choice;
}
 
Текущее время: 20:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru