0% found this document useful (0 votes)
22 views17 pages

CSE111 Lab Assignment 6

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

CSE111 Lab Assignment 6

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

Course Title: Programming Language II

Course Code: CSE 111


Lab Assignment no: 6
Task 1
Write a Student class to get the desired output as shown below.

1. Create a Student class and a class variable called ID initialized with 0.


2. Create a constructor that takes 4 parameters: name, department, age and cgpa.
3. Write a get_details() method to represent all the details of a Student
4. Write a class method from_String() that takes 1 parameter which includes
name, department, age and cgpa all four attributes in string.

#Write your code here for subtasks 1-6. OUTPUT


ID: 1
s1 = Student("Samin", "CSE", 21, 3.91) Name: Samin
s1.get_details() Department: CSE
print("-----------------------") Age: 21
s2 = Student("Fahim", "ECE", 21, 3.85) CGPA: 3.91
s2.get_details() -----------------------
print("-----------------------") ID: 2
s3 = Student("Tahura", "EEE", 22, 3.01) Name: Fahim
s3.get_details() Department: ECE
print("-----------------------") Age: 21
s4 = Student.from_String("Sumaiya-BBA-23-3.96") CGPA: 3.85
s4.get_details() -----------------------
ID: 3
Name: Tahura
# Write the answer of subtask 5 here Department: EEE
Age: 22
# Write the answer of subtask 6 here CGPA: 3.01
-----------------------
ID: 4
#You are not allowed to change the code above Name: Sumaiya
Department: BBA
Age: 23
CGPA: 3.96

5. Explain the difference between a class variable and an instance variable. Print
your answer at the very end of your code.
6. What is the difference between an instance method and class method? Print your
answer at the very end
Task 2
Write the Assassin class so that the given code provides the expected output.

1. Create Assassin class


2. Create 1 class variable
3. Create 1 class method titled ‘failureRate()’
4. Create 1 class method titled ‘failurePercentage()’
5. Maximum success_rate is 100

[You are not allowed to change the code below]

# Write your code here Output:


Name: John Wick
john_wick = Assassin('John Wick', 100) Success rate: 100%
john_wick.printDetails() Total number of Assassin: 1
print('================================') ============================
nagisa = Assassin.failureRate("Nagisa", 20) Name: Nagisa
nagisa.printDetails() Success rate: 80%
print('================================') Total number of Assassin: 2
akabane = Assassin.failurePercentage("Akabane", "10%") ============================
akabane.printDetails() Name: Akabane
Success rate: 90%
Total number of Assassin: 3
Task 3
Implement the design of the Passenger class so that the following output is produced:

The assumption is Bus base-fare is 450 taka. A passenger can carry upto 20 kg for free.
50 taka will be added if bag weight is between 21 and 50 kg. 100 taka will be added if
bag weight is greater than 50 kg.

[You are not allowed to change the code below]

# Write your code here Output:


Total Passenger: 0
print(“Total Passenger:”, Passenger.count) =========================
p1 = Passenger(“Jack”) Name: Jack
Bus Fare: 550 taka
p1.set_bag_weight(90) =========================
p2 = Passenger(“Carol”) Name: Carol
p2.set_bag_weight(10) Bus Fare: 450 taka
=========================
p3 = Passenger(“Mike”) Name: Mike
p3.set_bag_weight(25) Bus Fare: 500 taka
=========================
print("=========================")
Total Passenger: 3
p1.printDetail()
print("=========================")
p2.printDetail()
print("=========================")
p3.printDetail()
print("=========================")
print(“Total Passenger:”, Passenger.count)
Task 4
Implement the design of the Travel class so that the following output is produced:

[You are not allowed to change the code below]

# Write your code here Output


No. of Traveller = 0
print(“No. of Traveller =”, Travel.count) =======================
print("=======================") Source: Dhaka
t1 = Travel("Dhaka","India") Destination:India
print(t1.display_travel_info()) Flight Time:1:00
=======================
print("=======================")
Source: Kuala Lampur
t2 = Travel("Kuala Lampur","Dhaka") Destination:Dhaka
t2.set_time(23) Flight Time:23:00
print(t2.display_travel_info()) =======================
print("=======================") Source: Dhaka
t3 = Travel("Dhaka","New_Zealand") Destination:Germany
t3.set_time(15) Flight Time:15:00
=======================
t3.set_destination("Germany")
Source: Malaysia
print(t3.display_travel_info()) Destination:Canada
print("=======================") Flight Time:9:00
t4 = Travel("Dhaka","India") =======================
t4.set_time(9) No of Traveller = 4
t4.set_source("Malaysia")
t4.set_destination("Canada")
print(t4.display_travel_info())
print("=======================")
print(“No. of Traveller =”, Travel.count)
Task 5
Create an Employee Class that will have

● Two instance variable: name and workingPeriod


● A class method named employeeByJoiningYear():
o To create an Employee object by joining year for calculating the working
period
o It will have two Parameter name and year
● A static method experienceCheck() to check if an Employee is experienced or not
o It will take working period and gender as parameter
o If an employee’s working period is less than 3, he or she is not experienced

[You are not allowed to change the code below]

# Write your code here Output


employee1 = Employee('Dororo', 3) 3
employee2 = Employee.employeeByJoiningYear('Harry', 2016) 6
print(employee1.workingPeriod) Dororo
print(employee2.workingPeriod) Harry
print(employee1.name) He is not experienced
She is experienced
print(employee2.name)
print(Employee.experienceCheck(2, "male"))
print(Employee.experienceCheck(3, "female"))

Task 6
Implement the design of the Laptop class so that the following output is produced

[You are not allowed to change the code below]

# Write your code here Output


Lenovo 5
lenovo = Laptop("Lenovo", 5); Dell 7
dell = Laptop("Dell", 7); Total number of Laptops 12
print(lenovo.name, lenovo.count) Laptops are portable
print(dell.name, dell.count) Total number of Laptops 0
print("Total number of Laptops", Laptop.laptopCount)
Laptop.advantage()
Laptop.resetCount()
print("Total number of Laptops", Laptop.laptopCount)
Task 7
Design Cat class for the following code to get the output as shown.

You have already solved this problem in assignment 4 using constructor overloading.
Now, solve this again but this time DO NOT USE CONSTRUCTOR OVERLOADING.

Hint: You will have to use classmethods.

[You are not allowed to change the code below]

# Write your code here Output:


Total number of cats: 0
print("Total number of cats:", Cat.Number_of_cats) =======================
c1 = Cat.no_parameter() White cat is sitting
Black cat is sitting
c2 = Cat.first_parameter("Black") Brown cat is jumping
c3 = Cat("Brown", "jumping") Red cat is purring
c4 = Cat("Red", "purring") Grey cat is playing
Blue cat is sitting
c5 = Cat.second_parameter("playing") Purple cat is jumping
print("=======================") =======================
c1.printCat() Total number of cats: 5
c2.printCat()
c3.printCat()
c4.printCat()
c5.printCat()
c1.changeColor("Blue")
c3.changeColor("Purple")
c1.printCat()
c3.printCat()
print("=======================")
print("Total number of cats:", Cat.Number_of_cats)
Task 8
Write a Cylinder class to get the desired output as shown below.

1. You will have to create a Cylinder class.


2. You will have to create 2 class variables.
3. Create a required constructor.
4. Write 2 class methods:
• One that takes the height first and then the radius and then swaps
• One that takes a string where the radius and height values are separated
with a hyphen.
Write 2 static methods:
• One that calculates the area of a whole cylinder (formula: 2πr2 + 2πrh)
• Another that calculates the volume of a cylinder (formula: πr2h)

**Observe the output values carefully to understand how the radius and height values
are changing.

[You are not allowed to change the code below]

# Write your code here Output:


Default radius=5 and height=18.
c1 = Cylinder(0,0) Updated: radius=0 and height=0.
Cylinder.area(c1.radius,c1.height) Area: 0.0
Cylinder.volume(c1.radius,c1.height) Volume: 0.0
===============================
print("===============================")
Default radius=0 and height=0.
c2 = Cylinder.swap(8,3) Updated: radius=3 and height=8.
c2.area(c2.radius,c2.height) Area: 207.34511513692635
c2.volume(c2.radius,c2.height) Volume: 226.1946710584651
print("===============================") ===============================
c3 = Cylinder.changeFormat("7-13") Default radius=3 and height=8.
c3.area(c3.radius,c3.height) Updated: radius=7.0 and height=13.0.
Area: 879.645943005142
c3.volume(c3.radius,c3.height)
Volume: 2001.1945203366981
print("===============================") ===============================
Cylinder(0.3,5.56).area(Cylinder.radius,Cylinder.height) Default radius=7.0 and height=13.0.
print("===============================") Updated: radius=0.3 and height=5.56.
Cylinder(3,5).volume(Cylinder.radius,Cylinder.height)) Area: 11.045839770021713
===============================
Default radius=0.3 and height=5.56.
Updated: radius=3 and height=5.
Volume: 141.3716694115407
Task 9
Write the Student class so that the given code provides the expected output.

1. Create Student class


2. Create 3 class variable
3. Create 1 class method for object creation
4. Create 1 class method for printing

[You are not allowed to change the code below]

# Write your code here Output:


Total Student(s): 0
Student.printDetails() BRAC University Student(s): 0
print('#########################') Other Institution Student(s): 0
################################
mikasa = Student('Mikasa Ackerman', "CSE") Name: Mikasa Ackerman
Department: CSE
mikasa.individualDetail()
Institution: BRAC University
print('------------------------------------------')
------------------------------------------------------
Student.printDetails()
Total Student(s): 1
BRAC University Student(s): 1
print('========================') Other Institution Student(s): 0
===============================
harry = Student.createStudent('Harry Potter', "Defence Against Dark Name: Harry Potter
Arts", "Hogwarts School") Department: Defence Against Dark Arts
harry.individualDetail() Institution: Hogwarts School
print('-------------------------------------------') ------------------------------------------------------
Student.printDetails() Total Student(s): 2
BRAC University Student(s): 1
Other Institution Student(s): 1
print('=========================')
===============================
Name: Levi Ackerman
levi = Student.createStudent("Levi Ackerman", "CSE") Department: CSE
levi.individualDetail() Institution: BRAC University
print('--------------------------------------------') ------------------------------------------------------
Student.printDetails() Total Student(s): 3
BRAC University Student(s): 2
Other Institution Student(s): 1
Task 10
Write the SultansDine class so that the given code provides the expected output.

[You are not allowed to change the code below]

# Write your code here Output:


Total Number of branch(s): 0
SultansDine.details() Total Sell: 0 Taka
print('########################') #################################
dhanmodi = SultansDine('Dhanmondi') Branch Name: Dhanmondi
dhanmodi.sellQuantity(25) Branch Sell: 10000 Taka
dhanmodi.branchInformation() -----------------------------------------
Total Number of branch(s): 1
print('-----------------------------------------')
Total Sell: 10000 Taka
SultansDine.details()
Branch Name: Dhanmondi, Branch Sell: 10000 Taka
Branch consists of total sell's: 100.00%
print('========================') ================================
Branch Name: Baily Road
baily_road = SultansDine('Baily Road') Branch Sell: 5250 Taka
baily_road.sellQuantity(15) -----------------------------------------
baily_road.branchInformation() Total Number of branch(s): 2
print('-----------------------------------------') Total Sell: 15250 Taka
SultansDine.details() Branch Name: Dhanmondi, Branch Sell: 10000 Taka
Branch consists of total sell's: 65.57%
Branch Name: Baily Road, Branch Sell: 5250 Taka
print('========================')
Branch consists of total sell's: 34.43%
================================
gulshan = SultansDine('Gulshan') Branch Name: Gulshan
gulshan.sellQuantity(9) Branch Sell: 2700 Taka
gulshan.branchInformation() -----------------------------------------
print('-----------------------------------------') Total Number of branch(s): 3
SultansDine.details() Total Sell: 17950 Taka
Branch Name: Dhanmondi, Branch Sell: 10000 Taka
Branch consists of total sell's: 55.71%
Branch Name: Baily Road, Branch Sell: 5250 Taka
Branch consists of total sell's: 29.25%
Branch Name: Gulshan, Branch Sell: 2700 Taka
Branch consists of total sell's: 15.04%

Subtaks:

1. Create SultansDine class


2. Create 2 class variable and 1 class list
3. Create 1 class method
4. Calculation of branch sell is given below
a. If sellQuantity < 10:
i. Branch_sell = quantity * 300
b. Else if sellQuantity < 20:
i. Branch_sell = quantity * 350
c. Else
i. Branch_sell = quantity * 400
5. Calculation of branch’s sell percentage = (branch’s sell / total sell) * 100
Task 11
1 class Puzzle:
2 x = 0
3
4 def methodA(self):
5 Puzzle.x = 5
6 z = Puzzle.x + self.methodB(Puzzle.x)
7 print(Puzzle.x, z)
8 z = self.methodB(z + 2) + Puzzle.x
9 print(Puzzle.x, z)
10 self.methodB(Puzzle.x, z)
11 print(Puzzle.x, z)
12
13 def methodB(self, *args):
14 if len(args) == 1:
15 y = args[0]
16 Puzzle.x = y + Puzzle.x
17 print(Puzzle.x, y)
18 return Puzzle.x + 3
19 else:
20 z, x = args
21 z = z + 1
22 x = x + 1
23 print(z, x)

p = Puzzle() Output-1 Output-2


p.methodA()
p.methodA()
p = Puzzle()
p.methodA()
p.methodB(7)
Task 12
1 class FinalT6A:
2 temp = 3
3
4 def __init__(self, x, p):
5 self.sum, self.y = 0, 2
6 FinalT6A.temp += 3
7 self.y = self.temp - p
8 self.sum = self.temp + x
9 print(x, self.y, self.sum)
10
11 def methodA(self):
12 x, y = 0, 0
13 y = y + self.y
14 x = self.y + 2 + self.temp
15 self.sum = x + y + self.methodB(self.temp, y)
16 print(x, y, self.sum)
17
18 def methodB(self, temp, n):
19 x = 0
20 FinalT6A.temp += 1
21 self.y = self.y + (FinalT6A.temp)
22 FinalT6A.temp -= 1
23 x = x + 2 + n
24 self.sum = self.sum + x + self.y
25 print(x, self.y, self.sum)
26 return self.sum

q1 = FinalT6A(2,1) x y sum
q1.methodA()
q1.methodA()
Task 13
1 class A:
2 temp = 4
3 def __init__(self):
4 self.y = self.temp - 2
5 self.sum = self.temp + 1
6 A.temp -= 2
7 self.methodA(3, 4)
8 def methodA(self, m, n):
9 x = 0
10 self.y = self.y + m + (self.temp)
11 A.temp += 1
12 x = x + 1 + n
13 self.sum = self.sum + x + self.y
14 print(x, self.y, self.sum)
15
16 class B:
17 x = 0
18 def __init__(self, b = None):
19 self.y, self.temp, self.sum = 5, -5, 2
20
21 if b == None:
22 self.y = self.temp + 3
23 self.sum = 3 + self.temp + 2
24 self.temp -= 2
25 else:
26 self.sum = b.sum
27 B.x = b.x
28 b.methodB(2, 3)
29 def methodA(self, m, n):
30 x = 2
31 self.y = self.y + m + (self.temp)
32 self.temp += 1
33 x = x + 5 + n
34 self.sum = self.sum + x + self.y
35 print(x, self.y, self.sum)
36 def methodB(self, m, n):
37 y = 0
38 y = y + self.y
39 B.x = self.y + 2 + self.temp
40 self.methodA(self.x, y)
41 self.sum = self.x + y + self.sum
42 print(self.x, y, self.sum)

a1 = A()
b1 = B()
b2 = B(b1)
b1.methodA(1, 2)
b2.methodB(3, 2)

Output:
x y sum
Task 14
1 class msgClass:
2 def __init__(self):
3 self.content = 0
4
5 class Quiz3:
6 x = 0
7 def __init__(self, k = None):
8 self.sum, self.y = 0, 0
9 if k is None:
10 self.sum = 5
11 Quiz3.x = 2
12 self.y = 2
13 else:
14 self.sum = self.sum + k
15 self.y = 3
16 Quiz3.x += 2
17 def methodA(self):
18 x = 1
19 y = 1
20 msg = [None]
21 myMsg = msgClass()
22 myMsg.content = Quiz3.x
23 msg[0] = myMsg
24 msg[0].content = self.y + myMsg.content
25 self.y = self.y + self.methodB(msg[0])
26 y = self.methodB(msg[0]) + self.y
27 x = y + self.methodB(msg, msg[0])
28 self.sum = x + y + msg[0].content
29 print(x, y, self.sum)
30 def methodB(self, *args):
31 if len(args) == 2:
32 mg2, mg1 = args
33 x = 2
34 self.y = self.y + mg2[0].content
35 mg2[0].content = self.y + mg1.content
36 x = x + 2 + mg1.content
37 self.sum = self.sum + x + self.y
38 mg1.content = self.sum - mg2[0].content
39 print(Quiz3.x, self.y, self.sum)
40 return self.sum
41
42 elif len(args) == 1:
43 mg1, = args
44 x = 1
45 y = 2
46 y = self.sum + mg1.content
47 self.y = y + mg1.content
48 x = Quiz3.x + 5 + mg1.content
49 self.sum = self.sum + x + y
50 Quiz3.x = mg1.content + x + 3
51 print(x, y, self.sum)
52 return y

a1 = Quiz3() x y sum
a2 = Quiz3(5)
msg = msgClass()
a1.methodA()
a2.methodB(msg)

You might also like