Quiz Master
NAME – SAANVI GAUTAM, APOORVA SAI
ROLL NO-20,7
SUBJECT-COMPUTER SCIENCE
ASSIGNED BY-ABHISHEK SIR
CERTIFICATE
CLASS: XII-A YEAR: 2024-2025
This is to certify that Investigatory Project
is successfully completed by SAANVI
GAUTAM AND APOORVA SAI of
Class: XII, Division: A
Roll no. :20 ,7 for the academic year 2024-
2025 in the School Computer lab.
HEAD TEACHER EXTERNAL EXAMINER INTERNAL
SIGNATURE EXAMINER
Acknowledgement:
We, SAANVI GAUTAMA AND APOORVA SRI of class
XIIth- A
would like to express my sincere gratitude to my
computer science teacher MR ABHISHEK SIR, PGT
COMPUTER SCIENCE, for her vital support, guidance
and encouragement – without which this project would
not have come forth.
We would also like to express my gratitude to my school
KENDRIYA VIDYALAYA VIKASPURI for letting me use
the school laboratory
INDEX
1. Brief Overview of Project
2. Need for Computerization
3. Software and Hardware requirement
4. Advantages of Project
5. Source Code of Project
6. Output Screens
BRIEF OVERVIEW OF PROJECT
Quiz master is based on popular reality quiz shows
where a player has to answer some questions based on
various themes. The player gets to choose the correct
answer from four different sets of options. If the player
chooses the right option he gets one point and proceeds.
If the option was wrong no points will be allotted.
Quiz Competitions are other events where similar
mechanism is used. Programming language used for
this projects are python and MySQL. Whole program is
on python whereas database is stored on MySQL server
database. Upon running the program, Player has to
enter his/her name followed by starting the quiz. At the
end total points scored by the player are shown. Similar
mechanism can be seen in Quiz competitions too.
Whether it be of school level or regional level.
NEED OF COMPUTERIZATION
The use of computerized quizzes is highly recommended
for any instructor teaching a course that is either large in
size (with a typical lecture format) or that requires that
students to engage in a significant amount of assigned
readings. Students appear to benefit from the use of
such computerized quizzes as they become actively
engaged in the course material and study with greater
frequency throughout the semester
Computerized settings can be designed to provide
students with immediate feedback regarding their quiz
grades, and allow them to take each quiz more than
once to provide greater mastery of the material. It may
be helpful to limit the number of quiz attempts to three.
Automatic, computerized grading and entry of each
student’s highest quiz grades into the course gradebook
will generate significant time savings for the instructor,
and provide students with immediate feedback on their
quiz performance.
SOFTWARE AND HARDWARE
REQUIREMENTS
#SOFTWARE SPECIFICATION
Operating System: Windows 10/8/7
Platform : Python IDLE 3.7/3.8
Database : MySQL
Languages : Python
#HARDWARE SPECIFICATION
Processor : Dual core or above
Hard Disk : 40 GB
RAM : 1024 MB
ADVANTAGES OF PROJECT
Present day everything is virtually presented.
Quiz master is very simple yet has attractive
interface which makes quiz completions easier
and more enjoyable.
Specific recommendations for the use of Quiz
Master can be made including:
To encourage students to engage in long-
term learning, include some of the
individual online quiz questions on midterm
and final exams
To deter student cheating, the order of quiz
questions as well as their multiple choice
answers is randomized.
User friendly
Responsive design
Automatically checks answers
It saves paper
SOURCE CODE
import sys
import mysql.connector
import random
mydb=mysql.connector.connect(host= "localhost" ,user= "root",\
passwd="root",database= "quiz")
mycursor=mydb.cursor()
def Home():
f=1
while f!=3:
print("Welcome to Quiz")
print("********************")
print("1. Enter Questions")
print("2. Take Quiz")
print("3. Exit")
f=int(input("Enter your choice: "))
if f==1:
Question()
elif f==2:
Quiz()
elif f==3:
print("Exiting the Quiz")
mycursor.close()
mydb.close()
sys.exit();
else:
Home()
def Question():
ch='Y'
while ch=='Y' or ch=='y':
print("Welcome to Question Portal")
print("***********************")
q=input("Enter the question :")
op1=input("Enter the option 1 :")
op2=input("Enter the option 2 :")
op3=input("Enter the option 3 :")
op4=input("Enter the option 4 :")
ans=0
while ans==0:
op=int(input("Which option is correct answer (1,2,3,4) :"))
if op==1:
ans=op1
elif op==2:
ans=op2
elif op==3:
ans=op3
elif op==4:
ans=op4
else:
ans=op4
else:
print("Please choose the correct option as answer")
mycursor.execute("Select * from question")
data=mycursor.fetchall()
qid=(mycursor.rowcount)+1
mycursor.execute("Insert into question values
(%s,%s,%s,%s,%s,%s,%s)",(qid,q,op1,op2,op3,op4,ans))
mydb.commit()
ch=input("Question added successfully.. Do you want to add more
(Y/N)”)
Home()
def Quiz():
print("Welcome to Quiz portal")
print("***********************")
mycursor.execute("Select * from question")
data=mycursor.fetchall()
name=input("Enter your name :")
rc=mycursor.rowcount
noq=int(input("Enter the number of questions to attempt (max
%s):"%rc))
l=[]
while len(l)!=noq:
x=random.randint(1,rc)
if l.count(x)>0:
l.remove(x)
else:
l.append(x)
print("Quiz has started")
c=1
score=0
for i in range(0,len(l)):
mycursor.execute("Select * from question where qid=%s",(l[i],))
ques=mycursor.fetchone()
print("--------------------------------------------------------------------------------
------------")
print("Q.",c,":",ques[1],"\nA.",ques[2],"\t\tB.",ques[3],"\
nC.",ques[4],"\t\tD. ",ques[5])
print("--------------------------------------------------------------------------------
------------")
c+=1
ans=None
while ans==None:
choice=input("Answer (A,B,C,D) :")
if choice=='A' or choice=='a':
ans=ques[2]
elif choice=='B' or choice=='b':
ans=ques[3]
elif choice=='C' or choice=='c':
ans=ques[4]
elif choice=='D' or choice=='d':
ans=ques[5]
else:
print("Kindly select A,B,C,D as option only")
if ans==ques[6]:
print("Correct")
score=score+1
else:
print("Incorrect.. Correct answer is :",ques[6])
print("Quiz has ended !! Your final score is :",score)
input("Press any key to continue")
Home()
Home()