Advertisement
plarmi

workcpp_1_2

Jun 9th, 2023 (edited)
633
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. class Point {
  5. public:
  6.     // Конструкторы
  7.     Point() : x(0), y(0), z(0) {}
  8.     Point(double x_, double y_, double z_) : x(x_), y(y_), z(z_) {}
  9.  
  10.     // Функции-члены класса
  11.     void input() {
  12.         std::cout << "Введите координаты точки (x, y, z): ";
  13.         std::cin >> x >> y >> z;
  14.     }
  15.  
  16.     void output() const {
  17.         std::cout << "(" << x << ", " << y << ", " << z << ")";
  18.     }
  19.  
  20.     // Аксессоры для доступа к переменным-членам
  21.     double getX() const { return x; }
  22.     double getY() const { return y; }
  23.     double getZ() const { return z; }
  24.  
  25.     void setX(double x_) { x = x_; }
  26.     void setY(double y_) { y = y_; }
  27.     void setZ(double z_) { z = z_; }
  28.  
  29.     // Функции сохранения и загрузки данных в/из файла
  30.     bool saveToFile(const std::string& filename) const {
  31.         std::ofstream file(filename, std::ios::out);
  32.         if (!file.is_open()) {
  33.             std::cerr << "Не удалось открыть файл для записи: " << filename << std::endl;
  34.             return false;
  35.         }
  36.  
  37.         file << x << " " << y << " " << z;
  38.         file.close();
  39.         return true;
  40.     }
  41.  
  42.     bool loadFromFile(const std::string& filename) {
  43.         std::ifstream file(filename, std::ios::in);
  44.         if (!file.is_open()) {
  45.             std::cerr << "Не удалось открыть файл для чтения: " << filename << std::endl;
  46.             return false;
  47.         }
  48.  
  49.         file >> x >> y >> z;
  50.         file.close();
  51.         return true;
  52.     }
  53.  
  54. private:
  55.     double x, y, z; // Координаты точки
  56. };
  57.  
  58. int main() {
  59.     Point p1;
  60.     p1.input();
  61.     p1.output();
  62.  
  63.     // Доступ к переменным-членам с помощью аксессоров
  64.     std::cout << "\nx = " << p1.getX() << ", y = " << p1.getY() << ", z = " << p1.getZ() << std::endl;
  65.  
  66.     // Изменение значений переменных-членов с помощью аксессоров
  67.     p1.setX(2.5);
  68.     p1.setY(-1.0);
  69.     p1.setZ(3.7);
  70.  
  71.     // Сохранение данных в файл
  72.     p1.saveToFile("point.txt");
  73.  
  74.     // Загрузка данных из файла
  75.     Point p2;
  76.     p2.loadFromFile("point.txt");
  77.     p2.output();
  78.  
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement