Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Ввести информацию о семи покупателях, ввести название товара и вывести тех людей, кто купил этот товар - C++

19.01.2014, 13:15. Просмотров 534. Ответов 12
Метки нет (Все метки)

По заданию нужно ввести инфу о семи покупателяхх,потом нужно ввести название товара и должно вывести тех людей кто купили этот товар,если нет таких то вывести нет таких.Не знаю как сравнить названия((
Среда:C++Bilder
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
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <iostream>
#include <list>
 
struct POCUPKA{
    char IMA[30];
    char NAZ[30];
    int a,b,c;
    int ZEN;
    }PO[7];
    using namespace std ;
int _tmain(int argc, _TCHAR* argv[])
{int i;
char z[50];
 for (i = 0; i < 7; i++) {
      cout<< "Wedite imya "<<i+1<<"pocupatelya\n";
      cin>>PO[i].IMA;
      cout<<"Wedite nazvanie tovara \n";
      cin>>PO[i].NAZ;
      cout<<"Wedite daty pocupki:\n";
      cout<<"den = ";
      cin>>PO[i].a;
      cout<<"mecaz = ";
      cin>>PO[i].b;
      cout<<"god = ";
      cin>>PO[i].c;
      cout<<"Wedte zeny pocupki\n";
      cin>>PO[i].ZEN;
      getchar();
      system ("cls");
  }
    system ("cls");
    cout<<"Wedite tovar\n";
    cin>>z[50];
    if(z[50]=PO[i].NAZ[30]) cout<<PO[i].IMA;//Здесь чушьБбо не знаю как сравнить(
    cout<<"Net takih";
    getchar();
   getchar();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 13:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввести информацию о семи покупателях, ввести название товара и вывести тех людей, кто купил этот товар (C++):

Ввести код товара и количество, показать название и сумму за данный товар, а также общую сумму - C++
Нужно решить задание, но я его к сожалению не понимаю, если вы можете, то помогите с решением. Вот собственно само задание : &quot;Цикл...

Ввести номер дня недели. Вывести его название, и количество пар в этот день - C++
Ввести номер дня тижня. Вивести його назву і кількість пар (использовать switch case)

Вывести информацию о покупателях, имеющих 10 %-ную скидку в магазине - C++
В магазине составлен список людей, которым выдана карта постоянного покупателя. Каждая запись этого списка содержит номер карточки, ФИО,...

Ввести номер дня недели и вывести расписание пар в этот день - C++
сабж нужно сделать условие через If, через switch сделал, а через if не могу нужно сделать типо такого понедельник - четверг - 4...

Ввести номер дня недели и вывести его название - C++
Ввести номер дня недели. Вывести его название C++ VS p.s sps Добавлено через 1 час 38 минут разобрался)) #include &lt;iostream&gt; ...

Ввести код мобильного оператора и вывести его название и тариф - C++
ввести код мобильного оператора. Вывести его название и тариф .. используя .Switch помогите сделать .. я пробовал но не получается ...

12
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
19.01.2014, 13:59 #2
Temich,
C++
1
strcmp(z, PO[i].NAZ) == 0
и подключить string.h
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
19.01.2014, 13:59 #3
Temich,
C++
1
2
3
if ( stricmp(PO[i].NAZ,PO[j].NAZ)>0) //PO[i].NAZ > PO[j].NAZ
if ( stricmp(PO[i].NAZ,PO[j].NAZ)==0) //PO[i].NAZ = PO[j].NAZ
if ( stricmp(PO[i].NAZ,PO[j].NAZ)<0) //PO[i].NAZ < PO[j].NAZ
без учета регистра, если нужно учитывать регистр пишем strcmp
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
19.01.2014, 14:01 #4
Так же заметьте, что сравнение у вас вне цикла.
Так лучше:
C++
1
2
3
4
for (i = 0; i < 7; i++)
{
    if(strcmp(z, PO[i].NAZ) == 0) cout<<PO[i].IMA;
}
0
Temich
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 21
19.01.2014, 14:03  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
system ("cls");
    cout<<"Wedite tovar\n";
    cin>>z[50];
    for (i = 0; i < 7; i++) {
     ifstrcmp(z, PO[i].NAZ) == 0){
     cout<<PO[i].IMA[30];}
    else
    {cout<<"Net takih"; }
    getchar();
    }
так?
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
19.01.2014, 14:04 #6
newb_programmer, а смысл сравнивать i-ый элемент с j-тым? мы же в клавиатуры вводим имя товара для поиска.
0
Temich
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 21
19.01.2014, 14:06  [ТС] #7
я пробовал так сначала написатьБно мне только (нет таких)выдавало
C++
1
2
3
4
5
6
7
8
9
    system ("cls");
    cout<<"Wedite tovar\n";
    cin>>z[50];
    for (i = 0; i < 7; i++) {
     if (z[50]==PO[i].NAZ[30])
    {
     cout<<PO[i].IMA[30];}
    else
    {cout<<"Net takih"; }
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
19.01.2014, 14:07 #8
И здесь вы вводите один символ. Индексация массивов начинается с 0, поэтому здесь будет выход за границу массива как минимум.
C++
1
cin>>z[50];
заменить на
C++
1
cin>>z;
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
19.01.2014, 14:12 #9
Temich,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
system ("cls");
int flag=0;
cout<<"Wedite tovar\n";
cin>>z;
for (i = 0; i < 7; i++)
{
    if (strcmp(z, PO[i].NAZ) == 0)
    {
        cout<<PO[i].IMA;
        flag=1;
    }
}   
if (!flag)
{
    cout<<"Net takih"; 
}
както так
1
Temich
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 21
19.01.2014, 14:27  [ТС] #10
уже читает цикл,но выдает кашу из букв

Добавлено через 4 минуты
вот,спасибо!! можете обьяснить что в 7 строчке происходить?

Добавлено через 10 минут
if (strcmp(z, PO[i].NAZ) == 0)-что здесь происходит?зачемstrcmp?
0
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
19.01.2014, 14:33 #11
Temich, strcmp сравнивает 2 строки посимвольно
1
R1987
13 / 13 / 2
Регистрация: 09.12.2012
Сообщений: 63
19.01.2014, 14:40 #12
Цитата Сообщение от Temich Посмотреть сообщение
if (strcmp(z, PO[i].NAZ) == 0)-что здесь происходит?зачемstrcmp?
strcmp сравнивает две строки и если они идентичны возвращает 0
1
Temich
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 21
19.01.2014, 14:50  [ТС] #13
Спасибо)запомнюю
0
19.01.2014, 14:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 14:50
Привет! Вот еще темы с ответами:

Ввести первую букву названия страны. Вывести название ее столицы - C++
Задача - Ввести первую букву названия страны. Вывести название ее столицы Помогите найти ошибки в коде: #include &lt;iostream&gt; ...

Ввести количество товара и стоимость за одну штуку, вычислить скидку и вывести результат в консоль - C++
Всем привет последнее время часто читаю ваш форум решил зарегистрироваться. итак к делу: мне нужна помощь по нескольким задачам по с...

Нужно ввести название компании и год основания в файл, а затем вывести их на экран из файла - C++
Нужно ввести название компании и год основания в файл, а затем вывести их на экран ... из файла. #include&lt;iostream&gt; #include&lt;conio.h&gt; ...

Ввести число от 0 до 5. Вывести его название на английском (или другом) языке (с использованием switch, break) - C++
Ввести число от 0 до 5 . Вывести его название на английском (или другом) языке


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

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

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