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

Подсчет цены в multimap - C++

Восстановить пароль Регистрация
 
ashta
6 / 6 / 1
Регистрация: 28.08.2012
Сообщений: 65
08.08.2013, 16:02     Подсчет цены в multimap #1
Всем добрый день,

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

C++
1
2
long sum=0; 
sum+=it->second.GetPrice():
но так выдает ошибку.

Вот мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
multimap<Dinner, Food>::iterator it;
 
    for (it=MyMenu.begin(); it!=MyMenu.end(); it++)
    {
 
        writeFile<<it->second.GetDish()<<" "<<setw(3)<<it->second.GetPrice()<<endl; //запись названия блюда и цены в файл
        
        
        
    }
    
    
    writeDinner<<left<<setw(10)<<"\nTotal:"<<setw(3)<<"   "<<endl;
    
        
    writeDinner.close();
Заранее благодарна за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2013, 16:02     Подсчет цены в multimap
Посмотрите здесь:

C++ STL multimap.
сортировка в multimap C++
C++ multimap
Multimap зацикливается C++
C++ multimap::emplace()
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
08.08.2013, 16:27     Подсчет цены в multimap #2
Глядя на это похоже на правду, но такое очучение, что не хватает чего то.
Приведите весь код, хотя тут есть парни-телепаты.
ashta
6 / 6 / 1
Регистрация: 28.08.2012
Сообщений: 65
08.08.2013, 16:34  [ТС]     Подсчет цены в multimap #3
Цитата Сообщение от egor2116 Посмотреть сообщение
Глядя на это похоже на правду, но такое очучение, что не хватает чего то.
Приведите весь код, хотя тут есть парни-телепаты.

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
void Restaurant::SaveMenu ()
        
    {
        
        
        ofstream writeDinner ("MyRest.txt");
 
    multimap<Dinner, Food>::iterator it; //класс dinner - завтрак, обед, ужин, класс food - название блюда, цена, тип блюда
 
    for (it=MyMenu.begin(); it!=MyMenu.end(); it++)
    {
 
        writeFile<<it->second.GetDish()<<" "<<setw(3)<<it->second.GetPrice()<<endl; //запись названия блюда и цены в файл
        
        
        
    }
    
    
    writeDinner<<left<<setw(10)<<"\nTotal:"<<setw(3)<<" здесь должен быть подсчет цены  "<<endl;
    
        
    writeDinner.close();
}
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
08.08.2013, 16:46     Подсчет цены в multimap #4
Примерно:
C++
1
2
3
4
5
6
double total = 0;
for (it = MyMenu.begin(); it != MyMenu.end(); ++it) {
   total += it->second.GetPrice();
}
 
writeDinner<<left<<setw(10)<<"\nTotal:"<<setw(3)<< total <<endl;
ashta
6 / 6 / 1
Регистрация: 28.08.2012
Сообщений: 65
08.08.2013, 16:50  [ТС]     Подсчет цены в multimap #5
Огромное спасибо!!! заработало!! Супер.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
08.08.2013, 16:55     Подсчет цены в multimap #6
ashta, вставить)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Restaurant::SaveMenu ()
{        
    ofstream writeDinner ("MyRest.txt");
 
    multimap<Dinner, Food>::iterator it; //класс dinner - завтрак, обед, ужин, класс food - название блюда, цена, тип блюда
 
    for (it=MyMenu.begin(); it!=MyMenu.end(); it++)
    { 
        writeFile<<it->second.GetDish()<<" "<<setw(3)<<it->second.GetPrice()<<endl; //запись названия блюда и цены в файл        
    }    
 
    double total = 0;
    for (it = MyMenu.begin(); it != MyMenu.end(); ++it)
    {
       total += it->second.GetPrice();
    }
 
    writeDinner<<left<<setw(10)<<"\nTotal:"<<setw(3)<< total <<endl;
}
ashta
6 / 6 / 1
Регистрация: 28.08.2012
Сообщений: 65
08.08.2013, 16:56  [ТС]     Подсчет цены в multimap #7
Цитата Сообщение от gray_fox Посмотреть сообщение
ashta, вставить)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Restaurant::SaveMenu ()
{        
    ofstream writeDinner ("MyRest.txt");
 
    multimap<Dinner, Food>::iterator it; //класс dinner - завтрак, обед, ужин, класс food - название блюда, цена, тип блюда
 
    for (it=MyMenu.begin(); it!=MyMenu.end(); it++)
    { 
        writeFile<<it->second.GetDish()<<" "<<setw(3)<<it->second.GetPrice()<<endl; //запись названия блюда и цены в файл        
    }    
 
    double total = 0;
    for (it = MyMenu.begin(); it != MyMenu.end(); ++it)
    {
       total += it->second.GetPrice();
    }
 
    writeDinner<<left<<setw(10)<<"\nTotal:"<<setw(3)<< total <<endl;
}
Спасибо, спасибо. Я выше ответила. Заработало все с одним циклом все ок.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2013, 16:56     Подсчет цены в multimap
Еще ссылки по теме:

Отсортировать multimap по pair->second C++
Помещение данных в multimap C++
Multimap. Ошибка operator+ not implemented in type multimap C++

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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
08.08.2013, 16:56     Подсчет цены в multimap #8
Цитата Сообщение от ashta Посмотреть сообщение
заработало
ок...
Yandex
Объявления
08.08.2013, 16:56     Подсчет цены в multimap
Ответ Создать тему
Опции темы

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