هک‌ها و تشعشعات وجدان آزاد

نوشته‌های سیدمحمدمسعود صدرنژاد

ابزار کاربر

ابزار سایت


courseware:python_programming:resources:hw:23

تفاوت‌ها

تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده می‌کنید.

پیوند به صفحه‌ی تفاوت‌ها

نگارش قبل در دو طرف نگارش قبل
courseware:python_programming:resources:hw:23 [2020/02/22 07:37]
smmsadrnezh
courseware:python_programming:resources:hw:23 [2020/02/22 07:53] (فعلی)
smmsadrnezh
خط 1: خط 1:
 ==== فروشگاه شی‌گرا ==== ==== فروشگاه شی‌گرا ====
-می‌خواهیم فروشگاه آنلاینی را به صورت شی‌گرا مدل‌سازی کنیم. در پوشهٔ پروژه دو فایل با نام‌های model.py و store.py ایجاد کنید. ​فایل model.py مدلی از مفاهیم مرتبط با فروشگاه را نگه‌داری می‌کند و store.py حاوی نمونه‌هایی از مدل‌های موجود در فایل model خواهد بود. ​سپس ​ویژگی‌های زیر را در این دو فایل پیاده‌سازی ​کنید:+می‌خواهیم فروشگاه آنلاینی را به صورت شی‌گرا مدل‌سازی کنیم. در پوشهٔ پروژه دو فایل با نام‌های model.py و store.py ایجاد کنید. ​ماژول model مدلی از مفاهیم مرتبط با فروشگاه را نگه‌داری می‌کند و store حاوی نمونه‌هایی از مدل‌های موجود در ماژول model خواهد بود. ​در ماژول model چهار تا کلاس برای کاربر با نام User و محصولات فروشگاه با نام Product و سفارشات ثبتشده توسط کاربران با نام Purchase و نظرات کاربران ​دربارهٔ کالاها با نام Comment ​داریم. جزئیات کلاس‌ها به شرح ​زیر است:
  
-در فایل model.py سه تا کلاس ​برای ​کاربر با نام ​User و محصولات فروشگاه با نام Product و نظرات کاربران با نام Comment باید داشته باشیم. جزئیات کلاس‌ها به شرح زیر است: +  * کلاس کاربر با نام User:
- +
-  * کلاس ​User:+
     * نام کاربری با نام username که نوع آن متنی است.     * نام کاربری با نام username که نوع آن متنی است.
-  * کلاس ​Purchase: +  * کلاس ​کالا با نام ​Product: 
-    * تاریخچهٔ سفارشات ثبت شده ​با نام ​purchases که نوع آن لیست از اطلاعات سفارش‌ها است. +    * عددی یکتا برای هر کالا با نام id به عنوان کد هر کالا که نوع آن عدد است و از یک شروع ​می‌شود و به‌صورت ترتیبی زیاد ​می‌شود. این مقدار یکتا باید موقع ایجاد یک نمونهٔ جدید از Product به آن تخصیص داده شود.
-    * شی product و store و number و date و user یعنی این‌که چه کالایی از چه فروشگاهی به چه تعداد در چه تاریخی توسط چه کاربری ​تهیه شده ​است. برای ​تولید تاریخ از کتابخانهٔ استاندارد time استفاده کنید. بعد تهیهٔ ​هر کالا باید تعداد آن کالا در فروشگاه مورد نظر به تعداد تهیه‌شده کم شود. +
-  * کلاس Product: +
-    * عددی ترتیبی و یکتا با نام id به عنوان کد هر کالا که نوع آن عدد است و از یک شروع می‌شود. این مقدار یکتا باید موقع ایجاد یک نمونهٔ جدید از Product به آن تخصیص داده شود.+
     * نام کالا با نام name که نوع آن متنی است.     * نام کالا با نام name که نوع آن متنی است.
     * قیمت با نام price که نوع آن عدد است.     * قیمت با نام price که نوع آن عدد است.
     * تعداد موجود از کالا در هر فروشگاه که با quantity مشخص می‌شود و نوع آن دیکشنری است. در این دیکشنری کلیدها نام فروشگاه‌ها از نوع متنی و مقادیر تعداد موجودی کالا در آن فروشگاه از نوع عدد است.     * تعداد موجود از کالا در هر فروشگاه که با quantity مشخص می‌شود و نوع آن دیکشنری است. در این دیکشنری کلیدها نام فروشگاه‌ها از نوع متنی و مقادیر تعداد موجودی کالا در آن فروشگاه از نوع عدد است.
-    ​نظرات ​کاربران با نام ​comments ​که نوع آن لیست است. +  ​کلاس سفارش با نام Purchase: 
-  * کلاس Comment:+    * تاریخچهٔ سفارشات ثبت شده ​با نام ​purchases ​که نوع آن لیست ​از اطلاعات سفارش‌ها ​است
 +    * شی product و store و number و user و تاریخ با نام date یعنی این‌که چه کالایی از چه فروشگاهی به چه تعداد توسط چه کاربری در چه تاریخی تهیه شده است. برای تولید تاریخ از کتابخانهٔ استاندارد time استفاده کنید. بعد تهیهٔ هر کالا باید تعداد آن کالا در فروشگاه مورد نظر به تعداد سفارش‌داده‌شده کم شود
 +  * کلاس ​نظر با نام ​Comment:
     * کاربری که نظر را ثبت کرده با نام user که نوع آن User است.     * کاربری که نظر را ثبت کرده با نام user که نوع آن User است.
-    * کالایی که برای آن کامنت نوشته با نام product که نوع آن Product است.+    * کالایی که برای آن نظر نوشته با نام product که نوع آن Product است.
     * امتیازی که کاربر همراه متن نظر مشخص کرده با نام rating که نوع آن عدد است.     * امتیازی که کاربر همراه متن نظر مشخص کرده با نام rating که نوع آن عدد است.
     * متن نظر کاربر با نام text که نوع آن متنی است.     * متن نظر کاربر با نام text که نوع آن متنی است.
  
-در فایل model.py باید متدهایی برای اضافه کردن به تعداد یک کالا در یک فروشگاه خاص، ​سفارش یک کالا توسط یک کاربر ​از یک فروشگاه، بررسی ​تعداد کل کالاهای موجود، بررسی تعداد موجودی یک کالا ​در همهٔ فروشگاه‌ها، دریافت نظرات ثبت‌شده توسط یک کاربر، بررسی مبلغ فروش هر فروشگاه، میانگین ​رایهایی که برای یک کالا توسط کاربرانی که آن را خریداری کردند ثبت شده. جزئیات پیاده‌سازی به شما واگذار شده است. به عنوان مثال برای ​حذف یک کالا ​باید ​اگر آن کالا وجود نداشت پیغام کالا وجود ندارد را بدهد.+در ماژول model باید متدهایی برای اضافه کردن به تعداد یک کالا در یک فروشگاه خاص، ​بررسی تعداد کل موجودی ​یک کالا در همهٔ ​فروشگاه‌ها، بررسی ​مبلغ فروش هر فروشگاه، لیست ​کاربرانی که یک کالای به خصوص را خریداری کردند، دریافت نظرات ثبت‌شده توسط یک کاربر، میانگین امتیازهایی که برای یک کالا توسط کاربرانی که آن را خریداری کردند ثبت شده ​وجود داشته باشد. همچنین امکانات بدیهی یک فروشگاه آنلاین مانند ثبت کاربر جدید، اضافه کردن کالای جدید، سفارش یک کالا توسط یک کاربر از یک فروشگاه و ثبت نظر وجود داشته باشد. جزئیات پیاده‌سازی به شما واگذار شده است. به عنوان مثال برای ​سفارش ​یک کالا اگر ​تعداد موجودی ​آن کالا ​در فروشگاه خواسته شده کافی ​نبود باید پیغام کالا ​به تعداد کافی ​وجود ندارد را بدهید.
  
-نحوهٔ تعریف ماژول model باید به گونه‌ای باشد که سناریوهای مربوط به instantiate شدن کلاس‌ها و تعامل بین اشیا در زمان اجرا بتواند به طور کامل در ماژول store پیاده‌سازی شود و نیازی به دستکاری model برای پیاده‌سازی آن‌ها نباشد. به عبارت دیگر کدهای ماژول model نباید هیچ وابستگی‌ای به کدهای نوشته شده در ماژول store داشته باشد. در ماژول store باید داده‌های مربوط به فروشگاه‌ها ​و کالاها و کامنت‌ها و ... را با یک رابط متنی از طریق تابع input از کاربر بگیرید و بر اساس داده‌هایی که کاربر می‌دهد از مدل‌های موجود در ماژول model نمونه بسازید. همچنین کد چاپ کردن گزارشات مورد نظر کاربر را در این فایل بنویسید.+نحوهٔ تعریف ماژول model باید به گونه‌ای باشد که سناریوهای مربوط به instantiate شدن کلاس‌ها و تعامل بین اشیا در زمان اجرا بتواند به طور کامل در ماژول store پیاده‌سازی شود و نیازی به دستکاری model برای پیاده‌سازی آن‌ها نباشد. به عبارت دیگر کدهای ماژول model نباید هیچ وابستگی‌ای به کدهای نوشته شده در ماژول store داشته باشد. در ماژول store باید داده‌های مربوط به فروشگاه‌ها، کالاها و کامنت‌ها و ... را با یک رابط متنی از طریق تابع input از کاربر بگیرید و بر اساس داده‌هایی که کاربر می‌دهد از مدل‌های موجود در ماژول model نمونه بسازید. همچنین کد چاپ کردن گزارشات مورد نظر کاربر را در این فایل بنویسید.
  
 برای همهٔ کلاس‌ها و متدها docstring بنویسید. برای همهٔ کلاس‌ها و متدها docstring بنویسید.
courseware/python_programming/resources/hw/23.txt · آخرین ویرایش: 2020/02/22 07:53 توسط smmsadrnezh