Asia Pacific University is a well-known private university located in Bukit Jalil, Kuala Lumpur. Currently, the university has more than 500 staffs and they are attached to different departments and schools. Example of departments are Finance department and Academic department. Example of schools under the Academic department are School of Computing and School of Information Technology. In general, the staffs in each school can be classified into four (4) main categories, i.e. academic, administration, management, and technical.
Recently, the university has decided to develop a new system for better efficiency in leave application and management. You as a programmer in the university has been appointed to be fully in-charged for the development of the system. Basically, the system has three types of users, and they are admin staff (manages the leaves), staff (applies for leave ), and superior (approves the leaves). Once the system is launched, staffs are required to choose their department, then which school they belong to, then login with valid username and password to enter the main screen before they can execute any task.
The system will identify admin users automatically once they login successfully. For staff users, their roles can be leave applicant or approver (if he/she is an immediate supervisor of other staffs). The followings outlined the main functions/tasks that could be performed by users in the system.
a. Admin
• add new staff’s information (including his leave details) to the system
• update the leave balance (annual leave, compassionate leave, emergency leave, maternity leave, medical leave, etc.) of staff for every new year or when it is necessary
• search for any staff’s leave information using staff ID or name
• generate monthly report (text file) for the leave statistics of each department or school
b. Staff
• Apply leave
• Cancel leave (approved or pending status, cannot cancel if the on-leave date has passed)
• Can Check the leave status
• Can Check the summary of leave information like how many days of leaves they have in a year, how many days of leaves they have used, when and how long was it, what type of leave it was (ie: medical leave/maternity leave) and how many days of leaves they have left. Try to show these details in a table so it will look neater.

c. Leave Approver
• Approve or reject leave application(s)
• Can SEARCH A DATE and view the number of staff who applied leave on the specified date (this could provide more information on the approval of leave)
• Check the summary of leave information of the staff

The submitted system should be compiled and executed without errors. Besides, validation should be done wherever needed. Staff leave balances and leave records need to be stored in text files. Primary Key should be implemented, no duplication of same staff or leave records should be accepted. The codes should be a minimum of 750 lines.


i. You are required to carry out extra research for your system and document any logical assumptions you made after the research.
ii. Your program should use symbolic constants where appropriate. Validations need to be included to ensure the accuracy of the system. State any assumptions that you make under each function.
iii. You are required to store all data required for your system in separate text files.
iv. You are expected to use control structures, functions, array, pointers, structures, unions, and files in your program. Your program must embrace modular programming technique and should be menu driven. Functions of similar operations can be grouped (or kept alone) and stored as separate C files. Header files are to be stored separately as .h files.
v. You may include any extra features which you may feel relevant and that add value to the system.
vi. There should be no need for graphics (user interface) in your program, as what is being assessed, is your programming skill not the interface design.
vii. You should include the good programming practice such as comments, variable naming conventions and indentation.
viii. In a situation where a student:
– Found to be involved in plagiarism, the offence will be dealt in accordance to APU regulations on plagiarism.
ix. You are required to use portable ANSI C programming language to implement the solution. Use of any other language like C++/Java etc. is not allowed.
x. Results of a comprehensive testing is to be included in your document in the form of Input/Output screenshots with sufficient explanation. The tests conducted shall take into consideration of all valid inputs and negative test cases.

Answers to Above Question on Programming


Get completed answers on the above programming task from the best programming experts of Student Life Saviour Malaysia at affordable prices.

Content Removal Request

If you believe that the content above belongs to you, and you don’t want it to be published anymore, then request for its removal by filling the details below. It will only be removed if you can provide sufficient evidence of its ownership.