Ejemplo n.º 1
0
void IngredientMatcherDialog::addIngredient()
{
	QList<Q3ListViewItem *> items = allIngListView->listView()->selectedItems();
	if ( !items.isEmpty() ) {
		for (int i = 0; i < items.size(); ++i) {
			bool dup = false;
			for ( Q3ListViewItem *exists_it = ingListView->listView()->firstChild(); exists_it; exists_it = exists_it->nextSibling() ) {
				if ( exists_it->text( 0 ) == items[i]->text( 0 ) ) {
					dup = true;
					break;
				}
			}

			if ( !dup ) {
				Q3ListViewItem * new_item = new Q3CheckListItem( ingListView->listView(), items[i]->text( 0 ), Q3CheckListItem::CheckBox );

				ingListView->listView() ->setSelected( new_item, true );
				ingListView->listView() ->ensureItemVisible( new_item );
				allIngListView->listView() ->setSelected( items[i], false );

				IngredientList::iterator it = m_ingredientList.append( Ingredient( items[i]->text( 0 ), 0, Unit(), -1, items[i]->text( 1 ).toInt() ) );
				m_item_ing_map.insert( new_item, it );
			}
		}
	}
}
Ejemplo n.º 2
0
void run_part_one() {
    std::string line;
    std::vector<Ingredient> ingredients;
    while (std::getline(std::cin, line)) {
        ingredients.push_back(Ingredient(line));
    }
    std::cout << get_optimal_composition(ingredients) << std::endl;
}
Ejemplo n.º 3
0
Ingredient* Refrigerator::getIngredient(std::string name, std::string unit)
{
    Ingredient temp = Ingredient(name, unit);

    for (size_t i = 0; i < numberOfIngredients; i++)
    {
        if (ingredientArray[i] == temp)
        {
            return &ingredientArray[i];
        }
    }
    return 0;
}
Ejemplo n.º 4
0
void Refrigerator::addNewIngredient(const std::string name, const std::string unit, double initAmount = 0)
{
    if (allocatedSize == numberOfIngredients)
    {
        Ingredient* tempArray = new Ingredient[allocatedSize += 10];

        for (size_t i = 0; i < numberOfIngredients; i++)
        {
            tempArray[i] = ingredientArray[i];
        }

        delete[] ingredientArray;
        ingredientArray = tempArray;
    }

    ingredientArray[numberOfIngredients++] = Ingredient(name, unit, initAmount);

}
Ejemplo n.º 5
0
const char* Menu::calculateMethod(){
	 IngredientSet* pantry__ = IngredientSet::getPantry();
	 vector<Ingredient> tempIngs;
	 string toBeReturned = "";
	 bool flag=false;
	 for (int i = 0; i < smenu->recipes_->size(); i++) {

		 Recipe* temp = (*smenu->recipes_)[i];
		 for (int j = 0; j < temp->ingredientSet_->size(); j++) {

			 	 flag=false;
			 	for (int k = 0; k < tempIngs.size(); k++)
			 	{


			 		if(tempIngs[k].getName().compare((*temp->ingredientSet_)[j]->getName()) != 0)
			 		{


			 		}
			 		else{

			 			 flag = true;
			 			tempIngs[k].editAmount(0,( (*temp->ingredientSet_)[j]->getAmount() ));
			 		}
			 	}
			 	if(flag == false){
			 		tempIngs.push_back(Ingredient(*(*temp->ingredientSet_)[j]));
			 	}


		 }
	 }
	 for(int i = 0; i < tempIngs.size(); i++)
	 {

		 const char* str = tempIngs[i].getName().c_str();
		 if(pantry__->getIngredient(str) != NULL)
		 {

			 tempIngs[i].editSmallAmount(-1 * pantry__->getIngredient(str)->getAmount());
		 }
	 }
	 for(int i = 0; i < tempIngs.size(); i++)
	 {

		 if(tempIngs[i].getAmount() > 0)
		 {
			 string moreTemp="";
			char str[12];
			sprintf(str, "%d", tempIngs[i].getAmount());
			moreTemp.append(str);
			string moreTemp2="";
			char str2[12];
			sprintf(str2, "%d", (tempIngs[i].getAmount()/tempIngs[i].getConversionFactor()));
			moreTemp2.append(str2);

			 toBeReturned = toBeReturned + tempIngs[i].getName() + " "+ moreTemp2 + " "
					 + tempIngs[i].getBigName() +" or "+ moreTemp + " "
					 + tempIngs[i].getSmallName() + "\n";
		 }
	}
	sprintf(Ingredient::buffer,"%s",toBeReturned.c_str());
	return Ingredient::buffer;
 }