Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/91: Рейтинг темы: голосов - 91, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38

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

22.10.2016, 18:45. Показов 20281. Ответов 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
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 16:45
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Andy_Shish Посмотреть сообщение
я все понимаю, что надо самому..
В любом случает никто Вам тут каждую строчку комментировать не станет, потому что это долго и бесполезно.
Вы делаете что-то, выкладываете свои вопросы, свой код, Вам подсказывают, ну а делать за Вас всю работу тут вряд ли кто-то будет.
Хотя, тут люди всякие сидят, авось кто-то и сделает, но на это надеяться - только время тратить.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 16:53  [ТС]
GbaLog-, да я это прекрасно понимаю..
Я ведь и скинул то что наработал сам...
И помощи попросил потому что в ступоре... Если бы это не было срочно надо, я бы сидел разбирался и делал сам... Но сейчас просто действительно надеюсь на отзывчивость людей, которые умнее меня. Я со всем разберусь в итоге все равно, только что проблемы с учебой будут из-за сроков.. И я знаю что чужие проблемы никого не волнуют, просто так вышло, что приходиться просить
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
23.10.2016, 16:55
Цитата Сообщение от Andy_Shish Посмотреть сообщение
ошибок стало еще больше
Попробуйте -std=c++1y вместо -std=c++14.
И версию компилятора нам скажите.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 16:57  [ТС]
Croessmah, code::blocks 16.01
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
23.10.2016, 16:58
Цитата Сообщение от Andy_Shish Посмотреть сообщение
Croessmah, code::blocks 16.01
Версию компилятора, а не IDE.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 17:00
Цитата Сообщение от Andy_Shish Посмотреть сообщение
да я это прекрасно понимаю..
Тогда давайте вместе разбираться?
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 17:03  [ТС]
Croessmah, ой mingw

Добавлено через 25 секунд
GbaLog-, обеими руками за!!!
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 17:07
Цитата Сообщение от Andy_Shish Посмотреть сообщение
обеими руками за!
Тогда как Вам такой набор классов и их отношения?
Человечек - Читатель
Lib - библиотека
BD - база книг
book - книга
Миниатюры
Книжная библиотека с читателями с++  
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 17:08
Ой, от BD к book другая стрелочка должна быть.
Закрашенная.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 17:10  [ТС]
GbaLog-, эмм, вроде все ясно и все устраивает
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 17:18
Цитата Сообщение от Andy_Shish Посмотреть сообщение
эмм, вроде все ясно и все устраивает
Так, с классами и их отношениями определились.
Теперь надо придумать, как Читатель будет хранить у себя книги.
BD может полностью отдать ему книгу, может дать указатель на эту книгу.
Также нужно придумать, как Читатель книгу будет возвращать.
Как будем определять, взята ли книга, ведь не бесконечность же их в библиотеке( а жаль, это здорово бы облегчило работу )?
Можем хранить отданные книги или указатели на них, можем пробегаться по всем Читателям и спрашивать у каждого, есть ли у него эта книга.
Так же нужно определить интерфейс классов( открытые методы ).
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 17:33  [ТС]
GbaLog-, я думаю, пусть BD полностью отдает книгу, т.е. в базе она уже находиться не будет, следовательно, если проверять взята книга или нет, можно по названию пройтись в BD, если совпадений нет, то книга взята

Добавлено через 10 минут
GbaLog-, по поводу методов я не знаю что сказать
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 17:34
Andy_Shish, Вот.
Такой интерфейс понятен?
Если нет, то вопросы задавайте.
А ещё лучше посмотрите, ничего я не забыл, а то потом исправление будет дорого стоить!
Code
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
Book
    public:
        get_name()
        get_author()
    private
        name
        author
        
operator<( Book, Book )
 
BDbook
    public:
        get_book( string name_book )
        add_book( Book book )
        contain( string name_book )
    private:
        set<Book> books( set - множество )
        
Reader
    public:
        get_books()
        add_book( Book book )
        get_book_by_name( string name_book )
        get_book_by_author( string name_author )
    private:
        set<Book> taken_books
        string name
        
enum e_act
{
    e_none,     // ничего не делать
    e_give,     // дать книгу читателю
    e_take,     // взять книгу у читателя
    e_register
}
        
Library
    public:
        request( Reader, e_act )
    private:
        BDbook BD
        vector<Reader> readers
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 17:42  [ТС]
Цитата Сообщение от GbaLog- Посмотреть сообщение
private:
set<Book> books( set - множество)
вот не ясно что в скобках и
Цитата Сообщение от GbaLog- Посмотреть сообщение
enum e_act
{
e_none, // ничего не делать
e_give, // дать книгу читателю
e_take, // взять книгу у читателя
e_register
}
Library
public:
request( Reader, e_act )
private:
BDbook BD
vector<Reader> readers
и вот тут что происходит с enum? это как меню действий в библиотеке?

Добавлено через 2 минуты
GbaLog-, ну вроде все на месте. Единственное что, это нужно чтобы данные о книгах, о читателях записывались в файл txt, и удалялись, чтобы это все конкретно в таком файле было, вот
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 17:44
Цитата Сообщение от Andy_Shish Посмотреть сообщение
вот не ясно что в скобках и
set - шаблонный класс, который хранит объекты типа, переданных в шаблон первым параметром.
Шаблонные параметры задаются треугольными скобками.
Конкретно в этом случае мы как бы говорим: создать множество, которое содержит объекты типа Book.
Цитата Сообщение от Andy_Shish Посмотреть сообщение
и вот тут что происходит с enum?
enum - перечисление, то есть мы будем посылать запрос и в функции request будет запрос обрабатываться.
Цитата Сообщение от Andy_Shish Посмотреть сообщение
это как меню действий в библиотеке?
Ага.

Добавлено через 1 минуту
Цитата Сообщение от Andy_Shish Посмотреть сообщение
Единственное что, это нужно чтобы данные о книгах, о читателях записывались в файл txt, и удалялись, чтобы это все конкретно в таком файле было, вот
Ну для этого же всё переписывать нужно, эх Вы. Требования сразу надо вырабатывать.
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 17:46  [ТС]
GbaLog-, ну тогда по этому поводу вопросов у меня больше нет...
Я не нашел того что вы могли бы забыть...

Добавлено через 1 минуту
GbaLog-, а я 3-им пунктом указывал про txt, но наверное плохо объяснил
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 17:52
Цитата Сообщение от Andy_Shish Посмотреть сообщение
а я 3-им пунктом указывал про txt, но наверное плохо объяснил
Тогда я готов за это взяться, только если у читателей заранее книг не будет, то есть будут книги отдельно, читатели отдельно!
0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 17:53  [ТС]
GbaLog-, хорошо, конечно
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
23.10.2016, 18:01
Цитата Сообщение от Andy_Shish Посмотреть сообщение
хорошо, конечно
Отлично! Тогда перерисовываем и переписываем.


Code
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
Book
    public:
        get_name()
        get_author()
    private
        name
        author
        
operator<( Book, Book )
 
BDbook
    public:
        get_book( string name_book )
        add_book( Book book )
        contain( string name_book )
        get_books_ref()
    private:
        set<Book> books( set - множество )
        
Reader
    public:
        get_books()
        add_book( Book book )
        get_book_by_name( string name_book )
        get_book_by_author( string name_author )
    private:
        set<Book> taken_books
        string name
        
IOfile
    public:
        static load_readers( set<Reader> readers, string name_file )
        static load_books( set<Book> books, string name_file )
    private:
        static load( set<T> cont, string name_file, bool is_reader )
        
enum e_act
{
    e_none,     // ничего не делать
    e_give,     // дать книгу читателю
    e_take,     // взять книгу у читателя
    e_register
}
        
Library
    public:
        request( Reader, e_act, string = "" )
    private:
        BDbook BD
        vector<Reader> readers

Не по теме:

P.S. Где все эксперты? Мне кажется, что я полную дичь делаю, но работать должна.

0
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 38
23.10.2016, 18:05  [ТС]
GbaLog-, так, по картинке все ясно!)
Цитата Сообщение от GbaLog- Посмотреть сообщение
IOfile
public:
static load_readers( set<Reader> readers, string name_file )
static load_books( set<Book> books, string name_file )
private:
static load( set<T> cont, string name_file, bool is_reader )
что вот тут, остальное с горем по полам понятно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2016, 18:05

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
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. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru