JSON-XML
25 PLNЗавдання №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#, опыт работ с джейсон и хмл данными есть
Aktualne zlecenia dla freelancerów w kategorii C i C++
Inżynier infrastruktury proxy mieszkalnychBudujemy sieć proxy dla użytkowników od podstaw — w pełni własną, bez dostawców zewnętrznych. Potrzebujemy jednego wyjątkowego inżyniera sieci, który zbuduje całą podstawę techniczną. Co zbudujesz: - SDK w tle dla Androida, które kieruje ruch proxy przez urządzenia użytkowników… C i C++, DevOps ∙ 2 dni 21 godzin temu ∙ 12 ofert |
Dobrobka w istniejącej wersji 1c detalicznego bloku dla RC (centrum dystrybucji)Ogólnie wyjaśnię, co mamy za bazę - jest ogólny serwer, gdzie znajduje się baza Detal (gdzie rejestrowane są wszystkie przychody) - baza UTP, do której przelewają się wszystkie sprzedaże - liczy się marża, stany magazynowe - małe bazy detalicznych sklepów. W przypadku wymian,… C i C++, C# ∙ 3 dni 12 godzin temu ∙ 6 ofert |
Mistrzowska program «KONSTRUCTOR»
15 240 PLN
Szukamy bardzo doświadczonego programisty C++ do modernizacji istniejącego oprogramowania (programu głównego). Program odpowiada za tworzenie pochodnego oprogramowania reprezentującego sesje audiowizualnej korekcji psychologicznej. Obecna wersja jest napisana w czystym WinAPI… C i C++, Aplikacje desktopowe ∙ 8 dni 15 godzin temu ∙ 19 ofert |
Pisanie kodu dla ArduinoPotrzebne jest opracowanie oprogramowania dla wagowego dozownika opartego na Arduino Uno. Komponenty: Arduino Uno R3 HX711 + czujnik tensometryczny Wyświetlacz LCD1602 I2C Matryca LED MAX7219 8x32 5 przycisków sterujących 4-kanałowe przekaźniki 2 lampy sygnalizacyjne Wibromagnes… C i C++, Systemy wbudowane i mikrokontrolery ∙ 10 dni temu ∙ 15 ofert |
Trzeba dokończyć projekt lub udzielić konsultacji.
82 PLN
|