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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
intmain
1 / 1 / 0
Регистрация: 25.03.2011
Сообщений: 27
#1

структуры !!! - C++

25.05.2011, 12:14. Просмотров 1997. Ответов 6
Метки нет (Все метки)

1. Описати структуру з ім’ям SKLAD, яка містить наступні поля:
- Name – Назва товару;
- Type – одиниця вимірювання:
- Quantity – кількість одиниць товару;
- Cost – ціна одиниці товару.
2. Написати програму, що використовує дану структуру і виконує наступні дії:
- вводить з клавіатури масив даних SHOP, що складається з N змінних типу SKLAD;
- Впорядковує записи по спаданню поля Name;
- Виводить на екран ціну та кількість товару, назва якого вводиться з клавіатури або виводить повідомлення про його відсутність.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2011, 12:14     структуры !!!
Посмотрите здесь:

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

Функция внутри структуры использует указатель, как поле этой структуры - C++
Коротко, есть класс A, описан в файле A_class.h ну и реализованы функции в A_class.cpp, есть файл GlobalItems.h, где хранятся глобальные...

Динамические структуры данных. Программа ввода в структуры и вывода информации из неё. - C++
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для...

Динамическое изменение структуры таблицы для организации древовиднойой структуры - MS Access
Доброго времени суток. У меня такой вот вопрос: Необходимо сделать возможность добавления записей в таблицу определнным образом (через...

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) - C++
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...

Динамические структуры данных, списковые структуры (надо разобраться что делает программа) - Delphi
дана программа, надо помочь выяснить что в ней делает каждая подпрограмма unit Unit6; interface uses Windows,...

Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. - Delphi
как это в delphi выполнить?((( Вычислить объем и площадь полной поверхности цилиндра, если известны высота и радиус основания V=пr^2*h,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LineStown
25.05.2011, 12:20
  #2

Не по теме:

омг, ещё один неграмотный. мб при регистрации запрашивать пользователя - умеет ли он читать\

mashka2754
Сообщений: n/a
19.09.2011, 22:37     структуры !!! #3
intmain, слушай,у меня к тебе просьба,ты мне не мог бы кинуть в лс эту же программу?У меня точь в точь а решить не могу..Если у тебя есть решение,пожалуйста скинь.Заранее спасибо.
sandye51
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
19.09.2011, 22:59     структуры !!! #4
mashka2754, может просто по-русски задание напишешь?
-=ЮрА=-
Заблокирован
Автор FAQ
20.09.2011, 10:30     структуры !!! #5
Цитата Сообщение от intmain Посмотреть сообщение
1. Описати структуру з ім’ям SKLAD, яка містить наступні поля:
- Name – Назва товару;
- Type – одиниця вимірювання:
- Quantity – кількість одиниць товару;
- Cost – ціна одиниці товару.
2. Написати програму, що використовує дану структуру і виконує наступні дії:
- вводить з клавіатури масив даних SHOP, що складається з N змінних типу SKLAD;
- Впорядковує записи по спаданню поля Name;
- Виводить на екран ціну та кількість товару, назва якого вводиться з клавіатури або виводить повідомлення про його відсутність.
Вот на страрых плюсах (когда писал проект пытался обеспечить поддержку даже Борланда - алгоритм работает и в нём). Кто хочет на новых ++ пишем так
C++
1
2
3
#include <iostream>
#include <conio.h>
using namecpase std;
+ в програме std::cout(cin)
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
104
105
106
#include <iostream.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
struct SKLAD
{
    char Name[64];
    char Type[8];
    long Quantity;
    float Cost;
};
//Вывод полей структуры SKLAD
void OutStruct(SKLAD pSKLAD)
{
    cout<<"Name : "    <<pSKLAD.Name<<"\r\n";
    cout<<"Type : "    <<pSKLAD.Type<<"\r\n";
    cout<<"Quantity : "<<pSKLAD.Quantity<<"\r\n";
    cout<<"Cost : "    <<pSKLAD.Cost<<"\r\n";
}
 
long SearchName(long n, SKLAD * lpSKLAD, char * sFind)
{
    long index = -1;//Считаем что в списке нет товара
    for(long i = 0; i < n; i++)
    {
        index = i;
        if(strstr(lpSKLAD[i].Name,sFind))
            break;
    }
    //Если прошли весь цикл без break товара в списке нет
    if(index == n)
        index = -1;
    return index;
}
 
int main()
{
    SKLAD * SHOP;
    SKLAD BUFER;
    long i,j,N;
    do
    {
        cout<<"Введите число товаров N: ";
        cin>>N;
        SHOP = new SKLAD[N*sizeof(SKLAD)];
        cout<<"\tВвод товаров\r\n";
        for(i = 0; i < N; i++)
        {
            cout<<"Товар # "<<i + 1<<"\r\n";
            cout<<"Name : ";cin>>SHOP[i].Name;
            cout<<"Type : ";cin>>SHOP[i].Type;
            cout<<"Quantity : ";cin>>SHOP[i].Quantity;
            cout<<"Cost : ";cin>>SHOP[i].Cost;
        }
        cout<<"\tСортировка(по возрастанию) списка товаров по Name\r\n";
        for(i = 0; i < N; i++)
        {
            for(j = i + 1; j < N; j++)
            if(SHOP[j].Name[0] < SHOP[i].Name[0])
            {
                BUFER   = SHOP[j];
                SHOP[j] = SHOP[i];
                SHOP[i] = BUFER;
            }
            cout<<"Товар # "<<i + 1<<"\r\n";
            OutStruct(SHOP[i]);
        }
        do
        {
            cout<<"\tПоиск товара\r\n";
            cout<<"Find Name : ";cin>>BUFER.Name;
            if(0 < (j = SearchName(N, SHOP,BUFER.Name)))
            {
                cout<<"Товар найден\r\n";
                OutStruct(SHOP[j]);
            }
            else
                cout<<"Товар не найден\r\n";
            cout<<"Нажмите F для продолжения поиска\r\n";
        }
        while(toupper(getch()) == 'F');
        
        delete [] SHOP;
        cout<<"Нажмите Y для нового ввода\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Результат работы
Введите число товаров N: 3
Ввод товаров
Товар # 1
Name : Dini
Type : kg
Quantity : 1800
Cost : 4.2
Товар # 2
Name : Arbyzi
Type : kg
Quantity : 2500
Cost : 1.2
Товар # 3
Name : Vinograd
Type : yashiki
Quantity : 200
Cost : 80.5
Сортировка(по возрастанию) списка товаров по Name
Товар # 1
Name : Arbyzi
Type : kg
Quantity : 2500
Cost : 1.2
Товар # 2
Name : Dini
Type : kg
Quantity : 1800
Cost : 4.2
Товар # 3
Name : Vinograd
Type : yashiki
Quantity : 200
Cost : 80.5
Поиск товара
Find Name : Dini
Товар найден
Name : Dini
Type : kg
Quantity : 1800
Cost : 4.2
Нажмите F для продолжения поиска
Нажмите Y для нового ввода
Press any key to continue


PS:Для руссификации ввёл перегрузку оператора вывода, но ввод только латиницей Чтобы был и русский ввод нужно перегрузить >> или использовать OemToChar (в Борланде к сожалению её нет). Перегрузку ввода я предлагаю уже осуществить самостоятельно...
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
20.09.2011, 16:03     структуры !!! #6
-=ЮрА=-, опечаточка :
using namespace std;
поправьте
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2011, 16:16     структуры !!!
Еще ссылки по теме:

Вывод структуры, строка как элемент структуры - C++
Описать структуру с именем TRAIN, содержащую следующие поля: □ название пункта назначения; □ номер поезда; □ время отправления. ...

Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? - C++
Ничего нельзя. Итак, новичкам напомню, что после выполнения кода FILE* f= fopen (&quot;file.txt&quot;, &quot;w&quot;); в переменной f содержится...

Структуры. Работа с файлами, содержащими структуры - C++
2) Дана совокупность сведений, каждое из которых состоит из следующих рекви-зитов: фамилия и инициалы автора – 25 знаков; название книги –...

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

Оператор if и структуры. Возвращение структуры из функции - C++
Здравствуйте, имеется такая вот функция. void InputStructEmployee (int StructSize) { StructEmployee UsrStruct; string...


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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
20.09.2011, 16:16     структуры !!! #7
Serejke_qq, спасибо знаю, утром с топиками аврал иногда набиваю код напрямую в редакторе форума, так что не углядел, думаю кто хоть маломальски знает плюсы понял о чём речь велась
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Кто хочет на новых ++ пишем так
Код C++
#include <iostream>
#include <conio.h>
using namecpase std;
В любом случае приведенный в топике код рабочий
Yandex
Объявления
20.09.2011, 16:16     структуры !!!
Ответ Создать тему
Опции темы

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