ЗАДАЧА С++ ХЕЛП ПЛИЗ
Сашко, написав програму, яка виконувала наступні дії:
1) введення з клавіатури даних в масив, що складається з десяти елементів типу Computer (3 бали);
2)впорядкування записів у масиві за зростанням ціни (+1 бал).
3) виведення на екран даних про всі комп’ютери, що працюють на базі процесора, тип якого вводиться з клавіатури. Якщо таких немає – вивести відповідне повідомлення (+1 бал).
Ответы
Відповідь:
С++ code:
#include <iostream>
#include <string>
class Computer{
private:
std::string mark;
std::string processor;
int price;
public:
Computer();
Computer(std::string,std::string,int);
~Computer() = default;
friend std::istream& operator >>(std::istream&, Computer&);
friend std::ostream& operator <<(std::ostream&, const Computer&);
int get_price(){return this->price;}
std::string get_processor(){return this->processor;}
};
Computer::Computer(){
this->mark = "mark";
this->processor = "processor";
this->price = 0;
}
Computer::Computer(std::string mark,std::string processor,int price){
this->mark = mark;
this->price = price;
this->processor = processor;
}
std::istream& operator >>(std::istream& in,Computer& object){
std::cout << "Введiть марку комп'ютера: ";
in >> object.mark;
std::cout << "Введiть процессор: ";
in >> object.processor;
std::cout << "Цiна: ";
in >> object.price;
return in;
}
std::ostream& operator <<(std::ostream& out, const Computer& object){
out << "Марка: " << object.mark << " Процессор: " << object.processor << " Цiна: " << object.price << std::endl;
return out;
}
void sort_price(Computer* arr,unsigned int size){
for (int i = 0; i < size - 1; ++i){
int smallest = i;
for (int j = i + 1; j < size; ++j){
if (arr[j].get_price() < arr[smallest].get_price())
smallest = j;
}
std::swap(arr[i], arr[smallest]);
}
}
void fillarray(Computer* arr,const int size){
for(int i = 0; i < size; i++){
std::cin >> arr[i];
}
}
void printarray(Computer* arr,const int size){
for(int i = 0; i < size; i++){
std::cout << arr[i] << std::endl;
}
}
void print_processor(Computer *arr,const int size){
std::string find;
std::cout << "Введiть назву процесcора: ";
bool flag = false;
std::cin >> find;
for(int i = 0; i < size; i++){
if(arr[i].get_processor() == find){
flag = true;
std::cout << arr[i];
}
}
if(flag == false){
std::cout << "Комп'ютерiв на базi цього процессора немає" << std::endl;
}
}
int main(){
setlocale(LC_ALL, "Ukrainian");
const int size = 3;
Computer *array = new Computer[size];
fillarray(array,size);
printarray(array,size);
std::cout << "Сортуємо за цiною: " << std::endl;
sort_price(array,size);
printarray(array,size);
std::cout << "Шукаємо всi комп'ютери за заданим процессором..." << std::endl;
print_processor(array,size);
delete[] array;
return 0;
}
Пояснення: