فایل پایه را از اینجا دریافت کنید
زهرا میخواهد بداند که در هر بازه زمانی در سال ۲۰۱۷ چقدر هزینه کردهاست. اما خواندن اساماسها و نوشتن هزینههای هرروز برروی کاغذ برای وی طاقتفرساست. به همین دلیل از نگین کمک گرفتهاست. نگین برنامهنویس اندروید است و تصمیم دارد برنامهای بنویسد که به دوستش کمک کند. اما به دلیل اینکه در اندروید تازهکار است دچار مشکل شدهاست و حال از شما کمک می خواهد. برنامه بدین گونه است:
- با اجرای برنامه،
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
- فرمت پیامکهای بانکی و خروجی موردنظر هر پیامک بهشکل زیر است:
ورودی نمونه ۱:
بانک صادرات پایانه فروش:-10,000 حساب:01000 مانده:4,445,164
خروجی نمونه ۱:
-10000
ورودی نمونه ۲:
بانک صادرات پایانه فروش:443 حساب:01000 مانده:4,445,164
خروجی نمونه ۲:
443
ورودی نمونه ۳:
بانک صادرات پایانه فروش:567,300 حساب:01000 مانده:4,445,164
خروجی نمونه ۳:
567300
نکات حیاتی
- نام انتخابی برای دیتابیس و جدول مورد استفاده را دقیقا برابر با موارد گفتهشده و بدون هیچ پسوندی انتخاب کنید.
- برای جلوگیری از بروز خطای ناشی از حجم بالای فایل ارسالی، قبل از ساخت و ارسال فایل
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
ارسال پاسخ برای این سؤال