THANK
YOU
A
MINI PROJECT REPORT
on
SIMPLE CONTACT BOOK
NAME ROLL NO.
Shruti Badhe 105
Shrutika Bansode 106
Abhijit Bargal 107
Harshda Barhate 108
Electronic And Computer Engineering –Div: G
Guide Name: Prof. P. M. TAMBE
Department of F. Y. B. Tech
Amrutvahini College of Engineering, Sangamner-422608
Academic Year: 2025 – 2026
Abstract
This project titled “Python‑Based Student Result Management System” is designed to
store, process, and display students’ marks and final results in a simple and efficient
manner. The system allows the user to add student details, enter marks for multiple
subjects, calculate totals and percentages, and automatically determine the grade of
each student. It aims to reduce manual calculation errors and the time consumed in
preparing result sheets. The project demonstrates the use of Python fundamentals such
as variables, lists, dictionaries, functions, conditional statements, and file handling. It
can be used by schools, coaching classes, and individual teachers as a small tool for
managing exam data.
Introduction
The rapid growth of educational institutions has increased the amount of student
data handled by teachers and administrators. Manual record keeping using pen and
paper or basic calculators often leads to mistakes in total marks, percentage
calculations, and grade assignments. This project provides a small but practical
solution using Python programming language to manage result data systematically.
The main idea of the project is to build a console‑based application where the user can
enter student information and marks in different subjects and instantly obtain the
final result. Python is selected for this project because it is easy to learn, has clear
syntax, and provides powerful built‑in data structures that make handling tabular
data simple. Using this project, the learner can understand how real‑life problems like
result preparation can be converted into a computer program. The project also helps
in
improving logical thinking and problem‑solving skills while working with conditions,
loops, and functions.
Problem Statement and Objectives
Problem Statement
In many schools and coaching centers, teachers still rely on manual methods for
preparing student result sheets. Marks are entered in registers, and totals are calculated
by hand or simple calculators. This manual process is time‑consuming and prone to
human error. If any marks are changed later, teachers must recalculate totals and
grades, which again consumes extra effort. There is also no easy way to search for a
particular student’s result quickly or store the data in a reusable format.
Objectives
The main objectives of this Python project are:
* To design a simple software tool that allows teachers or administrators to
input student details and subject marks in a structured way.
* To automate the calculation of total marks, percentage, and grade using Python
logic so that human errors are minimized.
* To provide options to display individual student results as well as a list of all
students with their grades.
* To save student data in a file so that it can be reused, updated, or printed later
without re‑entering everything.
To demonstrate the practical use of Python programming concepts such as lists,
dictionaries, functions, conditional statements, loops, and file handling in solving a
real‑world educational problem.
Requirements
Hardware Requirements
* A laptop or personal computer with at least a dual‑core processor.
* Minimum 4 GB RAM for smooth running of the Python interpreter and code editor.
* Around 200 MB free disk space for installing Python and saving project files and
result data.
* Keyboard and mouse for easy interaction with the program.
* Software Requirements
* Operating System: Windows, Linux, or macOS (any modern version that supports
Python).
* Programming Language: Python 3.x installed from the official Python website.
* Code Editor or IDE: IDLE (comes with Python), VS Code, PyCharm, or any text
editor of choice.
* Optional libraries: No external libraries are strictly required; the project uses only
Python’s built‑in modules such as os and csv (if CSV storage is used).
* This minimal requirement set ensures that the project can run on most
standard computers used in schools or homes without demanding high‑end
hardware.
Working, Method and Implementation
Overall Working
The Student Result Management System works in a step‑by‑step manner. First, the user
is presented with a menu containing options such as “Add Student”, “Enter Marks”,
“View Result”, “View All Students”, “Save and Exit”, etc. When the user selects an option,
the program calls the corresponding function to perform that action. Student records
are stored in a list or dictionary in memory during program execution. Each student
record contains fields like roll number, name, class, and a dictionary of subjects with
their marks.
When marks are entered, the program automatically calculates total marks by adding
the marks of all subjects. It then computes the percentage by dividing total marks by
the maximum possible marks. Based on the percentage, a grade is assigned using
predefined rules, for example: A for percentage ≥ 75, B for 60–74, C for 50–59, and so
on. The result is then stored as part of the student record. Whenever the user wants to
view a result, the program searches the list of students by roll number and displays the
corresponding details such as name, marks, total, percentage, and grade in a neat
format.
Simple Stepwise Method
1. Start the program and initialize an empty list to store all student records
2. Display the main menu with options like Add Student, Enter Marks, View Result,
View All, Save Data, and Exit.
3. When the user selects “Add Student”, ask for basic details like roll number, name,
and class, and store them in a dictionary.
4. When the user selects “Enter Marks”, ask for roll number, then accept marks for
each subject and store them in the same student record.
5. Compute total marks, percentage, and grade using Python arithmetic operations
and conditional statements.
6. Allow the user to view an individual result by roll number or list all students with
their respective grades.
7. Provide an option to save all student records to a file for future use.
8. End the program when the user selects the Exit option while ensuring data is
saved.
Flowchart (Text Description)
* Start
* Display menu
* Take user choice
If choice is Add Student → Input details → Save record → Back to menu
If choice is Enter Marks → Search student → Input marks → Calculate total,
percentage, grade → Back to menu
If choice is View Result → Search student → Display result → Back to menu
If choice is View All → Display list of all students with grades → Back to menu
If choice is Save and Exit → Save records to file → Stop
* End
This logical flow can be drawn as a proper diagram in your notebook or
document.
Main Code Steps (Very Short Explanation)
* Import necessary modules such as csv for file handling.
* Define a list named students to store all records.
* Create functions like add_student(), enter_marks(), calculate_result(),
view_result(), view_all(), and save_data().
* Inside calculate_result(), use a loop to add marks of all subjects, compute
percentage, and assign grade through if‑else conditions.
* In the main loop, continuously show the menu and call functions based on
user input until the user chooses to exit.
# Simple Contact Book using File Handling
FILE_NAME = "[Link]"
def add_contact():
name = input("Enter Name: ")
mobile = input("Enter Mobile Number: ")
email = input("Enter Email: ")
with open(FILE_NAME, "a") as file:
[Link](f"{name},{mobile},{email}\n")
print("Contact added successfully.\n")
def view_contacts():
try:
with open(FILE_NAME, "r") as file:
contacts = [Link]()
if not contacts:
print("No contacts found.\n")
else:
print("\nName\tMobile\t\tEmail")
print("-" * 40)
for contact in contacts:
name, mobile, email = [Link]().split(",")
print(f"{name}\t{mobile}\t{email}")
print()
except FileNotFoundError:
print("No contact file found.\n")
def update_contact():
name_to_update = input("Enter name to update: ")
found = False
try:
with open(FILE_NAME, "r") as file:
contacts = [Link]()
with open(FILE_NAME, "w") as file:
for contact in contacts:
name, mobile, email = [Link]().split(",")
if name == name_to_update:
new_mobile = input("Enter new mobile number: ")
new_email = input("Enter new email: ")
[Link](f"{name},{new_mobile},{new_email}\n")
found = True
else:
[Link](contact)
if found:
print("Contact updated successfully.\n")
else:
print("Contact not found.\n")
except FileNotFoundError:
print("No contact file found.\n")
def delete_contact():
name_to_delete = input("Enter name to delete: ")
found = False
try:
with open(FILE_NAME, "r") as file:
contacts = [Link]()
with open(FILE_NAME, "w") as file:
for contact in contacts:
name, mobile, email = [Link]().split(",")
if name != name_to_delete:
[Link](contact)
else:
found = True
if found:
print("Contact deleted successfully.\n")
else:
print("Contact not found.\n")
except FileNotFoundError:
print("No contact file found.\n")
# Main Menu
while True:
print("---- Contact Book ----")
print("1. Add Contact")
print("2. View Contacts")
print("3. Update Contact")
print("4. Delete Contact")
print("5. Exit")
choice = input("Enter your choice (1-5): ")
if choice == "1":
add_contact()
elif choice == "2":
view_contacts()
elif choice == "3":
update_contact()
elif choice == "4":
delete_contact()
elif choice == "5":
print("Thank you for using Contact Book.")
break
else:
print("Invalid choice. Please try again.\n")
Result
---- Contact Book ----
1. Add Contact
2. View Contacts
3. Update Contact
4. Delete Contact
5. Exit
Enter your choice (1-5): 1
Enter Name: Rahul
Enter Mobile Number: 7620324255
Enter Email: abhijitbargal2@[Link]
Contact added successfully.
---- Contact Book ----
1. Add Contact
2. View Contacts
3. Update Contact
4. Delete Contact
5. Exit
Enter your choice (1-5): 2
Name Mobile Email
----------------------------------------
Rahul 9876543210 abhijitbargal2@[Link]
---- Contact Book ----
1. Add Contact
2. View Contacts
3. Update Contact
4. Delete Contact
5. Exit
Enter your choice (1-5): 3
Enter name to update: Rahul
Enter new mobile number: 9999999999
Enter new email: abhijit123@[Link]
Contact updated successfully.
---- Contact Book ----
1. Add Contact
2. View Contacts
3. Update Contact
4. Delete Contact
5. Exit
Enter your choice (1-5): 4
Enter name to delete: abhijit
Contact deleted successfully.
---- Contact Book ----
1. Add Contact
2. View Contacts
3. Update Contact
4. Delete Contact
5. Exit
Enter your choice (1-5): 5
Thank you for using Contact Book.
Conclusion
While developing this project, several programming concepts were learned and
applied. The project reinforced the understanding of Python basics such as
variables, data types, input and output operations, and arithmetic expressions.
Working with lists and dictionaries improved the ability to manage collections of
related data. The use of functions helped in breaking the problem into smaller,
manageable parts, which made the program easier to read and maintain.
Conditional statements and loops were used extensively to implement
decision‑making and repetitive tasks.
The final summary of the project is that a simple yet useful Student Result
Management System was successfully implemented using Python. It achieved
the main goal of reducing manual calculations and providing quick access to
student performance information. The project also highlighted the importance
of planning, designing menus, and thinking logically before writing the actual
code. These skills are essential for building larger and more complex software
applications in the future.
Future Scope
There are many possible improvements that can be added to this project in the
future. One important enhancement is the development of a graphical user
interface (GUI) using libraries such as Tkinter or PyQt. A GUI would make the
application more user‑friendly by providing buttons, text boxes, and tables
instead of plain console input and output. Another improvement is to connect
the project with a database system like SQLite or MySQL for storing student
records, which would provide more reliability and better data management for
large numbers of students.
Additional features can include generating printable report cards in PDF format
for each student, sending results through email, and providing data analysis such
as class average marks and topper lists. Security features like login systems for
teachers and read‑only access for students can also be added. These future
enhancements would transform the basic project into a more complete and
professional result management software that could be deployed in real
educational institutions.
References
* Official Python documentation, “Python 3.x Tutorial” – for
understanding syntax, data types, and built‑in functions.
* Online Python project tutorials and examples – for ideas on structuring
the project and implementing menus and file handling.
* Various educational blogs explaining student management systems and
menu‑driven programs in Python – for guidance on features and best
practices.