We have a requirement where user will be logged in as community user(Contacts). The user should be able access only records which are related to his Account. Ex: User contact is 'con', users account is 'Acc', then user will logged into salesforce as community user and he should be able to access only Cases with account as 'Acc'. How i can implement this?
You'll want to read up on Sharing Settings in Salesforce. See the URL for more info: https://help.salesforce.com/htviewhelpdoc?id=managing_the_sharing_model.htm&siteLang=en_US
Essentially, you have different types of permissions in Salesforce, Object CRUD, Field Level Security, and Sharing Settings. The latter is a record security, meaning as an admin, you can set up Salesforce to hide records from other users.
The default sharing settings are public, but if you set them to private, only the owner of the record, and those above them in the Role hierarchy (in addition to things like Territory Mgmt and Account Teams) can see the records.
What you'll need to do is determine who you want to access the Account records when you make them private. Making an account private also means you will have to make Cases and Opportunities private as well. Additionally, contacts inherit their sharing settings from the Account.
You'll likely need to look into sharing rules / criteria to get the proper level of access to cases for your scenario. In addition to sharing rules, you may need to look into groups of users, manual apex sharing, etc. depending on your use case.
Sounds like you have some homework :)
Create record types and add those record types to profiles. For setting record types here is the cheatsheet.