Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 11.11.2015
Сообщений: 5
1

Поиск книги за интервалом цен и названием

11.11.2015, 00:47. Показов 1459. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужна помощь с заданием. Я не могу на писать код к поиску книги по цене. Поиск нужно осуществить по введенном интервалу цен.
Задание такое :
Создать массив структур о книжном магазине. Каждая структура имеет поля: названия книги, количество книг, цена. Реализовать вывод всей информации о книгах, поиск книги за названием. Реализовать поиск за ценой с обозначением интервала возможной цены (должна быть выведена информация о книгах, цены которых попали в обозначенный интервал)
Мой код:
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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <string>
#include <iomanip>
 
using namespace std;
 
struct book
{
    char NameBook[20];
    int amount;
    float price;
};
 
void ShowBook(book[], int);
void SearchName(book[]);
void SearchPrice();
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    book a[] = {
            { "Book С++", 24, 44 },
            { "Book Java", 150, 179 },
            { "Book Ruby", 31, 95 },
            { "Book Python", 145, 34 },
            { "Book HTML5", 112, 199 },
            { "Book CSS", 173, 164 },
    };
    char  q;
    b: cout << "Выберите требуемое действие: ";
    cout << "\n1 - Показать все книги \t2 - Поиск книги по названию\t3 - Поиск книги по цене\n";
    cin >> q;
    switch (q){
    case '1': ShowBook(a, 6); goto b; break;
    case '2': SearchName(a); break;
    case '3': SearchPrice(); break;
    }
    system("pause>>null");
    return 0;
}
    void ShowBook(book b[], int n)
    {
        int _setw = strlen(b[0].NameBook);
        for (int i = 1; n > i; i++)
        {
            if (_setw < strlen(b[i].NameBook)) _setw = strlen(b[i].NameBook);
        }
        _setw += 2;
        for (int m = 1; m <= n; m++){
            switch (m)
            {
            case 1:cout << endl << "Название книги: "; break;
            case 2:cout << endl << "Количество книг: "; break;
            case 3:cout << endl << "Цена:\t\t "; break;
            }
            
                for (int i = 0; n > i; i++)
                switch (m)
                {
                case 1:cout << setw(_setw) << b[i].NameBook; break;
                case 2:cout << setw(_setw) << b[i].amount; break;
                case 3:cout << setw(_setw) << b[i].price; break;
                }
                    }
        cout << "\n\n";
    
    }
 
    void SearchName(book b[])
    {
        cout << "Введите название книги: ";
        char name[20];
        gets(name);
        for (int i = 0; i < 6; i++) {
            if (stricmp(name, b[i].NameBook) == 0) 
                cout << "\'" << b[i].NameBook <<"\'" << " найдена.";
            else
                cout << "Книга с таким названием не найдена\n";
        }
    }
    
    void SearchPrice(book b[])
    {
        int L, R;
        cout << "Введите стоимость: \n";
        cout << "От: "; cin >> L;
        cout << "До: "; cin >> R;
        float k;
        int mid;
        int z = 0;
 
        while (L<R)
        {
            z++;
            mid = (L + R) / 2;
            if (k > b.price) L = mid;
            if (k < b.price) R = mid;
            if (k == b.price) break;
    }
Последнюю функцию я не знаю как осуществить. Помогите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2015, 00:47
Ответы с готовыми решениями:

Сохранение листа книги в новый файл с определенным названием в новую папку с таким же названием в определенной папке
Привет всем профи и любителям! Прошу помочь с написанием макроса. Имеется книга с 2 листами....

Выборка количества экземпляров книги с определённым названием и её чтецов
Как записать в один запрос выборку количества экземпляров книги с конкретным названием и кол-ва...

Сформировать файл со сведениями о книгах, исключает книги с названием информатика
Вот 2 программы связанные между собой. 1. Формирует файл со сведениями о книге(ах). 2.Исключает...

Поиск и проставление цен
Уважаемые магистры Макросописания, просьба помочь с написанием макроса. В моем случае даже не знаю...

1
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,669
11.11.2015, 08:36 2
Поиск по чему-то. Ты не русский, что ли?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    void SearchPrice(book b[])
    {
        int L, R;
        cout << "Введите стоимость: \n";
        cout << "От: "; cin >> L;
        cout << "До: "; cin >> R;
 
        for (int i = 0; i < 6; ++i)
        {
            if (b[i].price >= L && b[i].price <= R)
            {
                 // вывод информации для b[i]
            }
        }
    }
1
11.11.2015, 08:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2015, 08:36
Помогаю со студенческими работами здесь

Поиск минимальных цен по компаниям
Имеется база образно говоря со списком компаний и соответственно ценами для каждой компании. Многие...

Поиск файлов с определённым названием
Разработка программы поиска файла на компьютере, с определенным названием (в программе должна быть...

Поиск цен в рублях с использованием preg_match_all
Народ, такая проблема. Пишу паука-парсера, соответственно взял легкий шаблон, переконтачил под себя...

Как сделать поиск в диапазоне цен
Как сделать поиск в диапазоне цен --&gt; один инпут для указания цены От и один для указания цены...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru