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

Записная книжка и ООП

02.03.2022, 15:43. Показов 3395. Ответов 40
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите пожалуйста!только начинаю ООП хотелось бы понять как правильно оформлять код на примере записной книжки , хотел создать меню и ступор!

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
#include <iostream>
#include <fstream>
#include "InterFullName.h"
using namespace std;
//думал попробовать через ооп сделать не получаеться
MENU::MENU()
{
    cout << "Inter 1 or 2 : ";
    cin >> choice;
    switch (choice)
    {
    case 1:
        INTERFULLNAME();//это работает
    case 2:
        READ(INTERFULLNAME fullname);//на это ругается на аргументы
    default:
        break;
    }
}
 
INTERFULLNAME::INTERFULLNAME() {
 
    cout << "Inter Name: ";
    cin >> m_name;
 
    cout << "Inter surname: ";
    cin >> m_surname;
 
    cout << "Inter age: ";
    cin >> m_age;
 
    cout << "Inter weight: ";
    cin >> m_weight;
 
    cout << "Enter pone number (eleven signs): ";
    cin >> m_phone_number;
    cout << "\n";
 
    
}
 
void INTERFULLNAME::Print() {
 
    cout << "\t\tName and surname: " << m_name << " " << m_surname << ".\n\n" << "\n" << "Age: " << m_age << ".\n"
        << "Weight: " << m_weight << ".\n" << "Phone number: " << m_phone_number << ".\n";
    cout << "---------------------------\n\n";
}
 
WRITE::WRITE(INTERFULLNAME fullname) {
 
    fstream fs;
    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
 
    if (!fs.is_open())
        cout << "Ошибка открытия файла!\n";
    else {
        
        cout << "Фаил успешно открыт!\n";
 
        fs.write((char*)&fullname, sizeof(INTERFULLNAME));
    }
    fs.close();
 
}
 
READ::READ(INTERFULLNAME fullname) {//если убрать аргументы тут?
 
    fstream fs;
    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
 
    if (!fs.is_open())
 
        cout << "Ошибка открытия файла!\n";
    else {
 
        cout << "Фаил успешно открыт!\n";
        
        while (fs.read((char*)&fullname, sizeof(INTERFULLNAME))) {//то тут не видит fullname
 
            fullname.Print();
 
            cout << "\n";
        }
    }
    fs.close();
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2022, 15:43
Ответы с готовыми решениями:

Записная книжка
Доброго времени суток! Пожалуйста помогите решить задание на языке программирования C# Написать программу, которая вводит заглавную...

Записная книжка
Помогите, пожалуйста. В среде Microsoft Visual Studio создать проект WindowsFormApplication записная книжка «Notebook». Реализовать в...

Записная книжка
Всем привет! Хотел написать программу &quot;Записная книжка&quot; ну туда входят: Имя: textbox Фамилия: textbox1 Отчество: textbox2 E-Mail:...

40
2355 / 1842 / 756
Регистрация: 27.07.2012
Сообщений: 5,460
02.03.2022, 16:27 2
Всё не то и всё не так. Вы пытаетесь использовать классы как обычные функции, но это вообще не правильно. А чтобы узнать как правильно, нужно снова прочитать начальные главы про классы.
0
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
02.03.2022, 16:35  [ТС] 3
John Prick, вы наверно имеете ввиду конструкторы?
0
2355 / 1842 / 756
Регистрация: 27.07.2012
Сообщений: 5,460
02.03.2022, 16:45 4
Цитата Сообщение от aleksei22 Посмотреть сообщение
вы наверно имеете ввиду конструкторы?
Нет. Я имею в виду то, что и сказал.

В детали особо вдаваться нет смысла. Но если очень хочется..

Цитата Сообщение от aleksei22 Посмотреть сообщение
C++ Скопировано
1
INTERFULLNAME();//это работает
Работает, но абсолютно бессмысленно. Весь результат "исчезнет" после выхода из switch.
Цитата Сообщение от aleksei22 Посмотреть сообщение
C++ Скопировано
1
READ(INTERFULLNAME fullname);//на это ругается на аргументы
Понимаю, вы хотели передать аргументом fullname. но для этого его надо было бы объявить заранее:
C++ Скопировано
1
2
INTERFULLNAME fullname;
READ(fullname);
Однако и это бы у вас не заработало как надо. Можете так запустить ради интереса, возможно догадаетесь, о чём речь.
И опять же, если бы класс READ содержал какие-то внутренние данные, они были бы "потеряны" тут же после выполнения этого кода.
0
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
02.03.2022, 16:53  [ТС] 5
John Prick, спасибо

Добавлено через 4 минуты
John Prick, можно еще вопрос? конструкторы лучше использовать для каких целей?

Добавлено через 1 минуту
John Prick, как и классы
0
2355 / 1842 / 756
Регистрация: 27.07.2012
Сообщений: 5,460
02.03.2022, 17:11 6
Цитата Сообщение от aleksei22 Посмотреть сообщение
конструкторы лучше использовать для каких целей?
У конструктора есть только одна цель - создать объект. Объект уже используется для тех целей, для которых был предназначен класс этого объекта.

Добавлено через 12 минут
Цитата Сообщение от aleksei22 Посмотреть сообщение
как и классы
Класс в общем случае это совокупность неких данных и функций работы с ними. На примере меню могут быть классы отдельных пунктов меню и всего меню, которое содержит массив пунктов меню и функцию, которая свяжет выбор пользователя с конкретным пунктом.
1
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
02.03.2022, 17:19  [ТС] 7
John Prick, благодарю я понимаю очем вы спасибо!
0
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
08.03.2022, 14:40  [ТС] 8
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
#include <iostream>
#include <fstream>
#include "InterFullName.h"
using namespace std;
 
// Переделал,хотелось массивом оставил на потом.Пытаюсь зделать поиск из файла,Подскажите пожалуйста
Menu::Menu()
{
    Enterfullname fullname;
    Write write;
    Read read;
    Find find;
    
    cout << "enter number menu 1, 2, 3.\n " 
         << "1 : enter and write\n "
         << "2 : read all info\n "
         << "3 : find one\n";
    cin >> choice;
 
    switch (choice)
    {
    case 1:
 
        fullname.Enter_name_surname();
        fullname.Enter_age_weight();
        fullname.Enter_phon_number();
        write.Writef(fullname);
        break;
 
    case 2:
 
        read.Readf(fullname);
        break;
 
    case 3:
 
        find.Findf(fullname);
        break;
 
    default:
 
        cout << "Error!!! \n Do you thant enter again? yes-1 \n";
        cin >> choice;
 
        if (choice == 1)
            Menu();
        if (choice != 1)
            break;
        
            
    }
    
}
 
string Menu::Enterfullname::Enter_name_surname() {
    cout << "Inter Name: ";
    cin >> m_name;
 
    cout << "Inter surname: ";
    cin >> m_surname;
    return m_name, m_surname;
}
 
int Menu::Enterfullname::Enter_age_weight() {
 
    cout << "Inter age: ";
    cin >> m_age;
 
    cout << "Inter weight: ";
    cin >> m_weight;
 
    return 0;
}
 
long long Menu::Enterfullname::Enter_phon_number() {
    cout << "Enter pone number (eleven signs): ";
    cin >> m_phone_number;
    cout << "\n";
 
    return 0;
}
 
void Menu::Enterfullname::Print() {
 
    cout << "\t\tName and surname: " << m_name << " " << m_surname << ".\n\n" << "\n" << "Age: " << m_age << ".\n"
        << "Weight: " << m_weight << ".\n" << "Phone number: " << m_phone_number << ".\n";
    cout << "---------------------------\n\n"; 
}
 
void Menu::Write::Writef(Enterfullname fullname) {
 
    fstream fs;
    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
 
    if (!fs.is_open())
        cout << "Ошибка открытия файла!\n";
    else {
        
        cout << "Фаил успешно открыт!\n";
 
        fs.write((char*)&fullname, sizeof(Enterfullname));
    }
    fs.close();
 
}
 
void Menu::Read::Readf(Enterfullname fullname) {
 
    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
 
    if (!fs.is_open())
 
        cout << "Ошибка открытия файла!\n";
    else {
 
        cout << "Фаил успешно открыт!\n";
        
        while (fs.read((char*)&fullname, sizeof(Enterfullname))) {
 
            fullname.Print();
 
            cout << "\n";
        }
    }
    fs.close();
 
}
 
void Menu::Find::Findf(Enterfullname fullname)
{
    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
 
    if (!fs.is_open())
 
        cout << "Ошибка открытия файла!\n";
    else {
   
        cout << "Фаил успешно открыт!\n";
        cout << "Введите первую букву имени для поиска : ";
        cin >> find_letter;
        while (fs.get(ch)) {
 
            if (ch == find_letter)//выводит с нужного символа но!
            {
                while (fs.read((char*)&fullname, fs. eof())) {
                    string str;
                    fs >> str;
                    fullname.Print();//инициализация в принт остается первичной 
                    //вопрос? как считать из файла нужную часть записанного обьектa?
                                     
                    
                }
            }
            
        }
    }
    fs.close();
}
0
 Аватар для SmallEvil
3790 / 2716 / 765
Регистрация: 29.06.2020
Сообщений: 9,983
08.03.2022, 14:51 9
Цитата Сообщение от aleksei22 Посмотреть сообщение
John Prick, благодарю я понимаю очем вы спасибо!

не понимаете ...
0
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
08.03.2022, 15:02  [ТС] 10
SmallEvil, какие ошибки вы видите ?

Добавлено через 2 минуты
SmallEvil, уж лучше ничего не писать чем такое как вы

Добавлено через 1 минуту
SmallEvil, в любом случае спасибо
0
 Аватар для SmallEvil
3790 / 2716 / 765
Регистрация: 29.06.2020
Сообщений: 9,983
08.03.2022, 18:18 11
Цитата Сообщение от aleksei22 Посмотреть сообщение
SmallEvil, какие ошибки вы видите ?
В том то и проблема. Что не вижу вообще ничего. Кроме дров нарубленных сплеча.

aleksei22, Почему не приведен код с неполной реализацией классов ?
Как вам подсказать и объяснить что такое инкапсуляция, что такое состояния объекта и так далее ?
На примерах. Желательно на ваших. Но их то нету...
А гладить вашу простыню никто не станет.

Самого текста задания тоже нету, что бы хотя бы каркас вам написать.

Цитата Сообщение от aleksei22 Посмотреть сообщение
SmallEvil, уж лучше ничего не писать чем такое как вы
Ну вот никто ничего и не пишет.

Добавлено через 5 минут
aleksei22, если есть какая то книга или документация (может с вашего учебного заведения),
читайте про классы, с самого начала.

Если нету ничего, проходим курс по ликбезу :
Урок №113. Классы, Объекты и Методы

Рекомендую всю главу прочитать "Глава №8. Основы ООП в C++".
1
 Аватар для lemegeton
4890 / 2685 / 918
Регистрация: 29.11.2010
Сообщений: 5,772
08.03.2022, 19:11 12
Лучший ответ Сообщение было отмечено aleksei22 как решение

Решение

Цитата Сообщение от aleksei22 Посмотреть сообщение
как правильно оформлять код на примере записной книжки , хотел создать меню и ступор!
Как правильно ОФОРМЛЯТЬ код вам скажет преподаватель. Есть, конечно, некие традиции и правила хорошего тона, типа именовать переменные со смыслом, не "x", "a" или "c", а "notepad", "menu" или "name".
Но это всё лирика.

Цитата Сообщение от aleksei22 Посмотреть сообщение
хотел создать меню и ступор
Это потому, что вы ещё не научились видеть абстракции и ваше мышление немного не в ту сторону кренит.
Довольно быстро проходит, если программирование затягивает.
Если всерьез собираетесь заняться этим вопросом, отошлю вас к книжкам.

Вкратце, вам нужно сделать объекты вашей модели как можно более самостоятельными и независимыми.

Посмотрите пример ниже. Не абсолютно кошерно, но общее представление должно дать.

Обратите внимание, класс меню ничего не знает о классе ноутпада, а ноутпад ничего не знает про меню.
Соединяет их вызов из меню через функцию.

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
#include <iostream>
#include <functional>
 
struct MenuItem {
    std::string name;
    std::function<void()> callback;
};
 
class Menu {
public:
    Menu(const std::initializer_list<MenuItem> &items) : items(items) {}
    void draw() {
        std::size_t c = 1;
        for (const MenuItem &item : items) {
            std::cout << c << ") " << item.name << std::endl;
        }
    }
    bool accept(std::size_t selection) {
        if (selection > items.size()) {
            return false;
        }
        items[selection - 1].callback();
        return true;
    }
private:
    std::vector<MenuItem> items;
};
 
struct Notepad {
    void addRecord() {
        std::cout << "I did added record!" << std::endl;
    }
    void listRecords() {
        std::cout << "I did listed records!" << std::endl;
    }
};
 
int main() {
    Notepad notepad;
 
    Menu menu{
            {"Add record;", [&notepad]() { notepad.addRecord(); }},
            {"List records;", [&notepad]() { notepad.listRecords(); }}
    };
 
    std::size_t x;
    do {
        menu.draw();
        std::cout << "0) Exit." << std::endl << "Enter menu item: ";
        std::cin >> x;
        std::cout << std::endl << "You have entered " << x << "." << std::endl;
        if (x != 0) {
            if (!menu.accept(x)) {
                std::cout << "No such menu item number, please try again." << std::endl;
            }
        }
    } while (x != 0);
 
    return 0;
}
2
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
20.03.2022, 09:13  [ТС] 13
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
#include <iostream>
#include <string>
//#include <cstring>
#include <fstream>
#include <Windows.h>
#include "InterFullName.h"
using namespace std;
 
int main()
 {
    setlocale(0, "");
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    Menu menu;
    menu.Menuf();
    
    
    return 0;
 
}
 
#pragma once
#include <string>
using namespace std;
 
class Menu 
{
private:
 
    int m_choice = 0;
    
public:
    
    Menu();
    Menu(int choice);
    void Menuf();
    void Choicef();
    void exit();
};
 
class Enterfullname 
{
private:
 
    string m_name = " ";
    string m_surname = " ";
    int m_weight = 0;
    int m_age = 0;
    long long m_phone_number = 0;
    
public:
    
    Enterfullname();
    Enterfullname(string name, string surname, int weight, int age, long long phone_number);
    string Enter_name_surname();
    int Enter_age_weight();
    long long Enter_phon_number();
    void Printf();
};
 
class Write 
{
private:
 
    string file_txt = "full_info.txt";
 
public:
 
    void Writef(Enterfullname &fullname);
 
};
 
class Read
{
private:
 
    string file_txt = "full_info.txt";
    fstream fs;
public:
 
    void Readf(Enterfullname &fullname);
 
};
 
//class Find
//{
//private:
//    string file_txt = "full_info.txt";
//    fstream fs;
//    string m_find_letter = " ";
//    char m_ch = ' ';
//public:
//    Find();
//    Find(string find_letter, char ch);
//    void Findf(Enterfullname &fullname);
//};
 
#include <iostream>
#include <fstream>
#include "InterFullName.h"
using namespace std;
 
Menu::Menu(){}
 
Menu::Menu(int choice)
    : m_choice(choice){}
 
void Menu::Choicef()
{
    cout << "Will you whant enter one more time? : 1 , No : 2\n";
    cin >> m_choice;
    if (m_choice == 1)
        Menuf();
    else
    {
        void exit();
    }
}
 
void Menu::exit(){}
 
void Menu::Menuf()
{
    Enterfullname fullname;
    Write write;
    Read read;
    Find find;
    cout << "enter number menu 1, 2, 3.\n "
        << "1 : enter and write\n "
        << "2 : read all info\n "
        << "3 : find one\n";
    cin >> m_choice;
 
    switch (m_choice)
    {
    case 1:
        fullname.Enter_name_surname();
        fullname.Enter_age_weight();
        fullname.Enter_phon_number();
        write.Writef(fullname);
        Choicef();
        break;
 
    case 2:
        read.Readf(fullname);
        Choicef();
        break;
 
    case 3:
        //find.Findf(fullname);
        Choicef();
        break;
 
    default:
 
        cout << "Error!!! \n Do you thant enter again? yes-1 \n";
        cin >> m_choice;
        if (m_choice == 1)
            Menuf();
            if (m_choice != 1)
                break;
    }
}
 
void Enterfullname::Printf()
{
    cout << "\t\tName and surname: " << m_name << " " << m_surname << ".\n\n" << "\n" << "Age: " << m_age << ".\n"
        << "Weight: " << m_weight << ".\n" << "Phone number: " << m_phone_number << ".\n";
    cout << "---------------------------\n\n";
}
 
Enterfullname::Enterfullname() {}
 
Enterfullname::Enterfullname(string name, string surname, int weight, int age, long long phone_number)
 
    : m_name(name), m_surname(surname), m_weight(weight),
    m_age(age), m_phone_number(phone_number){}
 
string Enterfullname::Enter_name_surname() {
    cout << "Inter Name: ";
    cin >> m_name;
 
    cout << "Inter surname: ";
    cin >> m_surname;
    return m_name, m_surname;
}
 
 
int Enterfullname::Enter_age_weight() {
 
    cout << "Inter age: ";
    cin >> m_age;
 
    cout << "Inter weight: ";
    cin >> m_weight;
 
    return 0;
}
 
long long Enterfullname::Enter_phon_number() {
    cout << "Enter pone number (eleven signs): ";
    cin >> m_phone_number;
    cout << "\n";
 
    return 0;
}
 
 
void Write::Writef(Enterfullname &fullname) {
 
    fstream fs;
    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
 
    if (!fs.is_open())
        cout << "Ошибка открытия файла!\n";
    else {
        
        cout << "Фаил успешно открыт!\n";
 
        fs.write((char*)&fullname, sizeof(Enterfullname));
    }
    fs.close();
 
}
 
void Read::Readf(Enterfullname &fullname) {
   
    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
 
    if (!fs.is_open())
 
        cout << "Ошибка открытия файла!\n";
    else {
 
        cout << "Фаил успешно открыт!\n";
        
        while (fs.read((char*)&fullname, sizeof(Enterfullname))) {
 
            fullname.Printf();
 
            cout << "\n";
        }
    }
    fs.close();
 
}
 
//Find::Find(){}
//
//Find::Find(string find_letter, char ch)
//    : m_find_letter(find_letter), m_ch(ch){}
//
//void Find::Findf(Enterfullname &fullname)
//{
//    fs.open(file_txt, fstream::in | fstream::out | fstream::app);
//
//    if (!fs.is_open())
//
//        cout << "Ошибка открытия файла!\n";
//    else {
//   
//        cout << "Фаил успешно открыт!\n";
//        cout << "Введите первую букву имени для поиска : ";
//        cin >> m_find_letter;
//        //fs.seekg(5);
//        getline(fs, m_find_letter);
//        cout << m_find_letter << "\n";
//        //fullname.Printf();
//
//    }
//    fs.close();
//}
Добавлено через 9 минут
Здраствуйте парни ,переделал,жду критики. И у меня два вопроса к вам. 1й

enter number menu 1, 2, 3.
1 : enter and write
2 : read all info
3 : find one
2
Фаил успешно открыт!
Will you whant enter one more time? : 1 , No : 2
2

C:\Users\aleksei\source\repos\PoneBook\Debug\PoneBook.exe (процесс 9656) завершил работу с кодом -1073741819.
Нажмите любую клавишу, чтобы закрыть это окно…
почему ошибка? только при считывании



хочу сделать рандомный поиск но не пойму в txt кракозябры ума не приложу как конвертировать это?

Добавлено через 1 минуту
*Phone я знаю)))

Добавлено через 1 минуту
Цитата Сообщение от lemegeton Посмотреть сообщение
Как правильно ОФОРМЛЯТЬ код вам скажет преподаватель. Есть, конечно, некие традиции и правила хорошего тона, типа именовать переменные со смыслом, не "x", "a" или "c", а "notepad", "menu" или "name".
Но это всё лирика.
У меня нет преподавателя
0
фрилансер
 Аватар для Алексей1153
6327 / 5459 / 1108
Регистрация: 11.10.2019
Сообщений: 14,523
20.03.2022, 09:45 14
Цитата Сообщение от aleksei22 Посмотреть сообщение
У меня нет преподавателя
тогда, для начала, забудь про это (особенно в заголовках!)
Цитата Сообщение от aleksei22 Посмотреть сообщение
using namespace std;
- убирай из кода, указывай везде явноstd::

Цитата Сообщение от aleksei22 Посмотреть сообщение
void exit();
это для чего вдруг возникло?
кроме того, exit - такая функция уже есть в C++, но пользоваться ей не следует

Цитата Сообщение от aleksei22 Посмотреть сообщение
fs.write((char*)&fullname, sizeof(Enterfullname));
Цитата Сообщение от aleksei22 Посмотреть сообщение
while (fs.read((char*)&fullname, sizeof(Enterfullname))) {
-нельзя так читать сложные объекты.
1
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
20.03.2022, 09:51  [ТС] 15
Алексей1153, да я уж пожалел что не начал по простому через char[], про exit() cлышал тоже ,заменю.Спасибо!
0
фрилансер
 Аватар для Алексей1153
6327 / 5459 / 1108
Регистрация: 11.10.2019
Сообщений: 14,523
20.03.2022, 10:52 16
aleksei22, да лучше как раз со std::string, только сериализацию правильно нужно сделать
0
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
20.03.2022, 11:00  [ТС] 17
Алексей1153, ну да,отпадет лишняя писанина
0
 Аватар для lemegeton
4890 / 2685 / 918
Регистрация: 29.11.2010
Сообщений: 5,772
20.03.2022, 16:33 18
Цитата Сообщение от aleksei22 Посмотреть сообщение
У меня нет преподавателя
It's story time.

Чтоб программисты писали один код примерно одинаково, и не кровоточили глаза, толпы программистов придумывают штуки, называющиеся Code Style Guide -- документы, описывающие, как эта группа программистов считает правильным оформлять код.

Сколько существует компаний столько существует и Code Style Guide-ов.

Вот, на мой взгляд, десяток особо отличившихся на этом поприще:
ISO
Sutter & Stroustrup
ROS
LINUX
Google
Microsoft
CERN
GCC
ARM
LLVM

Кроме оформления, такие гайды еще имеют рекомендации по правильному написанию отдельных частей кода.

Пока у вас нет работодателя или преподавателя, диктующего вам стиль, попробуйте писать в каком-то одном из вышеприведённого списка.

На мой взгляд, самый читаемый стиль из вышеприведённых у ROS и LLVM, самыми нечитаемыми являются стили с венгерской нотацией, которая на мой взгляд бесполезна.

Но на вкус и цвет фломастеры разные. Посмотрите, попробуйте разное.
0
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
21.03.2022, 08:00  [ТС] 19
Парни подскажите пожалуйста. Как сделать private члены-класса одного класса доступными для другого и чтобы при выходе из области видимости метода одного класса не стирались сохранялись в другом. Это по ссылке& надо? в параметрах и аргументах метода?если можно маленький и простой примерчик.Всем спасибо!
0
фрилансер
 Аватар для Алексей1153
6327 / 5459 / 1108
Регистрация: 11.10.2019
Сообщений: 14,523
21.03.2022, 08:04 20
Цитата Сообщение от aleksei22 Посмотреть сообщение
Как сделать private члены-класса одного класса доступными для другого
сделать их public или использовать функцию, возвращающую их

Цитата Сообщение от aleksei22 Посмотреть сообщение
чтобы при выходе из области видимости метода одного класса не стирались сохранялись в другом
это - непонятный набор слов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2022, 08:04
Помогаю со студенческими работами здесь

Записная книжка
Здравствуйте дорогие форумчане! Я пытаюсь реализовать вот это задание Записная книжка. Написать простейшую записную книжку,...

Описать класс “записная книжка”
Подскажите, кто знает может. Описать класс “записная книжка”. Предусмотреть возможность работы с произвольным числом записей, поиска...

Описать класс записная книжка
Описать класс «записная книжка». Предусмотреть возможность работы с произ-вольным числом записей, поиска записи по какому-либо признаку...

Записная книжка (исправить код)
В чем ошибка программы? На форме надо сделать. Написание прописными буквами приравнивается к крику и считается дурным тоном поведения.

Записная книжка: Приложение должно содержать сведения о знакомых, коллегах и родственниках
Здравствуйте! Если не составит большого труда, помогите разработать приложение, обеспечивающее ввод, редактирование, удаление и поиск...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Создание и использование компонентов в Vue 3
Reangularity 14.03.2025
Компонент в Vue - это автономный блок интерфейса, который содержит собственную разметку, логику и стили. Представьте себе кнопку, форму ввода или даже целую панель навигации - всё это можно оформить. . .
Vue 3: Создаем современное веб-приложение с Composition API
Reangularity 14.03.2025
В фронтенд-разработке Vue 3 выделяется своим прагматичным подходом. В отличие от React с его минималистичной философией "всё — JavaScript" или Angular с его всеобъемлющим корпоративным подходом, Vue. . .
Разработка контекстных меню в iOS
mobDevWorks 14.03.2025
С приходом iOS 13 Apple представила новый API для контекстных меню, который полностью заменил предыдущую технологию 3D Touch peek & pop. Хотя многие разработчики и пользователи испытывают ностальгию. . .
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер