Identical files searcher

Write a program that will be used to find identical copies of one file in a given directory and its subdirectories. Two or more files are identical, if they have identical contents. It is not important whether they have the same name or not.

Your program should allow user to select directory in which then searching for identical files will proceed. After finding all identical files the program should present all groups of identical files to user.

In each group of identical files user will be able to perform one of the following tasks:

In designing of your program you should consider that there could be a lot of files with the same size and different contents. Try to make your program as fast as possible.

Notes

Your program and all its modules should be stored in the directory C:\ICP. Name the modules in such way that the two first letters of its name are your starting number.

Write your starting number and a list of all used modules as a comment at the beginning of the program.

There are several files in the directory C:\DATA. On these files you can test your program.

The permitted aid is English vocabulary, books that describe programming language, its environment (IDE) and standard libraries. You must not use books with descriptions of various methods, algorithms and data structures.

You can get total of 100 points. 60 out of them are used for evaluating functionality, 30 for evaluating efficiency (smart and fast algorithms, sophisticated data structures). Last ten points are used for documentation (descriptions of algorithm, comments, naming convention, neat way of writing code).

Maximal number of points assigned for functionality
Part Points
Basic functionality 30
Browsing and selecting files in groups 15
Deleting selected files 5
Automatic deleting of files10