روز
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
روز
ساعت
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
ساعت
دقیقه
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
دقیقه
ثانیه
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
ثانیه

فایل پایه را از اینجا دریافت کنید

زهرا می‌خواهد بداند که در هر بازه زمانی در سال ۲۰۱۷ چقدر هزینه کرده‌است. اما خواندن اس‌ام‌اس‌ها و نوشتن هزینه‌های هر‌روز بر‌روی کاغذ برای وی طاقت‌فرساست. به همین دلیل از نگین کمک گرفته‌است. نگین برنامه‌نویس اندروید است و تصمیم دارد برنامه‌ای بنویسد که به دوستش کمک کند. اما به دلیل اینکه در اندروید تازه‌کار است دچار مشکل شده‌است و حال از شما کمک می خواهد. برنامه بدین گونه است:

  • با اجرای برنامه، MainActivity اجرا می‌شود و activity_main را نمایش می‌دهد. در این صفحه، جدولی وجود دارد که ۵ تراکنش آخر را بصورت زیر نمایش می‌دهد.

توضیح تصویر

  • با لمس دکمه REPORT صفحه ReportActivity اجرا می‌شود؛ در این صفحه تاریخ ابتدا و انتهای بازه‌ای که قرار است در آن مجموع هزینه های انجام شده حساب شود انتخاب می‌شود. (روزهای ابتدا و انتهای بازه نیز جزئی از بازه هستند.)
  • با فشردن دکمه calculate مجموع هزینه‌ها در بازه انتخاب‌شده محاسبه می‌شود و در TextView با آیدی total که سمت چپ دکمه CALCULATE قراردارد، نشان داده‌می‌شود.
  • پیاده‌سازی برنامه به گونه‌ای است که با دریافت هر پیامک از بانک، اطلاعات آن بطور خودکار به‌عنوان یک رکورد توسط برنامه در یک دیتابیس SQLite ذخیره می‌شود.
  • هربار که برنامه باز می‌شود، لیست ۵ تراکنش آخر (که در MainActivity نشان داده‌می‌شود) بروز شده و ۵ تراکنش آخر را به ترتیب جدید به قدیم (از بالا به پایین) نمایش می‌دهد.
  • پیامک‌های ارسالی توسط بانک، حتی درصورتی‌که برنامه برروی صفحه باز نیست هم باید توسط برنامه در دیتابیس ثبت شوند.
  • ذخیره پیامک‌های دریافتی در دیتابیس با نام transaction و در جدول Transactions انجام می‌شود.
  • شمای جدول Transactions بصورت زیر است:
ColumnId ---> primary key auto Increment
Value ---> NUMERIC
Day ---> NUMERIC
Month ---> NUMERIC
Plain text
  • فرمت پیامک‌های بانکی و خروجی موردنظر هر پیامک به‌شکل زیر است:

ورودی نمونه ۱:

بانک صادرات پایانه فروش:-10,000 حساب:01000 مانده:4,445,164
Plain text

خروجی نمونه ۱:

-10000
Plain text

ورودی نمونه ۲:

بانک صادرات پایانه فروش:443 حساب:01000 مانده:4,445,164
Plain text

خروجی نمونه ۲:

443
Plain text

ورودی نمونه ۳:

بانک صادرات پایانه فروش:567,300 حساب:01000 مانده:4,445,164
Plain text

خروجی نمونه ۳:

567300
Plain text

نکات حیاتی

  • نام انتخابی برای دیتابیس و جدول مورد استفاده را دقیقا برابر با موارد گفته‌شده و بدون هیچ پسوندی انتخاب کنید.
  • برای جلوگیری از بروز خطای ناشی از حجم بالای فایل ارسالی، قبل از ساخت و ارسال فایل zip دقت کنید که پوشه‌های build در این فایل وجود نداشته باشند.
  • آیدی و متن‌های نمایشی موجود در فایل‌های activity_main.xml و report.xml را تغییر ندهید (حذف نکنید).
  • برای نمایش لیست روز‌ها و ماه‌ها در صفحه ReportActivity، به ترتیب از عناصر موجود در dayNum و monthName استفاده کنید.
  • درصورتیکه به دسترسی‌ای نیاز دارید که در نسخه‌های جدید اندروید به شکل متفاوتی از کاربر گرفته‌می‌شود، حتما این تفاوت را درنظر بگیرید و تغییرات لازم را برای زمان شروع برنامه اعمال کنید.
  • دیتابیس را حتما در مسیر پیشفرض قرار‌دهید. (نیازی به دسترسی خواندن و نوشتن برروی حافظه خارجی ندارید)
  • نیازی به ایجاد تغییرات در کلاس Application وجود ندارد و ایجاد تغییر در این کلاس، منجر به کسر لمتیاز می‌شود.
  • برای نمایش پنج تراکنش آخر در جدول صفحه نخست، به موارد زیر دقت کنید:
    • مبلغ بصورت رقم با معنی و بدون علامت , برای جدا کردن ارقام صفر نمایش داده‌می‌شود.
    • برای مبالغ منفی، علامت منفی (-) پشت رقم قرار می‌گیرد اما برای مبالغ مثبت، از کاراکتر + استفاده نمی‌شود.
    • عدد ماه و روز تراکنش بصورت عدد با معنا (بدون صفر مازاد در ابتدای آن‌ها) نمایش داده‌می‌شود.
    • نمایش تاریخ به این صورت است که عدد ماه در سمت چپ و عدد روز در سمت راست آن قرار می‌گیرد و با یک کاراکتر فاصله از هم جدا می‌شوند.

ساختار فایل پایه که برای تکمیل در اختیار شما قرار می‌گیرد، حاوی مسیر زیر است. شما باید فایل‌هایی که با علامت (---->) مشخص شده‌اند را تغییر دهید و پروژه تغییر‌داده‌شده را بعنوان فایل zip که حاوی مسیر زیر است ارسال کنید:

(تغییر فایل‌های تعیین شده در قسمت پایین و افزودن فایل جدید به فایل پایه در پوشه main از مسیر زیر، مانعی ندارد)

app
└───src
    └───main
        │   AndroidManifest.xml
        │
        ├───java
        │   └───com
        │       └───example
        │           └───mahsa_pc
        │               └───financialmesseges
        │                       MainActivity.java       <------
        │                       ReportActivity.java       <------
        │
        └───res
            ├───drawable
            │       button_border.xml
            │       custome_border.xml
            │       layout_border.xml
            │       main_layout_border.xml
            │
            ├───layout
            │       activity_main.xml
            │       report.xml
            │
            ├───mipmap-hdpi
            ├───mipmap-mdpi
            ├───mipmap-xhdpi
            ├───mipmap-xxhdpi
            ├───mipmap-xxxhdpi
            └───values
Plain text

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