فایل پایه را از اینجا دریافت کنید
زهرا میخواهد بداند که در هر بازه زمانی در سال ۲۰۱۷ چقدر هزینه کردهاست. اما خواندن اساماسها و نوشتن هزینههای هرروز برروی کاغذ برای وی طاقتفرساست. به همین دلیل از نگین کمک گرفتهاست. نگین برنامهنویس اندروید است و تصمیم دارد برنامهای بنویسد که به دوستش کمک کند. اما به دلیل اینکه در اندروید تازهکار است دچار مشکل شدهاست و حال از شما کمک می خواهد. برنامه بدین گونه است:
- با اجرای برنامه،
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
ارسال پاسخ برای این سؤال