Website Summary Files Commits Branches @commit @diff @stats
path: root / Utills / Kindle / readme.md
diff options
context:
space:
mode:
Commit40f7cc8f54d0c221a391457fd38a44d0633aa088 (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2022-05-16 14:05:08 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2022-05-16 14:05:08 +0300
Files29fecbef2da1e832f3f8e9e23db6fffe35d7ddc6 /Utills/Kindle/readme.md
Object-oriented_programming_FMI-40f7cc8f54d0c221a391457fd38a44d0633aa088.tar
Object-oriented_programming_FMI-40f7cc8f54d0c221a391457fd38a44d0633aa088.tar.gz
Object-oriented_programming_FMI-40f7cc8f54d0c221a391457fd38a44d0633aa088.zip
Parentde7b4d3f7ac3ecd42ca336b0d477712a462d27ee (diff)
fixed typo in folder name
1 files changed, 0 insertions, 66 deletions
-rw-r--r--Utills/Kindle/readme.md66
diff --git a/Utills/Kindle/readme.md b/Utills/Kindle/readme.md
deleted file mode 100644
index d31119a..0000000
--- a/Utills/Kindle/readme.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# Kindle
-
-## Помощни средства които използвахме
-За решението на тази задача използваме клас string, клас vector и клас pair. String е взет директно от семинарите на първа група, с добавена функция getLine(), която използваме подобно на std::getline();
-Вектора е взет от семинарите на втора група.
-Класът Pair е единствено с цел улеснение. Той представлява наредена двойка от два темплейтни типа.
-Всяко едно нещо което сме направили с тези помощни средства може да се направи и без тях - просто кодът става по - дълъг.
-
-## Използване на командите
-### Команди, които поддържаме преди да се логне потребител:
-* login - влизаме в системата
-* signup - регистрираме се в системата
-* view - преглеждаме какви книги имаме
-* save - запазваме текущия Kindle във файл
-* load - зареждаме Kindle от файл
-* exit - излизаме от системата
-### Команди, които има потребител:
-* read - прочита книга
-* write - пише книга
-* rate - оценява книга
-* comment - коментира под книга
-* rates - проверява рейтинга на книгата
-* comments - проверява коментарите под книгата
-* view - преглежда какви книги има
-* exit - излиза от профила си
-### Команди които имаме докато четем книга:
-* n - следваща страница
-* p - предишна страница
-* @ + [number] - отива на страница, която е подадена
-* h - показва/скрива help меню
-* q - излиза от режим на четене
-
-Въвеждаме команда и натискаме Enter. След това програмата ни пита ако има нужда от допълнителна информация. Пример
-```
-> login
-> Enter user name: [Name]
-> Enter user password: [Password]
-> Success!
->
-```
-
-## Накратко за запазването във файлове
-Имаме да запазваме сложна структура във файл. Това което можем да направим е да я разбием на по - прости. В Kindle имаме два вектора, които представляват книгите и потребителите. Ако измислим метод да запазим книга и потребител другото е лесно. Можете да видите, че в класовете представляващи книга и потребител имаме отделни функции, които се грижат за работата със запазването.
-Логиката за тях е аналогична - разбиваме структурата на по - малки структурки, които стават все по - лесни и по - лесни за запазване.
-
-## Допълнителни бележки
-В решението сме използвали friend класове. Това не винаги е лоша идея, но внимавайте с тях - възможно е да доведат до логически грешки, тоест на един клас да се дадат твърде много права над друг.
-
-При запазването на класа ще видите следния код
-```cpp
-outFile.write("#Ty", 4);
-```
-При четенето на класа ще видите следния код
-```cpp
-char typeChecker[4];
-inFile.read(typeChecker, 4);
-if (strcmp(typeChecker, "#Ty") != 0) {
- std::cout << "Invalid file type" << std::endl;
- return;
-}
-```
-Реално, няма как да гарантираме, че подадения файл ни е коректен. Потребителя винаги може да подаде некоректен файл, което може да счупи нашата система. За това правим следното: в началото на файла, който запазваме, записваме някаква последователност от n символа. Когато четем, прочитаме първите n (в случая 4) байта от файла и казваме - ако това е "тайният" низ, то значи този файл е писан от системата, тоест се очаква да е коректен. В противен случай приключваме изпълнението и не четем излишни данни, които могат да счупят системата ни.
-
-Също така, функционалността за промяна на книга оставяме на Вас. Чувствайте се свободни да експериментирате и pull-request вате.
-
-<b>При каквито и да е въпроси екипът по ООП е на линия.</b> \ No newline at end of file