На аптечном складе хранятся лекарства. Сведения о лекарствах содержатся в специальной ведомости: наименование лекар*ственного препарата; количество; цена; срок хранения (в меся*цах) . Выяснить, сколько стоит самый дорогой и самый дешевый препарат; сколько препаратов хранится на складе; сколько стоят все препараты, хранящиеся на складе
Помогите пожалуйста!!!
Другие языки программирования и технологии
Классы и файлы
Кто скажет, что Drug - это не класс, пусть бросит в меня камень :)
#include <algorithm>
#include <iostream>
#include <numeric>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
struct Cost {
int rub;
int cop;
Cost(int r, int k): rub(r), cop(k) {}
};
class Drug {
public:
string name;
int count;
Cost cost;
int period;
Drug(): name(""), count(0), cost(Cost(0, 0)), period(0) {}
};
bool cmpcst(Drug &d1, Drug &d2) {
return d2.cost.rub > d1.cost.rub
|| (d2.cost.rub == d1.cost.rub && d2.cost.cop > d1.cost.cop);
}
int addcnt(int s, Drug &d) { return s + d.count; }
Cost addcst(Cost &s, Drug &d) {
Cost r(s.rub + d.cost.rub, s.cop + d.cost.cop);
r.rub += r.cop / 100;
r.cop = r.cop % 100;
return r;
}
int main() {
vector< Drug > drugs;
Drug drug;
ifstream in("drugs.txt");
while (in >> drug.name >> drug.count
>> drug.cost.rub >> drug.cost.cop >> drug.period) {
drugs.push_back(drug);
}
cout << "самый дорогой: "
<< max_element(drugs.begin(), drugs.end(), cmpcst)->name << endl;
cout << "самый дешевый: "
<< min_element(drugs.begin(), drugs.end(), cmpcst)->name << endl;
cout << "число препаратов: " << drugs.size() << endl;
cout << "общее количество: "
<< accumulate(drugs.begin(), drugs.end(), 0, addcnt) << endl;
Cost ccst = accumulate(drugs.begin(), drugs.end(), Cost(0, 0), addcst);
cout << "общая стоимость: " << ccst.rub << " руб. " << ccst.cop << " коп. ";
return 0;
}
ЗЫ: скорее всего от тебя хотят, чтобы ты создала класс-хранилище реализующий логику работы со складом, т. е. загрузку/выгрузку в файл, добавление/удаление препаратов, поиск и выдачу информации о препаратах, подсчет количества, общей стоимости и т. д. Но ты походу даже не пыталась что-то сделать, покажи, что уже сделано или попытайся использовать вышеприведенный код, сделай его инкапсуляцию в отдельный класс. При наличии уже написанного сделать это будет довольно легко.
ЗЫЫ: информация хранится в текстовом файле drugs.txt (наименование количество цена_руб цена_коп срок_хранения) :
анальгин 10 30 10 8
аспирин 20 25 20 12
баралгин 30 20 30 6
#include <algorithm>
#include <iostream>
#include <numeric>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
struct Cost {
int rub;
int cop;
Cost(int r, int k): rub(r), cop(k) {}
};
class Drug {
public:
string name;
int count;
Cost cost;
int period;
Drug(): name(""), count(0), cost(Cost(0, 0)), period(0) {}
};
bool cmpcst(Drug &d1, Drug &d2) {
return d2.cost.rub > d1.cost.rub
|| (d2.cost.rub == d1.cost.rub && d2.cost.cop > d1.cost.cop);
}
int addcnt(int s, Drug &d) { return s + d.count; }
Cost addcst(Cost &s, Drug &d) {
Cost r(s.rub + d.cost.rub, s.cop + d.cost.cop);
r.rub += r.cop / 100;
r.cop = r.cop % 100;
return r;
}
int main() {
vector< Drug > drugs;
Drug drug;
ifstream in("drugs.txt");
while (in >> drug.name >> drug.count
>> drug.cost.rub >> drug.cost.cop >> drug.period) {
drugs.push_back(drug);
}
cout << "самый дорогой: "
<< max_element(drugs.begin(), drugs.end(), cmpcst)->name << endl;
cout << "самый дешевый: "
<< min_element(drugs.begin(), drugs.end(), cmpcst)->name << endl;
cout << "число препаратов: " << drugs.size() << endl;
cout << "общее количество: "
<< accumulate(drugs.begin(), drugs.end(), 0, addcnt) << endl;
Cost ccst = accumulate(drugs.begin(), drugs.end(), Cost(0, 0), addcst);
cout << "общая стоимость: " << ccst.rub << " руб. " << ccst.cop << " коп. ";
return 0;
}
ЗЫ: скорее всего от тебя хотят, чтобы ты создала класс-хранилище реализующий логику работы со складом, т. е. загрузку/выгрузку в файл, добавление/удаление препаратов, поиск и выдачу информации о препаратах, подсчет количества, общей стоимости и т. д. Но ты походу даже не пыталась что-то сделать, покажи, что уже сделано или попытайся использовать вышеприведенный код, сделай его инкапсуляцию в отдельный класс. При наличии уже написанного сделать это будет довольно легко.
ЗЫЫ: информация хранится в текстовом файле drugs.txt (наименование количество цена_руб цена_коп срок_хранения) :
анальгин 10 30 10 8
аспирин 20 25 20 12
баралгин 30 20 30 6
ну во первых укажи язык программирования
а во вторых уточни, нужно делать именно с помощью класса или же можно воспользоваться структурой
а во вторых уточни, нужно делать именно с помощью класса или же можно воспользоваться структурой
Похожие вопросы
- Запись объекта класса в файл и его чтение
- Вопрос по дробления программы на файлы и классам. На данных условиях, как будет выглядеть структуризация?
- Как вы называете файлы / модули / классы, которые читают / сохраняют данные на диск?
- Зачем выносить определение тел функций-членов класса в отдельный *.сpp файл?
- Как на PHP получать пути к файлам из массива names в теге input при загрузке некольких файлов?
- C++ Файлы. помогите чем можете . за хороший ответ подарю денюжку
- Помогите написать bat файлы, срочно надо, сам изучить уже не успеваю
- помогите написать bat-файл.
- фотошоп: как пользоваться правильно пакетной обработкой файлов?
- Как определить что файл имеет зеркальное расширение? Особенно полезно будет для школьников и пожилых людей