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

Задача о библиотеке

23.12.2014, 18:30. Показов 1958. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В библиотеке для каждого заказывающего книгу читателя заполняется карточка: фамилия, дата заказа, дата выдачи книги. Определить: 1) самый маленький срок, за который нашли книгу; 2) сколько заказов было не удовлетворено; 3) кто чаще всего берет книги;
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
#include <iostream>
#include <climits> //for INT_MAX
#include <map>
#include <string>
using namespace std;
 
struct Date {
    int d;
    int m;
    int y;
};
 
 
int isLeapYear(int n) { //високосный ли год
    int k = 0;
    if (n/4 == 0) k++;
    if (n/100 == 0) k--;
    if (n/400 == 0) k++;
    return k;
}
    
int daysInMonth(int year, int month) {//возвращает количество дней в месяцe
     switch (month) {
         case 1: return 31;
         case 2: if(isLeapYear(year)) return 29;
                 else return 28;
         case 3: return 31;
         case 4: return 30;
         case 5: return 31;
         case 6: return 30;
         case 7: return 31;
         case 8: return 31;
         case 9: return 30;
         case 10: return 31;
         case 11: return 30;
         case 12: return 31;
     }
}
         
 
int operator-(Date &d1, Date &d2) {
    int d1days = d1.y * 365 + d1.y/4 - d1.y/100 + d1.y/400 + d1.d;
    for (int i = 1; i <= d1.m; ++i)
        d1days += daysInMonth(d1.y,i);
 
    int d2days = d2.y * 365 + d2.y/4 - d2.y/100 + d2.y/400 + d2.d;
    for (int i = 1; i <= d2.m; ++i)
        d1days += daysInMonth(d2.y,i);
    
    return d1days - d2days;
}
    
 
 
istream& operator>>(istream & is, Date & dt) {//переопределяем оператор ввода, чтоб можно было сразу из cin считывать в экземпляр Date
    is >> dt.y >> dt.m >> dt.d;
}
 
struct Card {
    string surname;
    Date dateOfOrder;
    Date dateOfOutput;
};
 
int main() {
    Card temp;
    int n;
    cout << "Enter number of cards: ";
    cin >> n;
    int SmallestPeriod = INT_MAX;
    int NeUd = 0;
    map<string,int> readers;
    for (int i = 0; i< n; ++i)  {
        cout << "Enter surname(one word): ";
        cin >> temp.surname;
        cout << "Enter date of order(yyyy mm dd): ";
        cin >> temp.dateOfOrder;
        cout << "Enter date of book's output(yyyy mm dd) \nor 0 0 0, if order was not satisfied: ";
        cin >> temp.dateOfOutput;
 
        cin.get();
        if (temp.dateOfOutput.y ==  0) 
            NeUd++;
        else {
            int t = temp.dateOfOutput-temp.dateOfOrder;
            if (SmallestPeriod > t ) {
                SmallestPeriod = t;
            }
        }
        readers[temp.surname]++; //массив хранит пары (фамилия, количество Прочитанных Книг)
                
    }
 
    cout << "\n\n";
    cout << "1: " << SmallestPeriod << "days \n";
    cout << "2: " << NeUd << " orders not satisfied\n";
    
    map<string,int>::iterator it;
    string str;
    int max = 0;
    for (it = readers.begin(); it != readers.end(); ++it) {
        if (it->second > max) {
            max = it->second;
            str = it->first;
        }
    }
    cout << "3: " << str << " has taken " << max << " books \n";
}
Ругается на эту строчку, не могу понять в чем дело..
C++
1
2
3
istream& operator>>(istream & is, Date & dt) {//переопределяем оператор ввода, чтоб можно было сразу из cin считывать в экземпляр Date
    is >> dt.y >> dt.m >> dt.d;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2014, 18:30
Ответы с готовыми решениями:

Логическая задача про девочек в библиотеке.
Здравствуйте. Помогите пожалуйста с задачей: Меня хватило только на домены и предикаты, что же писать в clauses - не имею ни...

Задача: В библиотеке последний четверг каждого месяца - санитарный день
В библиотеке последний четверг каждого месяца - санитарный день. Дано число, обозначающее номер года. Определить для каждого месяца этого...

Задача "В библиотеке не хватает пяти книг." на Visual Prolog
Есть задача: В библиотеке не хватает пяти книг: - томика Жюля Верна; - романа Чарлза Диккенса; - сборника рассказов Жигмунда...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2014, 18:30
Помогаю со студенческими работами здесь

о библиотеке
очень много наслышан о данной библиотеке, читал что пишут в вики. Но не пойму все 2 вещи. В чем главное преимущество этой библиотеке, и...

Информация о библиотеке с++
Решил начать изучать с++ и для закрепления полученных знаний писать программу. Раньше изучал вб.нет и мне очень помогал этот сайт...

книги в библиотеке
Задание: Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат: -номер УДК; ...

О системной библиотеке.
Всем привет!Появилась проблема-при установке скаченной программы появляется надпись что системная библиотека user 32dill перемещена в...

Исключения в библиотеке
Всем привет. создаю свою библиотеку. в ней есть класс. в этом классе должно быть 2 массива одинаковой длинны, если пытаться создать объект...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru