You need to define a data structure that contains information about a monster, and then instantiate an instance of that data structure for each monster you want to create in the dungeon, and then store those instances in some way that allows you to retrieve them (perhaps a 2d array corresponding to cell locations in the dungeon or something).
If you're using an object oriented language like C++, Java, C#, Python, PHP, etc, you'll want to create a class and instantiate objects with "new". If you're using C, you'll want to create a struct, possibly typedef it to a struct*, and allocate memory with malloc, although that's pretty medieval.
Don't forget to free the allocated memory or delete the instantiated objects when you are done with them, if you are using a language that doesn't do it's own garbage collection.
I hope you are using a language that /does/ do its own garbage collection. That'll make your life a lot easier (most OO languages other than C++).
99% of the challenge of programming stuff like this is figuring out how to arrange your data (we like to call this data arrangement the "object graph" in newer OO-type languages). Once you get that designed, everything else kind of falls into place.