EECE 330 Project Requirements, Fall 2011

American University of Beirut · Data Structures and Algorithms · 11 pages · Prof. Hassan Artail

All EECE 330 files
EECE 330 Project Requirements, Fall 2011, page 1

Stuck on a question? A tutor can walk you through it.

EECE 330 Project Requirements, Fall 2011, page 2 EECE 330 Project Requirements, Fall 2011, page 3 EECE 330 Project Requirements, Fall 2011, page 4 EECE 330 Project Requirements, Fall 2011, page 5 EECE 330 Project Requirements, Fall 2011, page 6 EECE 330 Project Requirements, Fall 2011, page 7 EECE 330 Project Requirements, Fall 2011, page 8 EECE 330 Project Requirements, Fall 2011, page 9 EECE 330 Project Requirements, Fall 2011, page 10

Showing the first 10 of 11 pages. Download the PDF to see all of it.

More EECE 330 files

Show the text of this project
20100001,IT230,2 20100001,IT330,1 EECE 330 Term Project – Fall 2011-2012 A newly-established private university in Beirut offers undergraduate degrees in four majors: Information Technology (IT), Business Technology (BT), Software Engineering (SE), and System Administration (SA). You are supposed to develop a registration and a student information system that uses data structures and algorithms learned in the EECE 330 course. The functions that the student can perform include the following: - Register for up to 15 credit hours per semester, and no less than 12 credit hours, unless he or she is in the last semester, or cannot find courses to register for. - When logging in to register, the system will retrieve the record of the student, and the list of required courses that are offered in that particular semester. Then through the user interface, the student should be able to add and drop courses to complete his or her registration. - Be able to login and change his or her selected courses anytime during the add-and-drop period. Hence, a student who cannot find a free slot in a desired course section could add his name to a waiting list (queue) so if a slot becomes available (by a student drop) the first student in the waiting list will be added to the class automatically. If unsuccessful, however, students will have to wait till the next time the course is offered, where they will try again. - View at anytime his or her schedule (i.e., list of registered courses in this semester, cumulative list of registered courses including the current semester, etc.) You can use the AUBsis as a model if you want to design the output of this function. - View the list of courses taken, registered courses, and the GPA. The student should be able to sort by course code or course title. The system administrator at the Registrar Office specifies several things, including: - The courses offered during this semester and their timings. Use the symbols M, T, W, R, and F for the days, and 8, 9, 10, 11, 12, 13, 14, 15, and 16 to denote the starting time of each course section. Each section will only last for 1 hour. - Delete the waiting lists for courses after the end of the drop and add period. - Run end-of-semester procedure where courses registered this semester and their grades are moved to courses taken. Student status could change as a result of running this procedure. The system Administrator at the Admissions Office does the following: - Enter the information for new students, including the desired program of study. o All students are admitted as sophomores. o Every new student will be admitted to one of the four programs o Each student will have empty records of taken and registered courses The Instructor uses the system to do the following: - Assign an instructor to each course section. The number of instructors is fixed at 20, and each instructor can teach two different courses, or three sections of the same course. - Choose the courses to teach. Here again, a first-come-first-served policy is followed. Instructors who choose first will get more choices, while those who choose later will have to choose from the list of remaining (i.e., not yet selected) offered courses. The number of instructors is fixed at 20, and each instructor can teach two different courses, or three sections of the same course. - Enter a grade to each student in each registered course - Check the record of each student by viewing the courses taken, registered, and GPA. The instructor should be able to sort by student name or id. Each course may be described by the following attributes: Title (i.e., Data Structures & Algorithms) Code (i.e., DSA330) Status (Active, Suspended, Cancelled) Year (denotes the level of this course, i.e., Y1, Y2, …) Each course offering will have the following data: CCode Course code CSection Course Section DateTime Date and time code, e.g., MWF 14 (M/W/F, 2:00PM-3:00PM) IID Instructor ID Slots Remaining slots available (between 0 and 20) Each instructor will have the following data: ID Instructor ID Name Instructor Name (Last followed by first) Specialty Primary program code Title Instructor title (lecturer, assistant prof...) DateHired Date Hired Each student will have the following attributes: SID Student ID SNAME Student Name CTaken Link to structure of courses taken in prior semesters (with grades) CRegistred Link to structure of courses registered in current semester Program Program admitted in (IT, BT, SE, or SA) status Clear, Probation, Dropped, Graduated The following rules and regulations shall apply: - Each course section is limited to 20 students (no exceptions are allowed), and a first-in- first-served policy is followed. - A student who has passed all required courses in the program will be assigned a status “graduated”, whereas a student who has failed a course (i.e., earned a grade below 60) will be assigned a “probation” status. A student who does not earn a passing grade the next time he or she takes a failed course will be automatically removed (i.e., “dropped”) by the system. A student should normally have a “clear” status. You need seven text files to run the system; Courses, OfferedCourses, Instructors, InstructorsRequestsForCourses, Students, CoursesTaken and StudentRequestsForRegistration. You are to build the corresponding data structures for the first four files and run the fifth file to simulate students’ registration. Below is the information about the required data structures: - The student database is to be implemented using a Binary Search Tree (BST). The data element in each node is a record that contains the fields shown in the table above, where the SID is used as the search key. The CTaken and CRegistred fields are to be implemented as pointers to a stack and an array, respectively. These will represent the structures for containing the taken courses and currently-registered courses. - The course database forms a dictionary implemented using any type of data structure you choose. The Code will be used as the primary search key, whereas the course title shall be used as the secondary search key. - The instructor database should be implemented as a singly-linked list, where the IID is to be used as the search key. - The course offerings should be implemented as a dynamic singly-linked list, where students can search by any field (e.g., course id, instructor id, program, and date-time) Hence, the system should allow any student, any instructor, and any administrator (in Registrar or Admissions) to perform their respective functions as was described above. Due Date You need to demonstrate the working program in the lab during the week of January 9, 2012, and submit a soft copy of your C++ code to the lab instructor on the same date. Grading Policy The grade breakdown will be as follows: 1. Performing the full functionality as described above: a. Constructing the databases, the stack, and the queue: 25% b. Processing the dynamic list, stack, and queue: 25% c. Display of results: 25% 2. User interface (friendliness, flow, format of output data): 15% 3. Project/program presentation: 10% Penalties will be incurred if runtime errors are encountered. Depending on the type and severity of the error, each one may cost 1% to 10% of the entire grade. Testing your system: Your system will be menu driven: 1. Create program-course database 2. Create course offering database 3. Create instructor database 4. Create student database 5. Create courses-taken database 6. Instructor-Course assignment 7. Student registration 8. Add and Drop 9. Add to waiting list 10. End-of-semester procedure 11. Print … Each of the first four options, runs once, will read the data from the text file and fill the corresponding database. Option6, runs once, will assign instructors to courses. Option 7, runs once, will register students in the offered courses. The other options will run upon request to test the relative function. Different print functions must be implemented to list on the screen all output to check the outcome of any supported operation. Courses text file: OfferedCourses text file: Instructors text file: Students text file: StudentsRequestForRegistration text file: InstructorsRequestsForCourses text file: CoursesTaken text file: Field Title Code Status Year Data type string string char string Example C++ programming IT230 A Y1 Field CCode CSection DateTime InstructorID Slots Data type string char string string int Example IT230 1 MWF 14 ha27 20 Field ID Name Specialty Title DateHired Data type string string string string string Example rh27 Romy Hachem IT Professor Sep. 1995 Field ID Name Program Status Data type string string string char Example 20100001 Rami Hachem IT C Field SID CCode Section Data type string string char Example 20100001 IT230 1 Field IID CCode1 CCode2 Data type string string string Example1 rh27 IT230 IT330 Example2 nh17 BT200 BT200 Field SID CCode Grade Data type string string int Example 2010001 IT230 83 C++ ProgrammingI,IT230,A,Y1 C++ programmingII,IT240,A,Y1 Data Structures,IT330,A,Y1 IT230,1,MWF14 IT230,2,TR9 IT330,1,MWF8 20100020,IT230,83 20100020,IT330,87 rh27,IT230,IT330 mf05,IT230,IT330 rh27,Romy Hachem,IT,professor,Sep. 1995 nh17,Nadim Haddad,IT,Assistant professor,Sep. 1997 mf05,Mazen Farhat,IT,Lecturer,Dec. 1997 fs01,Fadi Salem,IT,professor,Dec. 1997 at02,Adel Traboulsi,IT,Associate professor,Sep. 1998 ra06,Rahaf Alame,BT,Assistant Professor,Sep.1996 st25,Sami Tabbara,BT,Assistant Professor,Sep. 1997 ss05,Samar Sadek,BT,Lecturer,Dec. 1998 ns07,Nader Saleh,BT,Professor,Dec. 1998 hh06,Haytham Hajjar,BT,Assistant Professor,Sep. 1998 20100001,Rami Hachem,IT,C 20100002,Mirvat Nassar,BT,C 20100003,Naji Farhat,SE,C 20100020,Nelly Aabani,IT,C