در این سوال، شما سیستمی برای مدیریت آگهیهای مسکن طراحی میکنید. هر آگهی میتواند برای فروش، رهن یا اجاره باشد و دارای ویژگیهایی از جمله عنوان، قیمت، متراژ، نوع ملک (آپارتمان یا حیاط)، وضعیت (فروش، رهن یا اجاره)، و مختصات جغرافیایی (عرض و طول جغرافیایی) خواهد بود. شما باید این ویژگیها را در کوئریهای مختلف مانند افزودن آگهی، جستجو و حذف آگهیها مدیریت کنید.
add_house
فرم کلی این دستور به صورت زیر است:
<title>
عنوان آگهی (منحصربهفرد و اجباری).<type>
نوع ملک (مانند apartment
برای آپارتمان یا yard
برای حیاط و اجباری).<status>
وضعیت ملک (sale
برای فروش، rent
برای رهن یا اجاره و اجباری).<price>
قیمت ملک (عدد صحیح و مثبت به تومان و اجباری).<area>
متراژ ملک (عدد صحیح و مثبت بر حسب متر مربع و اجباری).<latitude>
عرض جغرافیایی ملک (عدد حقیقی و اجباری).<longitude>
طول جغرافیایی ملک (عدد حقیقی و اجباری).[description]
توضیحات اختیاری.اگر عنوان آگهی قبلاً ثبت شده باشد، پیام invalid title
چاپ شود.
در غیر این صورت، پیام house added successfully
چاپ شود.
get_houses
فرم کلی این دستور به صورت زیر است:
این دستور به معنی جستجو برای آگهیهایی با ویژگیهای مشخص است.
<type>
نوع ملک (مانند apartment
یا yard
و اجباری).<status>
وضعیت ملک (sale
یا rent
و اجباری).[min_price]
حداقل قیمت آگهی (عدد صحیح و اختیاری).[max_price]
حداکثر قیمت آگهی (عدد صحیح و اختیاری).[min_area]
حداقل متراژ آگهی (عدد صحیح وختیاری).[max_area]
حداکثر متراژ آگهی (عدد صحیح و اختیاری).<latitude>
عرض جغرافیایی منطقه جستجو (عدد حقیقی و اجباری).<longitude>
طول جغرافیایی منطقه جستجو (عدد حقیقی و اجباری).در این دستور، آگهیها باید بر اساس نزدیکی جغرافیایی به منطقه جستجو مرتب شوند. آگهیهایی که نزدیکتر به مختصات جستجو هستند، اول نمایش داده شوند. برای محاسبه نزدیکی از فرمول فاصله هاروارد () استفاده کنید. سپس نام آگهیهای مرتبشده را به ترتیب در یک خط و با یک فاصله بین آنها چاپ کنید. (نزدیکترین آگهی باید در ابتدای خط چاپ شود.) اگر لیستی که باید چاپ شود خالی است، عبارت no house found!
را چاپ کنید.
remove_house
فرم کلی این دستور به صورت زیر است:
این دستور به معنی حذف آگهی با عنوان <title>
است.
invalid title
چاپ شود.house removed successfully
چاپ شود.در سطر اول عدد صحیح و مثبت داده میشود که تعداد دستورها را مشخص میکند.
در سطر بعدی، هر سطر شامل یک دستور از نوعهای تعریفشده است.
خروجی شامل سطر است که پاسخ مناسب به هر دستور را چاپ میکند.