1. Создать класс с именем PRICE, содержащий следующие поля:
■ название товара;
■ название магазина, в котором продается товар;
■ стоимость товара в руб.
2. Написать программу, реализующую следующие методы:
■ ввод с клавиатуры данных в массив, состоящий из восьми объектов класса PRICE;
■ вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры, если такого магазина нет, выдать на дисплей соответствующее сообщение.
программа зависает ! исправила но с сортировкой проблема
ЛИСТИНГ
#include "stdafx.h"
#include <iostream.h>
#include <iomanip.h>
#include <string.h>
#include <conio.h>
#include <fstream.h>
#include <stdlib.h>
#include <io.h>
#define TOV 20 // длина поля наименования товара
#define MAG 15 // длина поля названия магазина
#define R 8 // размерность массива объектов
// описание PRICE
class PRICE
{
public:
char tovar [TOV];//наименование товара
char mag [MAG]; // магазин
int cena; //цена
};
//----------------------------------------------
void main()
{
PRICE m[R]; // объявление массива объектов типа PRICE
// размерностью R
PRICE vr; //временные данные
PRICE sort[R]; //отсортированный массив
int nom, i,k ;
char c;
nom=0;
while (1)
{
// clrscr();
cout << " 1. vvod dannuh \n";
cout << " 2. prosmotr \n";
cout << " 3. poisk \n";
cout << " 4. vuhod \n";
cout << "vubor -> ";
cin>>c;
switch©
{
case '1':
{
cout << "vvod v masiv:\n";
for (i=0; i<4; i++)
{
cout << "naimenovanie:\n";
cin>>m[i].tovar;
cout << "magazin:\n";
cin>>m[i].mag;
cout << "stoimost:\n";
cin >>m[i].cena;}
break;};
case '2':
{
for (i=0; i<4; i++)
{
sort[i].cena =m[i].cena;
strcpy(sort[i].mag,m[i].mag);
strcpy(sort[i].tovar,m[i].tovar);
};
for (i=0; i<4; i++)
for (k=4; k<0; k--)
if (stricmp(sort[k-1].mag,sort[k].mag)>1){
strcpy(vr.mag,sort[k].mag);
vr.cena=sort[k].cena;
strcpy(vr.tovar,sort[k].tovar);
strcpy(sort[k].mag,sort[k-1].mag);
sort[k].cena=sort[k-1].cena;
strcpy(sort[k].tovar,sort[k-1].tovar);
strcpy(sort[k-1].mag,vr.mag);
sort[k-1].cena=vr.cena;
strcpy(sort[k-1].tovar,vr.tovar);
}
for (i=0; i<4; i++)
cout<< sort[i].mag<< endl;
cout << "-----------------------------------------------------------------\n";
cout << "| naimenovanie tovara | nazvanie magazina | stoimost |\n";
cout << "|-------------------------|--------------------|-----------|\n";
for (i=0; i<8; i++)
{
cout.setf(ios::left); // установка флага равнения по левому краю
cout << "|" << setw(25) <<m[i].tovar << "|" << setw(20) << m[i].mag
<< "|";
cout.setf(ios::right); // установка флага равнения по правому краю
cout << setw(11) << m[i].cena << "|" << endl;
}
break;}
case '3':
//поиск
break;
case '4':
//выход
break;
return;
default:
cout << "Вводите только цифры от 1 до 4" << endl;
cout << "Продолжение - клавиша Enter\n";
cin.seekg(0,ios::end);
cin.get();
};
};
}
//-------------------------------------------------------------------