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

Добавить функции в класс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строка: вставить пробел перед каждой заглавной буквой http://www.cyberforum.ru/cpp-beginners/thread615667.html
Вводится строчка, например, HaveaNiceDay. Нужно чтобы выводилось Havea Nice Day, то есть перед заглавной буквой ставится пробел. Как вставить пробел в принципе понятно, но как сдвинуть вправо на один? Если можно - не кодом, а словами, буду благодарен. #include <iostream> #include <cstring> #include <cstdio> using namespace std;
C++ Улучшение алгоритма подсчета строк, букв, слов Данный алгоритм, компилируется. Однако есть недочеты: 1. Не всегда верно считает буквы. Почему не очень понимаю. 2. Два спейса считает как слово. Надо как то включить с логически и (&&) чтобы слово он считал как спейс + хотя бы одна бука из алфовита, так вот я не знаю как это прописать типа 'a-z' && 'A-Z' как то так что ли ? Заранее огромное спасибо. #include <iostream> using... http://www.cyberforum.ru/cpp-beginners/thread615658.html
Кто-нибудь может переделать задачу со структур на классы? C++
Огромное спасибо, кто откликнется. #include <stdio.h> #include <string.h> main() { struct ZNAK {
Вычислить сумму чисел, порядковые номера которых являются числами Фибоначчи. C++
Всем привет! помогите с задачкой! заранее спасибо.! Вычислить сумму чисел, порядковые номера которых являются числами Фибоначчи.
C++ Циклы, подскажите пожалуста http://www.cyberforum.ru/cpp-beginners/thread615592.html
По условию задачи нужно вычислить выражение, при вводе необходимых данных с клавиатуры. Задача выглядит следующим образом Дан корень, по корнем единица корень третей степени из двух плюс корень n-ой степени из n и т.д т.е это (n+(n1)^(n1+1)\2))^n\2 ... и т.д Вот такое решение я нашёл: #include "stdafx.h" #include <stdio.h> #include <math.h>
C++ Сортировка слов в строке в лексикографическом порядке (по алфавиту) Как отсортировать слова в строке в лексикографическом порядке (по алфавиту)?Помогите , пожалуйста. подробнее

Показать сообщение отдельно
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
29.06.2012, 16:07     Добавить функции в класс
Вот так примерно надо:
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
163
164
165
166
167
168
169
170
171
172
// ---------------------------------------------------------------------------
struct date {
    int day;
    char month[10];
    int year;
};
class Student {
public:
    char *fam;
    char *name;
    int contact;
    date br;
 
    Student( ) {
        fam = new char[20];
        name = new char[20];
        contact = 0;
    }
    void Info( ) {
        bool wrong = true;
        while ( wrong ) {
            cout << "Введите фамилию:\n";
            cin >> fam;
            cout << "Введите имя:\n";
            cin >> name;
            wrong = false;
            for ( size_t i = 0; i < 20; ( isdigit( fam[i] ) || isdigit( name[i] ) ) ? wrong = true : true, i++ );
            if ( wrong ) {
                cout << "В имени и фамилии не должно быть цифр и баста. \n";
            }
        }
        cout << "Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:\n";
        cin >> br.day;
        cin >> br.month;
        cin >> br.year;
        cout << "Введите номер телефона:\n";
        cin >> contact;
    }
    void show( ) {
        cout << "фамилия:\t" << fam << endl;
        cout << "имя:\t\t" << name << endl;
        cout << "дата рождения:\t" << br.day << "/" << br.month << "/" << br.year << endl;
        cout << "телефон:\t" << contact << endl;
    }
    ~Student( ) {
        delete[]fam;
        delete[]name;
    }
};
class Group {
private:
    char *Name;
    char *Specializ;
public:
    int stud_amount;
    Student st[30];
    Group( ) {
        Name = new char[25];
        Specializ = new char[25];
    }
    void Info_gr( ) {
        cout << "Введите имя группы:\n";
        cin >> Name;
        cout << "Введите специальность:\n";
        cin >> Specializ;
        cout << "Введите количество студентов в группе:\n";
        cin >> stud_amount;
    }
    void Show_gr( ) {
        cout << "имя группы::\t" << Name << endl;
        cout << "специальность:\t" << Specializ << endl;
    }
    bool edit_student( const char *_one ) {
        bool found = false;
        for ( size_t i = 0; i < stud_amount; i++ ) {
            if ( ! strcmp( st[i].fam, _one ) ) {
                st[i].Info( );
                found = true;
                break;
            }
        }
        return found;
    }
    ~Group( ) {
        delete[]Name;
        delete[]Specializ;
    }
};
// ---------------------------------------------------------------------------
void poisk( char *NAME, Group *poisk ) {
    bool found = false;
    for ( int i = 0; i < poisk->stud_amount; i++ ) {
        if ( stricmp( NAME, poisk->st[i].fam ) == 0 ) {
            poisk->st[i].show( );
            poisk->Show_gr( );
            found = true;
            break;
        }
    }
    if ( !found ) {
        cout << "error";
    }
}
// ---------------------------------------------------------------------------
int _tmain( int argc, _TCHAR *argv[] ) {
    // std::locale::global( std::locale( "" ) );
    SetConsoleOutputCP( 1251 );
    SetConsoleCP( 1251 );
 
    //////////////////////////////////////
    int n = 0, temp;
    char *fam1 = new char[20];
    Group *gr = NULL;
 
    do {
        cout << " 1-создать список студентов \n 2-показать список \n 3-добавить студента"
                       " \n 4- удалить студента \n 5-поиск по фамилии\n"
                       " 6-редактировать данные студента\n 0-выход\n";
        cin >> n;
        int size;
        switch ( n ) {
        case 1:
            if ( gr ) {
                delete gr;
            }
            gr = new Group( );
            gr->Info_gr( );
            for ( int i = 0; i < gr->stud_amount; cout << "Студент " << i + 1 << endl, gr->st[i++].Info( ) );
            break;
        case 2:
            for ( int i = 0; i < gr->stud_amount; i++ ) {
                cout << "Студент N" << i + 1 << "\n";
                gr->st[i].show( );
                gr->Show_gr( );
            }
            break;
        case 3:
            cout << "Введите количество студентов которое необходимо добавить " << endl;
            cin >> temp;
            gr->stud_amount += temp;
            for ( int i = gr->stud_amount - temp; i < gr->stud_amount; gr->st[i++].Info( ) );
            break;
        case 4:
            cout << "Удалить студента N " << endl;
            cin >> temp;
            gr->stud_amount--;
            for ( int i = temp - 1; i < gr->stud_amount; gr->st[i++] = gr->st[i + 1] );
            break;
        case 5:
            cout << "Введите фамилию для поиска" << endl;
            cin >> fam1;
            poisk( fam1, gr );
            break;
        case 6:
            cout << "Введите фамилию для редактирования" << endl;
            cin >> fam1;
            if ( !gr->edit_student( fam1 ) ) {
                cout << "нет такого";
            }
            break;
        }
    }
    while ( n != 0 );
    if ( gr ) {
        delete gr;
    }
    delete fam1;
    //////////////////////////////////////
    system( "pause" );
    return 0;
}
// ---------------------------------------------------------------------------
Далеко не идеал в плане архитектуры - так, допинал малость. И не обращай внимания на другую функцию main - у меня другой компилятор.
Вот лог работы:
Код
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
1
Введите имя группы:
группа
Введите специальность:
спец
Введите количество студентов в группе:
3
Студент 1
Введите фамилию:
иванов
Введите имя:
ваня
Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:
12
мая
1988
Введите номер телефона:
121988
Студент 2
Введите фамилию:
козлов
Введите имя:
андрей
Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:
25
апреля
1986
Введите номер телефона:
251986
Студент 3
Введите фамилию:
орлов
Введите имя:
александр
Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:
14
января
1989
Введите номер телефона:
141989
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
2
Студент N1
фамилия:        иванов
имя:            ваня
дата рождения:  12/мая/1988
телефон:        121988
имя группы::    группа
специальность:  спец
Студент N2
фамилия:        козлов
имя:            андрей
дата рождения:  25/апреля/1986
телефон:        251986
имя группы::    группа
специальность:  спец
Студент N3
фамилия:        орлов
имя:            александр
дата рождения:  14/января/1989
телефон:        141989
имя группы::    группа
специальность:  спец
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
3
Введите количество студентов которое необходимо добавить
1
Введите фамилию:
молодой
Введите имя:
саня
Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:
30
июня
1993
Введите номер телефона:
301993
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
2
Студент N1
фамилия:        иванов
имя:            ваня
дата рождения:  12/мая/1988
телефон:        121988
имя группы::    группа
специальность:  спец
Студент N2
фамилия:        козлов
имя:            андрей
дата рождения:  25/апреля/1986
телефон:        251986
имя группы::    группа
специальность:  спец
Студент N3
фамилия:        орлов
имя:            александр
дата рождения:  14/января/1989
телефон:        141989
имя группы::    группа
специальность:  спец
Студент N4
фамилия:        молодой
имя:            саня
дата рождения:  30/июня/1993
телефон:        301993
имя группы::    группа
специальность:  спец
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
4
Удалить студента N
2
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
2
Студент N1
фамилия:        иванов
имя:            ваня
дата рождения:  12/мая/1988
телефон:        121988
имя группы::    группа
специальность:  спец
Студент N2
фамилия:        орлов
имя:            александр
дата рождения:  14/января/1989
телефон:        141989
имя группы::    группа
специальность:  спец
Студент N3
фамилия:        молодой
имя:            саня
дата рождения:  30/июня/1993
телефон:        301993
имя группы::    группа
специальность:  спец
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
6
Введите фамилию для редактирования
молодой
Введите фамилию:
бодрый
Введите имя:
вася
Введите дату в формате 00 (ENTER)/месяц(ENTER)/0000:
11
декабря
1992
Введите номер телефона:
111992
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
2
Студент N1
фамилия:        иванов
имя:            ваня
дата рождения:  12/мая/1988
телефон:        121988
имя группы::    группа
специальность:  спец
Студент N2
фамилия:        орлов
имя:            александр
дата рождения:  14/января/1989
телефон:        141989
имя группы::    группа
специальность:  спец
Студент N3
фамилия:        бодрый
имя:            вася
дата рождения:  11/декабря/1992
телефон:        111992
имя группы::    группа
специальность:  спец
 1-создать список студентов
 2-показать список
 3-добавить студента
 4- удалить студента
 5-поиск по фамилии
 6-редактировать данные студента
 0-выход
 
Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru