Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 16:20   #1
b0006
 
Регистрация: 17.12.2013
Сообщений: 8
Вопрос Структуры.Информация о товарах

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

Код:
#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";
        }
    }
}
b0006 вне форума Ответить с цитированием
Старый 17.12.2013, 17:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как я понимаю нужно такое:
Код:
void uzenka(int CurDay){
 for(int i=0;i<SIZE;i++){
  if(invtry[i].lead_time-CurDay<2){
   invtry[i] нужно уценять
  }
 }
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.12.2013, 18:04   #3
b0006
 
Регистрация: 17.12.2013
Сообщений: 8
Хорошо

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как я понимаю нужно такое:
Код:
void uzenka(int CurDay){
 for(int i=0;i<SIZE;i++){
  if(invtry[i].lead_time-CurDay<2){
   invtry[i] нужно уценять
  }
 }
}
можете пожалуйста вставить ваш фрагмент в код, а то я только изучаю первые дни программирование,пока не понимаю что куда и как)))
b0006 вне форума Ответить с цитированием
Старый 17.12.2013, 18:14   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

От горе-студенты пошли...
Вот держи:
Код:
#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 ();

void uzenka(){
 int CurDay;
 cout>>"Какой сейчас день?";
 cin>>CurDay;
 for(int i=0;i<SIZE;i++){
  if(invtry[i].lead_time-CurDay<2){
   invtry[i] нужно уценять
  }
 }
}
 
int main ()
{
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
 
    char choice;
 
    init_list ();
 
    for(;;) 
    {
        choice = menu ();
 
        switch (choice)
        {
        case 'w': 
            uzenka();
            break;

       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";
        }
    }
}
Учти - не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Joomla+VirtueMart: Не сохраняются изменения в категориях/товарах new player WordPress и другие CMS 4 10.07.2012 11:34
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Поиск и вывод на экран записей о товарах dexter2145 Помощь студентам 13 11.06.2010 19:04
Даны сведения о товарах на складе: наименование, цена, количество единиц товара. Найти товар, стоимость н Evidence Паскаль, Turbo Pascal, PascalABC.NET 1 03.06.2009 00:09