مشاركة حلول: مشروع الصراف الآلي على GitHub

2 Likes

عمل مضبوط جداً :+1:

2 Likes
2 Likes

عمل رائع :+1:

بالنسبة لـ:

		if request <= self.balance:
			if request > 0 :

كان بإمكانك جمعها في شرط واحد, وجعل رسالة الخطأ Error Occurred بشكل عام (الحل الأصح هو استعمال exceptions عند حدوث أي خطأ).

ما رأيك أن تتبع مبدأ SRP في هذا الجزء :wink:

				self.withdrawals_list.append(request)
				self.balance -= request
				notes = [100, 50, 10, 5]
				for note in notes:
					while request >= note:
						request -= note
						print("give ", str(note))
						if request < note and request != 0:
							print("give ", str(request))
1 Like

سلام عليكم وأخيرا عملي على موقع Github شكرا لك أستاذ ياسر على مجهوداتك معنا انا متحمسة جذا معكم
الرابط https://github.com/mofilamamra/My-First-Project-ATM

2 Likes

عمل رائع جداً :+1:

ترقبي الورشة القادمة خلال الشهر القادم إن شاء الله حول بناء أول موقع (إن شاء الله تكون جاهزة بنهاية شهر ديسمبر) :wink:

4 Likes

ان شاء الله تعالى بارك الله فيكم وجعلكم ذخرا للأمة الإسلامية يا رب

2 Likes
1 Like

ما شاء الله عمل رائع يا نورا !

فقط عندي ملاحظتين:

  1. ماهي فائدة السطر:
    if request != 0 and request % 20 != 0:
                print("enter valid number !!")
  1. لما قمتي بتكرار عملية السحب هنا:
    else:
                self.balance = self.balance - self.main_request
                print("The remaining balance is: ", self.balance)

                while self.main_request
                ...

شكرا ياسر … هو الحقيقة ان ممكن يكون في اجزاء زيادة مكانتش مطلوبة في المهمة بس انا حبيت اعملها اشبه شيء للواقع. عشان كدا هي ال withdraw function بتحتوي علي جزئين. الجزء الاول لل verification و هو جزء ال if statement

# To validate inserted amount that it matches available banknotes
        if request > self.balance or request <= 0:
            print('Please enter valid number')

        elif request < self.balance:

            # while request >= 100:
            #     request -= 100
            #     # print(request)
            #
            # while request >= 50 and (request % 20 != 0):
            #     request -= 50
            #     # print(request)
            #
            # while request >= 20:
            #     request -= 20
            #     # print(request)

            # To shorten all the while loops above, use for loop with notes
            notes = [100, 50, 20]
            for note in notes:
                while request >= note and (request % 20 != 0):
                    request -= note

            if request != 0 and request % 20 != 0:
                print("enter valid number !!")

اما جزء ال else هو السحب الفعلي
و عشان كدا هتلاقي في 2 متغير ال request دا لل validation
و ال main_request اللي استخدمته في السحب

else:
                self.balance = self.balance - self.main_request
                print("The remaining balance is: ", self.balance)

                while self.main_request >= 100:
                    print('give 100')
                    self.main_request -= 100
                    # print("rest is: ", main_request)

                while self.main_request >= 50 and (self.main_request % 20 != 0):
                    print('give 50')
                    self.main_request -= 50
                    # print("rest is: ", main_request)

                while self.main_request >= 20:
                    print('give 20')
                    self.main_request -= 20
                    # print("rest is: ", main_request)

اما السطر

if request != 0 and request % 20 != 0:
                print("enter valid number !!")

فبعد طرح كل الفئات الممكنة ال 100 و ال50 و ال20
لو الباقي مش صفر و باقي قسمته علي 20 مش صفر زي مثلا 17
فهطلب من العميل يدخل مبلغ صحيح يتناسب مع الفئات المتاحة

1 Like

اذا جميل جدا، يوجد طرق افضل للتحكم بسير البرنامج باستعمال exceptions لكن هكذا جميل كذلك :+1:

جربت ال try… except لكن لم تنجح معي :woman_facepalming:

1 Like

همم، اليك الفكرة الرئيسية:

  • داخل الدالة عند حدوث اي verification error مباشرة اعملي raise exception

  • خارج الدالة في المكان الذي تستدعي فيه الدالة استعملي try except ولا تنسي اضافة print في معالجة ال exception

1 Like

شكرا بشمهندس … هحاول تاني و ان شاء الله نظبط

1 Like
1 Like
https://github.com/Alalaf/coretabs.git

1 Like

كالعادة عمل رائع :ok_hand:

1 Like
1 Like

عمل ممتاز يا علي… واستخدامك للـ github gist في مكانه الصحيح :ok_hand:

1 Like

مرحبا جميعا هذا رابط المشروع على githhub

1 Like