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

Телефонный справочник

17.12.2011, 14:31. Показов 3431. Ответов 3
Метки нет (Все метки)

Прога читает из файла, есть поиск по имени и по адресу. Никак не могу реализовать поиск по номеру. Помогите пожалуйста. Вот код:

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
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 
using namespace std;
 
class Number
{
  public:
            string name;
            string number;
            string adress;
            Number(const Number &v):
                         name(v.name),
                         number(v.number),
                         adress (v.adress) {}
            Number() {}
            const Number &operator=(const Number &v)
            {
                  name = v.name;
                  number = v.number;
                  adress = v.adress;
                  return v;
            }
};
 
int main ()
{
   fstream f("file.txt");
   vector<Number> telBook;
 
   while (true)
   {
     Number t;
     f >> t.name;
     if (f.eof())
        break;
     f >> t.number;
     if (f.eof())
        break;
        f >> t.adress;
        if (f.eof())
        break;
 
     telBook.push_back(t);
     }
     while (true)
     {
     cout << "Enter name or press 1 if you want to find by adress:"<< endl;
     string name;
     cin >> name;
     cout << "\n";
 
     for (int i = 0; i < telBook.size(); i++)
     {
         if (telBook[i].name == name)
            cout << name << "   " << telBook[i].number << "   "  << telBook[i].adress << endl;
     }
            if (name == "1")
            cout << "Enter adress:" << endl;
            string adress;
            cin >> adress;
            cout << "\n";
 
 
for (int i = 0; i < telBook.size(); i++) {
                if (telBook[i].adress == adress)
            cout << telBook[i].name << "   " << telBook[i].number << "   "  << adress << endl;
}
 
 
 
 
     cout << "-------------------------------------------" << endl;
     }
 
 
}

Содержимое файла:
Vasya 345627 Moskva
Petya 679353 Kiev
Yura 430532 Peterburg
Dima 647230 Rostov

Добавлено через 51 минуту
Никто помочь не может?
1

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2011, 14:31
Ответы с готовыми решениями:

телефонный справочник
Написать программу, которая позволяет найти в телефонном справочнике (phone.txt) нужные сведения....

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

C++ Телефонный справочник
Доброго времени суток, есть готовое домашнее задание по С++, но есть баг который никак не могу...

Телефонный справочник
#include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; #pragma warning(disable:4996) //...

3
572 / 555 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 14:41 2
Я не очень понимаю, в чем проблема...
Скопировал кусок вашего же кода, поменяв adress на number.
C++
1
2
3
4
5
6
7
8
9
cout << "Enter number:" << endl;
            string number;
            cin >> number;
            cout << "\n";
 
 
for (int i = 0; i < telBook.size(); i++) {
                if (telBook[i].number == number)
            cout << telBook[i].name << "   " << number << "   "  << telBook[i].adress << endl;
1
1 / 1 / 1
Регистрация: 01.01.2011
Сообщений: 79
17.12.2011, 16:49  [ТС] 3
Цитата Сообщение от I.M. Посмотреть сообщение
Я не очень понимаю, в чем проблема...
Скопировал кусок вашего же кода, поменяв adress на number.
C++
1
2
3
4
5
6
7
8
9
cout << "Enter number:" << endl;
            string number;
            cin >> number;
            cout << "\n";
 
 
for (int i = 0; i < telBook.size(); i++) {
                if (telBook[i].number == number)
            cout << telBook[i].name << "   " << number << "   "  << telBook[i].adress << endl;
Номер же через string не запишется
0
572 / 555 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 18:49 4
Наверное, я все-таки чего-то не понимаю. Но в вашем классе номер имеет тип string. Да и какая разница, что именно хранить в строке
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2011, 18:49

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

телефонный справочник
создать программу телефонный справочник на 5 человек эти 5 человек вводятся с клавиатуры. помогие...

телефонный справочник
Создать телефонный справочник для осуществления следующих операций: Добавление абонентов в...

Телефонный справочник
Всем привет! :) Задачка в двух словах такова. Надо сделать телефонный справочник, чтоб можно было...


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

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

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