Софтуерно Инженерство
Loading...
+ Нов въпрос
Jovanna avatar Jovanna 79 Точки

Task 4 & 5 Cars&Owners DB + Save to File

Здравейте, 

публикувам своя код на задачата с базата данни за колите и собствениците, но ми се вижда доста дълъг. Какво ще кажете за споделяне на решения?

Код:

https://github.com/VanyaBenovska/Cpp_Vehicles_DB/blob/master/Cpp_06_05_A_Save_to_File.cpp

и инициализиращата база данни:

https://github.com/VanyaBenovska/Cpp_Vehicles_DB/blob/master/dataBase_Owners_and_Vehicles.txt

Весело посрещане на Новата Година!!!! Успех на всички през нея !!!!!!

Тагове:
0
C++ Fundamentals 31/12/2017 01:03:29
MartinBG avatar MartinBG 608 Точки
Best Answer

Ето моето решение от предишното издание на курса. Прегледах го набързо да си припомня задачата и забелязах неща, които не ми харесват и които не бих написал по този начин сега, но все пак може да е интересно или полезно за някой.

Поздрави!

1
Jovanna avatar Jovanna 79 Точки

Много е добро!! Чудя се какво ли примерно не би написал така. Има доста хитри ходове.

0
MartinBG avatar MartinBG 608 Точки

Благодаря!

Относно нещата, които бих променил:

На първо място - по-добра организация на кода: отделни файлове за класовете, а някои мега-класове могат да се разбият допълнително на по-малки. Като цяло, има пропуски в спазването на основните OOP принципи.

От функционална гледна точка, бих заменил векторите с мапове, което ще подобри осезаемо бързодействието при голям брой person-и и/или регистрации.

Помня, че зареждането на база с по няколко милиона елемента от файл на практика не работеше заради неподходящите дейта структури: сложност O(R*P) при вектор, вместо О(R*lgP) при мап, където R e бр. регистрации, а P - броя person-и в системата. За 1000 person-a и 1000 регистрации вектора ще ползва (до) 1 000 000 проверки, а мап-а - само (до) 10 000 (1000 ~ 2^10).

1
04/01/2018 13:46:44
Jovanna avatar Jovanna 79 Точки

Благодаря! Много полезно, помагаш.

0