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 ставок |
Нужно доработать проект или предоставить консультацию.
1000 UAH
|