Скачиваний:
0
Добавлен:
11.01.2026
Размер:
2.03 Кб
Скачать
#ifndef ORGTECHCLASS_H
#define ORGTECHCLASS_H

class OrgTechnic
{
public:
    int id;
    char category[50];
    char model[100];
    char purchaseDate[20];
    int warrantyMonths;
    float price;
    char additionalInfo[200];
    int coordX;
    int coordY;

    // Методы
    bool IsWarrantyValid();
    float CurrentValue();
    int MonthsInUse();
    void SetCoordinates(int x, int y);

    // Методы для работы с файлами
    void SaveToFile(FILE *file);
    void LoadFromFile(FILE *file);
};

class Supply
{
public:
    char supplier[100];
    char category[50];
    char model[100];
    char supplyDate[20];

    void SaveToFile(FILE *file);
    void LoadFromFile(FILE *file);
};

class Repair
{
public:
    int deviceId;
    char category[50];
    char model[100];
    char repairStartDate[20];
    char condition[100];

    void SaveToFile(FILE *file);
    void LoadFromFile(FILE *file);
};

class ReportCalculator
{
private:
    OrgTechnic* devices;
    int deviceCount;
    bool* categoryFilter;  // Фильтр по категориям
    char** categories;     // Список категорий
    int categoryCount;     // Количество категорий

public:
    // Конструктор
    ReportCalculator(OrgTechnic* devArray, int count);

    // Новый конструктор с фильтром
    ReportCalculator(OrgTechnic* devArray, int count, bool* filter, char** cats, int catCount);

    // Методы для расчетов
    float CalculateTotalOriginalValue();
    float CalculateTotalCurrentValue();
    float CalculateTotalDepreciation();
    float CalculateDepreciationPercentage();
    int CountDevicesWithWarranty();
    int CountDevicesWithoutWarranty();
    int GetTotalDevicesCount();

    // Метод для проверки проходит ли устройство через фильтр
    bool DevicePassesFilter(int index);
};

#endif
Соседние файлы в папке Курсовая работа Армашев 3 семестр. Список оргтехники предприятия. С++