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

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

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

Написать программу, описывающую структуру, содержащую указанные поля и выполняющую над ней указанные действия - C++

13.01.2014, 16:45. Просмотров 520. Ответов 2
Метки нет (Все метки)

Требуется помощь
1. Описать структуру с именем PRICE, содержащую следующие поля:
- GOODS – название товара;
- SHOP – название магазина, в котором продается товар;
- COST – стоимость товара в руб.
2. Создать программу, выполняющую:
- ввод из файла данных в массив LIST, состоящий из n структур типа PRICE;
- упорядочение массива LIST, записи разместить в алфавитном порядке по названиям магазинов (полю SHOP);
- вывод на экран упорядоченного массива;
- вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры; если такого нет, вывести соответствующее сообщение.

Собственно вот код,однако проблема в том,что программа не корректно выполняет последнюю подзадачу (при любых условиях вывод сообщение о том,что товар отсутствует)
Кому не трудно помогите

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
#include <stdio.h>
#include "conio.h"
#include <string.h>
#include "locale.h"
#include <tchar.h>
#include <stdlib.h>
#include <fstream>
#include <iostream>
#include <cstring>
#include <windows.h>
using namespace std;
 
 
struct PRICE {
   
    char    tovar[64];
    char    magazin[64];
    double stoimost;
};
 
 
int main() 
{ setlocale(LC_ALL, "russian");
  
 int n, i;
  double s = 0;
 
 cout << "Введите размер массива структур\n";
  cin >> n; // Число элементов в массиве структур
 
  // Выделение динамической памяти для массива 
  // структур
  PRICE * price = new PRICE[n];
 
  // Открытие файла для ввода
  ifstream instr("inform.txt");
 
  if (!instr){//Проверка корректного открытия файла
     cout << "Файл не может быть открыт\n";
     return 1;  // Выход из программы
  }
 
  // Заполнение массива считыванием из файла
  for (i = 0; i < n; ++i) {
      instr >> price[i].tovar >>  price[i].magazin >>price[i].stoimost ;
     cout <<  price[i].tovar <<" " // Вывод на экран
         <<  price[i].magazin << "\n"
         <<  price[i].stoimost << "\n";
  }
  // Закрытие файла
  instr.close();
 
 
    
    PRICE tmp;
 // сортировка по алфавиту
    for(int t = 0; t < n; t++)
        for(int i = 0; i < n; i++)
            if( price[i].tovar[0] > price[t].tovar[0] )
            {
                tmp = price[i];
                price[i] = price[t];
                price[t] = tmp;
            }
    cout << endl;
 
 
    cout << "\nИмеющиеся в наличии товары: " << endl;
     for(int i = 0; i < n; i++)
    {
                cout << "Название:  " << price[i].tovar << endl;
                cout << "Магазин:   " << price[i].magazin << endl;
                cout << "Стоимость: " << price[i].stoimost << endl;
                
            }
    
 
    char str[20];
 printf("Магазин: \n");
 scanf("%s",str);
 int b=0;
 for ( i=0; i<n; i++){
  if (strcmp(price[i].magazin,str)==0){
   printf("Товар:%s, Стоимость:%d \n",price[i].tovar,price[i].stoimost);
   b=1;
  }
 }
 if(!b){
  printf("Отсутствует!\n");
 }
 return 0;
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2014, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, описывающую структуру, содержащую указанные поля и выполняющую над ней указанные действия (C++):

Создать структуру, содержащую сведения по учету растений и выполнить указанные действия с ней - C++
Создать структуру, содержащую сведения по учету растений.Программа должна производить: 1)Подсчет количества растений указанного...

Описать структуру с именем NAL, содержащую указанные поля - C++
27) Описать структуру с именем NAL, содержащую следующие поля: □ название плательщика; □ ИНН плательщика; □ вид налога; ...

Написать программу, выполняющую указанные операции с динамическими структурами - C++
Написать программу, выполняющую следующие операции. 1. Создать структуру, описывающую сущность &quot;Кадровый учет&quot; и включающую не менее 5...

Описать структуру с именем ZNAK, содержащую указанные ноля - C++
Ребят помогите, пожалуйста, написать программу по такому заданию: Описать структуру с именем ZNAK, содержащую следующие ноля: ...

Дана строка. Выполните с ней указанные действия - C++
- Удаление всех крупных российских букв; - Удаление всех маленьких российских букв; - Замена цепочки на его реверс с указанием...

Написать программу, выполняющую следующие действия: - C++
1. Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы; • GROUP- номер группы; • SES-...

2
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
13.01.2014, 22:26 #2
Gaila, вообщето программа в изначальном варианте нормально искала поля, но вот цену товаров выводила 0

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
#include <stdio.h>
//#include "conio.h"
//#include <string.h>
//#include "locale.h"
//#include <tchar.h>
#include <stdlib.h>
#include <fstream>
#include <iostream>
#include <cstring>
#include <windows.h>
using namespace std;
 
 
struct PRICE {
   
    char    tovar[64];
    char    magazin[64];
    double stoimost;
};
 
 
int main() 
{ setlocale(LC_ALL, "russian");
  
 int n, i;
  double s = 0;
 
/* cout << "Введите размер массива структур\n";
  cin >> n; // Число элементов в массиве структур*/
 
  // Выделение динамической памяти для массива 
  // структур
 
 
  // Открытие файла для ввода
  ifstream instr("inform.txt");
 
  
  if (!instr){//Проверка корректного открытия файла
     cout << "Файл не может быть открыт\n";
     return 1;  // Выход из программы
  }
  instr>>n;
    PRICE * price = new PRICE[n];
  // Заполнение массива считыванием из файла
  for (i = 0; i < n; ++i) {
      instr >> price[i].tovar >>  price[i].magazin >>price[i].stoimost ;
     cout <<  price[i].tovar <<" " // Вывод на экран
         <<  price[i].magazin << " "
         <<  price[i].stoimost << "\n";
  }
  // Закрытие файла
  instr.close();
 
 
    
    PRICE tmp;
 // сортировка по алфавиту
    for(int t = 0; t < n; t++)
        for(int i = 0; i < n; i++)
            if( stricmp(price[i].magazin,price[t].magazin) > 0 )
            {
                tmp = price[i];
                price[i] = price[t];
                price[t] = tmp;
            }
    cout << endl;
 
 
    cout << "\nИмеющиеся в наличии товары: " << endl;
     for(int i = 0; i < n; i++)
    {
                cout << "Название:  " << price[i].tovar << endl;
                cout << "Магазин:   " << price[i].magazin << endl;
                cout << "Стоимость: " << price[i].stoimost << endl;
                
            }
    
    char str[20];
 printf("Магазин: \n");
// scanf("%s",str);
 cin.getline(str,20);
 int b=0;
 for ( i=0; i<n; i++){
  if (stricmp(price[i].magazin,str)==0){
  // printf("Товар:%s, Стоимость:%d \n",price[i].tovar,price[i].stoimost);
   cout<<"Товар: "<<price[i].tovar<<" Стоимость:"<<price[i].stoimost<<endl;
   b=1;
  }
 }
 if(!b){
  printf("Отсутствует!\n");
 }
 system("pause");
 return 0;
 }
Вывод:
Кликните здесь для просмотра всего текста
vasa masa 10
rot kot 20
lock stock 22
asdas kot 50
asdasd kot 20
asd aaa 5


Имеющиеся в наличии товары:
Название: asd
Магазин: aaa
Стоимость: 5
Название: asdas
Магазин: kot
Стоимость: 50
Название: asdasd
Магазин: kot
Стоимость: 20
Название: rot
Магазин: kot
Стоимость: 20
Название: vasa
Магазин: masa
Стоимость: 10
Название: lock
Магазин: stock
Стоимость: 22
Магазин:
kot
Товар: asdas Стоимость:50
Товар: asdasd Стоимость:20
Товар: rot Стоимость:20
Для продолжения нажмите любую клавишу . . .


Файл inform.txt:
Кликните здесь для просмотра всего текста
6
vasa masa 10
rot kot 20
lock stock 22
asdas kot 50
asdasd kot 20
asd aaa 5
1
Gaila
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 8
13.01.2014, 23:47  [ТС] #3
newb_programmer,Спасибо большое) сам бы не додумался
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 23:47
Привет! Вот еще темы с ответами:

Написать программу,выполняющую следующие действия: - C++
1)Ввод с клавиатуры данных в массив ,состоящий из 5 элементов типа AUTO,записи должны быть упорядоченны по названию авто 2)вывод на экран...

Написать программу,выполняющую следующие действия: - C++
1)Ввод с клавиатуры данных в массив ,состоящий из 5 элементов (как я понимаю из 5 разных названий авто),записи должны быть упорядоченны по...

Написать программу,выполняющую следующие действия: - C++
1)Ввод с клавиатуры данных в массив ,состоящий из 5 элементов типа Авто(как я понимаю это пять произвольных названий авто),записи должны...

Написать консольную программу , выполняющую следующие действия - C++
Здравствуйте , добрые люди , не поможете ли вы мне хотя бы с парой пунктов из этого списка ? :3 п.5.18 Запрещено размещать задания в виде...


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

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

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