به نام خدا
این هم از بخش دوم از سری تمرینات آموزش کلاس در زبان پایتون …
حتما نظر خودتونو راجب سوالات و حل بنویسید.
تمرین 1 :
یک کلاس به نام account حساب برای یک بانک تعریف کنید.
این کلاس یک متغیر به نام Interest rate دارد که برابر با 15 درصد است.
هر object از این کلاس سه متغیر با نام های owner و balance و last_used دارد.
دو متد برای این کلاس تعریف کنید.
متد deposit :
این متد یک عدد از کاربر دریافت می کند و موجودی balance حساب مورد نظر را به همان اندازه افزایش می دهد.
در ادامه تاریخ انجام این عملیات تاریخ فعلی را درو ن متغیر last_used ذخیره میکند.
متد witdraw :
این متد یک عدد از کاربر دریافت میکند و از موجودی حساب مورد نظر کسر میکند.
اگر مبلغ درخواستی از موجودی حساب بیشتر بود پیامی مبنی بر ناکافی بودن موجودی بر روی صفحه چاپ شود.
یک class method برای این کلاس تعریف کنید که بتوان intrest rate را به مقادیر دلخواه بین 0 تا 100 درصد
تغییر داد.
در صورت print گرفتن از این حساب انتظا ر میرود اطلاعات به چنین فرمتی نمایش داده شوند.
Account Owner : Mojtaba
Account Balance : 10$
در صورت حذف یک حساب پیام باید به فرمت زیر چاپ شود.
.Account of {name} with balance of {balance} has been removed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
#mohandesjan.ir import datetime as dt class account: interest_rate = 15 def __init__(self, a, b, c): self.owner = a self.balance = b self.last_used = c def deposit(self, how_much): self.balance = self.balance + how_much self.last_used = dt.date.today() #mohandesjan.ir def witdraw(self, how): x = self.balance - how if x < 0: print("your inventory is not enough!!") else: self.balance = self.balance - how @classmethod def set_1(cls, n): if n in range(101): cls.interest_rate = n #mohandesjan.ir else: print("your number must be in range 0 <= X <= 100") def __str__(self): return f"Account Owner:{self.owner}\n Account Balance:{self.balance}$" def __del__(self): print(f"Account of {self.owner} with balance of {self.balance}$ has been removed") #mohandesjan.ir a=account("seyed",120,dt.date(2020,1,1)) print(a) a.deposit(310) print(a) #mohandesjan.ir print(a.last_used) a.witdraw(431) print(a.interest_rate) a.set_1(88) print(a.interest_rate) del(a) #mohandesjan.ir |
تمرین2:
یک کلاس به نام User تعریف کنید.
هر object از این کلاس باید متغیرهای زیر را دارا باشد.
Username و Password و Name و Lastname
– یک کلاس به نام Employee تعریف کنید.
این کلاس باید کلاس User را به ارث ببرد.
هر Object باید متغیر ID را داشته باشد.
هر کارمند یک قرارداد اولیه 5 ساله و حقوق ثابت 2 میلیون تومان دارد.class variable
برای هر کارمند یک لیست تعریف شده است که میتواند گزارش های خود را در آن لیست اضافه کند.
یک لیست به ازای هر کارمند و یک متد برای اضافه کردن یک مقدار string به این لیست باید ساخته شود.
یک متد برای تغییر حقوق ثابت و یک متد دیگر برای تغییر مدت قرار داد کلیه کارمندان بسازید.
یک متد برای نمایش حقوق هر کارمند تعریف کنید. Show_salary
– یک کلاس به نام Manager تعریف کنید.
این کلاس باید کلاس Employee را به ارث ببرد.
هر مدیر یک بند حقوق مدیریت به اندازه 3 میلیون تومان دارد.
متدی تعریف کنید که حقوق کلی مدیر حقوق پایه کارمندی به علاوه بند حقوق مدیریت( را نمایش دهد.
( Show_salary )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
class user: #mohandesjan.ir def __init__(self,a ,b ,c ,d ): self.username = a self.password = b self.name = c self.lastname = d class employee(user): #mohandesjan.ir gharar=5 hoghoogh=2 def __init__(self,h): self.id = h self.ls =[] def sprint(self,z): self.ls.append(z) #mohandesjan.ir @classmethod def ch_gharar(cls,n): cls.gharar=n @classmethod def ch_hoghoogh(cls,n): cls.hoghoogh=n #mohandesjan.ir class manager(employee): modir=3 def summ(self): print(self.hoghoogh + manager.modir) ali=user("ali",123,'ali','zandi') x=employee(1) x.sprint(input("please enter your string: ")) print(x.ls) #mohandesjan.ir ############################ print(x.gharar) x.ch_gharar(10) print(x.gharar) ############################ print(x.hoghoogh) x.ch_hoghoogh(3) print(x.hoghoogh) ######################## manager.summ(x) |