CS Practical File 2022-23-Xii
CS Practical File 2022-23-Xii
CS Practical File 2022-23-Xii
School Name
Address
Page 1
ACKNOWLEDGEMENT
[Name of Student]
CERTIFICATE
Page 2
This is to certify that [Name of Student] , student of Class XII,
my supervision.
Page 3
1 Write a python program using a function to print factorial
number series from n to m numbers.
2 Write a python program to accept the username "Admin" as
the default argument and password 123 entered by the user to
allow login into the system.
3 Write a python program to demonstrate the concept of
variable length argument to calculate the product and power
of the first 10 numbers.
2 Data File handling
4 Create a text file "intro.txt" in python and ask the user to
write a single line of text by user input.
5 Write a program to count a total number of lines and count
the total number of lines starting with 'A', 'B', and 'C' from the
file dfh.txt.
6 Write a program to replace all spaces from text with - (dash)
from the file intro.txt.
7 Write a program to know the cursor position and print the text
according to the below-given specifications:
● Print the initial position
● Move the cursor to 4th position
● Display next 5 characters
● Move the cursor to the next 10 characters
● Print the current cursor position
● Print next 10 characters from the current cursor position
SNo. Practical Date Signature
8 Write a program to store customer data into a binary file
cust.dat using a dictionary and print them on screen after
reading them. The customer data contains ID as key, and
name, city as values.
9 Write a program to update a record from student.dat file by
its rollno. Display the updated record on screen.
Page 4
10 Write a program to write data into binary file marks.dat and
display the records of students who scored more than 95
marks.
11 Read a CSV file top5.csv and print the contents in a proper
format. The data for top5.csv file are as following:
SNo Batsman Team Runs Highest
12 Read a CSV file top5.csv and print them with tab delimiter.
Ignore first row header to print in tabular form.
13 Read a CSV file students.csv and print them with tab
delimiter. Ignore first row header to print in tabular form.
Field 1 Data Type
StudentID Integer
StudentName String
Score Integer
Page 5
15 Write a python program to check whether a string is a
palindrome or not using stack.
4 Database management (MySQL Queries)
16 Queries Set 1 (Fetching records)
17 Queries Set 2 (Based on Aggregate Functions)
18 Queries Set 3 (DDL Commands)
19 Queries set 4 (Based on Two Tables)
20 Queries Set 5 (Group by , Order By)
5 Python-MySQL Connectivity
21 Write a MySQL connectivity program in Python to
● Create a database school
● Create a table students with the specifications -
ROLLNO integer, STNAME character(10) in MySQL
and perform the following operations:
o Insert two records in it
o Display the contents of the table
22 Perform all the operations with reference to table ‘students’
through MySQL-Python connectivity.
23 Write a menu-driven program to store data into a MySQL
database named shop and table customer as following:
1. Add customer details
2. Update customer details
3. Delete customer details
4. Display all customer details
24 Modify the above program and display the customer details
based on the following menu:
1. Display customer details by city
2. Display customer details by bill amount
3. Display customer details by name
4. Display customer details by category
Page 6
n=int(input("Enter the number:"))
f=1
for i in range(1,n+1):
f*=i
facto()
if password=='123':
else:
print("Password is incorrect!!!!!!")
user_pass(password)
def sum10(*n):
total=0
for i in n:
total=total + i
Page 7
print("Sum of first 10 Numbers:",total)
sum10(1,2,3,4,5,6,7,8,9,10)
def product10(*n):
pr=1
for i in n:
pr=pr * i
product10(1,2,3,4,5,6,7,8,9,10)
6. Write a program to replace all spaces from text with - (dash) from the file intro.txt.
def program6():
cnt = 0
with open("intro.txt","r") as f1:
data = f1.read()
data=data.replace(' ','-')
with open("intro.txt","w") as f1:
f1.write(data)
with open("intro.txt","r") as f1:
print(f1.read())
program6()
Page 9
7. Write a program to know the cursor position and print the text according to the
below-given specifications:
a. Print the initial position e. Print the current cursor position
b. Move the cursor to 4th position f. Print next 10 characters from current
c. Display next 5 characters position
d. Move cursor to next 10 characters
def program7():
f = open("intro.txt","r")
print("Cusror initial position.")
print(f.tell())
f.seek(4,0)
print("Displaying values from 5th position.")
print(f.read(5))
f.seek(10,0)
print(f.tell())
print("Print cursor's current postion")
print(f.seek(7,0))
print("Displaying next 10 characters from cursor's current postion.")
print(f.read(10))
program7()
8. Create a binary file client.dat to hold records like ClientID, Client name, and
Address using the dictionary. Write functions to write data, read them, and print on
the screen.
import pickle
rec={}
def file_create():
f=open("client.dat","wb")
Page 10
rec={cno:[cname,address]}
pickle.dump(rec,f)
def read_data():
f = open("client.dat","rb")
print("*"*78)
rec=pickle.load(f)
for i in rec:
print(rec[i])
file_create()
read_data()
9. Write a program to update a record from student.dat file by its rollno. Display
the updated record on screen.
import pickle as p
rec=[]
found=0
f=open("student.dat","rb+")
r=p.load(f)
print("Existing Record:",r)
ro=int(input("Enter roll no to update:"))
for i in r:
if ro==i[0]:
i[1]=input("Enter new name:")
found=1
break
Page 2
if found==0:
print("record not found..")
else:
f.seek(0)
p.dump(r,f)
print('Record Updated...')
f.close()
f1=open('student.dat','rb+')
r=p.load(f1)
print("Updated Record:",r)
f1.close()
10.Write a program to write data into binary file marks.dat and display the records
of students who scored more than 95 marks.
import pickle
def search_95plus():
f = open("marks.dat","ab")
while True:
rn=int(input("Enter the rollno:"))
sname=input("Enter the name:")
marks=int(input("Enter the marks:"))
rec=[]
data=[rn,sname,marks]
rec.append(data)
pickle.dump(rec,f)
ch=input("Wnat more records?Yes:")
if ch.lower() not in 'yes':
break
f.close()
Page 3
f = open("marks.dat","rb")
cnt=0
try:
while True:
data = pickle.load(f)
for s in data:
if s[2]>95:
cnt+=1
print("Record:",cnt)
print("RollNO:",s[0])
print("Name:",s[1])
print("Marks:",s[2])
except Exception:
f.close()
search_95plus()
11. Read a CSV file top5.csv and print the contents in a proper format. The data for
top5.csv file are as following:
SNo Batsman Team Runs Highest
1 K L Rahul KXI 670 132*
2 S Dhawan DC 618 106*
3 David Warner SRH 548 85*
4 Shreyas Iyer DC 519 88*
5 Ishan Kishan MI 516 99
Page 4
12.Read a CSV file top5.csv and print them with tab delimiter. Ignore first row
header to print in tabular form.
from csv import reader
def pro12():
f = open("e:\\top5.csv","r")
dt = reader(f,delimiter=',')
headr_row=next(dt)
data = list(dt)
f.close()
for i in data:
for j in i:
print(j,"\t",end=" ")
print()
pro12()
Page 5
f.close()
#Insert Data
f = open("result.csv","a",newline='\n')
while True:
st_id= int(input("Enter Student ID:"))
st_name = input("Enter Student name:")
st_score = input("Enter score:")
dt = writer(f)
dt.writerow([st_id,st_name,st_score])
ch=input("Want to insert More records?(y or Y):")
ch=ch.lower()
if ch !='y':
break
print("Record has been added.")
f.close()
pro13()
def main_menu():
while True:
Page 6
print("Stack Implementation")
print("1 - Push")
print("2 - Pop")
print("3 - Peek")
print("4 - Display")
print("5 - Exit")
ch = int(input("Enter the your choice:"))
if ch==1:
el = int(input("Enter the value to push an element:"))
push(s,el)
elif ch==2:
e=pop_stack(s)
if e=="UnderFlow":
print("Stack is underflow!")
else:
print("Element popped:",e)
elif ch==3:
e=pop_stack(s)
if e=="UnderFlow":
print("Stack is underflow!")
else:
print("The element on top is:",e)
elif ch==4:
display(s)
elif ch==5:
break
else:
print("Sorry,invalid option")
def push(stk,e):
Page 7
stk.append(e)
top = len(stk)-1
def display(stk):
if check_stack_isEmpty(stk):
print("Stack is Empty")
else:
top = len(stk)-1
print(stk[top],"-Top")
for i in range(top-1,-1,-1):
print(stk[i])
def pop_stack(stk):
if check_stack_isEmpty(stk):
return "UnderFlow"
else:
e = stk.pop()
if len(stk)==0:
top = None
else:
top = len(stk)-1
return e
def peek(stk):
if check_stack_isEmpty(stk):
return "UnderFlow"
else:
top = len(stk)-1
return stk[top]
15. Write a program to implement a stack for the employee details (empno, name).
stk=[]
Page 8
top=-1
def line():
print('~'*100)
def isEmpty():
global stk
if stk==[]:
print("Stack is empty!!!")
else:
None
def push():
global stk
global top
empno=int(input("Enter the employee number to push:"))
ename=input("Enter the employee name to push:")
stk.append([empno,ename])
top=len(stk)-1
def display():
global stk
global top
if top==-1:
isEmpty()
else:
top=len(stk)-1
print(stk[top],"<-top")
for i in range(top-1,-1,-1):
print(stk[i])
def pop_ele():
global stk
global top
Page 9
if top==-1:
isEmpty()
else:
stk.pop()
top=top-1
def main():
while True:
line()
print("1. Push")
print("2. Pop")
print("3. Display")
print("4. Exit")
ch=int(input("Enter your choice:"))
if ch==1:nm
push()
print("Element Pushed")
elif ch==2:
pop_ele()
elif ch==3:
display()
elif ch==4:
break
else:
print("Invalid Choice")
16. Write a python program to check whether a string is a palindrome or not using
stack.
stack = []
top = -1
# push function
def push(ele):
Page 10
global top
top += 1
stack[top] = ele
# pop function
def pop():
global top
ele = stack[top]
top -= 1
return ele
# Function that returns 1 if string is a palindrome
def isPalindrome(string):
global stack
length = len(string)
# Allocating the memory for the stack
stack = ['0'] * (length + 1)
# Finding the mid
mid = length // 2
i=0
while i < mid:
push(string[i])
i += 1
# Checking if the length of the string is odd then neglect the middle character
if length % 2 != 0:
i += 1
# While not the end of the string
while i < length:
ele = pop()
# If the characters differ then the given string is not a palindrome
if ele != string[i]:
Page 11
return False
i += 1
return True
string = input("Enter string to check:")
if isPalindrome(string):
print("Yes, the string is a palindrome")
else:
print("No, the string is not a palindrome")
Page 12
c) select movieid, moviename, productioncost +
businesscost "total earning" from movie;
Page 13
2. Consider the given table patient and Write following queries:
Page 14
c)Select count(distinct department) from patient;
3. Suppose your school management has decided to conduct cricket matches between
students of Class XI and Class XII. Students of each class are asked to join any one
of the four teams – Team Titan, Team Rockers, Team Magnet and Team Hurricane.
During summer vacations, various matches will be conducted between these teams.
Help your sports teacher to do the following:
a) Create a database “Sports”.
b) Create a table “TEAM” with following considerations:
a. It should have a column TeamID for storing an integer value between 1 to 9,
which refers to unique identification of a team.
b. Each TeamID should have its associated name (TeamName), which should be a
string of length not less than 10 characters.
c. Using table level constraint, make TeamID as the primary key.
c) Show the structure of the table TEAM using a SQL statement.
Page 15
d) As per the preferences of the students four teams were formed as given below. Insert
these four rows in TEAM table:
a. Row 1: (1, Tehlka)
b. Row 2: (2, Toofan)
c. Row 3: (3, Aandhi)
d. Row 3: (4, Shailab)
e) Show the contents of the table TEAM using a DML statement.
f) Now create another table MATCH_DETAILS and insert data as shown below. Choose
appropriate data types and constraints for each attribute.
Answers:
Page 16
c)desc team;
● Inserting data:
mqsql> insert into team values(1,'Tehlka');
Page 2
● Creating another table:
create table match_details
-> (matchid varchar(2) primary key,
-> matchdate date,
-> firstteamid int(1) references team(teamid),
-> secondteamid int(1) references team(teamid),
-> firstteamscore int(3),
-> secondteamscore int(3));
Page 3
Answers:
a)select match_details.matchid, match_details.firstteamid,
team.teamname,match_details.firstteamscore from
match_details, team where match_details.firstteamid =
team.teamid and match_details.first
b)select match_details.matchid,
match_details.firstteamid,
team.teamname,match_details.firstteamscore from
match_details, team where match_details.firstteamid =
team.teamid and match_details.firstteamscore>70;
Page 4
d)select distinct(teamname) from match_details, team
where match_details.firstteamid = team.teamid;
Page 5
itemno Item dcode qty unitprice stockdate
Page 6
c) select * from stock order by item desc;
def c_database():
try:
c.execute("use {}".format(dn))
except Exception as a:
print("Database Error",a)
def d_database():
try:
Page 8
print("Database deleted sucessfully")
except Exception as a:
Output:
2.using mysqlconnector
import mysql.connector as ms
db=ms.connect(host="localhost",user="root",passwd="root",database='school')
cn=db.cursor()
def insert_rec():
try:
while True:
rn=int(input("Enter roll number:"))
sname=input("Enter name:")
Page 11
marks=float(input("Enter marks:"))
gr=input("Enter grade:")
cn.execute("insert into students
values({},'{}',{},'{}')".format(rn,sname,marks,gr))
db.commit()
ch=input("Want more records? Press (N/n) to stop entry:")
if ch in 'Nn':
break
except Exception as e:
print("Error", e)
def update_rec():
try:
rn=int(input("Enter rollno to update:"))
marks=float(input("Enter new marks:"))
gr=input("Enter Grade:")
cn.execute("update students set marks={},grade='{}' where
rno={}".format(marks,gr,rn))
db.commit()
except Exception as e:
print("Error",e)
def delete_rec():
try:
rn=int(input("Enter rollno to delete:"))
cn.execute("delete from students where rno={}".format(rn))
db.commit()
except Exception as e:
print("Error",e)
def view_rec():
Page 12
try:
cn.execute("select * from students")
import mysql.connector as ms
db=ms.connect(host="localhost",user="root",passwd="root",database='school')
cn=db.cursor()
def insert_rec():
try:
while True:
sname=input("Enter name:")
marks=float(input("Enter marks:"))
gr=input("Enter grade:")
db.commit()
if ch in 'Nn':
break
except Exception as e:
print("Error", e)
def update_rec():
try:
Page 13
marks=float(input("Enter new marks:"))
gr=input("Enter Grade:")
rno={}".format(marks,gr,rn))
db.commit()
except Exception as e:
print("Error",e)
def delete_rec():
try:
db.commit()
except Exception as e:
print("Error",e)
def view_rec():
try:
data=c.fetchall()
for i in data:
print(i)
except Exception as e:
print("Error",e)
Page 14
while True:
if ch==1:
insert_rec()
elif ch==2:
update_rec()
elif ch==3:
delete_rec()
elif ch==4:
view_rec()
elif ch==5:
break
else:
except Exception as e:
print("Error",e)
while True:
Page 15
if ch==1:
insert_rec()
elif ch==2:
update_rec()
elif ch==3:
delete_rec()
elif ch==4:
view_rec()
elif ch==5:
break
else:
print("Wrong option selected")
Output:
Page 16
3. Write a menu-driven program to store data into a MySQL database named shop
and table customer as following:
Page 17
1. Add customer details
2. Update customer details
3. Delete customer details
4. Display all customer details
import mysql.connector as ms
db=ms.connect(host="localhost",user="root",passwd="root",database='mydb')
cn=db.cursor()
def insert_rec():
try:
while True:
cid=int(input("Enter customer id:"))
cname=input("Enter name:")
city=input("Enter city:")
bill_amt=float(input("Enter bill amount:"))
cat=input("Enter category:")
cn.execute("insert into customer
values({},'{}','{}',{},'{}')".format(cid,cname,city,bill_amt,cat))
db.commit()
ch=input("Want more records? Press (N/n) to stop entry:")
if ch in 'Nn':
break
except Exception as e:
print("Error", e)
def update_rec():
try:
cn.execute("select * from customer")
data=cn.fetchall()
for i in data:
Page 18
ci=i[0]
cna=i[1]
ct=i[2]
b=i[3]
c=i[4]
cid=int(input("Enter customer id to update:"))
if cid==ci:
ch_cname=input("Want to update Name, Press 'Y':")
if ch_cname.lower()=='y':
cname=input("Enter new name:")
else:
cname=cna
ch_city=input("Want to update city, Press 'Y':")
if ch_city.lower()=='y':
city=input("Enter new city:")
else:
city=ct
ch=input("Want to update bill amount, Press 'Y':")
if ch.lower()=='y':
bill_amt=float(input("Enter new bill amount:"))
else:
bill_amt=b
ch_cat=input("Want to update Category, Press 'Y':")
if ch_cat.lower()=='y':
cat=input("Enter new category:")
else:
cat=c
cn.execute("update customer set cname='{}', city='{}', bill_amt={},category='{}'
where cust_id={}".format(cname,city,bill_amt,cat,cid))
Page 19
db.commit()
else:
print("Record Not Found...")
except Exception as e:
print("Error",e)
def delete_rec():
try:
cid=int(input("Enter rollno to delete:"))
cn.execute("delete from customer where cust_id={}".format(cid))
db.commit()
except Exception as e:
print("Error",e)
def view_rec():
try:
cn.execute("select * from customer")
data=cn.fetchall()
cnt=0
for i in data:
cnt=cnt+1
print("Record:",cnt)
print('~'*50)
print("Customer ID:",i[0])
print("Customer Name:",i[1])
print("City:",i[2])
print("Bill Amount:",i[3])
print("Category:",i[4])
print('~'*50)
except Exception as e:
print("Error",e)
Page 20
while True:
print("MENU\n1. Insert Record\n2. Update Record \n3. Delete Record\n4.
Display Record \n5. Exit")
ch=int(input("Enter your choice<1-4>="))
if ch==1:
insert_rec()
elif ch==2:
update_rec()
elif ch==3:
delete_rec()
elif ch==4:
view_rec()
elif ch==5:
break
else:
print("Wrong option selected")
Output:
Page 21
Page 22
4. Modify the above program and display the customer details based on the following
menu:
Page 23
import mysql.connector as ms
db=ms.connect(host="localhost",user="root",passwd="root",database='mydb')
cn=db.cursor()
def byCity():
try:
city=input("Enter city to search:")
cn.execute("select * from customer where city='{}'".format(city))
data=cn.fetchall()
if data!=[]:
cnt=0
for i in data:
cnt=cnt+1
print('~'*100)
print("Record:",cnt)
print('~'*100)
print("Customer ID:",i[0])
print("Customer Name:",i[1])
print("City:",i[2])
print("Bill Amount:",i[3])
print("Category:",i[4])
else:
print("No records found for city ", city)
except Exception as e:
print("Error",e)
def byBillAmt():
Page 24
try:
ba=input("Enter the bill amount:")
cn.execute("select * from customer where bill_amt={}".format(ba))
data=cn.fetchall()
if data!=[]:
cnt=0
for i in data:
cnt=cnt+1
print('~'*100)
print("Record:",cnt)
print('~'*100)
print("Customer ID:",i[0])
print("Customer Name:",i[1])
print("City:",i[2])
print("Bill Amount:",i[3])
print("Category:",i[4])
else:
print("No records found for bill amount ", ba)
except Exception as e:
print("Error",e)
def byName():
try:
name=input("Enter the name:")
cn.execute("select * from customer where cname='{}'".format(name))
data=cn.fetchall()
if data!=[]:
cnt=0
for i in data:
Page 25
cnt=cnt+1
print('~'*100)
print("Record:",cnt)
print('~'*100)
print("Customer ID:",i[0])
print("Customer Name:",i[1])
print("City:",i[2])
print("Bill Amount:",i[3])
print("Category:",i[4])
else:
print("No records found for ", name)
except Exception as e:
print("Error",e)
def byCat():
try:
cat=input("Enter the cat:")
cn.execute("select * from customer where category='{}'".format(cat))
data=cn.fetchall()
if data!=[]:
cnt=0
for i in data:
cnt=cnt+1
print('~'*100)
print("Record:",cnt)
print('~'*100)
print("Customer ID:",i[0])
print("Customer Name:",i[1])
print("City:",i[2])
Page 26
print("Bill Amount:",i[3])
print("Category:",i[4])
else:
print("No records found for category ", cat)
except Exception as e:
print("Error",e)
while True:
print('''
MENU
1.Display customer details by city
2.Display customer details by bill amount
3.Display customer details by name
4.Display customer details by category
5.Exit
''')
ch=int(input("Enter your choice<1-4>="))
if ch==1:
byCity()
elif ch==2:
byBillAmt()
elif ch==3:
byName()
elif ch==4:
byCat()
elif ch==5:
break
else:
Page 27
print("Wrong option selected")
Output:
Page 28
Page 29
Page 30