مهدیار به عنوان مدیر داخلی شرکت «گوبرا» انتخاب شده است. او پس از چند روز که از شروع کارش گذشت و مشخصات کارمندان شرکت را در کاغذ وارد کرد، احساس خستگی کرد. مهدیار از عطا خواست که برایش برنامهی اندرویدی بنویسد که بتواند با کمک آن لیست کارمندان شرکت را مدیریت کند. عطا هم از فرط خستگی، پروژه را ناتمام گذاشته و زحمت اتمام کار بر دوش شماست.برنامه دو قسمت اصلی دارد؛ ثبت کارمند جدید و گرفتن گزارش کارمندان.
در بخش ثبت کارمند جدید(Register
)، باید مشخصات کارمند جدید دریافت شود. هر کارمند مشخصات زیر را دارد:
در بخش گزارش(Report
)، چند نوع گزارش میتوان تهیه کرد.
n
امین کارمند شرکت از نظر بیشترین درآمد ماهانه. (رتبه هر کارمند به اینصورت محاسبه میشود: درصورتی که کارمندان را بصورت نزولی براساس حقوق دریافتی ماهانه مرتب کنیم، کارمند با بیشترین دریافتی رتبه یک را دریافت میکند و با کاهش حقوق، به ترتیب رتبه افزایش مییابد.)شما باید تغییرات زیر را در پروژه ایجاد کنید:
با اجرای برنامه، MainActivity
اجرا شود و activity_main
را نمایش دهد. همچنین در اولین اجرای برنامه بر روی دستگاه، پایگاه دادهای با نام company (دقیقا به همین نام و بدون هیچ پسوند، پیشوند یا فرمت فایل) ساخته شود و جدولی به اسم Staff با ستونهای زیر در آن قرار گیرد:
شمارهی کارمندی (ستون ID
)
نام (ستون FirstName
)
نام خانوادگی (ستون LastName
)
درآمد هر ساعت (ستون Salary
)
ساعات کار ماهانه (ستون Hour
)
منصب (ستون Position
)
با زدن دکمهی Register
، کلاس RegisterActivity
و با زدن دکمهی Report
، کلاس ReportActivity
اجرا شود و به ترتیب activity_register
و activity_report
نمایش داده شوند.
در activity_register
، داخل edit_code
، edit_hour
و edit_salary
فقط باید بتوان عدد وارد کرد.
در activity_register
، پس از فشردهشدن btn_submit
اگر هر کدام از EditText
ها خالی بود، رنگ پیغام راهنمای آن باید با استفاده از ثابت Color.RED
یا کد رنگ معادل آن، به قرمز تغییر کند. در غیر اینصورت، اطلاعات واردشده باید به جدول Staff اضافه شوند. در صورتی که کد کارمندی واردشده تکراری بود، نباید اطلاعات اضافه شوند و پیغام Duplicate Personal Code
داخل txt_result
نمایش داده شود. در صورت موفقیتآمیز بودن هم پیغام Registration successful
داخل txt_result
نمایش داده شود و همه EditText
ها به حالت اولیه (بدون متنی که کاربر وارد کرده و با کد رنگ پیشفرض برای متن راهنما) برگردند.
در activity_report
، با فشردهشدن btn_payment
باید کل حقوق ماهانهی همه کارمندان گروهی که در drop_report_position
انتخاب شدهاند، در txt_report
نمایش داده شود.(کل حقوق ماهانهی یک کارمند برابر با حاصلضرب تعداد ساعات کار در حقوق ساعتی است.)
در activity_report
، با فشردهشدن btn_person
، باید نام و نام خانوادگی کارمندی که شمارهی کارمندی او در edit_get_code
وارد شده است، در txt_report
نمایش داده شود. توجه کنید که بین نام و نام خانوادگی باید دقیقا یک فاصله (space
)باشد. همچنین اگر کارمندی با شماره واردشده وجود نداشت، پیغام Not found
در txt_report
نمایش داده شود. همچنین اگر edit_get_code
خالی بود، پیغام راهنمای آن باید با استفاده از ثابت Color.RED
یا کد رنگ معادل آن، به رنگ قرمز تغییر کند. توجه شود که ورودی edit_get_code
فقط باید عدد باشد و غیر عدد را نباید بتوان وارد کرد.
در activity_report
، با فشردهشدن btn_top
، باید کارمندی که در رتبهی متناظر با عدد واردشده در edit_top
قرار دارد، در txt_report
نمایش دادهشود؛ (کارمندان براساس حقوق دریافتی بصورت نزولی مرتب میشوند و بالاترین حقوق، بالاترین رده یعنی رذه یک را دریافت میکند) باید نام، نام خانوادگی و درآمد ماهیانه در txt_report
نوشته شود (موارد باید با دقیقا یک کاراکتر space
از هم جدا میشوند.) اگر عدد واردشده از تعداد کارمندان شرکت بیشتر بود، عبارت Not found
در txt_report
نوشته شود. همچنین اگر edit_top
خالی بود، پیغام راهنمای آن با استفاده از ثابت Color.RED
یا کد رنگ معادل آن، به قرمز تغییر کند. توجه شود که ورودی edit_top
فقط باید عدد باشد و غیر عدد را نباید بتوان وارد کرد.
permision
جدیدی نباید به فایل پروژه اضافه شود. درصورت استفاده از روشهایی که نیاز به افزودن دسترسی به پروژه دارند، بخشی از نمره راهحل ارسالی کسر میگردد و یا نمرهای به راهحل ارسالی شما تعلق نمیگیرد.ساختار فایل ارسالی(فایلهایی که باید تغییر دهید با ----> نمایش داده شده اند):