Использование класса
От: Diger  
Дата: 18.04.07 16:01
Оценка:
Есть файл, в нем содержаться данные о наличии товара и его количестве на складе. Как определить какого типа товары содержаться в количестве более 20 штук? Как узнать насколько товара одного типа больше, чем другого?
Как сделать это с использованием класса?
Re: Использование класса
От: Аноним  
Дата: 18.04.07 16:14
Оценка:
Здравствуйте, Diger, Вы писали:

D>Есть файл, в нем содержаться данные о наличии товара и его количестве на складе. Как определить какого типа товары содержаться в количестве более 20 штук? Как узнать насколько товара одного типа больше, чем другого?

D>Как сделать это с использованием класса?

Прежде всего нужно прочитать файл, а для этого нужно знать формат, в котором хранится информация в файле.
Re[2]: Использование класса
От: Diger  
Дата: 18.04.07 16:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Diger, Вы писали:


D>>Есть файл, в нем содержаться данные о наличии товара и его количестве на складе. Как определить какого типа товары содержаться в количестве более 20 штук? Как узнать насколько товара одного типа больше, чем другого?

D>>Как сделать это с использованием класса?

А>Прежде всего нужно прочитать файл, а для этого нужно знать формат, в котором хранится информация в файле.


Файл — обычный txt. Информация храниться в виде:
"Гвозди 15
Шурупы 61"
Re[3]: Использование класса
От: alion  
Дата: 18.04.07 16:59
Оценка:
Здравствуйте, Diger, Вы писали:

D>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Diger, Вы писали:


D>>>Есть файл, в нем содержаться данные о наличии товара и его количестве на складе. Как определить какого типа товары содержаться в количестве более 20 штук? Как узнать насколько товара одного типа больше, чем другого?

D>>>Как сделать это с использованием класса?

А>>Прежде всего нужно прочитать файл, а для этого нужно знать формат, в котором хранится информация в файле.


D>Файл — обычный txt. Информация храниться в виде:

D>"Гвозди 15
D>Шурупы 61"

std::ifstream f("file.txt");

while()
{
std::string s;
f >> s;
int count;
f >> count;
}

проверяешь count и делаешь все что нужно
Re: Использование класса
От: Кодт Россия  
Дата: 19.04.07 15:25
Оценка:
Здравствуйте, Diger, Вы писали:

D>Есть файл, в нем содержаться данные о наличии товара и его количестве на складе. Как определить какого типа товары содержаться в количестве более 20 штук? Как узнать насколько товара одного типа больше, чем другого?


Прочитать файл.
Построить таблицу: название -> количество.
Сделать над ней все интересующие тебя действия.

Или же выполнять все действия прямо по ходу чтения файла.

D>Как сделать это с использованием класса?


Откуда взялось волшебное слово "класс"? Препод сказал "сделать с использованием класса!"? Было бы очень неплохо пойти к нему и вытрясти, что он имеет в виду. Полезно для обоих.

Видимо, имеется в виду, что программу (сиречь, структуры и алгоритмы) нужно инкапсулировать в одном классе.
Который умеет делать всю базовую работу.



Представляется, что у программы могут быть два дизайна.

Первый: объект "база данных", который
— читает из файла во внутреннее представление (в таблицу)
и затем
— отвечает на запросы известного вида

Второй:
— парсер файла, который читает построчно записи из файла и выдаёт их в структурированном виде
— фильтры, которые читают структурированные записи и передают дальше только те, которые удовлетворяют каким-то критериям
— приёмники, совершающие окончательную обработку отфильтрованных записей (вывод, сравнение)
и надо всем этим — конфигуратор, собирающий конвеер из парсера, фильтров и приёмника в зависимости от запроса.



Думаю, что сделать первый вариант — проще. И в большей степени отвечает интуитивно понятному тех.заданию "сделать с использованием класса".

Чтение из файла может быть совершенно дубовым: std::cin >> name >> amount; (при условии, что имя товара не содержит пробелов).
Далее — запись в std::map<string,int>; заодно проверишь, находится ли БД в 1НФ, т.е. нет ли там повторений — а если есть, то либо надо суммировать количество, либо ругаться.
boost::multi_index не предлагаю — по первости его сложно будет осилить, хотя именно на нём задача фильтрации по второму полю делается легко и просто (а на map придётся бегать по всем записям).
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.