JSON-XML
300 UAHЗавдання №1. Проектування класів
Створити клас для сутності Науковець:
class TEntity {
public:
/* @todo your entity here */
};
Де замість TEntity - назва класу сутності Науковець (англійською мовою).
Цей тип даних, окрім своїх властивостей (мінімум 3 поля, строкове, цілочисельне і дробове), повинен містити масив (або список) інших сутностей. Наприклад, сутність Студент містить масив Академічних Предметів (кожен елемент - строка назви предмету).
Створити абстрактний клас EntityStorage із таким інтерфейсом:
class EntityStorage {
std::string _name;
protected:
EntityStorage(std::string name) { this->_name = name; }
public:
std::string name() { return this->_name; }
vector<TEntity> load() = 0;
void save(vector<TEntity> & entities) = 0;
};
Створити клас XmlEntityStorage - наслідник класу EntityStorage і реалізувати в ньому можливість збереження і завантаження вектора сутностей у форматі XML (при цьому потрібно використати хоча б один XML-атрибут).
Створити клас JsonEntityStorage - наслідник класу EntityStorage і реалізувати в ньому можливість збереження і завантаження вектора сутностей у форматі JSON.
У реалізаціях методів save() та load() викидати std::exception при неможливості збереження, відкриття файлів чи некоректності формату даних у файлах.
Реалізувати статичний клас StorageManager:
class StorageManager {
public:
static EntityStorage createStorage(std::string storageFileName);
};
Функція createStorage() в залежності від розширення файлу з storageFileName повертає об'єкт XmlEntityStorage або JsonEntityStorage, які працюватимуть із відповідним файлом. Якщо розширення не підтримується, викидати MessageException.
class MessageException : public std::exception {
string _error;
public:
MessageException(string error) {
this->_error = error;
}
const char * what() const noexcept{
return this->_error.c_str();
}
};
Завдання №2. Опис роботи програми
Створити і ініціалізувати вектор сутностей (на 3-5 елементів) із довільним вмістом даних.
Створити вектор EntityStorage і заповнити його результатами виклику функції StorageManager::createStorage() для файлів:
data.xml
data.json
data.fake
Використати отриманий вектор EntityStorage для збереження вектора сутностей у задані файли.
Призупинити роботу програми для очікування нажаття користувачем будь-якої клавіші.
За цей час користувач може змінити вміст створений файлів (і зробити їх некоректними теж).
Після цього використати вектор EntityStorage для завантаження векторів сутностей зі створений файлів і вивести їх у консоль з вказанням назви файлу з якого вони були отримані.
Ззовні при викликах методів, що можуть викидати MessageException ловити їх та виводити повідомлення про помилку у cerr.
-
68 1 0 Здравствуйте!
Готов выполнить задание!
Гарантирую качество и скорость выполнения!
-
245 17 0 Здравствуйте!
Выполню быстро и качественно, к коду программы напишу комментарии.
Обращайтесь, буду рад помочь.
-
398 85 3 6 добрый день, готов реализовать на C#, опыт работ с джейсон и хмл данными есть
Актуальні фриланс-проєкти в категорії C та C++
Інженер інфраструктури резидентних проксіМи будуємо мережу резидентних проксі з нуля — повністю власну, без сторонніх постачальників. Нам потрібен один винятковий мережевий інженер, щоб побудувати всю технічну основу. Що ви будете будувати: - Android фоновий SDK, який маршрутизує проксі-трафік через пристрої… C та C++, DevOps ∙ 2 дні 19 годин тому ∙ 12 ставок |
Добробка в існуючій версії 1с роздріб блоку для РЦ(розподільчого центру))в загальному поясню що у нас за база - Є загальний сервер де є дів база РОзница (де ставляться усі приходи) - база УТП- куди переливаються усі продажі - рахується націнка залишки по складах - маленькі бази роздрібних магазинів. по обмінам у нас Магазини обмінюються із базою… C та C++, C# ∙ 3 дні 9 годин тому ∙ 6 ставок |
ПО Мастер-програма «KONSTRUCTOR»
185 977 UAH
Ми шукаємо дуже досвідченого C++ розробника для модернізації існуючого ПЗ (майстер-програми). Програма відповідає за створення виробного ПЗ, що представляє аудіо-візуальні сеанси психологічної корекції. Поточна версія написана на чистому WinAPI (Visual Studio 2019/2022).… C та C++, Десктопні додатки ∙ 8 днів 13 годин тому ∙ 19 ставок |
Написання коду для ArduinoПотрібно розробити програмне забезпечення для вагового дозатора на базі Arduino Uno. Комплектуючі: Arduino Uno R3 HX711 + тензодатчик LCD1602 I2C дисплей MAX7219 світлодіодна матриця 8x32 5 кнопок керування 4-канальне реле 2 сигнальні лампи Вібромагніт грубого дозування… C та C++, Вбудовані системи та мікроконтролери ∙ 9 днів 21 година тому ∙ 15 ставок |
Потрiбно доробити проект, або надати консультацiю.
1000 UAH
|