fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. ///////////////////////////////////////////////////////////////////////////////
  5.  
  6. class Publication
  7. {
  8. private:
  9. std::string title;
  10. float price;
  11.  
  12. public:
  13. virtual void set_data()
  14. {
  15. std::cout << "\n Enter title: "; std::cin >> title;
  16. std::cout << " Enter price: "; std::cin >> price;
  17. }
  18. virtual void show_data()const
  19. {
  20. std::cout << "\n title: " << title;
  21. std::cout << "\n price: " << price << " $";
  22. }
  23.  
  24.  
  25. };
  26.  
  27. //-----------------------------------------------------------------------------
  28.  
  29. class Book : public Publication
  30. {
  31. private:
  32. int pages;
  33.  
  34. public:
  35. void set_data()
  36. {
  37. Publication::set_data();
  38. std::cout << " Set book pages: "; std::cin >> pages;
  39. }
  40. void show_data()
  41. {
  42. Publication::show_data();
  43. std::cout << "\n pages: " << pages << std::endl;
  44. }
  45. };
  46.  
  47. //-----------------------------------------------------------------------------
  48.  
  49. class Tape : public Publication
  50. {
  51. private:
  52. float time;
  53.  
  54. public:
  55. void set_data()
  56. {
  57. Publication::set_data();
  58. std::cout << " Set tape time: "; std::cin >> time;
  59. }
  60. void show_data()
  61. {
  62. Publication::show_data();
  63. std::cout << "\n time: " << time << " min" << std::endl;
  64. }
  65.  
  66. };
  67.  
  68. ///////////////////////////////////////////////////////////////////////////////
  69.  
  70. int main()
  71. {
  72. Publication* pubarr[100];
  73.  
  74. int n = 0;
  75. char chose;
  76.  
  77. do {
  78. std::cout << "Enter data for book or tape (b/t)?"; std::cin >> chose;
  79.  
  80. if (chose == 'b')
  81. { pubarr[n] = new Book; }
  82. else
  83. { pubarr[n] = new Tape; }
  84.  
  85. pubarr[n++]->set_data();
  86.  
  87. std::cout << "\n Again (y/n)?"; std::cin >> chose;
  88. } while (chose == 'y');
  89.  
  90. for (int i = 0; i < n; i++) {
  91. pubarr[i]->show_data();
  92. }
  93.  
  94. return 0;
  95. }
  96.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Enter data for book or tape (b/t)?
 Enter title:  Enter price:  Set tape time: 
 Again (y/n)?
 title: 
 price: 0 $