LAB10_VLAD
unknown
c_cpp
3 years ago
2.9 kB
18
Indexable
#include <iostream>
#include <cstring>
using namespace std;
const int StrLen = 250;
class Product
{
public:
char Name[20];
char Grade[20];
int Cost;
int ShelfLife;
int ReleaseDate;
Product* Next = 0;
};
istream& operator>>(istream& stream, Product& obj)
{
char str[StrLen];
cout << "\nEnter product name: ";
cin.getline(obj.Name, StrLen);
cout << "\nEnter product grade: ";
cin.getline(obj.Grade, StrLen);
cout << "\nEnter product cost: ";
cin >> obj.Cost;
cout << "\nEnter product shelf life: ";
cin >> obj.ShelfLife;
cout << "\nEnter product release date: ";
cin >> obj.ReleaseDate;
cin.ignore();
return stream;
}
ostream& operator<<(ostream& stream, Product& obj)
{
stream
<< " " << obj.Name
<< " " << obj.Grade
<< " " << obj.Cost
<< " " << obj.ShelfLife
<< " " << obj.ReleaseDate;
return stream;
}
Product *CreateList(int);
void DisplayList(Product*);
void DisplayChoise(Product*, char*, int, int);
void DeleteList(Product*);
int main()
{
int dimension;
char grade[15];
int lowerCost, higherCost;
cout << "Enter the number of products: ";
cin >> dimension;
Product *beginList = CreateList(dimension);
cout << "\nThe list of products: \n";
DisplayList(beginList);
cout << "\nEnter the type of product: ";
cin.getline(grade, StrLen);
cout << "\nEnter lower cost: ";
cin >> lowerCost;
cout << "\nEnter highter cost: ";
cin >> higherCost;
DisplayChoise(beginList, grade, lowerCost, higherCost);
DeleteList(beginList);
return 0;
}
Product* CreateList(int n)
{
Product* beginList = new Product;
cout << "Enter information about 1-th product: " << endl;
cin.ignore();
cin >> (*beginList);
Product* current = beginList;
for (int i = 1; i < n; i++)
{
cout << "Enter information about " << i << "-th " << "product" << endl;
current->Next = new Product;
cin >> (*(current-> Next));
current = current -> Next;
}
return beginList;
}
void DisplayList(Product* beginList)
{
Product* current = beginList;
while(current)
{
cout << (*current) << endl;
current = current->Next;
}
}
void DisplayChoise(Product* beginList, char* grade, int lowerCost, int higherCost)
{
Product* current = beginList;
while (current)
{
if (strcmp(current->Grade, grade) == 0 && current->Cost > lowerCost && current->Cost <= higherCost)
cout << (*current);
current = current->Next;
}
}
void DeleteList(Product *beginList)
{
Product* current = beginList;
while (current)
{
beginList = current->Next;
delete current;
current = beginList;
}
}Editor is loading...