برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوه‌ی کار با ورودی و خروجی استاندارد (stdin و stdout) در زبان‌های مختلف، اینجا را ببینید.

در مورد سوالات پروژه‌ای می‌توانید انتخاب کنید که کدتان را به یکی از زبان‌های پایتون یا جاوا بزنید و در سوال مربوطه می‌توانید راه‌حلتان را ارسال کنید.

پروژه‌ای - رصد مشتریان - پایتون


یک شرکت فراهم‌کننده سرویس اینترنت (ISP- Internet Service Provider) دو سال است که شروع به کار کرده و در این مدت برای جذب مشتری بیشتر، صرفا سرویس نامحدود اینترنت و با قیمت مناسب ارایه داده است. این شرکت در این دو سال، میزان و نحوه مصرف هر یک مشتریان خود را با دقت رصد کرده است و حالا که بازار را در دست گرفته و ارایه سرویس نامحدود دیگر برایش مقرون به‎صرفه نیست، قصد دارد متناسب با نیازهای مشتریانش، تعدادی سرویس محدود تعریف کرده و به آن‎ها پیشنهاد دهد. اولین قدم برای این کار، دسته‎بندی کاربران بر اساس فاکتورهای مختلف است و شما هم به همین دلیل استخدام شده‎اید.

فایل Source را دانلود کرده و محتوای آن را ببینید. اطلاعات مربوط به میزان مصرف هر مشتری در تاریخ‎های مختلف در شی‎ای از نوع TrafficUsage ذخیره شده است و توسط متد load_all در کلاس TrafficUsageDao در قالب یک لیست در اختیار شما قرار می‎گیرد. هر رکورد از این لیست، دارای اطلاعات زیر است:

  • user: کاربر
  • internal: مشخص می‌کند که اینترنت مصرفی داخلی بوده یا خارجی
  • nightly: مشخص می‌کند اینترنت مصرفی مربوط به حجم روزانه بوده یا شبانه
  • date: تاریخ مصرف حجم اینترنت
    • یک رشته با فرمت yy/MM/dd است (مانند 97/08/25).
  • usage: میزان مصرف اینترنت بر حسب مگابایت

در کلاس TrafficUsageService قرار است به کمک این داده‎ها، اطلاعات زیر استخراج شده و در دسته‎بندی مشتریان مورد استفاده قرار بگیرد:

  1. عاشقان رسانه‎های اجتماعی (متد social_media_lovers):
    • مشتریانی که در طول ماه مورد نظر از سال مورد نظر، مجموع مصرف آن‎ها از اینترنت خارجی، از مصرف اینترنت خارجی حداقل 90% سایر کاربران فعال در آن ماه بیشتر باشد.
      • مثلا اگر علی در تیر 97 به میزان 50 گیگ اینترنت خارجی مصرف کرده اما حداقل 90% سایر کاربران، هر کدام در تیر 97 مصرفشان از اینترنت خارجی کمتر از 50 گیگ بوده، علی از عاشقان رسانه‌های اجتماعی در تیر 97 بوده است.
      • منظور از کاربر فعال در یک بازه زمانی خاص، کاربری است که حداقل یک رکورد TrafficUsage در آن ماه و به نام آن کاربر ثبت شده باشد.
  2. مشتریان عشق دانلود (متد download_lovers):
    • مشتریانی که در طول ماه مورد نظر از سال مورد نظر، مجموع مصرف آن‌ها از اینترنت شبانه، بیش از مجموع مصرف آن‎ها از اینترنت روزانه باشد. *نکته*:
  • در هر یک از دو سرویس مورد نظر، به هر دلیلی اگر کاربری پیدا نشود، باید یک لیست خالی برگردانده شود (خروجی متد None نباشد).

با اجرای ماژول main ، خروجی زیر مورد انتظار است:

social media lovers:
a100
download lovers:
a100
a101
a102
Plain text

آنچه باید آپلود کنید:🔗

یک فایل زیپ آپلود کنید که در ریشه آن یک فایل وجود داشته باشد و آن هم service.py باشد.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.