لینکهای مفید برای شرکت در مسابقه:
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.
علی در شبکهای اجتماعی، کانالهایی برای فوتبالیها دارد. او میخواهد برنامهی زمانبندی بازیهای فوتبال پیش رو را در کانالهایش بهصورت خودکار ارسال کند. همچنین، میخواهد پیش از شروع هر بازی، یک پیام یادآوری بهصورت خودکار بفرستد. برای این کار، او باید اطلاعات بازیها را داشته باشد. از شما میخواهیم برنامهای بنویسید که این اطلاعات را از صفحات وب جمعآوری کند.
پروژهی اولیه را از این لینک دانلود کنید. ساختار فایلهای پروژه بهصورت زیر است:
Country
🔗هر نمونه از این کلاس، بیانگر یک کشور است. هر Country
دارای یک name
از نوع String
بوده که بیانگر نام کشور است. این کلاس از قبل بهطور کامل پیادهسازی شده است.
Stadium
🔗هر نمونه از این کلاس، بیانگر یک استادیوم است. هر Stadium
دارای ویژگیهای زیر است:
name
) از نوع String
country
) از نوع Country
capacity
) از نوع int
این کلاس از قبل بهطور کامل پیادهسازی شده است.
Team
🔗هر نمونه از این کلاس، بیانگر یک تیم است. هر Team
دارای یک name
از نوع String
بوده که بیانگر نام کشور است. این کلاس از قبل بهطور کامل پیادهسازی شده است.
Match
🔗هر نمونه از این کلاس، بیانگر یک مسابقه است. هر Match
دارای ویژگیهای زیر است:
time
) از نوع Date
group
) از نوع String
team1
) از نوع Team
team2
) از نوع Team
stadium
) از نوع Stadium
این کلاس از قبل بهطور کامل پیادهسازی شده است.
WorldCupCrawler
🔗این کلاس، وظیفهی استخراج اطلاعات بازیها از صفحات وب را برعهده دارد. عملیات استخراج دادهها باید تا حد امکان با استفاده از چند thread انجام شود تا سرعت بیشتری داشته باشد. این کلاس در کانستراکتور خود یک آبجمت از نوع URL
دریافت میکند که بیانگر آدرس صفحهی لیست بازیها است. نمونهای از صفحهی لیست بازیها در فایل www/index.html
موجود است.
getStadium
این کلاس را طوری پیادهسازی کنید که با دریافت یک URL
، اطلاعات یک استادیوم را از URL
دادهشده استخراج کرده و در قالب یک آبجکت از نوع Stadium
برگرداند. نمونهای از نحوهی فراخوانی این متد:getMatches
را طوری پیادهسازی کنید که با ارسال درخواست به آدرس واردشده در کانستراکتور، اطلاعات بازیها را در قالب یک List
از Match
ها برگرداند.نکته: تستهای نمونهی سؤال در کلاس WorldCupCrawlerSampleTest
موجود هستند. با افزودن JUnit به classpath پروژه، میتوانید آنها را اجرا کنید. کلاسهای Server
و HtttpHandler
نیز جزو کلاسهای کمکی برای تست هستند.
پس از پیادهسازی موارد خواستهشده، فایل WorldCupCrawler.java
را آپلود کنید.