Library System Project in C Programming
Library System Project in C Programming
A Project Work on
Library System
using C-Programming
Submitted By
LIBRARY SYSTEM
Assigned On Submitted On
10 Mangsir, 2082 04 Magh, 2082
Submitted By
Ram Shrestha (Symbol No: 812343)
Shyam Yadav (Symbol No: 812385) Submitted To
Sita Timilsina (Symbol No: 812225) Subject Teacher Name
Certificate of Project Assignment Authorization
This is to certify that the project has been assigned to the following students of Grade XII Computer
Science as part of the +2 NEB curriculum requirements. The project is to be completed and submitted
according to the guidelines provided by the Department of Computer Science.
This report must represent authentic work carried out by the students. The project demonstrates the
students’ understanding of programming concepts, system design, and development practices using the
C language.
This authorization certificate must be included in the report as an official acknowledgment of the
assigned project, to be kept after the cover page at the time of submission
Students:
First and foremost, we would like to thank Kathmandu Model Secondary School, our respected
Computer Science HOD, Mr. Saroj Paudel, along with all our respected faculty teachers, for
providing us with a sound academic environment and the necessary resources to complete this project
successfully.
Our deepest appreciation goes to our project guide Mr. Aryan Rai (Computer Faculty) for his constant
supervision, encouragement, and insightful suggestions that guided us in the right direction at every
stage of this project. His patience and expertise truly inspired us to do our best work.
We would also like to express our heartfelt thanks to our teachers Mrs. Sita Karki and Mr. Anil Thapa
for their valuable guidance and motivation throughout the development of this project.
A special mention goes to our friends Sujal Sharma, Anisha Gurung, and Rohan Adhikari, who
have been supportive, cooperative, and always ready to lend a helping hand whenever needed. Their
ideas, feedback, and teamwork played a crucial role in completing this project successfully.
We are deeply grateful to our parents for their endless love, care, and encouragement, which kept us
motivated throughout this journey. Without their constant support, this project would not have been
possible.
Finally, we would like to express our heartfelt gratitude to the National Examination Board (NEB)
for giving us the opportunity to work on this project and enhance our knowledge and skills in C
programming and system development.
FN : Function
VAR : Variable
Table of Contents
ACKNOWLEDGEMENT.………………………………………………………………….……………………………………………………………. I
ABSTRACT …………………………………………………………………………….……………………………………………………………………. II
1. INTRODUCTION ....................................................................................................................................... 1
1.1 Background Introduction ....................................................................................................................... 1
1.2 Problem Statement .................................................................................................................................. 1
1.3 Objectives ................................................................................................................................................. 1
1.4 Scope ......................................................................................................................................................... 2
1.5 Limitations ............................................................................................................................................... 2
1.6 Organization of The Report.................................................................................................................... 2
2. LITERATURE REVIEW ........................................................................................................................... 3
2.1 Study of Conventional System ................................................................................................................ 3
2.2 Purposed System ...................................................................................................................................... 3
2.2.1 Feature of the Proposed System: ............................................................................................................ 3
2.2.2 Implementation Area .............................................................................................................................. 4
3. REQUIREMENT SPECIFICATION AND ANALYSIS .......................................................................... 5
3.1 Feasibility Analysis .................................................................................................................................. 5
3.1.1 Operational Feasibility ............................................................................................................................ 5
3.1.2 Technical Feasibility ................................................................................................................................ 5
3.1.3 Economic Feasibility ............................................................................................................................... 5
3.2 System Planning....................................................................................................................................... 5
3.2.1 System Life Cycle Development Methods ............................................................................................. 6
3.2.2 Recommended System Requirements .................................................................................................... 7
4. SYSTEM DESIGN, DEVELOPMENT AND TESTING ......................................................................... 8
4.1 System Design .......................................................................................................................................... 8
4.1.1 Modular Structure of the System ........................................................................................................... 8
4.1.2 File Design ................................................................................................................................................ 8
4.1.3 Data Flow and Process Design ................................................................................................................ 9
4.1.4 User Interface Design .............................................................................................................................. 9
4.1.5 Algorithmic Overview ............................................................................................................................. 9
4.1.6 Detailed Algorithms................................................................................................................................. 9
4.2 System Development ............................................................................................................................. 11
4.2.1 Development Methodology ................................................................................................................... 11
4.2.2 System Used for Development .............................................................................................................. 11
4.2.3 Programming Language ....................................................................................................................... 11
4.2.4 Data Dictionary...................................................................................................................................... 12
[Link] Data Structures Used ........................................................................................................................ 12
[Link] Files Used ........................................................................................................................................... 12
4.2.5 Source Code ........................................................................................................................................... 13
4.3 System Testing ....................................................................................................................................... 21
4.3.1 Unit Testing ............................................................................................................................................ 22
4.3.2 Module Testing ...................................................................................................................................... 22
4.3.3 System Testing ....................................................................................................................................... 22
4.3.4 Test Cases ............................................................................................................................................... 22
5. RECOMMENDATION, FUTURE ENHANCEMENT AND CONCLUSION .................................... 24
5.1 Future Enhancement ............................................................................................................................. 24
5.2 Conclusion .............................................................................................................................................. 24
BIBLIOGRAPHYAND REFERENCES .......................................................................................................... 25
USER MANUAL AND SNAPSHOTS .............................................................................................................. 26
Team Contribution ............................................................................................................................................. 30
List of Figures
Figure 1 Structure of Report ............................................................................................................................... 2
Figure 2 Linear Sequential Model ....................................................................................................................... 6
Figure 3 Main Menu ........................................................................................................................................... 26
Figure 4 Admin Login ........................................................................................................................................ 26
Figure 5 Admin Menu ........................................................................................................................................ 27
Figure 6 Add Book .............................................................................................................................................. 27
Figure 7 Search Book ......................................................................................................................................... 28
Figure 8 Issue Book ............................................................................................................................................ 28
Figure 9 List of All Books .................................................................................................................................. 29
Figure 10 Return Books ..................................................................................................................................... 29
List of Tables
Table 1 Files for Storage ...................................................................................................................................... 8
Table 2 File Data ................................................................................................................................................. 12
Table 3 Test for User Login ............................................................................................................................... 22
Table 4 Test for Adding a New Book Record ................................................................................................... 22
Table 5 Test for Searching a Book .................................................................................................................... 23
Table 6 Test for Issuing a Book ......................................................................................................................... 23
Table 7 Test for Returning a Book .................................................................................................................... 23
Table 8 Test for Viewing All Books................................................................................................................... 23
“Library System”
Chapter I
1. INTRODUCTION
1.1 Background Introduction
The project entitled “Library System” is a console-based application developed using the C
programming language. The system is designed to manage and organize library operations efficiently.
It allows users to perform essential tasks such as adding new books, recording readers’ information,
issuing and returning books, and viewing records according to different categories.
The project is completely based on file handling in C, where all the data such as book details, reader
information, and transaction records is stored and managed using external files. This ensures data
persistence even after the program is closed.
The system includes two types of users: Librarian (Admin) and Readers. The librarian can perform all
operations such as managing books, maintaining issue and return records, and viewing information
category-wise. Readers can access basic information about available books. The system provides a
simple, menu-driven interface to make operations easy and understandable.
In many traditional libraries, records of books and readers are maintained manually in registers or
notebooks. This manual process is time-consuming, error-prone, and difficult to manage when the
number of books and readers increases. Searching for a specific book or tracking which book has been
issued to which reader becomes complicated.
Moreover, manual systems do not provide quick updates or easy access to information. There is a high
chance of data loss, duplication, or inconsistency. To overcome these issues, a computerized Library
System using C programming has been proposed to automate record keeping and make library
management faster, easier, and more accurate.
1.3 Objectives
The main objective of this project is to develop a simple yet efficient computerized system for managing
library records using the C programming language.
Page | 1
“Library System”
1.4 Scope
1.5 Limitations
The system runs in a command-line interface (CLI) only, with no graphical user interface.
It is single-user based; multi-user access is not supported.
Data is stored in text files, so large-scale data management may be limited.
No online or network-based access is available.
Fine calculation and advanced search features are not implemented in this version.
These limitations can be addressed and improved in future versions of the system.
Requirement
Specification &
Analysis
Recommendation &
Testing Conclusion
Page | 2
“Library System”
Chapter II
2. LITERATURE REVIEW
2.1 Study of Conventional System
In the conventional library system, all operations such as maintaining records of books, readers, and
book transactions are carried out manually. The librarian records details like book titles, author names,
issued and returned books, and reader information in registers or notebooks.
This manual process is time-consuming, prone to errors, and becomes difficult to manage when the
number of books and readers increases. Searching for a specific book or finding the details of who has
borrowed a book takes significant effort. Moreover, manual record-keeping increases the risk of data
loss, duplication, and inconsistencies.
To overcome these drawbacks and improve efficiency, a computerized system is essential. The Library
System is developed to simplify and automate these operations using file handling techniques in the C
language.
The proposed system is a C-based application designed to handle daily library operations digitally. It
allows the librarian to manage book records, reader information, and book transactions such as issue
and return.
All data is stored in external files, ensuring that the records remain available even after the program is
closed. The system eliminates the need for manual record-keeping and provides quick access to
information, making library management easier, faster, and more accurate.
Page | 3
“Library System”
This system can be implemented in schools, colleges, or small libraries where computerization is
required but the use of complex databases is unnecessary. It is suitable for institutions looking for a
low-cost, efficient solution to manage their library records digitally through C programming and file
handling.
Page | 4
“Library System”
Chapter III
Operational feasibility examines whether the system will operate effectively once developed. The
Library System provides a simple and user-friendly environment through a command-line interface. It
allows librarians to manage records of books and readers efficiently without any technical complexity.
The system’s menu-driven structure makes it easy to navigate, even for users with minimal computer
knowledge. With a short initial training, the librarian can perform all operations such as adding books,
issuing and returning books, and viewing records easily. Therefore, the system is considered
operationally feasible for real-world use in small library environments.
Technical feasibility evaluates whether the proposed system can be developed with the available
technical resources. The Library System is developed using the C programming language, which runs
efficiently on any standard computer without the need for additional software or complex hardware.
It utilizes basic file-handling operations to store data, ensuring that information remains available even
after the program is closed. Since it requires only a text editor and a C compiler, such as Turbo C or
Dev C++, it is highly feasible from a technical perspective. The system is lightweight, efficient, and
easy to maintain.
Economic feasibility analyzes the cost-effectiveness of the system. The Library System is economical
because it requires minimal hardware and software resources. No expensive servers, databases, or
licenses are needed.
It helps reduce manual effort, saves time, and minimizes paperwork, making library operations more
efficient. As it can be implemented using existing computer systems, there are no additional costs
involved. Therefore, the system is highly economically feasible and suitable for educational institutions
and small libraries.
System planning involves identifying user requirements, understanding existing problems, and
designing a proper plan for system development. The main goal of system analysis is to study the current
manual library management process and identify areas where automation can improve efficiency and
accuracy.
Page | 5
“Library System”
During the requirement analysis phase, the needs of the librarian were studied carefully to define the
functional requirements such as adding, issuing, returning, and categorizing books and non-functional
requirements such as simplicity, reliability, and ease of use.
Clear communication between the users and the developers ensured that the final system meets all user
expectations. Proper analysis and planning helped in designing a system that is practical, effective, and
user-friendly.
The Library System has been developed using the Linear Sequential Model (Waterfall Model) of
software development. This model follows a systematic, step-by-step process where each phase must
be completed before moving on to the next.
System Analysis: Understanding the existing manual system and identifying the requirements for
automation.
System Design: Creating the structure and flow of the system, including data organization and user
interface design.
Testing: Verifying that all functions such as adding, issuing, and returning books work correctly.
This model ensures a clear development process, reduces confusion, and helps produce a stable and
functional system.
Page | 6
“Library System”
Hardware Requirements
Software Requirements
Page | 7
“Library System”
Chapter IV
System design is one of the most important phases in software development, where the logical structure
and working mechanism of the system are planned before actual coding. In this project, the Library
System has been designed using a modular programming approach to make the code organized,
maintainable, and easy to understand.
Since the system is based on file handling, all data related to books and readers are stored in external
text files instead of using a database. The design focuses on creating efficient structures, functions, and
file operations to handle library records.
The program is divided into several modules, where each module performs a specific task.
The main modules of the system are:
1. Main Module – Displays the main menu and allows users to navigate between features.
2. Book Management Module – Handles adding, viewing, updating, and deleting book records.
3. Reader Management Module – Manages reader information such as name, ID, and contact
details.
4. Issue/Return Module – Keeps track of which book has been issued to which reader and when
it is returned.
5. Search Module – Allows searching for books or readers based on category, title, or ID.
6. File Handling Module – Manages reading from and writing to files to ensure data is saved
permanently.
Each module interacts with others through function calls, ensuring smooth data flow and minimal
redundancy.
Since this system uses files for storage, the file design defines how data is stored and retrieved. The
project uses three main files:
Page | 8
“Library System”
Each record is stored in a structured format, using delimiters or structures in binary/text mode to ensure
easy access and update.
The system follows a linear flow of operations. A typical process, such as issuing a book, works as
follows:
Similarly, the return process updates the status of the book and records the return date. This flow
ensures accuracy and consistency in file-based data management.
The user interface of the system is text-based and menu-driven, developed using standard input/output
functions (printf, scanf, gets, etc.). It displays clear instructions and prompts to help the librarian
perform operations easily. The design focuses on simplicity, clarity, and minimal user errors.
The core logic of the system is designed using standard programming techniques such as:
These algorithmic elements ensure that the system is efficient, easy to debug, and scalable for future
improvements.
a) Login System
1. Start
2. Display "Enter Username" and take input
3. Display "Enter Password" and take input
4. Compare input with stored admin username and password
5. If both match → Login Successful
6. Else → Display error message
7. End
Page | 9
“Library System”
b) Main Menu
1. Start
2. Display list of options
3. Take user choice
4. Call the respective function
5. Repeat until user chooses Exit
6. End
c) Add Book
1. Start
2. Display "Enter Username" and take input
3. Display "Enter Password" and take input
4. Compare input with stored admin username and password
5. If both match → Login Successful
6. Else → Display error message
7. End
d) Search Book
1. Start
2. Display "Enter Username" and take input
3. Display "Enter Password" and take input
4. Compare input with stored admin username and password
5. If both match → Login Successful
6. Else → Display error message
7. End
e) Issue Book
1. Start
2. Display "Enter Username" and take input
3. Display "Enter Password" and take input
4. Compare input with stored admin username and password
5. If both match → Login Successful
6. Else → Display error message
7. End
1. Start
2. Display "Enter Username" and take input
3. Display "Enter Password" and take input
4. Compare input with stored admin username and password
5. If both match → Login Successful
6. Else → Display error message
7. End
1. Start
Page | 10
“Library System”
The Library System was developed following the Linear Sequential Model (Waterfall Model), which
ensures systematic progress through the stages of analysis, design, coding, testing, and implementation.
Each phase was completed before moving on to the next to minimize errors and ensure a stable system.
Hardware Requirements
Software Requirements
Hardware Requirements
Processor: Intel Core i3 or higher
RAM: Minimum 2 GB (4 GB recommended)
Hard Disk: Minimum 100 MB of free space
Display: Standard VGA or higher
Input Devices: Keyboard and Mouse
The system is developed entirely in the C programming language using procedural programming
techniques.
It utilizes:
The program is written in a text-based environment, with all user interactions handled through a menu-
driven console interface.
Page | 11
“Library System”
In the Library System, all the information is stored and managed using files and structures. The data
dictionary for this system represents the variables, structures, and file records used to hold information
about books, readers, and transactions.
struct Book {
int book_id;
char title[50];
char author[50];
char category[30];
int isIssued; // 0 = available, 1 = issued
};
struct Reader {
int reader_id;
char name[50];
char contact[30];
};
struct Transaction {
int book_id;
int reader_id;
char issue_date[15];
char return_date[15];
};
Page | 12
“Library System”
struct Book {
int book_id;
char title[50];
char author[50];
char category[30];
int isIssued;
};
struct Transaction {
int book_id;
int reader_id;
char issue_date[15];
char return_date[15];
};
void mainMenu();
int login();
void addBook();
void searchBook();
void issueBook();
void returnBook();
void viewBooks();
int main() {
int choice;
char ch = '0';
char dec;
char confirm[3];
int validInput = 0;
while (1) {
printf("\n===== LIBRARY MANAGEMENT SYSTEM =====\n");
mainMenu();
while(1){
printf("\nSelect your choice: ");
if (scanf(" %c", &ch) != 1 || (ch < '1' || ch > '3')) {
while (getchar() != '\n');
Page | 13
“Library System”
Page | 14
“Library System”
Page | 15
“Library System”
Page | 16
“Library System”
break;
case '3':
system("cls");
printf("\nAre you sure you want to exit?(Y/N) ");
scanf(" %c", &dec);
if (dec == 'Y' || dec == 'y'){
printf("\n\nThank you for using the library
managment system.\n");
exit(0);
}else{
printf("\nReturning to Main Menu....\n");
Sleep(2000);
system("cls");
break;
}
default:
printf("Invalid choice. Try again.\n");
printf("Press Enter to continue...");
Sleep(2000);
system("cls");
return;
}
ch = '0';
}
return 0;
}
Page | 17
“Library System”
Page | 18
“Library System”
int id;
printf("\n---- SEARCH BOOKS ----\n");
printf("Enter Book ID to search: ");
scanf("%d", &id);
struct Book b;
int found = 0;
while (fscanf(fp, "%d|%49[^|]|%49[^|]|%29[^|]|%d\n",&b.book_id,
[Link], [Link], [Link], &[Link]) != EOF) {
if (b.book_id == id) {
printf("\nBook Found:\n");
printf("ID: %d\nTitle: %s\nAuthor: %s\nCategory:
%s\nStatus:%s\n", b.book_id, [Link], [Link], [Link],[Link] ?
"Issued": "Available");
found = 1;
}
}
if (!found)
printf("Book not found!\n");
fclose(fp);
printf("\nPress Enter to continue...");
getchar();
}
Page | 19
“Library System”
}
fclose(fp);
fclose(temp);
remove(BOOK_FILE);
rename("[Link]", BOOK_FILE);
if (found) {
FILE *tf = fopen(TRANSACTION_FILE, "a");
struct Transaction t;
t.book_id = id;
t.reader_id = reader;
strcpy(t.issue_date, date);
strcpy(t.return_date, "-");
fprintf(tf, "%d|%d|%s|%s\n", t.book_id, t.reader_id,
t.issue_date, t.return_date);
fclose(tf);
printf("Book issued successfully!\n");
printf("\nReturning to the Admin Menu.\n");
Sleep(2000);
} else {
printf("Book not available or not found!\n");
}
}
Page | 20
“Library System”
fclose(fp);
fclose(temp);
remove(BOOK_FILE);
rename("[Link]", BOOK_FILE);
if (found) {
printf("Book returned successfully!\n");
printf("\nReturning to the Admin Menu.\n");
Sleep(2000);
} else {
printf("Book was not issued or not found!\n");
}
}
Testing is a crucial part of software development that ensures the system performs as expected. he
testing process helps detect and correct errors in logic, data handling, and functionality before the final
implementation.
Several testing phases were carried out to ensure the accuracy and stability of the Library System (C
Programming).
Page | 21
“Library System”
Each function and module, such as Add Book, Issue Book, Return Book, and Search Book, was tested
individually to ensure they worked correctly. Unit testing helped verify that all input and output
operations were handled properly.
After verifying individual functions, each system module was tested as a group for example, the Book
Management Module or Reader Management Module. This ensured smooth interaction among related
functions and data structures.
Finally, the system was tested as a complete application to ensure all modules worked together properly.
The system was tested with various test cases, such as issuing unavailable books or returning books not
issued, to check for error handling and data consistency.
All tests confirmed that the system performed as expected and produced accurate results.
Username: admin
Valid username and password Login Successful
Password: admin
Page | 22
“Library System”
Command: View All Display list of all books with details and Book list displayed
Books availability status correctly
Page | 23
“Library System”
Chapter V
Although the current system meets the basic requirements of a library, several improvements can be
made in future versions:
5.2 Conclusion
The Library System developed using C programming and file handling successfully fulfills the
objectives set during the project. It provides a structured and reliable way to store and manage library
records, including book entry, reader information, book issue and return operations, and category-wise
arrangements.
The system has been thoroughly tested, and most functional errors have been resolved. It is simple to
operate, lightweight, and requires minimal system resources, making it suitable for small libraries such
as those in schools or colleges.
Overall, this project demonstrates how an efficient record-keeping system can be developed using basic
C programming concepts. It serves as a strong foundation for future enhancements and can be upgraded
into a more advanced, automated, and scalable library management system.
Page | 24
“Library System”
BIBLIOGRAPHYAND REFERENCES
Books
Websites
Articles
Page | 25
“Library System”
Page | 26
“Library System”
Page | 27
“Library System”
Page | 28
“Library System”
Page | 29
“Library System”
Team Contribution
Ram Shrestha was responsible for structuring the core modules and program flow of the Library System.
He coded the main framework of the program, including the login system, main menu, and the overall
modular structure. He also implemented the data structures and file handling required for storing book
and user information. Ram’s coding ensured that the system was well-organized, modular, and could
be easily extended or maintained.
Shyam Yadav focused on the user interface of the Library System. He coded the console menus,
prompts, and formatted outputs to make the system easy to read and navigate. Shyam also added input
validation and interactive messages to improve usability. His coding ensured that users could smoothly
interact with the system and understand the information displayed at every step
Sita Timilsina implemented the functional features of the system. She coded the core operations,
including adding new books, searching for books, issuing books, and updating records. She also handled
error checking and tested the modules to ensure correct functionality. Her coding contributions made
sure the Library System worked efficiently and provided a reliable experience for users.
Page | 30
The primary reasons for proposing a computerized Library System using C programming were to overcome the inefficiencies and challenges of manual record-keeping. Manual systems are time-consuming, error-prone, and difficult to manage as the number of books and readers increases. There is also a high risk of data loss, duplication, and inconsistencies. The computerized system aims to automate record-keeping, making library management faster, easier, and more accurate by using file handling to ensure data persistence .
The Library System ensures data persistence by using file handling techniques in the C programming language. All data related to books, readers, and transactions are stored in external files. This approach maintains the availability of records even after the program is closed, unlike in-memory data structures that lose data upon program termination .
The Library System facilitates book management by automating key tasks such as adding, updating, viewing, and deleting book records. It uses structured data storage to organize book details, reader information, and transaction records efficiently. By automating these processes, the system significantly reduces the likelihood of manual errors that are common with paper-based records, such as data entry mistakes or inconsistent record-keeping, thus improving the overall accuracy and reliability of library records .
The Library System can be expanded in several ways to improve its functionality. Future enhancements include implementing a password-protected admin login, integrating fine calculations for late book returns, adding advanced search functionality, incorporating a graphical user interface for better usability, and extending support for multi-user scenarios. Additionally, integrating with a database management system would allow for more efficient data handling and support for larger data sets .
The Library System's menu-driven interface contributes to its user-friendliness by providing a structured and intuitive way for users to interact with the system. This setup allows users to navigate through different functionalities such as adding books or viewing records with minimal effort. By presenting options in a clear, step-by-step manner, the interface reduces the cognitive load on users, particularly those with minimal technical experience, making it accessible and easy to use .
The current version of the Library System has several limitations: it operates solely via a command-line interface without a graphical interface, supports single-user access only, and stores data in text files, which may not be ideal for large-scale data management. Additionally, it lacks online or network access, and features like fine calculation for late returns are not implemented. These limitations could be addressed in future versions by integrating a graphical user interface, expanding to support multi-user environments, integrating with databases for better data management, and adding networking capabilities and advanced functionalities such as automatic fine calculation .
The implementation of this Library System is most appropriate in scenarios involving small to medium-sized libraries, such as those in schools or colleges, where there is a necessity for digitization but the use of complex databases is not practical. It serves institutions looking for a cost-efficient and straightforward solution for managing library records digitally. The system's reliance on C programming and file handling makes it an accessible choice for institutions requiring basic computerization without significant budget increases or technical changes .
The system’s testing approach ensures reliability and accuracy through multiple testing phases, including unit testing for individual functions like Add Book or Issue Book, module testing for groups of related functions, and comprehensive system testing. This thorough testing checks for error handling and data integrity by executing test cases designed to cover typical scenarios and edge cases like issuing unavailable books. This multi-faceted testing strategy confirms all components operate correctly and cohesively, providing users with a dependable library management tool .
The Library System is economically feasible because it utilizes the C programming language, which requires minimal hardware and software, operating on any standard computer without needing additional resources. By eliminating the costs associated with complex database systems, the system offers a low-cost solution suitable for small libraries, aligning with budget constraints typically found in educational institutions or community libraries. This cost-effective approach allows for the digital management of library records without incurring significant financial burdens .
The system ensures operational feasibility for non-technical users by using a simple command-line interface with a menu-driven structure. This design minimizes complexity and supports easy navigation, allowing users to perform tasks like adding or issuing books without needing extensive technical knowledge. Furthermore, the system requires only basic computer skills, and initial training can quickly familiarize users with its operation, making it suitable for small libraries managed by staff without technical backgrounds .