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

При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
unbelievable
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 79
28.10.2011, 20:58     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #1
Создать телефонный справочник на 10 имен, адресов и номеров. При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. Не могу что-то разобраться


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
#include <iostream>
#include <cstdio>
 
 
 
using namespace std;
 
int main()
{
    int numbers[10];
    char* surnames[10];
    char* adresses[10];
    char str;
    int a, t, n;
 
 
    numbers[0] = 958611362;
    numbers[1] = 509509882;
    numbers[2] = 669010500;
    numbers[3] = 502615062;
    numbers[4] = 951513451;
    numbers[5] = 505009237;
    numbers[6] = 956256107;
    numbers[7] = 314142212;
    numbers[8] = 314124968;
    numbers[9] = 314142380;
 
    surnames[0] = "Illya Sklyarov";
    surnames[1] = "Anatoliy Poloskov";
    surnames[2] = "Tolik Poloskov";
    surnames[3] = "Goarik Gabrelyan";
    surnames[4] = "Oksana Sklyarova";
    surnames[5] = "Igor Sklyarov";
    surnames[6] = "Zeykan Rostislav";
    surnames[7] = "My home";
    surnames[8] = "Grandmother";
    surnames[9] = "Poloskov Home";
 
    adresses[0] = "Vereshmarti street, 18";
    adresses[1] = "Tinodi street, 37";
    adresses[2] = "Tinodi street, 37";
    adresses[3] = "Velyka Bakta village, Parkova street, 15";
    adresses[4] = "Vereshmarti street, 18";
    adresses[5] = "Vereshmarti street, 18";
    adresses[6] = "Vereshmarti street, 25";
    adresses[7] = "Vereshmarti street, 18";
    adresses[8] = "Shevchenko street, 114/2";
    adresses[9] = "Tinodi street, 37";
 
 
    cout << "Enter number or press 0 if ypu want to find an abonent by name:" << endl;
    cin >> t;
    if (t == numbers[0])
    cout << surnames[0] << " \t" << adresses[0] <<" \t" << t << endl;
    else if (t == numbers[1])
    cout << surnames[1] << " \t" << adresses[1] <<" \t" << t << endl;
    else if (t == numbers[2])
    cout << surnames[2] << " \t" << adresses[2] <<" \t" << t << endl;
    else if (t == numbers[3])
    cout << surnames[3] << " \t" << adresses[3] <<" \t" << t << endl;
    else if (t == numbers[4])
    cout << surnames[4] << " \t" << adresses[4] <<" \t" << t << endl;
    else if (t == numbers[5])
    cout << surnames[5] << " \t" << adresses[5] <<" \t" << t << endl;
    else if (t == numbers[6])
    cout << surnames[6] << " \t" << adresses[6] <<" \t" << t << endl;
    else if (t == numbers[7])
    cout << surnames[7] << " \t" << adresses[7] <<" \t" << t << endl;
    else if (t == numbers[8])
    cout << surnames[8] << " \t" << adresses[8] <<" \t" << t << endl;
    else if (t == numbers[9])
    cout << surnames[9] << " \t" << adresses[9] <<" \t" << t << endl;
 
    if (t==0)
    cout << "Enter name and surname:" << endl;
    gets(str);
 
 
 
    if (str == surnames[0])
    cout << str << " \t" << adresses[0] <<" \t" << numbers[0] << endl;
 
    else
    cout << "Error! No abonent in database!" << endl;
 
 
  return 0;
}
Ошибка думаю где-то начиная с 80 строки. То есть если ввожу имя и фамилию Illya Sklyarov то идет ошибка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 20:58     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес.
Посмотрите здесь:

C++ Нужно откоректировать программу которая будет при вводе любого числа, выводить чётное оно или нет
Ввести с клавиатуры фамилию, и прог. должна выводить номер телефон... C++
C++ Определить максимальный элемент матрицы А, номер его строки и номер его столбца
Структура и объединение: дан список студентов. Общие поля: Ф.И.О., группа, домашний номер телефона. Для тех, у кого домашний телефон указать его номер C++
C++ Написать программу,которая запрашивает у пользователя фамилию,дату рождения,номер группы,номер телефона и записывает их в данные
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
28.10.2011, 21:00     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #2
Как я понял, вам нужно создать справочник из 10 записей, а затем по имени абонента выводить о нем информацию.
unbelievable
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 79
28.10.2011, 21:01  [ТС]     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #3
Цитата Сообщение от Сыроежка Посмотреть сообщение
Как я понял, вам нужно создать справочник из 10 записей, а затем по имени абонента выводить о нем информацию.
Да. По номеру у меня выводит, а вот с именем проблема
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 21:02     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #4
Для сравнения строк разве используется ==?
unbelievable
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 79
28.10.2011, 21:03  [ТС]     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #5
Цитата Сообщение от aeshes Посмотреть сообщение
Что-то я сомневаюсь, что числа типа 958611362 влезут в тип int..

И для сравнения строк разве используется ==?
Я же под кодом описал проблему
Сыроежка
Заблокирован
28.10.2011, 21:03     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #6
Цитата Сообщение от unbelievable Посмотреть сообщение
Да. По номеру у меня выводит, а вот с именем проблема
Я вообще не вижу, где у вас объявлен массив имен.

И, вообще, лучше объявить одну структуру, в которую включить все поля. И определить один массив этой структуры.
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 21:07     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #7
unbelievable, про тип int погорячилась
А вот про сравнение строк все в силе. Попробуйте сравнивать свои строки через функцию strcmp
unbelievable
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 79
28.10.2011, 21:08  [ТС]     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #8
Цитата Сообщение от aeshes Посмотреть сообщение
unbelievable, про тип int погорячилась
А вот про сравнение строк все в силе. Попробуйте сравнивать свои строки через функцию strcmp
Можно пример функции?
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 21:10     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #9
C++
1
strcmp(str, surnames[0]);
сравнивает строки str и surnames[0] и возвращает 0, если они равны
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
28.10.2011, 22:59     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #10
unbelievable, а чё так без массивов

Добавлено через 34 секунды
начиная с 51

Добавлено через 5 минут
да вобще так наверно правильней
C++
1
2
3
4
cin >> i
if (i<0) return 0;
if (i>10) return 0;
cout << surnames[i] << " \t" << adresses[i] <<" \t" << t << endl;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2011, 14:52     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес.
Еще ссылки по теме:

Массивы строк. По имени абонента найти его номер C++
При вводе элементов массива выводить их тип (или int или float) C++
C++ При вводе даты рождения и номера телефона в структуру выдает неверные данные

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.10.2011, 14:52     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. #11
unbelievable, лучше найди индекс номера в массиве номеров через цикл, а потом индекс уже используется для вывода имён
Yandex
Объявления
29.10.2011, 14:52     При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес.
Ответ Создать тему
Опции темы

Текущее время: 01:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru