Домашно: Object-Oriented Programming - коментари и впечатления
Най-после стигнах до това домашно и меко-казано, съм във възторг :)
Не помня да съм се забавлявал толкова с писане на код, от студентските години с асемблер (не че съм писал много, но там всеки момент се помни ).
Много добре подбрани задачи, с нарастваща сложност и постепенно въвеждане на новите неща!
Тъкмо приключих с трета задача, по която загубих най-много време за удовлетворяване на входно-изходните ѝ условия.
Получи се нещо такова:
------------------------------
1 - List all persons
2 - List all registrations
3 - Change person name...
4 - Change person age...
5 - Change car registration...
6 - Generate random persons...
7 - Generate random registrations...
8 - Create a new person...
9 - Create a new registration...
0 - Exit
Сега като гледам листа, май ѝ липсва само експорт към файл. :)
Накрая - за разкош, реших да я напъна здраво с функциите за рандом генериране на Person и Registrations. Открих си един краш проблем (вектори с референции към локална памет не са добра идея), и след фиксването му издържа без крашове до 200000 потребителя и 100000 регистрации (повече не ми се занимава). Unit/load тестовете са хубаво нещо! :)
Приеснява ме, обаче, следното нещо - времето, което ми отнема решаването на задача като третата е горе-долу толкова, колкото ще имаме и на изпита. Надявам се там задачите да са по-фокусирани върху конкретни проблеми, а не толкова "творчески", че ще го закъсам! :)
Интересно ми е да чуя и мнения от колеги относно това домашно.
Поздрави!
EDIT:
Ето няколко от рандом генерираните ентрита:
..............................
Registration Number: AU-24901
Manufacturer: BMW
Model: 3 Series
Horsepower: 49
.....
Owner details:
Name: Ivan Pink
Age: 21
ID: 24502
..............................
Registration Number: AU-28292
Manufacturer: Lexus
Model: RX 350
Horsepower: 27
.....
Owner details:
Name: Alex Black
Age: 32
ID: 21375
..............................
Registration Number: AU-316
Manufacturer: Ford
Model: Mustang
Horsepower: 39
.....
Owner details:
Name: Peter Gray
Age: 38
ID: 142
Да... И аз не съм от бързите.
Ако задачата е по-засукана, се бавя, защото чета в и-нет за нещата, които не знам, а ако е по-елементарна си намирам начини да я разнообразя и направя "по-интерсна".
Например 5-та задача я писах сигурно 2 дена - то не бяха (ненужни, но интересни) усложнения на условието, рандом генератори, basic unit/load tests, вложени менюта за вход-изход, един куп класове и структури и т.н... над 1300 реда код, като за малко да не успея да изпълня едно от основните изисквания в задачата - запис и възстановяване на данните от файл (написах ги за 30-ина минути, тъкно навреме, за да предам домашното). Лудница!