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

Класс note (поля: фамилия, имя; номер телефона; день рождения; определить методы доступа к этим полям и перегруженные операции извлечения и вставки)

27.05.2013, 14:39. Показов 2094. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача
Определить класс с именем NOTE, содержащий следующие поля:
фамилия, имя;
номер телефона;
день рождения (массив из трех чисел).
Определить методы доступа к этим полям и перегруженные операции извлечения
и вставки для объектов типа NOTE.
2. Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми объектов типа
NOTE; записи должны быть упорядочены по трем первым цифрам номера
телефона;
вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
если такого нет, выдать на дисплей соответствующее сообщение.

поиск не работает и не пойму почему( мб кто нить поможет допилить? остальное работает..

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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include <stdafx.h>
#include <iostream>
#include <iomanip>
using namespace std;
 
const int l_name = 30; int a[8], b[8];
class NOTE {
public:
    NOTE(int lName = 30);
    ~NOTE();
    int GetInt(istream&);           // Ввод целого числа
    int GetPay() const;
    int GetPay0() const;
    int GetPay1() const;
    int GetPay2() 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(char);
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++)
    a[i]=(pNOTE + i)->GetPay2()*10000+(pNOTE + i)->GetPay1()*100+(pNOTE + i)->GetPay0();//формируем дату в виде одного числа
    
    for (int i = 0; i < nRecords; i++)
        b[i]=a[i];
                       
    int temp=0;                        //сортировка пузырьком      
    for (int i=1;  i<nRecords  ;  i++)            
        for (int j=0;  j<nRecords-i;  j++)    
            if (b [j]>b [j+1]){     
                temp=b[j];           
                b [j]=b [j+1];    
                b[j+1]=temp;
            }
 
    for (int i = 0; i < nRecords; i++)
    for (int j = 0; j < nRecords; j++)
        if (b[i]==a[j]) cout << *(pNOTE + j);                          
}
 
void DBase::SearchPayNotLess(char numer) {
    bool not_found = true;
    for (int i = 0; i < nRecords; i++)
        if ((pNOTE + i)->pName == "aa") {
            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; }
int NOTE::GetPay() const { return numer; }
int NOTE::GetPay0() const { return year[0]; }
int NOTE::GetPay1() const { return year[1]; }
int NOTE::GetPay2() const { return year[2]; }
// Операция извлечения (ввода)
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 = 1;
    
    double any_pay;
    char* fam;
    fam="aa";
    DBase dBase(nRecord);
    dBase.InitInput();
    dBase.Show();
 
    cout << "Ввод данных завершен." << endl;
    cout << "=================================================" << endl;
    cout << "Поиск сотрудников по фамилии." << endl;
    cout << "Поиск завершается при вводе -1." << endl;
 
    while (true) {
        cout << "\nФамилия или -1: "; 
        scanf("%s", fam);
        if (fam == "-1")   break;
        dBase.SearchPayNotLess(*fam);
    }
 
 
 
    
 return 0;
}
///////////////////////////////////////////////////////////
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 14:39
Ответы с готовыми решениями:

Описать структуру NOTE, содержащую следующие поля: фамилия, имя, номер телефона
1. Описать структуру NOTE, содержащую следующие поля: фамилия, имя, номер телефона. 2. Написать...

Программа не работает (описать класс с именем NOTE (фамилия и инициалы; номер телефона; дата рождения))
Задание: Описать класс, объявить массив из 10 объектов. Написать программу в которой обеспечить...

Описать структуру с именем NOTE, с полями: фамилия, номер телефона, год рождения. Ввести несколько структур.
Помогите пожайлуйста 1. Описать структуру с именем NOTE, с полями: фамилия, номер телефона, год...

Структура: Описать запись с именем Note, содержащую следующие поля: фамилия, имя; номер телефона; день рождения...
Описать запись с именем Note, содержащую следующие поля: фамилия, имя; номер телефона; день...

0
27.05.2013, 14:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2013, 14:39
Помогаю со студенческими работами здесь

Описать запись с именем NOTE, содержащую следующие поля: фамилия, имя, номер телефона, дата рождения
Описать запись с именем NOTE, содержащую следующие поля: фамилия, имя, номер телефона, дата...

Определить класс с именем NOTE, содержащий имя, фамилию, номер телефона и дату рождения
Описать структуру с именем NOTE, содержащую следующие поля: • фамилия, имя; • номер телефона; •...

Определить класс с именем NOTE, содержащий имя, фамилию, номер телефона и дату рождения
1. Определить класс с именем NOTE, содержащий следующие поля: - фамилия, имя; - номер телефона;...

Определить класс "Пациент", предусмотрев в нем данные: фамилия, имя, год рождения, номер телефона
Здравствуйте! У меня возникли сложности с таким вопросом: Определить класс &quot;Пациент&quot;, предусмотрев...


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

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