Наименование, Производитель, Цена, Срок хранения, Количество. Создать массив объектов.

Пример 1:

Наименование, Производитель, Цена, Срок хранения, Количество.

Создать массив объектов. Вывести :

а) список товаров для заданного наименования;
б) список товаров для заданного наименования, цена которых не превышает указанной;
в) список товаров, срок хранения которых больше заданного.

Решение от преподавателя:

#include "stdafx.h"
#include
#include //для русского языка в консоли

using namespace std;//пространство имён

class Product//класс описывающий продукт
{
char ProdName[30],//наименование продукта
Manufacturer[30];//производитель продукта
int Price,//цена продукта
Shelf,//срок хранения продукта
Amount;//количество продукта
public:
Product();//конструктор по умолчанию
void set();//метод с иницилизанией переменных
char* getProdName();//метод возвращающий наименование продукта
int getShelf();//метод, возвращающий срок хранения продукта
int getPrice();//метод, возвращающий цену за продукт
void show();//метод, выводящий список продуктов с описанием
};

Product::Product()//конструктор
{
*ProdName = '\0';//присваиваем нулевую строку
*Manufacturer = '\0';//присваиваем нулевую строку
Price = 0;//присваиваем ноль
Shelf = 0;//присваиваем ноль
Amount = 0;//присваиваем ноль
}

void Product::set()//метод с иницилизанией переменных
{
cout << "Наименование: ";
cin >> ProdName;//вводим наименование
cout << "Производитель: ";
cin >> Manufacturer;//вводим производителя
cout << "Цена: ";
cin >> Price;//вводим цену
cout << "Срок хранения: ";
cin >> Shelf;//вводим срок хранения продукта
cout << "Количество: ";
cin >> Amount;//вводим количество продуктов
cout << endl;//переход на новую строку
}

void Product::show()//метод, выводящий список продуктов с описанием
{
cout << "Наименование: " << ProdName << endl;
cout << "Производитель: " << Manufacturer << endl;
cout << "Цена: " << Price << endl;
cout << "Срок хранения: " << Shelf << endl;
cout << "Количество: " << Amount << endl;
}

char* Product::getProdName()//метод возвращающий наименование продукта
{
return ProdName;//возвращаем наименование продукта
}

int Product::getShelf()//метод, возвращающий срок хранения продукта
{
return Shelf;//возвращаем срок хранения продукта
}

int Product::getPrice()//метод, возвращающий цену за продукт
{
return Price;//возвращаем срок хранения продукта
}

void ListProdName(Product list[], int n)//вывод списка товаров для заданного наименования
{
char InpProdNamed[30];//вводимое наименование
cout << "Введите наименование товара: ";
cin >> InpProdNamed;//вводим наименование
cout << "\nСписок товаров:\n";
for (int i(0); i < n; i++)//цикл по перебору всех списков товаров
if (strcmp(list[i].getProdName(), InpProdNamed) == 0)//если наименование из списка совпадает с введённым
cout << list[i].getProdName() << i + 1 << endl;//выводим это i-ое наименование с индексом i
}

void ListNamedLPrise(Product list[], int n)//вывод списка товаров для заданного наименования, цена которых не превышает указанной
{
char InpProdName[30];//вводимое наименование
int InpPrice;//вводимая цена
cout << "Введите наименование товара: ";
cin >> InpProdName;//вводим наименование
cout << "\nВведите цену: ";
cin >> InpPrice;//вводим цену товара
cout << "Br\nСписок товаров не превышающих " << InpPrice << " Br:\n";//вывод списка товаров не превышающих указанную цену
for (int i(0); i < n; i++)//цикл по перебору всех списков товаров
if ((strcmp(list[i].getProdName(), InpProdName) == 0) && list[i].getPrice() <= InpPrice)//если наименование продукта совпадает с введённым и цена не превышает указанную
cout << list[i].getProdName() << i + 1 << endl;//выводим это i-ое наименование с индексом i
}

void ListShelf(Product list[], int n)//вывод списка товаров, срок хранения которых больше заданного.
{
int InpShelf;//водимый срок хранения
cout << "Введите срок хранения: ";
cin >> InpShelf;//вводим срок хранения
cout << "\nСписок товаров, срок которых больше " << InpShelf << " дней:\n";// вывод списка товаров не превышающих введённый срок хранения
for (int i(0); i < n; i++)//цикл по перебору всех списков товаров
if (list[i].getShelf() > InpShelf)//если срок хранения больше введённого
cout << list[i].getProdName() << i + 1 << endl;//выводим это i-ое наименование с индексом i
}

int _tmain(int argc, _TCHAR* argv[])//главная функция
{
setlocale(LC_ALL, "Russian");//русский язык для ввода
SetConsoleCP(1251);//русский язык для вывода
SetConsoleOutputCP(1251);//русский язык для вывода

Product *list;//массив объектов класса Product

int n;//количество товаров
cout << "Количество товаров: ";
cin >> n;//вводим количество товаров
list = new Product[n];//создание динамического массива списков товаров

for (int i(0); i < n; i++)//цикл по пребору всех списков товаров
list[i].set();//используем метод для иницилизации перменных

system("cls");//очистка консоли

for (int i(0); i < n; i++)//цикл по выводу списков с товарами
{
cout << "==============================" << endl;
list[i].show();
}

ListProdName(list, n);//передаем в функцию массив из списков и количество товаров
ListNamedLPrise(list, n);//передаем в функцию массив из списков и количество товаров
ListShelf(list, n);//передаем в функцию массив из списков и количество товаров

delete[] list;//удаляем динамическое выделение
system("pause");//
return 0;//выход их программы
}

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн