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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lenoch_ka
0 / 0 / 0
Регистрация: 30.03.2013
Сообщений: 7
#1

Упорядочить по дате рождения - C++

15.05.2013, 18:03. Просмотров 587. Ответов 0
Метки нет (Все метки)

Помогите упорядочить записи по дате рождения!!!
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
#include <iostream>
#include <iomanip>
using namespace std;
 
const int l_name = 30;
class NOTE {
public:
    NOTE(int lName = 30);
    ~NOTE();
    int GetInt(istream&);           // Ввод целого числа
    double GetPay() const;
    // Операция извлечения (ввода)
    friend istream& operator >>(istream&, NOTE&);
    // Операция вставки (вывода)
    friend ostream& operator <<(ostream&, NOTE&);
 
private:
    char* pName;
    int numer;
    int year[3]; 
    
};
class DBase {
public:
    DBase(int);
    ~DBase();
    void InitInput();
    void Show();
    void SearchPayNotLess(double);
private:
    NOTE* pNOTE;
    int nRecords;
};
// ---------------------------- ввод целого числа
int GetInt(istream& in) {
    int value;
    while (true) {
        in >> value;                                  
        if (in.peek() == '\n') {                          
            in.get();                                 
            break;
        }
        else {
            cout << "Повторите ввод (ожидается целое число):"
                << endl;                              
            in.clear();                               
            while (in.get() != '\n') {};                  
        }
    }
    return value;
}
 
DBase::DBase(int nRec) : nRecords(nRec),
pNOTE(new NOTE[nRec]) {}
DBase::~DBase() { if (pNOTE) delete [] pNOTE; }
 
void DBase::InitInput() { 
    for (int i = 0; i < nRecords; i++)
        cin >> *(pNOTE + i);                           
}
 
void DBase::Show() { 
    cout << "================================" << endl;
    cout << "Содержимое базы данных:" << endl;
    for (int i = 0; i < nRecords; i++)
        cout << *(pNOTE + i);                          
}
 
void DBase::SearchPayNotLess(double numer) {
    bool not_found = true;
    for (int i = 0; i < nRecords; i++)
        if ((pNOTE + i)->GetPay() == numer) {
            cout << *(pNOTE + i);
            not_found = false;
        }
    if (not_found) cout << "Таких сотрудников нет." << endl;
}
 
 
NOTE::NOTE(int lName) { pName = new char[lName + 1]; }
NOTE::~NOTE() { if (pName) delete [] pName; }
double NOTE::GetPay() const { return numer; }
 
// Операция извлечения (ввода)
istream& operator >> (istream& in, NOTE& ob) {
    cout << "\nВведите данные в формате" << endl;
    cout << "Фамилия И.О. <Enter> Номер телефона <Enter>"<< endl;
    in.getline(ob.pName, l_name);
    ob.numer = GetInt(in);
    cout << " Дата рождения :" << endl;
    cout << " День рождения <Enter>  Месяц рождения <Enter> Год рождения <Enter>:" << endl;
    ob.year[0] = GetInt(in);  
    ob.year[1] = GetInt(in);
    ob.year[2] = GetInt(in);
                              
    return in;
}
 
// Операция вставки (вывода)
ostream& operator << (ostream& out, NOTE& ob) {
    out << setw(30) << setiosflags(ios::left);
    out << ob.pName << "  ";
    out << ob.numer << "  ";
    out << ob.year[0]<<"." << ob.year[1]<<"."<< ob.year[2] <<endl;
    return out;
}
 
 
///////////////////////////////////////////////////////////
 
 
 
int main() {
    setlocale(LC_ALL, "rus");
    const int nRecord = 3;
    
    double any_pay;
 
    DBase dBase(nRecord);
    dBase.InitInput();
    dBase.Show();
 
    cout << "Ввод данных завершен." << endl;
    cout << "=================================================" << endl;
    cout << "Поиск сотрудников, чей номер телефона совпадает с введенным с клавиатуры." << endl;
    cout << "Поиск завершается при вводе -1." << endl;
 
    while (true) {
        cout << "\nВведите номер телефона или -1: "; 
        any_pay = GetInt(cin);
        if (any_pay == -1)   break;
        dBase.SearchPayNotLess(any_pay);
    }
 return 0;
}
///////////////////////////////////////////////////////////
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 18:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить по дате рождения (C++):

По дате рождения и сегодняшней дате посчитать количество прожитых часов (используя классы) - C++
С помощью классов,создать программу, которая считает сколько часов вы прожили. Вводим дату рождения и сегодняшнюю дату,программа должна...

По дате рождения определить возраст - C++
Доброго дня, я новичок в С++ и на вашем форуме тоже. НЕ получается одолеть эту программу: Необходимо написать функцию MyAge Параметр...

Сортировка студентов по дате рождения - C++
Всем привет. Нужно сортировать студентов по дате рождения. Вот мой код. Че то не получается #include &lt;iostream&gt; #include...

Сортировка по дате рождения данных в классе - C++
В классе хочу отсортировать людей по дням, месяцам и годам рождения сразу, но получается только что-то одно. Т.е. вот данные: Oleg...

Сортировка списка студентов по дате рождения (файл) - C++
Очень нужна помощь умельцев. Помогите пожалуйста отсортировать по дате рождения. На этом примере идет сортировка по году, а мне нужно по...

Функция проверки возраста по дате рождения из string - C++
Здравствуйте, есть строка вида: Имя День Месяц Год Valera 15 6 1987 Задача состоит в том чтобы написать функцию для проверка...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 18:03
Привет! Вот еще темы с ответами:

Нужно сделать сортировку по дате рождения, по убыванию - C++
Надо отсортировать по дате рождения Всю голову сломал то тут ошибка то там #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Найти самого младшего студента по полной дате рождения - C++
Дан массив, содержащий сведения о студентах группы: фамилия, имя, от- чество, дата рождения (день, месяц, год). Найти самого младшего...

Программа, которая будет сортировать студентов по дате рождения (убывание) - C++
Язык С++ или С. Считывание списков студентов с файла.

Разработать функцию для упорядочивания элементов структуры Girls по дате рождения - C++
Разработать структуру Girls, содержащую поля: -фамилия и имя; -номер телефона; -дата рождения (массив из трех чисел). -цвет волос...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru