Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 9
1

Поиск элементов в "Записной книжке"

03.10.2014, 12:59. Просмотров 1024. Ответов 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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <locale>
#include<Windows.h>
 
 
using namespace std;
 
struct Person
{
    char first_name[15];
    char last_name[15];
    char tel[20];
};
void menu(Person*person, int size);
void func(Person*person,int size);
void pokaz(Person*person, int size);
int find(Person*person, int size);
 
void main()
{
 
    
    int size=0;
 
    Person* person = new Person[size];
    
        cout << "Skolrj 4el v zapisnoi knige? " << "\n";
        cin >> size;
    
    func(person, size);
    menu(person, size);
    
 
 
}
void func(Person*person, int size)
{
    for (int i = 0; i < size; i++)
    {
        cout << "Ferst name " << i + 1 << "-go abonenta" << "\n";
        cin >> person[i].first_name;
        cout << "Last name " << i + 1 << "-go abonenta" << "\n";
        cin >> person[i].last_name;
        cout << "Phone namber " << i + 1 << "-go abonenta" << "\n";
        cin >> person[i].tel;
        cout << "------------------------------------" << "\n";
    }
}
void pokaz(Person*person, int size)
{
    for (int i = 0; i<size; i++)
    {
    cout << person[i].first_name << " --- " << person[i].last_name << " --- " << person[i].tel << endl;
 
    }
}
 
void menu(Person*person, int size)
{
    char num;
    cout << "Vuberete odin iz punktov menu : " << endl;
    cout << "Najmite 1 dlya pokaza tel knigi " << endl;
    cout << "Najmite 2 dlya poiska tel knigi " << endl;
    cin >> num;
    switch (num)
    {
    case '1':
        pokaz(person, size);
        break;
    case '2':
        find(person, size);
        break;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2014, 12:59
Ответы с готовыми решениями:

Найти в записной книжке телефон по фамилии
5 В записной книжке указаны фамилии и номера телефонов 30-ти человек. Составить программу которая...

Структуры в С++. Определить, есть ли информация в записной книжке.
7. В записной книжке указаны фамилии и номера телефонов 10 человек. Определить, есть ли в записной...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

Класс "Телефонная книга". Дописать методы, "поиск" и "удаления" абонента
Вот код класса, который должен предоставьте пользователю возможность добавлять новых абонентов,...

8
307 / 280 / 200
Регистрация: 21.02.2013
Сообщений: 672
03.10.2014, 18:05 2
Цитата Сообщение от IMD-MAN Посмотреть сообщение
int size=0; Person* person = new Person[size];
здесь сразу видно что память не выделяете
0
186 / 174 / 111
Регистрация: 22.06.2009
Сообщений: 533
03.10.2014, 20:08 3
Лучший ответ Сообщение было отмечено IMD-MAN как решение

Решение

как то так
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
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <locale>
#include<Windows.h>
 
 
using namespace std;
 
struct Person
{
    char first_name[15];
    char last_name[15];
    char tel[20];
};
void menu(Person *person, int size);
void func(Person *person,int size);
void pokaz(Person *person, int size);
void find(Person *person, int size);
 
int main()
{
 
    
                int size=0;
        cout << "Skolrj 4el v zapisnoi knige? " << "\n";
        cin >> size;
                Person* person = new Person[size];
 
    func(person, size);
        menu(person, size);
        system("pause");
        return 0;
 
}
void func(Person*person, int size)
{
    for (int i = 0; i < size; i++)
        {
        cout << "Ferst name " << i + 1 << "-go abonenta" << "\n";
        cin >> person[i].first_name;
        cout << "Last name " << i + 1 << "-go abonenta" << "\n";
        cin >> person[i].last_name;
        cout << "Phone namber " << i + 1 << "-go abonenta" << "\n";
                cin >> person[i].tel;
        cout << "------------------------------------" << "\n";
        }
}
void pokaz(Person*person, int size)
{
        for (int i = 0; i<size; i++)
        {
        cout << person[i].first_name << " --- " << person[i].last_name << " --- " << person[i].tel << endl;
 
        }
}
void find(Person *person, int size)
{
 char fnd[80];
 do{
 cout<<"q - exit\n";
 delete [] fnd;
 cin >> fnd;
    for (int i = 0; i<size; i++){
        if(!strcmp(person[i].first_name,fnd)
        || !strcmp(person[i].last_name,fnd)
        || !strcmp(person[i].tel,fnd))
        {
            cout << person[i].first_name <<
             " --- " << person[i].last_name <<
                 " --- " << person[i].tel << endl;
 
        }
        else cout<<"not found\n";
    }
 }while(strcmp("q",fnd));
}
void menu(Person *person, int size)
{
 
    char num;
    cout << "Vuberete odin iz punktov menu : " << endl;
    cout << "Najmite 1 dlya pokaza tel knigi " << endl;
    cout << "Najmite 2 dlya poiska tel knigi " << endl;
    cin >> num;
    switch (num)
    {
    case '1':
        pokaz(person, size);
        break;
    case '2':
                find(person, size);
        break;
    }
}
1
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 9
03.10.2014, 20:16  [ТС] 4
К сожалению выкидывает ошибку
0
Миниатюры
Поиск элементов в "Записной книжке"  
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29932 / 19678 / 7695
Регистрация: 22.10.2011
Сообщений: 34,306
Записей в блоге: 6
03.10.2014, 20:31 5
63 строка там на что?

Без нее ничего никуда не вылетает, нормально ищет.
1
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 9
03.10.2014, 20:36  [ТС] 6
UI, Да, без нее все работает. Спасибо огромное
0
186 / 174 / 111
Регистрация: 22.06.2009
Сообщений: 533
03.10.2014, 20:37 7
да, 63 ненужна.. у меня борланд 3.1 там не тривиально..
1
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 9
03.10.2014, 20:37  [ТС] 8
worldown, Спасибо за помощь
0
186 / 174 / 111
Регистрация: 22.06.2009
Сообщений: 533
03.10.2014, 20:45 9
да не за что...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2014, 20:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...

Поиск средней арифметической суммы одинаковых элементов "массива."
Поиск средней арифметической суммы одинаковых элементов &quot;массива.&quot; Нужно найти одинаковые элементы...

Дан массив из "n" элементов.Выполнить добавление элементов "k" в конец массива
Вот начало,а дальше не знаю как { setlocale(LC_ALL, &quot;Russian&quot;); int n; // кол-во элементов...


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

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

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