fork download
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4.  
  5. class Car
  6. {
  7. string nr_;
  8. int power_;
  9. double weight_;
  10. char engine_;
  11. public:
  12. Car();
  13. Car(int);
  14. ~Car(){}
  15. string readNr();
  16. int readPower();
  17. double readWeight();
  18. char readChar();
  19. void writeNr(string);
  20. void writePower(int);
  21. void writeWeight(double);
  22. void writeChar(char);
  23. };
  24.  
  25. class CarHeap
  26. {
  27. static const int capacity_=6;
  28. int counter_;
  29. Car arr_[capacity_];
  30. public:
  31. CarHeap();
  32. friend class Car;
  33. void adCar (Car);
  34. void showCar();
  35. void carEquals(Car,Car);
  36.  
  37. };
  38.  
  39. void CarHeap::carEquals(Car first,Car second)
  40. {
  41. first.writeNr(second.readNr());
  42. first.writePower(second.readPower());
  43. first.writeWeight(second.readWeight());
  44. first.writeChar(second.readChar());
  45. }
  46.  
  47. void CarHeap::showCar()
  48. {
  49. cout << "result" << endl;
  50. for (int i=0;i<counter_;i++)
  51. {
  52. cout << arr_[i].readNr() << " " << arr_[i].readPower() << " ";
  53. }
  54. }
  55.  
  56. void CarHeap::adCar (Car obj)
  57. {
  58. if (counter_<capacity_)
  59. {
  60. int child=counter_++;
  61. int parent=(child-1)/2;
  62. cout << obj.readPower() << endl;
  63. while (child>0&&arr_[parent].readPower()>obj.readPower())
  64. {
  65. carEquals(arr_[child],arr_[parent]);
  66. child=parent;
  67. parent=(child-1)/2;
  68. }
  69. carEquals(arr_[child],obj);
  70. }
  71. }
  72.  
  73.  
  74. CarHeap::CarHeap() {
  75. counter_=0;
  76. }
  77.  
  78. int Car::readPower()
  79. {
  80. return power_;
  81. }
  82.  
  83. string Car::readNr()
  84. {
  85. return nr_;
  86. }
  87. double Car::readWeight()
  88. {
  89. return weight_;
  90. }
  91. char Car::readChar()
  92. {
  93. return engine_;
  94. }
  95. void Car::writeNr(string x)
  96. {
  97. nr_=x;
  98. }
  99. void Car::writePower(int x)
  100. {
  101. power_=x;
  102. }
  103. void Car::writeWeight(double x)
  104. {
  105. weight_=x;
  106. }
  107. void Car::writeChar(char x)
  108. {
  109. engine_=x;
  110. }
  111.  
  112.  
  113. Car::Car () {
  114. string nr;
  115. int power;
  116. double weight;
  117. char engine;
  118. cin >> nr;
  119. nr_=nr;
  120.  
  121. cin >> power;
  122. power_=power;
  123.  
  124. cin >> weight;
  125. weight_=weight;
  126.  
  127. cin >> engine;
  128. engine_=engine;
  129.  
  130. }
  131.  
  132.  
  133. int main()
  134. {
  135. CarHeap arr;
  136. Car a;
  137. arr.adCar(a);
  138. Car b;
  139. arr.adCar(b);
  140. Car c;
  141. arr.adCar(c);
  142. Car d;
  143. arr.adCar(d);
  144. Car e;
  145. arr.adCar(e);
  146. Car f;
  147. arr.adCar(f);
  148. arr.showCar();
  149.  
  150. return 0;
  151. }
  152.  
Success #stdin #stdout 0s 4248KB
stdin
Standard input is empty
stdout
0
0
0
0
0
0
result
 0  0  0  0  0  0