Структуры.информация О Товарах

b0006

New member
17.12.2013
2
0
#1
Мне важно эту программу доделать под это:
Продукты питания: наименование, вес, цена, срок годности. Дополнить вывод информацией о товарах, которые следует уценить (срок годности которых истекает через 2 дня или ранее).


C++:
#include <stdafx.h>
#include <iostream>
#include <cctype>
#include <cstring>
#include <cstdlib>
#include <windows.h>
using namespace std;

const int SIZE = 150;

struct inv_type
{
char item [40]; // наименование товара.
double cost;	// стоимость. 
double retail; // розничная цена.
int on_hand;	// имеющееся в наличии количество.
int lead_time; // число дней до пополнения запасов.
} invtry [SIZE];

void enter ();
void init_list ();
void display ();
void update ();
void input (int i);
int menu ();

int main ()
{
SetConsoleCP (1251);
SetConsoleOutputCP (1251);

char choice;

init_list ();

for(;;) 
{
choice = menu ();

switch (choice)
{
case 'e': 
enter ();
break;

case 'd': 
display ();
break;

case 'u': 
update ();
break;

case 'q': 
return 0;
}
}
}

// Инициализация массива структур.
void init_list ()
{
int t;

// Имя нулевой длины означает пустое имя.
for (t = 0; t < SIZE; t++) 
*invtry[t].item = '\0';
}

// Получение команды меню, выбранной пользователем.
int menu ()
{
char ch;

cout << '\n';

do 
{
cout << "(E)nter\n";  //Ввести новый элемент.
cout << "(D)isplay\n"; // Отобразить всю ведомость.
cout << "(U)pdate\n"; // Изменить элемент.
cout << "(Q)uit\n\n"; // Выйти из программы.
cout << "Выберите команду: ";
cin >> ch;
} while (!strchr ( "eduq", tolower (ch) ) );
return tolower (ch);
}

// Ввод элементов в инвентарную ведомость.
void enter ()
{
int i;

// находим первую свободную структуру.
for(i = 0; i < SIZE; i++)
if(!*invtry[i].item) break;

// Если массив полон, значение i будет равно SIZE.
if(i == SIZE)
{
cout << "Список полон.\n";
return;
}

input(i);
}

// Ввод информации.
void input (int i)
{
cout << "Товар: ";
cin >> invtry[i].item;

cout << "Стоимость: ";
cin >> invtry[i].cost;

cout << "Розничная цена: ";
cin >> invtry[i].retail;

cout << "В наличии: ";
cin >> invtry[i].on_hand;

cout << "Время до пополнения запасов (в днях): ";
cin >> invtry[i].lead_time;
}

// Модификация существующего элемента.
void update ()
{
int i;
char name [80];

cout << "введите наименование товара: ";
cin >> name;

for(i = 0; i < SIZE; i++)
if(!strcmp (name, invtry[i].item) ) break;

if(i == SIZE)
{
cout << "Товар не найден.\n";
return;
}
cout << "Введите новую информацию:\n";
input(i);
}

// Отображаем на экране инвентарной ведомости.
void display ()
{
int t;

for(t = 0; t < SIZE; t++)
{
if(*invtry[t].item)
{
cout << invtry[t].item << '\n';
cout << "Стоимость: $" << invtry[t].cost;
cout << "\nВ розницу: $";
cout << invtry[t].retail << '\n';
cout << "В наличии: " << invtry[t].on_hand;
cout << "\nДо пополнения осталось: ";
cout << invtry[t].lead_time << " дней\n\n";
}
}
}