Description
Name: Assignment 2
Linked List
Programming Language: C++
1. Introduction
Check for BBM201 and BBM203 course sources for linked lists, classes and headers.
2. Problem Statement
• Employee number: 4-digit integer
• Employe type: temporary or permanent (Obtained from user 0 as temp. 1 as perm.)
• Name: 12 characters
• Surname: 12 characters
• Title: 12 characters
• Salary coefficient: real number
• Length of service in other institutions (days): integer (will not be asked if not necessary)
TemporaryEmployee PermanentEmployee
Linked List Type Circular single linked list Double linked list
Implementation Type Array Implementation Dynamic Memory Allocation
Inheritance Employee’s subclass Employee’s subclass
Unique access by Employee number Employee number
Accordingly, the requests listed below are expected to be fulfilled via a menu offered in the console application:
1) Appointment of an employee, who started working for the first time, to the institution
First, the employee number must be obtained from the user and if there is an employee with the same number, no addition should be made, otherwise the other information of the employee (starting from the employee type in the given order) must be obtained from the user and the insertion must be performed.
2) Appointment of an employee, who transferred from another institution, to the institution
First, the employee number must be obtained from the user and if there is an employee with this number, no addition should be made, otherwise the other information of the employee (starting from the employee type in the given order) must be obtained from the user and the insertion must be performed.
3) Updating the title and salary coefficient of an employee
First, the employee number must be obtained from the user, and if there is an employee with this number, the title and salary coefficient must be updated.
4) Deletion of an employee
First, the employee number must be obtained from the user, and if there is an employee with this number, the deletion process must be performed.
5) Listing the information of an employee
First, the employee number must be obtained from the user, and if there is an employee with this number, the information must be listed.
6) Listing of all employees in the order of employee number
All employees’ information should be listed in the ascending order by employee number.
7) Listing of all employees in the order of their appointment to the institution
11) Listing of employees born in a particular month
First, the month should be taken from the user and the information of all employees born in this month should be listed in ascending order according to the employee number.
3. Requirements
1) Assume that data entries will be made correctly, do not check for errors.
2) Make sure that your algorithm is efficient in search operations.
3) The project will be implemented, build and run in the dev environment.
4) The project will be delivered to the submit system of our department.
5) In terms of object-oriented programming principles, the project is expected to have the following characteristics:
b. Data members of classes must be specified as private.
c. Data members (except arrays) that are not expected to change must be specified as const.
d. Classes should have the necessary read and set (get&set) functions.
e. Constructor functions should use default arguments if appropriate.
f. The << operator must be overloaded for the Employee, TemporaryEmployee, Pe r m a n e n t E m p l o ye e, D a t e, C i r c u l a r A r r a y L i n k e d L i s t a n d
DoubleDynamicLinkedList classes.
h. Interfaces (header files) and implementations (cpp files) of classes must be separate.
i. Interfaces and their parts must be clearly explained in the report.
6. Inputs and Outputs
The console application will look like the following when it is started. It will keep turning back to this menu after operationg the selected operations. The system will be on unless the user closes the application (your executable program)
7. Grading
Evaluation Metric Points Your guess/expectation of grading (evaluate your self in your report)
Efficiency of the program 5 …
Compliance with OOP principles 25 …
Correctly working parts 45 …
Report 25 …
Report Format (Required)
2) Introduction: Define the project in your own words. What is the problem description? Project goals?
3) Method: What are your methods to solve the problem? Why?
4) Development
1) Plan: What is the project plan? Your requirements.
2) Analysis: What kind of analysis have you done? Why? State the problem in your own words.
4) Implementation: Flow of the implementation. Explain your code parts such as functions, selected libraries/methods.
5) Programmer Catalog: Write down the time you spend for analysis, design, implementation, testing, and reporting. Can other developers reuse your code/ solution? When? How? What are your suggestions to other programmers? Add the source code parts here in the report and explain them. Include your header files and describe the data members and member functions of the abstract data types (classes) in your project. This part is the manual for programmers. Explain your design details.
6) User Catalog: How can one use your code for other purposes / for other data? Prepare the user manual of the program (might use screenshots). State the restrictions, if any—your suggestions to users. This part is the user guide of the program.
6) References: Resources you have used to prepare the project and the report. Use numbers that are indicated in the text.
8. Notes
• Save all your work until the assignment is graded.
• The assignment must be original, individual work. Duplicate or very similar assignments are both going to be considered as cheating.
• Write READABLE SOURCE CODE blocks.
• You can ask your questions via Piazza (https://piazza.com/hacettepe.edu.tr/fall/ bbm203) and you are supposed to be aware of everything discussed in Piazza.
• You will use online submission system to submit your experiments. https:// submit.cs.hacettepe.edu.tr/
• No other submission method (email or etc.) will be accepted. Do not submit any file via email related with this assignment.
• File hierarchy must be zipped before submitted (Not .rar, only .zip files are supported by the system). You must submit your work with the file hierarchy stated below: ➡ <student_id.zip>/(Required) ➡ src/(Required)
➡ Main.cpp(Required)
➡ *.cpp(optional)
➡ *.h(optional)
➡ Report.pdf(Required)
9. Policy
Reviews
There are no reviews yet.