Actually, in the real world, you can usually get away with implementation differences, as long as you meet the business requirements.
In school, as others said, ALWAYS JUST DO what the teacher wants you to, nothing more, nothing less and nothing different… nothing more, because you wont ‘get’ anything out of it anyway, and it just complicates your design document… nothing less and/or different, because even though you might have a good reason to, the teachers don’t care and will lower your grade.
I’ve looked at your program, and to be honest I don’t care about the implementation, but what I miss is the design document. I don’t know in what year you are, but know this: you will score TOP grades if you include a proper design document. A class diagram is not a design document. A design document tells the teacher your way of thinking: why did you create this and that class, why did you choose this and that method. etc. etc. google for it. Also, your class diagram is not annotated and your relational diagram is not accounted for, why does class A have 1…n instances of class B? it might be obvious, but if it is, it’s also easy to write down. If it’s not obvious, then you REALLY need to account for your choices. Sorry to be a bitch, but if I knew then what I know now, I would have done things differently and have gotten higher marks, so I’m trying to warm you up to a) what the teachers really want from you and b) what you really wish you would have practiced in school once you get into the real world ™. 8) Good luck with your future projects.