fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int LEN = 80;
  5. class instrument{
  6. private:
  7. char name[LEN];
  8. char prois[LEN];
  9. char type[LEN];
  10.  
  11. public:
  12. virtual void get_name() {
  13. cout << "Инструмент\n";
  14. }
  15. void getdata() {
  16. cout << "\n Введите фамилию владельца инструмента: "; cin >> name;
  17. cout << "\n Производитель инструмента: "; cin >> prois;
  18.  
  19. }
  20. void putdata() const {
  21. cout << "\n Фамилия: " << name;
  22. cout << "\n Производитель инструмента: " << prois;
  23.  
  24. }
  25. };
  26.  
  27.  
  28. class Kick : public instrument{
  29. void get_name() {
  30. cout << "Ударный\n";
  31. }
  32. };
  33.  
  34. class String : public instrument{
  35. private:
  36. int kolvo; // кол-во струн
  37.  
  38. public:
  39. void get_name() {
  40. cout << "Струнный\n";
  41. }
  42. void getdata(){
  43. instrument::getdata();
  44.  
  45. cout << "\n Количество струн: "; cin >> kolvo;
  46. }
  47. void putdata() const {
  48. instrument::putdata();
  49.  
  50. cout << "\n Количество струн: " << kolvo;
  51. }
  52. };
  53.  
  54.  
  55. class Horn : public instrument{
  56. private:
  57. char lenghtcanal[LEN]; // длина канала
  58.  
  59. public:
  60. void get_name() {
  61. cout << "Духовой\n";
  62. }
  63. void getdata(){
  64. instrument::getdata();
  65. cout << "\n Длина канала духового инструмента: "; cin >> lenghtcanal;
  66.  
  67. }
  68. void putdata() const {
  69. instrument::putdata();
  70. cout << "\n Длина канала духового инструмента: " << lenghtcanal;
  71. }
  72. };
  73.  
  74.  
  75.  
  76.  
  77. int main(){
  78.  
  79. instrument* o[2];//массив указателей
  80. o[0] = new Horn();//создаём объект
  81. o[1] = new String();
  82. o[0]->get_name();
  83. o[1]->get_name();
  84.  
  85.  
  86.  
  87.  
  88. int n,choice;
  89. cout << "Введите размер оркестра";
  90. cin >> n;
  91.  
  92. instrument** orc = new instrument*[n];
  93.  
  94. for (int i = 0; i < n; i++)
  95. {
  96. cout << "Выберите тип инструмента:\n1-Ударный\n2-струнный\n3-духовой"<<endl;
  97. cin >> choice;
  98. switch (choice){
  99.  
  100. case 1:orc[i] = new Kick();
  101. orc[i]->get_name();
  102. break;
  103. case 2:orc[i] = new String();
  104. orc[i]->get_name();
  105. break;
  106. case 3:orc[i] = new Horn();
  107. orc[i]->get_name();
  108. break;
  109. }
  110. }
  111.  
  112.  
  113.  
  114. return 0;
  115. }
Success #stdin #stdout 0s 3464KB
stdin
3 1 2 3
stdout
Духовой
Струнный
Введите размер оркестраВыберите тип инструмента:
1-Ударный
2-струнный
3-духовой
Ударный
Выберите тип инструмента:
1-Ударный
2-струнный
3-духовой
Струнный
Выберите тип инструмента:
1-Ударный
2-струнный
3-духовой
Духовой