0% found this document useful (0 votes)
4 views

Computer Science Ip Final

The document outlines a Computer Science project for a Library Management System developed by students at Velammal Vidhyashram for the academic year 2025-2026. It details the project's objectives, system requirements, functionalities, and coding aspects, emphasizing the use of Python and CSV files for efficient library management. The project aims to automate library operations, reduce manual errors, and enhance students' understanding of programming and data management.

Uploaded by

thilakeswaran820
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Computer Science Ip Final

The document outlines a Computer Science project for a Library Management System developed by students at Velammal Vidhyashram for the academic year 2025-2026. It details the project's objectives, system requirements, functionalities, and coding aspects, emphasizing the use of Python and CSV files for efficient library management. The project aims to automate library operations, reduce manual errors, and enhance students' understanding of programming and data management.

Uploaded by

thilakeswaran820
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
You are on page 1/ 33

VELAMMAL VIDHYASHRAM

GUDUVANCHERY

COMPUTER SCIENCE
HOTEL MANAGEMENT SYSTEM
ACADEMIC YEAR 2025-2026

DONE BY:-

12B2
BONAFIDE CERTIFICATE

This is to certify that this COMPUTER SCIENCE project on the topic


library mangement system has been successfully completed by
of class XII Roll.no……………………... at Velammal Vidhyashram,
Guduvanchery, for the partial fulfilment of this project as a part of
All India Senior School Certificate Examination- CBSE, New Delhi
for the academic Year 2025-2026.

Date: ……………………..

Signature of Principal Signature of the Guide

Signature of the Signature of the


Internal Examiner External Examiner
ACKNOWLEDGEMENT
I wish to express my deep gratitude and sincere thanks
to the Senior Principal of Velammal Vidhyashram,
Guduvanchery for the encouragement given to me and
for all the facilities that she provided for this project work.
I sincerely appreciate this magnanimity by taking me into
his fold for which I shall remain indebted to him.
I extend my hearty thanks to Ms. PADMA POORANI M
Computer Science Teacher, who guided me to
successfully complete this project.
I take this opportunity to express my deep gratitude for
her valuable guidance, constant encouragement, and
immense motivation, which sustained my efforts at all
stages of this project work.
I would like to thank my lab assistant, a lab in charge,
and technical staff for providing correct information which
makes the completion of this project work in an excellent
way.
I cannot forget to offer my sincere thanks to my parents,
and, also to my classmates who helped me to carry out
this project work successfully and for their valuable
advice and support, which received from them from time
to time.
INDEX

S.NO TOPIC PG.NO


1. INTRODUCTION /OBJECTIVES 5-7

2. SYSTEM REQIREMENTS/ FEASIBILTY STUDY 8-10

3. MODULES AND FUNCTIONALITIES 11-12

4. REQIREMENT ANALYSIS 13-16

5. CODING 17-23

6. OUTPUT SCREEN 24-25

7. TESTING AND ERRORS 26-28

8. ADVANTAGES LIMITATIONS AND FUTURE SCOPE 29-31

9. CONCULUSION 32

10. BIBLIOGRAPHY 33
INTRODUCTION:
Libraries have always played a vital role
in the academic and intellectual development of individuals and
institutions. Traditionally, library management was handled
manually, involving handwritten registers and ledgers to record
the details of every book and every transaction. With the
growth of institutions and the increasing number of books and
users, manual methods became tedious, time-consuming, and
error-prone. There emerged a need for a digital solution to
manage libraries more efficiently. This led to the concept of a
Library Management System.
The Library Management System is a software application
developed using the Python programming language. It is
designed to help librarians and users manage the book
database digitally. The system provides features like adding
new book records, modifying existing records, searching
for specific books, deleting old or unwanted book
records, and displaying all stored books — all through a
simple and interactive console-based interface.
In today’s digital world, automation is the key to accuracy
and efficiency. A computer-based system not only reduces
manual errors but also speeds up the processes, ensures
better data security, and allows instant access to required
information. Even for small school or home libraries, this
Python-based solution can act as a mini digital library
system.
The system uses Python as the programming language and
CSV (Comma-Separated Values) files as a lightweight
database alternative. Python is a powerful and easy-to-learn
language, making it ideal for educational projects. CSV files
serve as the backend storage, storing data in a structured
and readable format.
This Library Management System project is particularly
suitable for students of Class 12 who are pursuing the CBSE
curriculum. It helps them understand file handling, data
management, and function-based programming — all core
aspects of the Computer Science syllabus. It also strengthens
problem-solving skills and gives them a glimpse into real-life
software applications.
With features like:
• menu-driven options,
• dynamic record handling,
• and interactive output,
...this project becomes a valuable learning experience for
students and a practical tool for basic library operations.
OBJECTIVES:
The primary goal of this project is to develop a
Library Management System using Python to handle day-to-day library
functions digitally. It aims to:
• Eliminate manual entry and reduce human error.

• Store book records in a structured, digital format.

• Provide quick access to all book details.

• Simplify the process of adding, updating, and deleting records.

• Allow for easy search and retrieval of book information.

• Reduce paperwork and make the system eco-friendly.

• Enhance the student’s understanding of file handling and


modular programming.

This project also serves the following educational objectives:

• To apply theoretical knowledge in a real-world problem.

• To learn about data handling and storage using CSV files.

• To implement Python functions and menu-driven programs.

• To encourage clean coding practices and program structuring.

• To build logical thinking and analytical skills.


SYSTEM REQIREMENTS:
o run and develop the Library
Management System, the following hardware and software
specifications are required:
Hardware Requirements:
• Processor: Intel i3 or above

• RAM: Minimum 2 GB

• Hard Disk: Minimum 500 GB storage

• Input Devices: Keyboard and Mouse

• Display: Standard Monitor

Software Requirements:
• Operating System: Windows 7/10 or higher

• Programming Language: Python 3.8 or above

• Editor/IDE: IDLE / VS Code / PyCharm

• Backend Storage: CSV (Comma Separated Values) file

These specifications are minimal and suitable for school-level


projects. Since the system uses CSV files, there is no need for a heavy
database system like MySQL or PostgreSQL.

Feasibility Study
A feasibility study helps determine whether the project is practical
and achievable with the given resources. The Library Management
System was tested for three types of feasibility:
1. Economic Feasibility
This project is cost-effective as it:

• Requires no paid software.

• Uses free and open-source tools (Python, text editors).

• Has no need for costly databases or online services.

• Minimizes the cost of printing and maintaining physical


records.

Thus, the system saves money in the long run and is viable for
educational institutions and small libraries.

2. Technical Feasibility
The system is technically feasible as:

• It runs on basic computer hardware.

• Python is easy to install and use.

• CSV files make it simple to manage data without external


software.

• All required tools are platform-independent and open source.

Hence, it can be implemented even on low-end machines without


much technical complexity.

3. Operational Feasibility
This project is easy to use and implement because:

• The menu-driven structure is user-friendly.

• The librarian or user doesn’t need to be technically skilled.

• Functions are simple (Add, Delete, Search, etc.).


• It reduces manual effort and human errors.

Therefore, it is feasible to operate for any small to medium-sized


library setup.
MODULES AND FUNCTIONALTIES:
The Library
Management System is developed using a modular
programming approach. Each module or function in the
program handles a specific task related to book management.
This approach improves clarity, makes the program easier to
maintain, and separates different functionalities into well-
defined blocks.

1. Add a New Book Record (newBook())

This module allows the user to enter details of a new book,


such as Book ID, Book Name, Author, and Cost.
The record is then saved in a CSV file. After successful entry, a
confirmation message is displayed.

2. Modify Existing Book Record (updateBook())

This module is used to update the details of a book already


present in the system.
The user is prompted to enter the Book ID, and if the record is
found, the existing details are displayed.
The user can then modify and save the updated information.

3. Delete Book Record (deleteBook())


This function helps the user to remove an unwanted or
incorrect book record from the database.
The user enters the Book ID, and if the record is found, it is
deleted after confirmation.

4. Search Book Record (searchBook())

This module allows the user to search for a book by entering its
Book ID.
If the book exists in the CSV file, its details are shown.
Otherwise, a message is displayed indicating that the book was
not found.
5. List All Books (listBooks())

This function reads all book records from the CSV file and
displays them in a tabular format.
It is useful for getting a complete view of the books currently
stored in the system.

6. Main Menu (menu())

This is the central module of the system.


It displays a list of options to the user such as Add, Modify,
Delete, Search, List, and Exit.
The program continues to run in a loop until the user selects
the Exit option
REQIREMENT ANAYLSIS:
The Library Management
System is designed to perform book management operations
efficiently using Python and CSV files. Before developing the
system, it is important to analyze the requirements to ensure
that the final product meets the expectations of users and
functions smoothly under different scenarios.

4.1. Purpose of Requirement Analysis

Requirement analysis is the process of identifying what the


system is expected to do. It includes understanding the
problem, defining system behavior, identifying user needs, and
evaluating the limitations of the current manual or semi-
automated process.

4.2. Existing System

In traditional library systems, data is stored and managed


manually using registers, files, and ledgers. This approach has
several limitations:

Time-consuming data entry and retrieval

Risk of human error in maintaining records


Difficulty in tracking issued or returned books

No automatic search, update, or delete operations


Limited access and no data backup

4.3. Proposed System

The proposed system replaces manual effort with an


automated, Python-based Library Management System using
CSV files. This system supports:
Adding new book records

Modifying existing records

Deleting unwanted records

Searching for specific books

Displaying all book records

It provides an easy-to-use interface, and it stores data in a


structured format that can be easily accessed and modified.

4.4. Functional Requirements

The following are the core functions the system must support:

Allow the user to input and store book details

Provide a menu-based interface to access functions


Validate user inputs (e.g., Book ID should be numeric)

Save data in a persistent file (CSV)

Enable searching, editing, and deleting based on Book ID

4.5. Non-Functional Requirements

Non-functional requirements describe how the system should


behave rather than what it should do:

Usability: Easy for school staff or librarians to use

Performance: Fast response time while reading or writing


records

Reliability: Should work without crashing or data loss

Portability: Should run on different systems (Windows/Linux)

Maintainability: Code should be modular for easy updates

4.6. Benefits of the Proposed System

Minimizes paperwork

Reduces human errors

Organizes records systematically


Increases efficiency and speed

Easy to maintain and expand

CODING:
Part 1: Importing Modules and Initial Setup
# Library Management System
# Developed using Python and CSV file handling
# By: [Your Name], Class 12
# Importing required libraries
import csv
import os

Part 2: Function to Add a New Book


# Function to add a new book record to the CSV file
def newBook():
print("\n=== Add a New Book Record ===")
with open('Library.csv', 'a', newline='') as f:
writer = csv.writer(f)
# Taking input from user
BookId = int(input("Enter Book ID: "))
BookName = input("Enter Book Name: ")
Author = input("Enter Author Name: ")
Cost = float(input("Enter Cost of the Book: "))
# Creating a record list
record = [BookId, BookName, Author, Cost]
# Writing the record to the file
writer.writerow(record)
print("✅ Record Saved Successfully!")

Part 3: Function to Modify Book Record


# Function to update details of an existing book
def updateBook():
print("\n=== Modify an Existing Book Record ===")
book_id_to_modify = input("Enter Book ID to modify: ")
found = False
with open('Library.csv', 'r') as file:
reader = csv.reader(file)
records = list(reader)
with open('temporary.csv', 'w', newline='') as temp_file:
writer = csv.writer(temp_file)

for record in records:


if record[0] == book_id_to_modify:
found = True
print("Existing Record:")
print("Book ID:", record[0])
print("Book Name:", record[1])
print("Author:", record[2])
print("Cost:", record[3])

# Taking new details from the user


new_id = int(input("Enter New Book ID: "))
new_name = input("Enter New Book Name: ")
new_author = input("Enter New Author Name: ")
new_cost = float(input("Enter New Cost: "))

new_record = [new_id, new_name, new_author,


new_cost]
writer.writerow(new_record)
print("Record Modified.")
else:
writer.writerow(record)
os.remove("Library.csv")
os.rename("temporary.csv", "Library.csv")

if not found:
print("No book found with the given ID.")

PART 4:Function to Delete a Book Record


# Function to delete a book record from the file
def deleteBook():
print("\n=== Delete a Book Record ===")
book_id_to_delete = input("Enter Book ID to delete: ")
found = False

with open('Library.csv', 'r') as file:


reader = csv.reader(file)
records = list(reader)

with open('temporary.csv', 'w', newline='') as temp_file:


writer = csv.writer(temp_file)

for record in records:


if record[0] == book_id_to_delete:
found = True
print("Book Found:")
print("Book ID:", record[0])
print("Book Name:", record[1])
print("Author:", record[2])
print("Cost:", record[3])
confirm = input("Do you really want to delete this
record? (y/n): ")
if confirm.lower() != 'y':
writer.writerow(record) # Keep the record if
not deleting
else:
writer.writerow(record)

os.remove("Library.csv")
os.rename("temporary.csv", "Library.csv")

if found:
print(“Record Deleted.")
else:
print(" No book found with the given ID.")

PART 5:Function to Search for a Book


Record

# Function to search for a book by ID


def searchBook():
print("\n=== Search a Book Record ===")
search_id = input("Enter Book ID to search: ")
found = False

with open('Library.csv', 'r') as file:


reader = csv.reader(file)
for record in reader:
if record[0] == search_id:
found = True
print("Book Found:")
print("Book ID:", record[0])
print("Book Name:", record[1])
print("Author:", record[2])
print("Cost:", record[3])
break

if not found:
print(" No book found with the given ID.")

Part 6: Function to List All Book Records


# Function to display all book records
def listBooks():
print("\n=== List of All Books ===")
print("{:<10} {:<30} {:<20} {:<10}".format("Book ID",
"Book Name", "Author", "Cost"))
print("-" * 75)

with open('Library.csv', 'r') as file:


reader = csv.reader(file)
for record in reader:
print("{:<10} {:<30} {:<20} {:<10}".format(record[0],
record[1], record[2], record[3]))

Part 7: Main Menu Function

# Function to display the main menu and handle user


choices
def menu():
choice = 0
while choice != 6:
print("\n==============================")
print(" LIBRARY MANAGEMENT SYSTEM")
print("==============================")
print("1. Add a New Book Record")
print("2. Modify Existing Book Record")
print("3. Delete a Book Record")
print("4. Search a Book Record")
print("5. List All Book Records")
print("6. Exit")
print("==============================")

try:
choice = int(input("Enter your choice (1-6): "))
except ValueError:
print("Invalid input. Please enter a number from 1 to
6.")
continue

if choice == 1:
newBook()
elif choice == 2:
updateBook()
elif choice == 3:
deleteBook()
elif choice == 4:
searchBook()
elif choice == 5:
listBooks()
elif choice == 6:
print("Thank you for using the Library Management
System.")
else:
print("Please enter a valid choice.")

Part 8: Running the Program


# Start the program by calling the menu
if __name__ == "__main__":
Menu()
PART 9:SAMPLE CSV STRUCTURE

BookID,BookName,Author,Cost
101, The Alchemist,Paulo Coelho,299

102 ,Wings of Fire,A.P.J. Abdul Kalam,350


103, Zero to One,Peter Thiel,420
OUTPUT SCREEN:

1. Adding a New Book :


=== Add a New Book Record ===
Enter Book ID: 101
Enter Book Name: The Alchemist
Enter Author Name: Paulo Coelho
Enter Cost of the Book: 299
✅ Record Saved Successfully!

2. Modifying an Existing Book:


=== Modify an Existing Book Record ===
Enter Book ID to modify: 101
Existing Record:
Book ID: 101
Book Name: The Alchemist
Author: Paulo Coelho
Cost: 299
Enter New Book ID: 102
Enter New Book Name: Brida
Enter New Author Name: Paulo Coelho
Enter New Cost: 320
Record Modified.

3. Deleting a Book :
=== Delete a Book Record ===
Enter Book ID to delete: 102
Book Found:
Book ID: 102
Book Name: Brida
Author: Paulo Coelho
Cost: 320
Do you really want to delete this record? (y/n): y
✅ Record Deleted.
4. Searching for a Book :

=== Search a Book Record ===


Enter Book ID to search: 103
Book Found:
Book ID: 103
Book Name: Wings of Fire
Author: A.P.J. Abdul Kalam
Cost: 350

5.Listing All Book Records :


=== List of All Books ===
Book ID Book Name
Author Cost
-------------------------------------------
--------------------------
101 The Alchemist
Paulo Coelho 299.0
104 Atomic Habits James Clear 450.0

6. Exiting the Program :

Enter your choice (1-6): 6


Thank you for using the Library Management System.

TESTING ERRORS:
Testing is one of the most
important phases in software development. It ensures that
the program works as expected under different conditions
and helps identify issues before deployment. This section
discusses the testing process followed during the
development of the Library Management System and
highlights the types of errors encountered.

7.1 Importance of Testing


To verify that all modules (Add, Delete, Search, etc.) work
correctly
To ensure the program handles invalid inputs without
crashing
To confirm that data is being read and written to the CSV file
accurately
To identify and eliminate bugs or unexpected behavior

7.2 Types of Testing Performed


Test Type Description Unit Testing Individual functions
were tested one at a time.Integration Testing Verified that all
modules work together smoothly.Input Validation Testing
Checked that invalid inputs (like strings instead of numbers)
are handled .File TestingEnsured the program correctly
reads and updates the Library.csv file.
7.3 Types of Errors in Python
Python programs may encounter three main types of errors.
Here’s how they apply to this project:
a) Syntax Errors
These occur when Python rules are broken.
Example:
print("Hello" # Missing closing parenthesis

b) Runtime Errors
• These happen while the program is running, often due to
invalid input or missing files.

• Example:

int("abc") # Trying to convert a string to integer

c) Logical Errors

• The program runs without crashing, but the output is


incorrect.
• Example:
• Adding records to the wrong file or using incorrect
index positions in the CSV.
7.4 Sample Testing Cases:

Test Case Input Expected Output Status

Add Book Book ID: 101 Record Saved ✅ Passed

Modify Book Book ID: 101 Record Modified ✅ Passed

Delete Book Book ID: 101 Record Deleted ✅ Passed

Search Book Book ID: 101 Book Not Found ✅ Passed

Invalid Input Book ID: abc Show error message ✅ Passed


7.5 RESULTS:
All tests were conducted successfully, and the system handled both
valid and invalid scenarios gracefully.
No critical bugs were found in the final version of the code.
ADVANTAGES LIMITATIONS AND FUTURE
SCOPE:
8.1 Advantages of the System
1. Reduces Manual Work
The system automates tasks like adding, deleting, and
searching books, which were previously done manually.
2. Easy Data Access and Updates
Information can be retrieved and modified quickly
without scanning through physical registers.
3. User-Friendly Interface
The menu-driven interface is simple and intuitive,
making it usable for all types of users.
4. Digital Storage
Using CSV files ensures structured, reliable, and
lightweight storage of book records.
5. Low Maintenance Cost
No special hardware or expensive software is needed.
The program can run on any basic system.
6. Efficient Record Keeping
All book-related data is stored in a central file, making
record management easier and faster.

8.2 Limitations of the Current System


1. No GUI (Graphical User Interface)
The project is console-based and may not appeal to
users who are not comfortable with terminal use.
2. Limited File Format
Uses CSV files for data storage, which may not handle
large-scale data efficiently compared to databases like
MySQL.
3. No User Authentication
Anyone can access and modify records without logging
in, making it less secure.
4. No Record of Borrowers
The system only manages books, not students or
readers who borrow them.

8.3 Future Scope and Enhancements


1. Add a GUI Interface
Using Python’s tkinter or PyQt, a graphical interface
can be developed for better usability.
2. Integrate a Database System
Switching from CSV to MySQL or SQLite can help
manage larger datasets with better performance and
security.
3. Add User Authentication
Introducing login functionality can make the system
secure by restricting access to authorized users only.
4. Implement Borrower Tracking
Add modules to manage book issues, returns, and
student details.
5. Generate Reports
Enable automatic generation of reports such as books
issued, books available, and overdue records.
CONCLUSION:
The Library Management System project
was developed with the aim of digitizing the traditional library
process using Python programming and CSV file handling. It
provides a simple yet powerful platform for performing various
tasks such as adding, modifying, deleting, searching, and listing
book records.
Through this project, I have gained a deeper understanding of:

• File handling in Python

• Function-based modular programming

• Real-world software problem-solving

• Input validation and error handling

• User interaction through menu-driven programs

The system successfully eliminates the need for manual registers


and paperwork by offering a digital alternative that is efficient, fast,
and easy to use. It also emphasizes the importance of automation in
managing everyday tasks in educational and public institutions.

While the current system is basic and console-based, it lays a solid


foundation for further enhancements such as adding a graphical
user interface, using database systems, or implementing user login
features.

This project not only fulfilled the CBSE Class 12 Computer Science
practical requirements but also helped me build confidence in
developing real-world applications using Python. It reflects the
practical application of theoretical knowledge and encourages
further learning and innovation.
BIBLIOGRAPHY:
we have used various resources and
applications for the completion of this work some of them are
listed below:
1)chatgpt
2)google.com
3)sumita arora class 12 text book
4)geeks for greeks(for images and content)
5)good firms.com
6)https://github.com/sanojcr/Library-
Management-System-Console
7) https://www.geeksforgeeks.org/e-library-
management-system/
8) chrome.com

📄 Sample CSV Data File (Library.csv)


• Output Screenshots of the program running

• 💻 Explanation of each Python function in bullet points

You might also like