Advertisement
chevengur

Lafore C++ | Chapter 9 | englmult.cpp

Apr 20th, 2023 (edited)
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. class Type {                //тип древесины
  5. private:
  6.     std::string dimensions;
  7.     std::string grade;
  8.  
  9. public:                    
  10.     Type(): dimensions("N/A"), grade("N/A") {                                //конструктор без параметров
  11.     }
  12.  
  13.     Type(std::string dim, std::string grad) : dimensions(dim), grade(grad) { //конструктор с двумя параметрами
  14.  
  15.     }
  16.    
  17.     void getType() {                // получить информацию от пользователя
  18.         std::cout << "Введите номинальные значения(2x4 и т.д.): ";
  19.         std::cin >> dimensions;
  20.         std::cout << "Введите сорт(необработанная, брус и т.д.): ";
  21.         std::cin >> grade;
  22.     }
  23.  
  24.     void showType() const {         //показ информации
  25.         std::cout << "\n Размеры: " << dimensions;
  26.         std::cout << "\n Сорт: " << grade;
  27.     }
  28. };
  29.  
  30. class Distance {                //английские меры длины
  31. private:
  32.     int feet;
  33.     float inches;
  34.    
  35. public:                                             //конструктор без параметров
  36.     Distance() : feet(0), inches(0.0) {
  37.  
  38.     }
  39.  
  40.     Distance(int ft, float in) : feet(ft), inches(in) {         //конструктор с двумя параметрами
  41.  
  42.     }
  43.  
  44.     void getdist() {
  45.         std::cout << "Введите футы: ";
  46.         std::cin >> feet;
  47.         std::cout << "Введите дюймы: ";
  48.         std::cin >> inches;
  49.     }
  50.  
  51.     void showdist() const {                 //показ информации
  52.         std::cout << feet << "\'-" << inches << '\"';
  53.     }
  54. };
  55.  
  56. class Lumber : public Type, public Distance {
  57. private:
  58.     int quantity;           //количество штук
  59.     double price;           //цена за штуку
  60.  
  61. public:                     //конструктор без параметров
  62.     Lumber() : Type(), Distance(), quantity(0), price(0.0) {
  63.  
  64.     }
  65.     Lumber(std::string di, std::string gr, int ft, float in, int qu, float prc) :
  66.         Type(di, gr), Distance(ft, in), quantity(qu), price(prc) {
  67.  
  68.     }
  69.  
  70.     void getLumber() {
  71.         Type::getType();
  72.         Distance::getdist();
  73.         std::cout << "Введите количество: ";
  74.         std::cin >> quantity;
  75.         std::cout << "Введите цену: ";
  76.         std::cin >> price;
  77.     }
  78.     void showLumber() const {
  79.         Type::showType();
  80.         std::cout << "\n Длина: ";
  81.         Distance::showdist();
  82.         std::cout << "\n Стоимость " << quantity << " штук: $" << (price * quantity) << " рублей";
  83.     }
  84. };
  85.  
  86. int main() {
  87.  
  88.     setlocale(0, "");
  89.  
  90.     Lumber siding; //используем конструктор без параметров
  91.     std::cout << "\n Информация об обшивке: \n";
  92.     siding.getLumber(); //получаем данные от пользователя
  93.     Lumber studs("2x4", "const", 8, 0.0, 200, 4.45F);
  94.     std::cout << "\nОбшивка";
  95.     siding.showLumber();    //показываем информацию
  96.     std::cout << "\nБрус";
  97.     studs.showLumber();
  98.     std::cout << std::endl;
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement