Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Лилия есть ряд моментов:
- 1) для класса phone_book использование в качестве поля статического массива - не самый лучший выбор, так как размер статических элементов должен быть заранее определен и не может меняться по ходу выполнения программы. Если вы хотите использовать статический массив, то можете просто удалить все конструкторы и деструктор и оставить прямую инициализацию полей, как у вас это и описано. Либо перейти на использование динамического массива в качестве поля класса. У структур, которые мы использовали в прошлых заданиях, просто не было конструкторов и методов, поэтому там можно было все делать на стеке.
- 2) во всех методах класса стоит удалить параметр phone_book & my_book так как эти методы уже вызываются из класса и им не надо указывать в качестве параметра к какому именно классу нужно обращаться, пример реализации метода:
- void AddAbonent(const char name[], const char home_phone[], const char work_phone[], const char mob_phone[]) {
- if (abonents_namber == max_abonents_nummber) {
- cout << "Абонент не может быть добавлен " << endl;
- return;
- }
- strcpy(lines[abonents_namber].name, name);
- strcpy(lines[abonents_namber].home_phone, home_phone);
- strcpy(lines[abonents_namber].work_phone, work_phone);
- strcpy(lines[abonents_namber].mob_phone, mob_phone);
- abonents_namber++;
- }
- 3) у вас по тексту проскакивает то "namber" то "nummber" лучше привести все к одному виду, например "number"
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include<clocale>
- #include<string.h>
- using namespace std;
- struct abonent {
- char name[50]{};
- char home_phone[15]{};
- char work_phone[15]{};
- char mob_phone[15]{};
- };
- class phone_book {
- //phone_book()
- public:
- //phone_book() : lines[]{},
- //phone_book(int max_abonents_number) : {}
- //phone_book(lines[], int abonents_number, int max_abonents_number) : {}
- void AddAbonent(phone_book& my_book, const char name[], const char home_phone[], const char work_phone[], const char mob_phone[]) {
- if (abonents_namber == max_abonents_nummber) {
- cout << "Абонент не может быть добавлен " << endl;
- return;
- }
- strcpy(my_book.abonents_namber[my_book.lines].name, name);
- strcpy(my_book.abonents_namber[my_book.lines].home_phone, home_phone);
- strcpy(my_book.abonents_namber[my_book.lines].work_phone, work_phone);
- strcpy(my_book.abonents_namber[my_book.lines].mob_phone, mob_phone);
- my_book.abonents_namber++;
- }
- void ShowAllAbonents(phone_book& my_book) {
- cout << "Вся моя телефонная книга: " << endl;
- for (int i = 0; i < my_book.abonents_namber; i++) {
- cout << '\"' << my_book.lines[i].name << "\", home_phone: " << my_book.lines[i].home_phone << ", work_phone: " << my_book.lines[i].work_phone << ", mob_phone: " << my_book.lines[i].mob_phone << endl;
- }
- cout << endl;
- }
- void DelAbonents(phone_book& my_book, const char name[]) {
- for (int i = 0; i < my_book.abonents_namber; i++) {
- if (!strcmp(my_book.lines[i].name, name)) {
- for (int j = i; j < my_book.abonents_namber - 1; j++) {
- my_book.lines[j] = my_book.lines[j + 1];
- }
- abonents_namber--;
- }
- }
- }
- void FindAbonentName(phone_book& my_book, const char name[]) {
- cout << "По вашему запросу найдено: " << endl;
- for (int i = 0; i < my_book.max_abonents_nummber; i++) {
- if (!strcmp(my_book.lines[i].name, name)) {
- cout << '\"' << my_book.lines[i].name << "\", home_phone: " << my_book.lines[i].home_phone << ", work_phone: " << my_book.lines[i].work_phone << ", mob_phone: " << my_book.lines[i].mob_phone << endl;
- }
- }
- cout << endl;
- }
- //~lines();
- private:
- abonent lines[100]{};
- int abonents_namber = 0;
- int max_abonents_nummber = 100;
- };
- int main()
- {
- setlocale(LC_ALL, "Russian");
- phone_book my_book;
- my_book.AddAbonent(my_book, "Ivan", "365963", "470047", "+79998765432");
- my_book.AddAbonent(my_book, "Petr", "658305", "385326", "+79148436633");
- my_book.AddAbonent(my_book, "Cidor", "250025", "230023", "+79248735505");
- my_book.AddAbonent(my_book, "Natasha", "252837", "370042", "+79245450568");
- my_book.AddAbonent(my_book, "Elena", "253131", "239223", "+79628737621");
- my_book.AddAbonent(my_book, "Olga", "360215", "230023", "+79243335505");
- my_book.ShowAllAbonents(my_book);
- my_book.DelAbonents(my_book, "Petr");
- my_book.ShowAllAbonents(my_book);
- my_book.FindAbonentName(my_book, "Elena");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement