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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 58
#1

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

31.03.2016, 17:03. Просмотров 223. Ответов 10
Метки нет (Все метки)

Проблема такая, что нужно вывести на экран список имен и адресов всех тех кто живет по одинаковому городу или штату, уточняя от пользователя город или штат где живет определенный житель.

Есть 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++
Даны числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному е. Общий член ряда имеет вид...

Найти сумму тех членов ряда, модуль которых больше или равен заданному е - C++
Даны числовой ряд и некоторое число е. Найти сумму тех членов ряда, модуль которых больше ли равен заданному е.общий член ряда имеет вид:...

Найти сумму тех членов ряда, модуль которых больше или равен заданному ε - C++
Даны числовой ряд и некоторое число ε. Найти сумму тех членов ряда, модуль которых больше или равен заданному ε. Общий член ряда имеет вид:

По заданному городу дать сведения для тех фирм, в которых суммарный объем освоенных средств является минимальным - Visual Basic
Имеется вот такая таблица данных: Задание: По заданному городу дать сведения для тех фирм, в которых суммарный объем освоенных средств...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 321
31.03.2016, 17:16 #2
если это тривиальная задача для того, что бы показать в учебном заведении, то:
определите класс person и например введенный пользователем ответ проверяйте посредством switch()

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

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

Добавлено через 12 часов 30 минут
как то можно это сделать? или никак? Народ отзовитесь!
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 321
01.04.2016, 08:38 #4
almazuulu, используйте структуру вместо класса ...
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 58
01.04.2016, 12:54  [ТС] #5
TimeTwo, я понял что нужно использовать структуру вместо класса но не могу реализовать его. Может сделать сравнение то есть strcmp?
TimeTwo
68 / 68 / 31
Регистрация: 29.11.2009
Сообщений: 321
01.04.2016, 13:41 #6
Цитата Сообщение от almazuulu Посмотреть сообщение
Может сделать сравнение то есть strcmp?
именно
вот тыц
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 58
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
Сообщений: 321
01.04.2016, 15:33 #8
almazuulu, это, конечно похоже на правду.
Но что значит
Цитата Сообщение от almazuulu Посмотреть сообщение
но все равно не выходит:
может быть вы скинете весь ваш код, что бы его можно было скомпилить и посмотреть на ошибки ... ммм ?
невозможно угадать весь ваш остальной код, и уж тем более ваши мысли ...
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 58
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
Сообщений: 321
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();
almazuulu
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 58
02.04.2016, 14:23  [ТС] #11
TimeTwo, Если пользователь наберет один штат как например Бостон, то список всех имен людей с их адресами, которые живут там должны появится. Я думал использовав do{}while(); реализую эту задачу. Я попробовал сделать так как вы посоветовали мне, но и так тоже не получается. Простите меня если я не догоняю, просто я новичок в этом деле

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

Добавлено через 22 часа 4 минуты
Может кто подскажет в чем дело?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2016, 14:23
Привет! Вот еще темы с ответами:

Имена и адреса - Assembler
Добрый вечер. Компилятор обрабатывает переменные как адреса памяти. Возник вопрос, как именам переменных сопоставляются адреса? Например,...

Вывести имена пользователей, компьютеров и их IP-адреса из AD - PowerShell
Собственно вопрос в названии темы. Вывести все данные необходимо в файл csv, фильтр. Установить фильтр по последнему логону пользователя в...

Построить кривые по заданному параметрическому представлению или заданному в полярных координатах - Turbo Pascal
Построить кривые по заданному параметрическому представлению или заданному в полярных координатах: Эпициклоида

Построить кривые по заданному параметрическому представлению или заданному в полярных координатах - Turbo Pascal
Построить кривые по заданному параметрическому представлению или заданному в полярных координатах: Астроида: x =...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.04.2016, 14:23
Ответ Создать тему
Опции темы

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