دانلود فایل پروژه

مهدیار به عنوان مدیر داخلی شرکت «گوبرا» انتخاب شده است. او پس از چند روز که از شروع کارش گذشت و مشخصات کارمندان شرکت را در کاغذ وارد کرد، احساس خستگی کرد. مهدیار از عطا خواست که برایش برنامه‌ی اندرویدی بنویسد که بتواند با کمک آن لیست کارمندان شرکت را مدیریت کند. عطا هم از فرط خستگی، پروژه را ناتمام گذاشته و زحمت اتمام کار بر دوش شماست.برنامه دو قسمت اصلی دارد؛ ثبت کارمند جدید و گرفتن گزارش کارمندان. در بخش ثبت کارمند جدید(Register)، باید مشخصات کارمند جدید دریافت شود. هر کارمند مشخصات زیر را دارد:

  1. کد کارمندی
  2. نام
  3. نام خانوادگی
  4. حقوق(به ازای هر ساعت)
  5. ساعت کار ماهانه
  6. منصب(مدیر، توسعه‌دهنده، کارمند)

در بخش گزارش(Report)، چند نوع گزارش می‌توان تهیه کرد.

  1. محاسبه‌ی کل پرداختی ماهانه‌ی شرکت برای هر گروه شغلی(مدیر، توسعه‌دهنده، کارمند، همه)
  2. گرفتن مشخصات کارمند با واردکردن کد کارمندی
  3. مشاهده‌ی 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 جدیدی نباید به فایل پروژه اضافه شود. درصورت استفاده از روش‌هایی که نیاز به افزودن دسترسی به پروژه دارند، بخشی از نمره راه‌حل ارسالی کسر می‌گردد و یا نمره‌ای به راه‌حل ارسالی شما تعلق نمی‌گیرد.

ساختار فایل ارسالی(فایل‌هایی که باید تغییر دهید با ----> نمایش داده شده اند):

<your-zip-name>.zip
└───app
    │   .gitignore
    │   app.iml
    │   build.gradle
    │   proguard-rules.pro
    │
    ├───libs
    └───src
        ├───androidTest
        │   │   androidTest.iml
        │   │
        │   └───java
        │       └───ir
        │           └───quera
        │               └───companymanager
        │                       ExampleInstrumentedTest.java
        │
        ├───main
        │   │   AndroidManifest.xml
        │   │   main.iml
        │   │
        │   ├───gen
        │   ├───java
        │   │   └───ir
        │   │       └───quera
        │   │           └───companymanager
        │   │                   MainActivity.java           <----
        │   │                   RegisterActivity.java       <----
        │   │                   ReportActivity.java         <----
        │   │
        │   └───res
        │       ├───drawable
        │       ├───layout
        │       │       activity_main.xml
        │       │       activity_register.xml
        │       │       activity_report.xml
        │       │
        │       ├───mipmap-hdpi
        │       │       ic_launcher.png
        │       │       ic_launcher_round.png
        │       │
        │       ├───mipmap-mdpi
        │       │       ic_launcher.png
        │       │       ic_launcher_round.png
        │       │
        │       ├───mipmap-xhdpi
        │       │       ic_launcher.png
        │       │       ic_launcher_round.png
        │       │
        │       ├───mipmap-xxhdpi
        │       │       ic_launcher.png
        │       │       ic_launcher_round.png
        │       │
        │       ├───mipmap-xxxhdpi
        │       │       ic_launcher.png
        │       │       ic_launcher_round.png
        │       │
        │       └───values
        │               colors.xml
        │               strings.xml
        │               styles.xml
Plain text

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.