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

По заданному городу или штату найти имена и адреса - C++

Восстановить пароль Регистрация
 
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 40
31.03.2016, 17:03     По заданному городу или штату найти имена и адреса #1
Проблема такая, что нужно вывести на экран список имен и адресов всех тех кто живет по одинаковому городу или штату, уточняя от пользователя город или штат где живет определенный житель.

Есть 5 массивов структур контакта, к примеру:

Имя: Джордж
Улица: ул. Сент Лукас
Город: Джорджия
Область: Бостон

Имя: Бэн
Улица: ул. Гремлин
Город: Денвер
Область: Вирджиния
..
..
Имя: Стив
Улица: ул. Уилминтон
Город: Джорджия
Область: Бостон

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

Пытался сам сделать, потом перелопатил все сайты. Не смог до конца сделать может поможете чем сможете?

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
int main ();
{
 //вобщем сдесь я прочитал массивы структур контакта c файла и потом внес его в infoContact contact[];
 
}
 
// вот из того что успел сам как то с горем попалам додуматься
void displayByPlace(infoContact cont[],int i, int z, char  chCity[], char chState[], bool approach, char option)
{
 
    do
    {
        cout<<"Please enter the state of the man you are searching for: ";
        cin.getline(chCity,50);
 
        cout <<"Please enter the city of the man you are searching for: ";
        cin.getline(chState,50);
 
        if(cont.city[i]==chCity)
        {
                cout<<cont[i].name<<"\t"<<cont[i].streetName<<endl;
 
        }
 
         cout<<"Would you like to continue? Type Y- for Yes, N- for No: ";
         cin>> option;
 
                if(toupper(option)!='Y'&&toupper(option)!='N'||cin.fail())
                {
                    cin.clear();
                    cin.ignore(100,'\n');
                    cout<< "Incorrect option. Please try again";
                }
        if(toupper(option)=='N')
         break;
 
    }while(option!='N');
Как быть как это все правильно сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2016, 17:03     По заданному городу или штату найти имена и адреса
Посмотрите здесь:

C++ Найти сумму тех членов ряда, модуль которых больше или равен заданному ε
Найти сумму тех членов ряда, модуль которых больше или равен заданному е C++
Струкруры: вывести на экран общую стоимость разговоров по городу C++
Подобрать к заданному числу ранвую или близкую по значению переменную C++
C++ Найти суму тех членов ряда, модуль которых больше или равен заданному е
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 318
31.03.2016, 17:16     По заданному городу или штату найти имена и адреса #2
если это тривиальная задача для того, что бы показать в учебном заведении, то:
определите класс person и например введенный пользователем ответ проверяйте посредством switch()

покурите это, если знаете английский
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 40
01.04.2016, 06:12  [ТС]     По заданному городу или штату найти имена и адреса #3
TimeTwo, А как быть если до этого "класс" не изучали?

Добавлено через 1 минуту
Без "Класса" можно как то обойтись? Или нельзя?

Добавлено через 12 часов 30 минут
как то можно это сделать? или никак? Народ отзовитесь!
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 318
01.04.2016, 08:38     По заданному городу или штату найти имена и адреса #4
almazuulu, используйте структуру вместо класса ...
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 40
01.04.2016, 12:54  [ТС]     По заданному городу или штату найти имена и адреса #5
TimeTwo, я понял что нужно использовать структуру вместо класса но не могу реализовать его. Может сделать сравнение то есть strcmp?
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 318
01.04.2016, 13:41     По заданному городу или штату найти имена и адреса #6
Цитата Сообщение от almazuulu Посмотреть сообщение
Может сделать сравнение то есть strcmp?
именно
вот тыц
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 40
01.04.2016, 15:13  [ТС]     По заданному городу или штату найти имена и адреса #7
TimeTwo,
я примерно вот так сделал, но все равно не выходит:
C++
1
2
3
4
5
6
7
8
9
10
 
    
        cout<<"Please enter the state of the man you are searching for: ";
        cin>>chState;
 
        do
            {
            cout<<cont[i].name<<"\n"<<cont[i].streetName<<"\n"<<cout<<cont[i].city<<"\n"<<cont[i].state<<"\n"<<cont[i].postcode<<endl;
 
            }while(strcmp(cont[i].state, chState)!=0);
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 318
01.04.2016, 15:33     По заданному городу или штату найти имена и адреса #8
almazuulu, это, конечно похоже на правду.
Но что значит
Цитата Сообщение от almazuulu Посмотреть сообщение
но все равно не выходит:
может быть вы скинете весь ваш код, что бы его можно было скомпилить и посмотреть на ошибки ... ммм ?
невозможно угадать весь ваш остальной код, и уж тем более ваши мысли ...
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 40
01.04.2016, 15:54  [ТС]     По заданному городу или штату найти имена и адреса #9
TimeTwo,
Примерно как то так
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
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
using namespace std;
 
 
struct infoContact
{
    char name[30];
    char streetName[50];
    char city[50];
    char state[50];
    int postcode;
};
 
void displayByPlace(infoContact cont[],int i, int z, char chCity[], char chState[], bool approach, char option);
 
int main()
{
    int i=0,z=0;
    char xmlFile[20];
    infoContact contact[10];
    bool approach= false;
    char option;
    int maxsize=50;
    char choseState[50], choseCity[50];
    int chosePostcode;
 
    ifstream readFile;
    cout<<"Please enter the file: ";
    cin>>xmlFile;
 
    char tag[50];
 
    readFile.open(xmlFile,ios::in);
 
    readFile.ignore(256,'\n');
    readFile.ignore(256,'\n');
 
    do
    {
 
        readFile.ignore(256,'<');
        readFile.get(tag, 50, '>');
        readFile.ignore(256,'\n');
 
        if (strcmp(tag, "contact") == 0)
        {
            readFile.ignore(20,'>');
            readFile.get(contact[i].name,50,'<');
            cout<<contact[i].name<<endl;
            readFile.ignore(256,'\n');
 
            readFile.ignore(20,'>');
            readFile.get(contact[i].streetName,50,'<');
            cout<<contact[i].streetName<<endl;
            readFile.ignore(256,'\n');
 
            readFile.ignore(20,'>');
            readFile.get(contact[i].city,50,'<');
            cout<<contact[i].city<<endl;
            readFile.ignore(256,'\n');
 
            readFile.ignore(20,'>');
            readFile.get(contact[i].state,56,'<');
            cout<<contact[i].state<<endl;
            readFile.ignore(256,'\n');
 
            readFile.ignore(20,'>');
            readFile>>contact[i].postcode;
            cout<<contact[i].postcode<<endl;
            readFile.ignore(256,'\n');
 
 
            readFile.ignore(256,'\n');
            cout << endl;
        }
 
    } while(strcmp(tag, "/address_book") != 0);
 
    displayByPlace(contact,i,z, choseCity, choseState,approach,option);
 
    return 0;
}
 
void displayByPlace(infoContact cont[],int i, int z, char chCity[], char chState[], bool approach, char option)
{
 
        cout<<"Please enter the city of the man you are searching for: ";
        cin>>chState;
 
 
            
            do
            {
            
            cout<<cont[i].name<<"\n"<<cont[i].streetName<<"\n"<<cout<<cont[i].city<<"\n"<<cont[i].state<<"\n"<<cont[i].postcode<<endl;
        
            }while(strcmp(cont[i].state, chState)!=0);
 
               
}
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 318
01.04.2016, 16:08     По заданному городу или штату найти имена и адреса #10
almazuulu, так вы должны найти ничего, если первый ваш cont с другим штатом ...
вроде бы так ...
C++
1
2
3
4
5
6
7
for( int k=0;k<10;k++)
            {
                if(strcmp(cont[k].state, chState) == 0)
                {
                    cout<<cont[i].name<<"\n"<<cont[i].streetName<<"\n"<<cout<<cont[i].city<<"\n"<<cont[i].state<<"\n"<<cont[i].postcode<<endl;
                }
            }
получается, что вы заканчивает цикл, если штат не тот ...
и я все равно не понимаю, зачем вам
C++
1
do{}while();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2016, 14:23     По заданному городу или штату найти имена и адреса
Еще ссылки по теме:

Имена переменных начинающиеся с двух подчеркиваний или с символа подчеркивания и следующей за ним буквы верхнего регистра C++
C++ Найти сумму тех членов ряда, модуль которых больше или равен заданному е
C++ Как изменить обычные имена массивов на имена с указателями?

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

Или воспользуйтесь поиском по форуму:
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 40
02.04.2016, 14:23  [ТС]     По заданному городу или штату найти имена и адреса #11
TimeTwo, Если пользователь наберет один штат как например Бостон, то список всех имен людей с их адресами, которые живут там должны появится. Я думал использовав do{}while(); реализую эту задачу. Я попробовал сделать так как вы посоветовали мне, но и так тоже не получается. Простите меня если я не догоняю, просто я новичок в этом деле

Добавлено через 1 минуту
TimeTwo, перепробовал кучу вариантов, толку что то мало.

Добавлено через 22 часа 4 минуты
Может кто подскажет в чем дело?
Yandex
Объявления
02.04.2016, 14:23     По заданному городу или штату найти имена и адреса
Ответ Создать тему
Опции темы

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