I want to have a setup in which once i configure a single MAC address for a network jack only that computer may be connected to it. Also, i want to make sure that there is no way a person may get a router's mac address registered and hook up multiple PCs behind the router in a NAT or atleast it should be discoverable.
I know this is somehow possible, as this was done at my university. Anyone knows how?
You'll want to use Cisco Port Security on the access-layer switch. It allows you to set the maximum number of MAC addresses on a certain port, as well as optionally set the specific allowed MAC addresses on that port (Though managing this can get out of hand). Once more MAC addresses are detected, or a different MAC address is swapped in, the port can be configured to shut itself down.
I'm not sure how to stop people from hooking up a NAT-capable router, as in this case, only one MAC address is exposed to the access-layer switch. Port security won't be able to help (Unless you rely on the fact that swapping out a workstation for the router will cause a MAC address change, blocking the port, but this isn't perfect as if the first device to be plugged into the switch is the router, it becomes the allowed MAC address)
You need a switch that is smart enough to configure this limitation.
There are plenty of them, but not in the cheapest class.
There are several switches much under cisco-prices available with port security options.
I found HP Procurve 2520 and higher, Dell Powerconnect 5300 and higher and even cheaper, such as Linksys SRW2024, D-Link DES-3252, etc.
Alternatively, you can use a NAC if the users are in an LDAP of some sort. This way users can move from port to port, but people outside of your organization can't get access. I'm not sure if this is the situation that you are trying to prevent, but MAC address spoofing is easy, so your example can be tampered with fairly easily. Cisco Clean Access and Bradford Networks NAC come to mind as the two leaders in NACs, but they are veeery expensive.