EECE 330 Project Requirements, Fall 2011
American University of Beirut · Data Structures and Algorithms · 11 pages · Prof. Hassan Artail
Showing the first 10 of 11 pages. Download the PDF to see all of it.
More EECE 330 files
- Project Solution · Fall 2011Project · with solutionView
- Other Extra Lecture About Dynamic Programming · Spring 2017LabView
- Useful File MCQ · Fall 2015FileView
- Homework 1 · Fall 2015HomeworkView
- Exam 1 Artail Sample Questions (solution) · Summer 2014Problems · with solutionView
- Useful File Solution Manual · Summer 2014File · with solutionView
- Problems Huffman Coding · Summer 2014ProblemsView
- Problems Binary Trees · Summer 2014ProblemsView
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