Instructions for using Kevin Fitzgerald's Perst project on the CS linux lab: * Getting and building the Perst solution: - Login on a lab machine - Copy the perst project to your home directory cp -r /home/student/Classes/Cs780/Assignment3-Perst ~ - Run Monodevelop from the Applications -> Programming menu - Open the solution file (File -> Open ) and select the file ~/Assignment3-Perst/Assignment3-Perst.mds - Run or rebuild the solution by clicking the Run button on the toolbar or by though the menu * Running from the command line or terminal window: - Change directory into the project bin directory cd ~/Assignment3-Perst/bin/Debug - There should be one executable file in the directory. You should be able to run it via: ./Assignment3-Perst.exe - or - mono Assignment3-Perst.exe Note: The project comes with a pre-populated database. * To remove or reset the database: - Delete the dbs file from the build directory cd ~/Assignment3-Perst/bin/Debug rm -f ClassCompHierarchy.dbs - Re-running the program now will generate a new, empty database on startup. Note: There is good room for student modification or improvement on the project. I left enough room for students to expand-upon or complete the remainder of the class-composition hierarchy. Here is a class-status/implementation table * Person CAN: Add (props: name, age) NOT: Edit, Remove (props: department-reference) * Department CAN: Add (props: all complete) NOT: Edit, Remove * Professor CAN: Add (office, name, age) NOT: Edit, Remove (props: department-reference) * Student Declared, not implemented NOT: Add, Edit, Remove * Course Declared, not implemented NOT: Add, Edit, Remove * GStudent Declared, not implemented NOT: Add, Edit, Remove * UGStudent Declared, not implemented NOT: Add, Edit, Remove How to understand this blob: CAN: {Actions} {properties on the class that are editable} NOT: {Actions} {properties on the class that are not editable} To implement the remainder of the program, the menu would need to be expanded or replaced with something better like a GUI. Each menu item would need a handler which can be based of existing code that can be found in the application. I have already implemented one example of a "Link" or "Reference" to another collection of objects, in the form of Department.ChairPerson => Professor Contact Information: Kevin M. Fitzgerald kevin@kevinfitzgerald.net