Need help in deciding with data structure to use for my project?? (C++)?
June 18, 2010 by
Filed under software development schedule
The thing between “” is the project description, i need to know which data structure is best and most efficient to use for this project…
Allowed data structures:
-List (linked or array-based)
-Binary trees
-binary search trees
-Heaps
-Graphs
And also plz give me a reason for your choice… thanks a lot
”
In this project, you are requested to develop a software system to generate course schedules for a new academic semester. You are to implement the system based on the offered Electrical and Computer Engineering courses at the American University of Beirut. Here are the requirements for the system:
•The system will provide students with an electronic survey form to input their courses selection for the coming semester, including the time slot for each course
•Each student will need to use their student ID to login and use the system.
•At any given time, the system should be able to report who entered data (ie who has already completed the survey) for a particular semester.
•At any given time, the system should be able to report who has not completed the survey.
•Upon request by system administrator, the system should be able to send thank you note to all those who have already completed the survey.
•Upon request by system administrator, the system should be able to send reminder email to all those who have not completed the survey.
•The system should be able to report the number of classrooms needed and the room schedules.
•The system should be able to report for each student the new proposed student schedule
You can assume the following constraints
•A classroom has a maximum capacity of 40 students.
•Each course section has a maximum capacity of 40 students.
You should use your knowledge of the data structures and algorithms learned in the ECE 330 course, and justify your design choices. You should keep in mind that many solutions are possible. You should strive to achieve best solution that meets both functional and non-functional requirements. You should expect to possibly go through more than one iteration of typical software engineering cycle: Requirements, Design, Development, Testing, and Release.
Your final report should include the code and documentation that captures: Requirements, Design, Test Plan, and a user’s guide. You project grade will be based on how well and easy the program works and the clarity of the required documentation.
Extra Credit:
The system should be able to take as input available faculty members, their preferred teaching times for the coming semester, and their preferred courses to teach. The system will match faculty desires to student request, and propose the faculty assignments to their classes and their teaching slots. The system would also provide each faculty with their new teaching schedule.
”
To make it easiest, use double-linked lists (i.e. pointer to previous element and pointer to next element).
To make it fastest, use a balanced binary search tree.