I have completed an OOP course using C++ and each student has been asked to do an end term project, so that they make use of all things that was learned, like ( operator oveloading, inheritance , polymorphisms, files, templates) and every thing that can support the project.
I want just some ideas, i thought of making a simple library system, but i think there are many other things I can make use of OOP more than in a library , can you tell me of some please?
I want a project that makes me deeply understand every thing in OOP

please give me many ideas:)
I am waiting for your replay :-/

Just think of something in real life that has a lot of objects interacting together, as that's what you want in the program. You could do a poker game, fight-a-monster game, a catalog of libray books, lots of stuff. Programming is supposed to mimick the real world, so think of a situation with a bunch of objects.
good suggestions ---> these neat ideas.

One of my favorite projects I worked on was a small RPG type game.

I can't remember it all, but I had classes that were derived from base classes.. these were the fighters. Elvaan, Hume, etc. And each class had different traits... (Elvaan might have attack +10%, Hume might have a +10% chance of blocking, something else might have a +5% chance of attacking twice, etc.). Each race had different starting attributes, attack, strength, magic attack, HP, etc.

Then I put them all into a main() file for the fighting simulation. Each round would start a battle between 2 races. Main() would call the battle() function, which would setup the possibilities and call a random() function multiple times to determine who would attack, how much they would attack for and if anyone had the chance of blocking how often, etc. This would continue to loop, requiring the user hit Enter between every round, until one of the creatures was defeated.

Of coarse it took multiple runs to figure out if I had made one race too powerful or one race not powerful enough, which I then went back and made adjustments to the attributes.

Needless to say, this was an extremely fun exercise. Allows for a ton of creativity. :)

> You could write an Object Oriented Program (of course :P) that represents a 'virtual computer', you'll have to make classes for the processor, the motherboard, the graphical card, the ports (USB, FireWire, Serial, PS/2, etc.), the CD-Drive(s), and much much more :P ...

>>You can make this project as big or as small as 'you' want ...

In some books I read:
Elevator Simulation:: The program will simulate elevators. The user pushes a button ( by pressing a number key on the keyboard. Number indicates the floor on which he is) and then the elevator decides its path so that it could fill up requests of most of the users.
You model an elevator as an object.

Actually you can write an object oriented program for nearly (why am I using 'nearly' here:?:) everything you can simulate (inspiration enough now, I think :P) ...

> You could write an Object Oriented Program (of course :P) that represents a 'virtual computer', you'll have to make classes for the processor, the motherboard, the graphical card, the ports (USB, FireWire, Serial, PS/2, etc.), the CD-Drive(s)...

Oooh I like that one, That sounds fun.

> You could write an Object Oriented Program (of course :P) that represents a 'virtual computer', you'll have to make classes for the processor, the motherboard, the graphical card, the ports (USB, FireWire, Serial, PS/2, etc.), the CD-Drive(s), and much much more :P ...

>>You can make this project as big or as small as 'you' want ...

yes this sounds very creative ,but i think i need strong knowledge in computer architecture,don't i?
if any one have information and tips for this project please tell me.

> You could write an Object Oriented Program (of course :P) that represents a 'virtual computer', you'll have to make classes for the processor, the motherboard, the graphical card, the ports (USB, FireWire, Serial, PS/2, etc.), the CD-Drive(s), and much much more :P ...

>>You can make this project as big or as small as 'you' want ...

this sounds very creative ,but i think i need strong knowledge in computer architecture,don't i?
if any one have information and tips for this project please tell me.

but i think i need strong knowledge in computer architecture,don't i?

That depends on how detailed you want to implement it, bu a basic knowledge is required of course :) ...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.