Читаем C++: базовый курс полностью

Ниже приведена законченная программа ведения инвентарной ведомости. Вам следует ввести эту программу в свой компьютер и исследовать ее работу. Внесите некоторые изменения и понаблюдайте, как они отразятся на ее выполнении. Попробуйте также расширить программу, добавив функции поиска в списке заданного товара, удаления уже ненужного элемента или полной очистки инвентарной ведомости.

/* Простая программа ведения инвентарной ведомости, в которой используется массив структур.

*/

#include

#include

#include

#include

using namespace std;

const int SIZE = 100;

struct inv_type {

 char item[40]; // наименование товара

 double cost; // стоимость

 double retail; // розничная цена

 int on_hand; // имеющееся в наличии количество

 int lead_time; // число дней до пополнения запасов

} invtry[SIZE];

void enter(), init_list(), display();

void update(), input(int i);

int menu();

int main()

{

 char choice;

 init_list();

 fоr (;;) {

  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

}

//Получение команды меню, выбранной пользователем.

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

  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

  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

  if(*invtry[t].item) {

   cout << invtry[t].item << '\n';

   cout << "Стоимость: $" << invtry[t].cost;

   cout << "\nB розницу: $";

   cout << invtry[t].retail << '\n';

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

   cout << "\nДо пополнения осталось: ";

   cout << invtry[t].lead_time << " дней\n\n";

  }

 }

}

Передача структур функциям
Перейти на страницу:

Все книги серии Изучайте C++ с профессионалами

C++: базовый курс
C++: базовый курс

В этой книге описаны все основные средства языка С++ - от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм обработки исключительных ситуаций (исключений), шаблоны, пространства имен, динамическая идентификация типов, стандартная библиотека шаблонов (STL), а также познакомится с расширенным набором ключевых слов, используемым в .NET-программировании. Автор справочника - общепризнанный авторитет в области программирования на языках C и C++, Java и C# - включил в текст своей книги и советы программистам, которые позволят повысить эффективность их работы. Книга рассчитана на широкий круг читателей, желающих изучить язык программирования С++.

Герберт Шилдт

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных