| |
Project 1 Evaluation
-
A writeup(Read Subnote #0): 10%
-
A working implementation(Read Subnote #1): 55%
-
Imports Correctly(Read Subnote #2): 15%
-
Exports Correctly(Read Subnote #3): 10%
-
Good Hash function(Read Subnote #4): 10%
Subnotes:
--------
(0)The writeup should have the following:
-
name of people in group
-
very very briefly, how your implementation differs
from the standards given on the project web-page, and/or any
assumptions/self-modifications/policy-decisions that you have made
-
very briefly: how this project could have been
better(technical issues)
-
criticism: of the infrastructure, TA, anything under
the world!
(1) A working implementation refers to an executable
which is functionally capable of adding, retrieving and deleting a record.
This shall be tested by manually entering record(s) into the database.
(2) Importing from a database: Look at the
attached database.
To read the data into a struct, use the struct declaration given in the
project page. While
importing the database, collect the following data, and store it in a file:
int usage[100];
while(!eof)
read next record
calculate the page p to which this record would hash to
set p %=100;
usage[p] += 1;
So, the usage[] array tells me if you were able to read all the records, and which page contains how many records
(3) Exporting a database: We will start with an empty database, populate it manually with a few records, and then export it. Will check the exported
file
by viewing it through an application like notepad.
(4) Hash Function: Use the file in note#2 to calculate the following:
- avg utilization of a page = (records used in a page/slots in a page) averaged over total number of pages in database (note that the utilization
of a page cannot exceed one)
- total number of collisions
|
|