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

Программа по структурам! - C++

Восстановить пароль Регистрация
 
sniperni
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 46
12.02.2012, 20:28     Программа по структурам! #1
У меня такая задача:
Ввести несколько структур типа «Товары на складе» с полями
{
название товара
закупочная цена
товарная наценка
}
Написать программу, выполняющую следующие действия:
* Уценяет на 20% все товары, которые дороже заданной цены.
* Выводит товары в порядке возрастания розничной цены.
вот что я написал:
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
#include<iostream> 
#include<conio.h> 
#include<string.h>
#include<stdlib.h> 
#include<stdio.h>
#include<windows.h>
using namespace std;
struct towary
 {
     char name[20];
     double price;
     double margin;
 };
int main()
{
    SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
const int k=7;
int i;
cout<<"Введите 7 товаров!!!\n";
towary t[k];
for(i=0;i<k;i++)
{
    cout<<"Введите наименование товара: ";
    gets(t[i].name);
    cout<<"Укажите цену товара (в рублях): ";
    cin>>t[i].price;
    cout<<"Укажите наценку товара (в процентах): ";
    cin>>t[i].margin;
}
 getch();
}
 Комментарий модератора 
Используйте теги форматирования кода!


Ну это начало как понимаете.... Так вот - уже тут неразбериха!!!! После введения первого товара,его цены и наценки - прога не даёт ввести наименование второго товара,а сразу запрашивает цену.... что делать??? Подскажите,кто может!!!! Заранее огромное спасибо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 20:28     Программа по структурам!
Посмотрите здесь:

задача по структурам C++
C++ вопрос по структурам
C++ вопрос по структурам
C++ Задачка по структурам
C++ влпрос по структурам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
12.02.2012, 20:54     Программа по структурам! #2
Розничная цена как вычисляется?

Добавлено через 5 минут
Как разность цены и наценки?
sniperni
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 46
13.02.2012, 09:37  [ТС]     Программа по структурам! #3
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
#include<iostream> 
#include<conio.h> 
#include<string.h>
#include<stdlib.h> 
#include<stdio.h>
#include<windows.h>
using namespace std;
struct towary
 {
     char name[20];
     double price;
     double nacenka;
     double rozprice;
 };
int main()
{
    SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
const int k=7;
int i;
double ucenka;
cout<<"Введите 7 товаров!!!\n";
towary t[k];
for(i=0;i<k;i++)
{
    cout<<"Введите наименование "<<i+1<<"-ого товара: ";
    gets(t[i].name);
    cout<<"Укажите закупочную цену "<<i+1<<"-ого товара (в рублях): ";
    cin>>t[i].price;
    cout<<"Укажите наценку "<<i+1<<"-ого товара (в процентах): ";
    cin>>t[i].nacenka;
    t[i].rozprice=t[i].price*t[i].nacenka*0,01;
}
cout<<"Укажите цену, и товар,стоимость который дороже этой цены, будет уценён на 20%: ";
cin>>ucenka;
for(i=0;i<k;i++)
    if(t[i].rozprice>ucenka)
        t[i].rozprice=t[i].rozprice*0,8;
 getch();
}
сортировки пока нет.... так как сделать так, чтобы правильно вводились названия????

Добавлено через 12 часов 38 минут
Ребят вот прога, но работает она не совсем правильно!!! принимает только первое наименование и немного путаница с названиями при сортировке!!!

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
107
#include<iostream> 
#include<conio.h> 
#include<string.h>
#include<stdlib.h> 
#include<stdio.h>
#include<windows.h>
using namespace std;
struct towary
 {
     char name[20];
     double price;
     double nacenka;
     double rozprice;
 };
struct otsorttowary
 {
     char oname[20];
     double oprice;
     double onacenka;
     double orozprice;
 };
int main()
{
    SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
const int k=7;
int i;
double ucenka;
cout<<"Введите 7 товаров!!!\n";
towary t[k];
for(i=0;i<k;i++)
{
    cout<<"Введите наименование "<<i+1<<"-ого товара: ";
    gets(t[i].name);
    cout<<"Укажите закупочную цену "<<i+1<<"-ого товара (в рублях): ";
    cin>>t[i].price;
    cout<<"Укажите наценку "<<i+1<<"-ого товара (в процентах): ";
    cin>>t[i].nacenka;
    t[i].rozprice=t[i].price+t[i].price*t[i].nacenka*0.01;
}
cout<<"############################################\n";
cout<<"База введённых товаров!\n";
for(i=0;i<k;i++)
{
    cout<<i+1<<"-ый(-ой) товар\n";
    cout<<"Наименование товара: ";
    puts(t[i].name);
    cout<<"Закупочная цена: "<<t[i].price<<" руб.\n";
    cout<<"Наценка: "<<t[i].nacenka<<"%\n";
    cout<<"Розничная цена: "<<t[i].rozprice<<" руб.\n";
    cout<<"############################################\n";
}
cout<<"Укажите цену(в рублях), и товар,стоимость которого больше этой цены, будет уценён на 20%: ";
cin>>ucenka;
cout<<"############################################\n";
for(i=0;i<k;i++)
    if(t[i].rozprice>ucenka)
    {
        t[i].rozprice=t[i].rozprice*0.8;
        cout<<i+1<<"-ый(-ой) товар уценён!\n";
    }
    cout<<"############################################\n";
    cout<<"Товары с учётом уценки!\n";
for(i=0;i<k;i++)
{
    cout<<i+1<<"-ый(-ой) товар\n";
    cout<<"Наименование товара: ";
    puts(t[i].name);
    cout<<"Закупочная цена: "<<t[i].price<<" руб.\n";
    cout<<"Наценка: "<<t[i].nacenka<<"%\n";
    cout<<"Розничная цена: "<<t[i].rozprice<<" руб.\n";
    cout<<"############################################\n";
}
otsorttowary o[1];
for(i=k-1;i>0;i--)
for(int j=0;j<i;j++)
{
    if(t[j].rozprice>t[j+1].rozprice)
    {
        strcpy(t[j+1].name,o[1].oname);
        o[1].oprice=t[j+1].price;
        o[1].onacenka=t[j+1].nacenka;
        o[1].orozprice=t[j+1].rozprice;
        strcpy(t[j].name,t[j+1].name);
        t[j+1].price=t[j].price;
        t[j+1].nacenka=t[j].nacenka;
        t[j+1].rozprice=t[j].rozprice;
        strcpy(o[1].oname,t[j].name);
        t[j].price=o[1].oprice;
        t[j].nacenka=o[1].onacenka;
        t[j].rozprice=o[1].orozprice;
    }
}
cout<<"База товаров в порядке возрастания розничной цены!\n";
for(i=0;i<k;i++)
{
    cout<<i+1<<"-ый(-ой) товар\n";
    cout<<"Наименование товара: ";
    puts(t[i].name);
    cout<<"Закупочная цена: "<<t[i].price<<" руб.\n";
    cout<<"Наценка: "<<t[i].nacenka<<"%\n";
    cout<<"Розничная цена: "<<t[i].rozprice<<" руб.\n";
    cout<<"############################################\n";
}
 getch();
}
Помогите пожалуйста,кто может!!!Заранее ОГРОМНО СПАСИБО!!!
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
13.02.2012, 12:31     Программа по структурам! #4
C++
1
2
3
4
5
6
7
8
9
10
11
    for(i=0;i<k;i++){
        cout<<"Введите наименование "<<i+1<<"-ого товара: ";
        gets(t[i].name);
        cout<<"Укажите закупочную цену "<<i+1<<"-ого товара (в рублях): ";
        cin>>t[i].price;
        cin.ignore();
        cout<<"Укажите наценку "<<i+1<<"-ого товара (в процентах): ";
        cin>>t[i].nacenka;
        cin.ignore();
        t[i].rozprice=t[i].price+t[i].price*t[i].nacenka*0.01;
    }
Каждый раз, когда вы вводите что-либо через cin у вас в буфере остается символ переноса строки, который вы нажали для завершения ввода.
Используйте cin.ignore(); или cin.get();
Yandex
Объявления
13.02.2012, 12:31     Программа по структурам!
Ответ Создать тему
Опции темы

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