سلام خدمت همه
لطفا اگه کسی میتونه راجع به این سوال کمکم کنه، دریغ نکنه
پیشاپیش ممنونم

کلاسی به نام Console ایجاد کنید. هر شی از این کلاس قرار است اطلاعات مربوط به یک صفحه Console
را نگه دارد. فیلدهای کلاس Console عبارتند از :
۱- متن ) Text ( )متنی که در صفحه کنسول نشان داده میشود.(
۲- رنگ فونت ) Foreground Color ( )رنگ متن نمایش داده شده در کنسول(
۳- رنگ پس زمینه ) Background Color ( )رنگ پس زمینه صفحه کنسول(
۴- تعداد تکرار متن ) n ( )متن چند بار در کنسول نمایش داده شود(
۵- تعداد کل تغییرات فیلدها ) nModify )
کلاس طراحی شده باید قابلیتهای زیر را داشته باشد:
۱- هر شی ایجاد شده از کلاس به طور پیشفرض دارای رنگ پسزمینه سیاه، رنگ فونت سفید، متن Hello World! ، تعداد تکرار متن ۱ و تعداد کل تغییرات ۰ باشد.
۲- کاربر بتواند رنگ فونت و رنگ پسزمینه را تعیین کند. کاربر با وارد کردن نام یک رنگ، رنگ را تعیین
میکند. رنگهایی که کاربر مجاز به انتخاب آنها است در شکل ) ۱( آمده است. در صورتی که رنگ وارد
شده توسط کاربر در لیست رنگها نبود، پیغام خطایی به کاربر نمایش داده میشود و رنگ پیشفرض به
عنوان رنگ کنسول در نظر گرفته میشود.
شکل 1- رنگهای قابل انتخاب توسط کاربر
۳- با هر بار تغییر ویژگیهای شی کلاس کنسول، این تغییرات در صفحه کنسول اعمال شوند. به عنوان مثال
اگر کاربر ویژگی رنگ پسزمینه را به قرمز تغییر داد، رنگ پسزمینه کنسول نیز قرمز شود.
۴- تعداد کل تغییرات ویژگیهای شی ذخیره شوند. مثلاً اگر کاربر دو بار رنگ پسزمینه و یک بار رنگ فونت
را تغییر داده است، مجموعاً سه تغییر اعمال شده که این عدد ذخیره و قابل نمایش باشد.
۵- کاربر بتواند ویژگی متن را تغییر دهد. با تغییر ویژگی متن، صفحه کنسول پاک شده و متن جدید به
همانطور که در بالا شرح داده شد جزو ویژگیهای شی n( . بار در صفحه کنسول نشان داده شود n تعداد
است(
۶- کاربر بتواند ویژگی تعداد تکرار متن را تغییر دهد. با تغییر این ویژگی صفحه کنسول پاک شده و متن
مورد نظر با تعداد تکرار جدید نمایش داده میشود.
استفاده شود. Setter و Getter ۷- برای مقداردهی و خواندن مقادیر فیلدها حتما از توابع
۸- متدی که با اجرای آن متن شی و صفحه کنسول پاک شوند.
-9 متدی بنویسید که با اجرای آن مقادیر رنگ پس زمینه و رنگ فونت به صورت تصادفی تغییر کنند.
۱۰ - متدی بنویسید که با اجرای آن ۱۰ رنگ پس زمینه و رنگ فونت متفاوت به صورت تصادفی انتخاب
شده و با تاخیر یک ثانیهای برروی صفحه کنسول اعمال شوند. به عنوان مثال با فراخوانی متد ابتدا رنگ
پس زمینه قرمز و رنگ فونت سبز میشود، سپس ۱ ثانیه کنسول به همین رنگ باقی میماند، بعد رنگ پس
زمینه آبی و رنگ فونت زرد میشود و به همین ترتیب در ۱۰ ثانیه ده ترکیب رنگ تصادفی مختلف برروی
صفحه کنسول اعمال میشوند.
۱۱ - با شروع برنامه در صفحه کنسول منویی به کاربر نشان داده میشود که کاربر میتواند قابلیت مد نظرش
را انتخاب کند و متدهای مختلف کلاس را فراخوانی نماید. به عنوان مثال با زدن کلید ۱ امکان تغییر رنگ
پسزمینه، با زدن کلید ۲ امکان تغییر رنگ فونت، با زدن کلید ۳ امکان تغییر متن و ... . شما باید منو را
طوری طراحی کنید که تمامی قابلیتهایی که در بالا شرح داده شده است توسط منو قابل انتخاب باشند.