0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38

Книжная библиотека с читателями с++

22.10.2016, 18:45. Показов 20253. Ответов 75
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди, заранее благодарю за потраченное на меня время.
Необходимо написать программу, так называемую "библиотеку". Нужно:
1. добавлять/удалять читателей(фамилия)
2. добавлять/удалять книги(автор, название)
3. нужно чтобы эти данные хранились в файлах типа txt
4. нужно реализовать так чтобы например: читатель взял книгу -> книга закрепляется за ним
5. необходимо чтобы была проверка, если нет читателя с данной фамилией, то выдает: читателя с данной фамилией нет.
Искал по форуму подобное, ничего похоже найти не удалось. Есть темы про библиотеки, но там не совсем то что надо.
ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО ЗА ВАШУ ПОМОЩЬ!!!!!
не смотрите на то что закоменчено....
Вот то что у меня пока есть... Помогите доработать код
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
#include <iostream> 
#include <fstream>
#include <string>
 
 
using namespace std;
 
class Tlibrary  // класс читателей библиотеки 
{public:
    string sname;// Фамилия
    string rabota;// Работа
    string dolj;// Должность
    string datav; // дата выдачи
    string datap; // дата приема в библиотеку
};
class TBooks
{public:
    string nameb;
    string author;
};
 
Tlibrary* ReadFile(int& size);
TBooks* ReadFile(int& size);
 
int main()
{
        //setlocale(LC_ALL, "RUS");
        int size;
        Tlibrary* ab;
        if (!(ab = ReadFile(size)))
        {
            cout << /*"Ошибка открытия файла!"*/"Error opening file" << endl;
            system("pause");
            return 0;
        }
        
        string sur; // переменная для ввода фамилии
        bool flag = false;  // флаги совпадений в поиске
        char ch;
        do
        {
 
            cout << /*"Введите фамилию для поиска  "*/"Enter a name for your search:" << endl;
            getline(cin, sur);
            for (int j = 0; j < size; j++)  // поиск
                if (sur == ab[j].sname)
                {
                    cout << "Surname:"<<' '<< sur << endl;
                    cout << "Place of work:"<<' '<< ab[j].rabota << endl;
                    cout << "Profession:"<<' '<< ab[j].dolj<< endl;
                    cout << "Date of issue of the books:"<<' '<< ab[j].datav << endl;
                    cout << "Book return date:"<<' ' << ab[j].datap << endl;
                    flag = true;   // если найдено ставим флаг тру
                }
            if (flag == false)
            {
                cout << /*"Читателя с такой фамилией нет в списке "*/"Reader with a name not on the list!!" << endl << endl;
            }
            flag = false;
            
            cout << /*"Продолжить? (y/n): "*/"Continue? (y / n):";
            
            (cin >> ch).get();
 
        } while (ch == 'y');
        
        delete [] ab;
        cout << /*"Выход!"*/"Exit" << endl;
        system("pause");
}
 
 
 
Tlibrary* ReadFile(int& size)
{
    ifstream F("library.txt");
        if (!F)
            return 0;
    
    F >> size;   
    Tlibrary* ab = new Tlibrary[size];
    
    string temp;
    for (int i = 0; i < size; ++i)
    {
        getline(F, temp, '.');
        F >> ab[i].sname; 
        F >> ab[i].rabota;
        F >> ab[i].dolj;
        F >> ab[i].datav;
        F >> ab[i].datap;
        F.get();
    }
    F.close();
   
    return ab;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2016, 18:45
Ответы с готовыми решениями:

Структуры. Книжная библиотека
Мне нужно создать структуру и выполнить индивидуальные задания для этой структуры. Звучат они так: По требованию пользователя...

Обработка структурных данных. Книжная библиотека
Организовать интерфейс пользователя на основе меню, обязательными пунктами которого будут: ввод данных, вывод всей информации, выход из...

Консольная "Книжная библиотека"
Помогите, пожалуйста, доделать программу. Суть - книжная библиотека с функциями добавления читателей, книг и последующим поиском по...

75
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
24.10.2016, 04:50
Студворк — интернет-сервис помощи студентам
Andy_Shish, это уже проблема файла с книгами. В нём должно быть чётное число строк (по две на книгу).
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
24.10.2016, 05:51  [ТС]
FraidZZ, то есть в файле с книгами txt, уже должны быть записаны книги, по две строки на каждую книгу, а в файле с читателями??
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
24.10.2016, 08:37
Andy_Shish, по одной строке на читателя.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
24.10.2016, 11:30
Andy_Shish, У меня всё работает с прикрепленными файлами.
Не забудьте в main() поменять названия файлов и перекомпилировать.
Вложения
Тип файла: txt books.txt (155 байт, 11 просмотров)
Тип файла: txt readers.txt (40 байт, 8 просмотров)
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
24.10.2016, 20:13  [ТС]
GbaLog-, я что-то не понимаю, после выполнения в cmd что-то очень интересное получается... И я не понимаю что там
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
24.10.2016, 20:17
Цитата Сообщение от Andy_Shish Посмотреть сообщение
И я не понимаю что там
Так Вы в код смотрите, а не в cmd, просто при передаче книги читателю и наоборот об этом сообщения не выводится.
Хотя могло бы, но мне было лень это добавлять.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
24.10.2016, 20:18  [ТС]
GbaLog-, вы не могли бы разъяснить...
Миниатюры
Книжная библиотека с читателями с++  
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
24.10.2016, 20:19  [ТС]
GbaLog-, просто это и нужно было, по сути((
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
24.10.2016, 20:21
Цитата Сообщение от Andy_Shish Посмотреть сообщение
вы не могли бы разъяснить...
А точно, это же я у себя код подправил, а у Вас, так сказать, старая версия.
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
/////////////////////////////////////////////////////////////////////////////////////////
void print_books( const Library& lib )
{
    std::cout << "Library: " << std::endl;
    for( const auto& it : lib.get_books() )
    {
        std::cout
            << '\t'
            << it.get_name()
            << "/"
            << it.get_author()
            << std::endl;
    }
    std::cout << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
void print_readers( const Library& lib )
{
    std::cout << "Readers:" << std::endl;
    for( const auto& it : lib.get_readers() )
    {
        std::cout
            << '\t'
            << it.get_name()
            << std::endl;
    }
    std::cout << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
void print_what_readers_have( const Library& lib )
{
    for( const auto& it : lib.get_readers() )
    {
        std::cout
            << it.get_name()
            << " have"
            << std::endl;
        for( const auto& it2 : it.get_books() )
        {
            std::cout
                << '\t'
                << it2.get_name()
                << "/"
                << it2.get_author()
                << "\n\n";
        }
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    Library lib{ "books.txt", "readers.txt" };
 
    print_books( lib );
    print_readers( lib );
 
    lib.request( "Steve McConnell", e_give, "Code complete" );
 
    print_books( lib );
    print_what_readers_have( lib );
 
    lib.request( "Steve McConnell", e_take, "Code complete" );
 
    print_what_readers_have( lib );
    print_books( lib );
}
/////////////////////////////////////////////////////////////////////////////////////////
Старый кусок кода этим замените.
Надеюсь поймёте, что именно надо заменять.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
24.10.2016, 20:26  [ТС]
GbaLog-, становится написано просто Ivanov have Petrov have и так далее, так и должно быть?
им же должна быть какая-то книга присвоена
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
24.10.2016, 20:28
Цитата Сообщение от Andy_Shish Посмотреть сообщение
становится написано просто Ivanov have Petrov have и так далее, так и должно быть?
Ну если после этого ничего не выводится, значит их список книг пуст.
Найдите место, где оно выводится и исправьте, чтобы выводило, что у них ничего нет.
Я и так много сделал.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
24.10.2016, 20:38  [ТС]
GbaLog-, да я знаю, спасибо большое!!!!!!!!!)

Добавлено через 6 минут
GbaLog-,
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
void print_readers( const Library& lib )
{
    std::cout << "Readers:" << std::endl;
    for( const auto& it : lib.get_readers() )
    {
        std::cout
            << '\t'
            << it.get_name()
            << std::endl;
    }
    std::cout << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
void print_what_readers_have( const Library& lib )
{
    for( const auto& it : lib.get_readers() )
    {
        std::cout
            << it.get_name()
            << " have"
            << std::endl;
        for( const auto& it2 : it.get_books() )
        {
            std::cout
                << '\t'
                << it2.get_name()
                << "/"
                << it2.get_author()
тут где have нужно дописать don't have book?

Добавлено через 2 минуты
GbaLog-,
Цитата Сообщение от GbaLog- Посмотреть сообщение
"Steve McConnell", e_give, "Code complete"
что вот это выполняет???
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
24.10.2016, 20:46
Цитата Сообщение от Andy_Shish Посмотреть сообщение
что вот это выполняет???
Смотрите в архитектуру.
C++
1
2
3
4
5
6
7
enum e_act
{
    e_none,     // ничего не делать
    e_give,     // дать книгу читателю
    e_take,     // взять книгу у читателя
    e_register
}
Переводится как "Дать читателю %1-й_аргумент% книгу %3-й_аргумент%".

Добавлено через 3 минуты
Цитата Сообщение от Andy_Shish Посмотреть сообщение
тут где have нужно дописать don't have book?
Не знаю.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
24.10.2016, 20:52  [ТС]
GbaLog-, ладно, жаль..
0
0 / 0 / 0
Регистрация: 09.04.2021
Сообщений: 1
09.04.2021, 21:00
Известна информация о читателях библиотеки: фамилия, адрес,
место работы, время получения книги, время доставки книги. Ссуда ​​в библиотеку
указать ФИО, адрес и место работы читателей

Добавлено через 2 минуты
Известна информация о читателях библиотеки: фамилия, адрес,
место работы, время получения книги, время доставки книги. Ссуда ​​в библиотеку
указать ФИО, адрес и место работы читателей
люди помогите пж
0
Just Do It!
 Аватар для XLAT
4221 / 2686 / 656
Регистрация: 23.09.2014
Сообщений: 9,244
Записей в блоге: 3
09.04.2021, 22:32
Цитата Сообщение от Kutlikadamobva Посмотреть сообщение
люди помогите пж
http://www.cyberforum.ru/cpp-b... st13980942
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2021, 22:32

База данных "Книжная библиотека"
Здравствуйте. Создаю базу данных &quot;Книжная библиотека&quot;. При попытке запустить выдаёт ошибки: Unit1.pas(46): Undeclared identifier:...

Книжная печать
Всем привет! Как напечатать на принтере документ книжным и чтоб он был маленькой книжкой типа есть же книжки шпаргалки мне бы также...

Как в word у одной страницы документа сделать альбомную ориентацию, чтобы у всех остальных оставалась книжная?
Как в ворде у одной страницы документа сделать альбомную ориентацию, чтобы у всех остальных оставалась книжная?

Программа "Книжная полка"
Помогите пожалуйста с написанием программы. В основном всё получилось, осталось только удаление Программа “Книжная полка”. 1. Класс...

Дорожная библиотека + основная библиотека процессов
Доброго времени! Пытаюсь совместить в одной модели дорожную библиотеку и библиотеку моделирования процессов следующим образом. По дороге...


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

Или воспользуйтесь поиском по форуму:
76
Ответ Создать тему
Опции темы

Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru