QueueProjects

به نام پروردگار هدایت کننده به راه راست

دانشگاه اصفهان

ساختمان داده – دکتر رمضانی

پاییز ۰۲-۰۳

پروژه سوم - پلی‌لیست موسیقی

طراحان پروژه : امیرعلی گلی – علی ابراهیمی

مبحث : صف

اهداف پروژه :

  • کار با ساختمان داده صف
  • پیاده‌سازی عملیات‌های پرکاربرد صف
  • کار با فرمت‌داده CSV

در این پروژه قرار است با استفاده از صف یک پلی‌لیست موسیقی را شبیه‌سازی کنید.

گام های پروژه

گام اول

در گام اول، از ریپازیتوری پروژه Clone بگیرید تا در سیستم خود داشته باشید.

گام دوم:

ما فایل musics.csv را که حاوی اطلاعات موسیقی‌هاست، داریم. فرمت کلی اطلاعات یک موسیقی که در فایل خواهد بود:

  • artist_name
  • track_name
  • release_date
  • genre
  • len
  • topic

این اطلاعات به فرمت csv هستند. در مورد این فرمت نمایش داده‌ها تحقیق کنید. در ابتدای کار اطلاعات موردنظر را خوانده و در برنامه بارگذاری کنید.

گام سوم:

در واقع هر خانه صف یک موسیقی بوده که شامل اطلاعات بالا می‌باشد.که هر پلی‌لیست موسیقی یک صف از موسیقی‌هاست . دقت کنید آهنگی که سر صف هست باید در حال پلی شدن باشد

باتوجه به تعاریف بالا موجودیت‌‌های مسئله را بسازید و با استفاده از اطلاعات خوانده‌شده پلی‌لیست‌های مورد نظر را بسازید.

گام چهارم :

در نهایت یک ابزار کامند لاینی که امکان ساخت پلی لیست و اعمال دستوراتی بر روی آن را امکان پذیر می سازد را پیاده سازی کنید. ویژگی‌هایی که باید پیاده‌سازی شوند :

  1. ایجاد پلی لیست
  2. حذف و اضافه کردن موزیک به پلی لیست
  3. امکان وجود چند عدد پلی لیست (وجه تمایز پلی لیست ها نام آن‌هاست)
  4. مرج دو پلی لیست (انتهای پلی لیست اولی به ابتدای پلی لیست دوم متصل می‌شود) نکته: توجه شود در هنگام مرج دو پلی لیست در پلی لیستی که در نهایت از مرج حاصل می‌شود نباید آهنگ تکراری وجود داشته باشد.
  5. سورت (سورت کردن یک پلی لیست بر حسب نام آهنگ، نام خواننده آهنگ و سال انتشار)
  6. وجود لیستی به نام Liked songs و لایک و دیسلایک (برداشتن لایک از یک آهنگ) و تشکیل لیست Liked songs (در صورت برداشتن لایک از یک آهنگ باید از لیست Liked songs حذف شود.)
  7. پلی کردن معمولی یک پلی لیست (در حالت غیرامتیازی منظور از پلی کردن صرفا پرینت کردن نام و اطلاعات آهنگ سر صف می باشد.)

ویژگی‌های امتیازی:

  • گرافیک
  • پخش موزیک بصورت واقعی

نکات تکمیلی :

  • این پروژه بصورت تک نفری باید پیاده سازی شود.
  • بستر پیاده سازی پروژه روی گیت‌هاب می‌باشد.
  • سعی کنید هریک از بخش‌ها را در یک کامیت جداگانه انجام دهید.
  • رعایت اصول کدنویسی تمیز بخش بسیار زیادی از نمره را به خود اختصاص می‌دهد و درصورتی که کد کاملا به شکل غیراصولی پیاده سازی شده باشد. تحویل گرفته نمی‌شود.
  • استفاده از هر زبان، فریمورک و رابط‌های گرافیکی کاملا آزاد است. ( به غیر از زبان و فریمورک های پایتون )
  • استفاده از پایگاه‌داده ها برای ذخیره سازی مجاز است.
  • به افرادی که از تکلنولوژی‌های جدید استفاده کنند، توکن تمدید اضافه‌تر داده خواهد شد.