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

Computer Science P (Roject

The document outlines a student report card project that includes: 1) Storing student data like name, roll number, and marks in various subjects in a binary file using pickle serialization. 2) Functions for setting and retrieving student data, displaying it, searching, modifying, deleting records from the file. 3) A main menu driven program to call the various functions for admin and user operations on the student records. 4) The code is well structured and commented explaining the purpose and flow. It uses object serialization to binary files for persistent storage of student records.

Uploaded by

Nishit
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
228 views

Computer Science P (Roject

The document outlines a student report card project that includes: 1) Storing student data like name, roll number, and marks in various subjects in a binary file using pickle serialization. 2) Functions for setting and retrieving student data, displaying it, searching, modifying, deleting records from the file. 3) A main menu driven program to call the various functions for admin and user operations on the student records. 4) The code is well structured and commented explaining the purpose and flow. It uses object serialization to binary files for persistent storage of student records.

Uploaded by

Nishit
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

DAV PUBLIC

SCHOOL,
VASANT
KUNJ

SESSION:-2022-2023

COMPUTER SCIENCE PROJECT:-

NAME:____________________
CLASS:___________________
ROLL NO.:________________

Project Topic : STUDENT


REPORT CARD
INDEX
S. no. Title Page Signature
no. &
Remarks
1 Certificate 3
2 Acknowledgement 4
3 Coding 5-11
4 Output 12-13
Screenshots
5 Requirements 14
6 Specifications 15
7 Bibliography 16
Certificate
This is to certify that Vivek Malik
of Class XII-B of DAV Public
School, Vasant Kunj, has
successfully completed the
computer science yearly project
“Student Report Card” as
prescribed by CBSE in the year
2022-23.

Signature of Teacher Signature of Examiner

Signature of principal
Acknowledgement
In the accomplishment of this project
successfully, many people have best owned
upon me their blessings and the heart pledge
support, this time I am utilizing to thank all the
people who have been concerned with this
project. Primarily I would like to thank God for
being able to complete this project with
success. Then I would like to thank my
principal Mrs. Anju Puri and my Computer
science teacher Mrs. Pratibha Dwivedi whose
valuable guidance has been the ones that
helped me patch this project and make it full
proof success, her suggestions and
instruction has served as the major
contribution towards the completion of this
project. Then I would like to thank my parents
who have helped me with their valuable
suggestions and guidance has been very
helpful in various phases of the completion of
the project.
Code:-
import pickle
import time
import os

def set_data():
print("ENTER STUDENT'S DETAILS")
rollno = int(input('Enter roll number: '))
name = input('Enter name: ')
english = int(input('Enter Marks in English: '))
maths = int(input('Enter Marks in Maths: '))
physics = int(input('Enter Marks in Physics: '))
chemistry = int(input('Enter Marks in Chemistry: '))
cs = int(input('Enter Marks in CS: '))
print()

#create a dictionary
student = {}
student['rollno'] = rollno
student['name'] = name
student['english'] = english
student['maths'] = maths
student['physics'] = physics
student['chemistry'] = chemistry
student['cs'] = cs
return student

def display_data(student):
print('\nSTUDENT DETAILS..')
print('Roll Number:', student['rollno'])
print('Name:', student['name'])
print('English:', student['english'])
print('Maths:', student['maths'])
print('Physics:', student['physics'])
print('Chemistry:', student['chemistry'])
print('CS:', student['cs'])

def display_data_tabular(student):
print('{0:<8}{1:<20}{2:<10}{3:<10}{4:<10}{5:<10}{6:<10}'.format(student['rollno'],
student['name'], student['english'],student['maths'], student['physics'],
student['chemistry'],student['cs']))

def class_result():
#open file in binary mode for reading
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found..')
print('Go to admin menu to create record')
return

print('{0:<8}{1:<20}{2:<10}{3:<10}{4:<10}{5:<10}{6:<10}'.format('Rollno', 'Name',
'English', 'Maths','Physics','Chemistry','CS'))
#read to the end of file.
while True:
try:
#reading the oject from file
student = pickle.load(infile)

#display the record


display_data_tabular(student)
except EOFError:
break

#close the file


infile.close()

def write_record():
#open file in binary mode for writing.
outfile = open('student.dat', 'ab')

while(True):
#serialize the record and writing to file
pickle.dump(set_data(), outfile)
ans = input('Wants to enter more record (y/n)?: ')
if ans in 'nN':
break

#close the file


outfile.close()

def read_records():
#open file in binary mode for reading
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found..')
return

#read to the end of file.


while True:
try:
#reading the oject from file
student = pickle.load(infile)

#display the record


display_data(student)
except EOFError:
break

#close the file


infile.close()

def search_record():
#open file in binary mode for reading
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record..')
return

found = False
print('SEARCH RECORD')
rollno = int(input('Enter the rollno you want to search: '))
#read to the end of file.
while True:
try:
#reading the oject from file
student = pickle.load(infile)
if student['rollno'] == rollno:
#display the record
display_data(student)
found = True
break
except EOFError:
break
if found==False:
print('Record not found!!')

#close the file


infile.close()

def delete_record():
print('DELETE RECORD')
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found to delete..')
return

outfile = open("temp.dat","wb")
found = False

rollno = int(input('Enter roll number: '))


while True:
try:
#reading the oject from file
student = pickle.load(infile)

#display record if found and set flag


if student['rollno'] == rollno:
display_data(student)
found = True
break
else:
pickle.dump(student,outfile)
except EOFError:
break

if found == False:
print('Record not Found')
print()
else:
print("record found and deleted")
infile.close()
outfile.close()
os.remove("student.dat")
os.rename("temp.dat","student.dat")

def modify_record():
print('\nMODIFY RECORD')
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found to modify..')
return

found = False
outfile = open("temp.dat","wb")
rollno = int(input('Enter roll number: '))
while True:
try:
#reading the oject from file
student = pickle.load(infile)

#display record if found and set flag


if student['rollno'] == rollno:

print('Name:',student['name'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['name'] = input("Enter the name ")

print('English marks:',student['english'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['english'] = int(input("Enter new marks: "))

print('Maths marks:',student['maths'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['maths'] = int(input("Enter new marks: "))

print('Physics marks:',student['physics'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['physics'] = int(input("Enter new marks: "))

print('Chemistry marks:',student['chemistry'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['chemistry'] = int(input("Enter new marks: "))

print('CS marks:',student['cs'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['cs'] = int(input("Enter new marks: "))

pickle.dump(student,outfile)
found = True
break
else:
pickle.dump(student,outfile)
except EOFError:
break
if found == False:
print('Record not Found')
else:
print('Record updated')
display_data(student)

infile.close()
outfile.close()
os.remove("student.dat")
os.rename("temp.dat","student.dat")

def intro():
print("="*80)
print("{: ^80s}".format("STUDENT"))
print("{: ^80s}".format("REPORT CARD"))
print("{: ^80s}".format("PROJECT"))
print("{: ^80s}".format("MADE BY: PyForSchool.com"))
print("="*80)
print()

def main_menu():
time.sleep(1)
print("MAIN MENU")
print("1. REPORT MENU")
print("2. ADMIN MENU")
print("3. EXIT")

def report_menu():
time.sleep(1)
print("REPORT MENU")
print("1. CLASS RESULT")
print("2. STUDENT REPORT CARD")
print("3. BACK TO MAIN MENU")

def admin_menu():
time.sleep(1)
print("\nADMIN MENU")
print("1. CREATE STUDENT RECORD")
print("2. DISPLAY ALL STUDENTS RECORDS")
print("3. SEARCH STUDENT RECORD ")
print("4. MODIFY STUDENT RECORD ")
print("5. DELETE STUDENT RECORD ")
print("6. BACK TO MAIN MENU")

def main():
intro()
while(True):
main_menu()
choice = input('Enter choice(1-3): ')
print()

if choice == '1':
while True:
report_menu()
rchoice = input('Enter choice(1-3): ')
print()
if rchoice == '1':
class_result()
elif rchoice == '2':
search_record()
elif rchoice == '3':
break
else:
print('Invalid input !!!\n')
print()

elif choice == '2':


while True:
admin_menu()
echoice = input('Enter choice(1-6): ')
print()
if echoice == '1':
write_record()
elif echoice == '2':
read_records()
elif echoice == '3':
search_record()
elif echoice == '4':
modify_record()
elif echoice == '5':
delete_record()
elif echoice == '6':
break
else:
print('Invalid input !!!\n')

elif choice == '3':


print('Thanks for using Student Management System')
break
else:
print('Invalid input!!!')
print()

#call the main function.


main()
Output:-
Requirements:

Software:
• Python 3.xx(IDLE/PyCharm)
[Interpreter]

Knowledge:
• Know about binary files.
Specifications:
Modules used:
• Pickle module
• Time

Tasks the code can


perform:
• Add records of students.
• Display all students records.
Bibliography:

• NCERT Computer science


book class 11th and 12th.
• Susmita Arora class 11th and
12th.
• geeksforgeeks.com
• Python world

You might also like