Birinchi mini-loyiha: xarajatlar hisoblagichi

Kirimlar, hisoblash qoidalari va yakuniy jami natijadan iborat xarajatlar hisoblagichi loyihasi
Kichik loyiha bir nechta tushunchani bitta foydali natijaga bog’laydi.

Nazariyani mustahkamlashning ishonchli usuli — kichik loyiha qilish. Bu darsda til sintaksisidan qat’i nazar xarajatlar hisoblagichini rejalaymiz.

Loyihani rejalashtirish

Talablar

  1. Xarajat nomi va summasini qo’shish.
  2. Xarajatlar ro’yxatini ko’rish.
  3. Umumiy summani hisoblash.
  4. Uni budjet bilan solishtirish.

Psevdokod

funksiya jami_hisobla(xarajatlar):
    jami = 0
    har bir xarajat uchun xarajatlar ichida:
        jami = jami + xarajat.summa
    jami ni qaytar

jami = jami_hisobla(xarajatlar)
agar jami > budjet bo'lsa:
    "Budjetdan oshdingiz" deb chiqar
aks holda:
    "Budjet ichidasiz" deb chiqar

Bu yerda o’zgaruvchi, sikl, shart va funksiya birgalikda ishlaydi.

Avval test holatlarini yozing

Holat Jami Budjet Kutilgan natija
Xarajat yo’q 0 100 000 Budjet ichidasiz
Bir xarajat 12 000 100 000 Budjet ichidasiz
Chegaradan oshdi 110 000 100 000 Budjetdan oshdingiz
Manfiy summa -5 000 100 000 Xato: summa musbat bo’lishi kerak

Loyiha chegarasini aniq belgilang

Boshlovchi loyiha uchun eng katta xavf — talabni cheksiz kattalashtirish. Birinchi versiyada foydalanuvchi ro’yxatdan o’tishi, grafiklar, bulutga saqlash va mobil ilova shart emas. Maqsad: kiritilgan xarajatlar ishonchli hisoblanishi va natija tushunarli chiqishi. Birinchi versiya ishlagach, keyingi o’zgarishni alohida rejalashtirasiz.

Talabni foydalanuvchi hikoyasi bilan yozing: “Foydalanuvchi xarajat nomi va summasini kiritadi, shunda u umumiy sarfini va budjetdan oshganini ko’radi.” Bu gapdan kiritish maydonlari, saqlanadigan ma’lumotlar, hisoblash qoidasi va natija ekrani kelib chiqadi.

Yechimni qurish

Ma’lumot modeli va validatsiya

Har xarajat uchun nom hamda summa boshida yetarli. Dastur bu qiymatlarni qabul qilishdan oldin tekshiradi: nom bo’sh bo’lmasin, summa son bo’lsin, u nol yoki manfiy bo’lmasin. Validatsiya foydalanuvchini ayblash uchun emas, noto’g’ri qiymatdan tug’iladigan chalkash natijani oldini olish uchun kerak.

Yangi xususiyatni bitta qadamda qo’shing: avval oldindan berilgan xarajat bilan jami hisoblang, so’ng kiritishni, keyin validatsiyani, undan keyin ro’yxatni ko’rsatishni yozing. Har bosqichdan so’ng kodni ishga tushiring. Git ishlatsangiz, har mantiqiy bosqichni alohida commit qilish ham muammo qayerda paydo bo’lganini topishga yordam beradi.

Natijani tushunarli qilish

Terminal dasturida ham natija o’qilishi kerak. Raqamlarni ajratib, aniq birlik bilan chiqaring: Jami xarajat: 37 000 so'm. Bo’sh ro’yxatda 0 raqamini yolg’iz chiqarish o’rniga “Hali xarajat qo’shilmagan” deng. Noto’g’ri kiritishda esa nima tuzatilishi kerakligini ayting. Keyinchalik web interfeysga o’tganda aynan shu holatlar loading, bo’sh natija va xato ekranlariga aylanadi.

Qo’lda test jadvalini kengaytiring

Sinov Kutilgan tekshiruv
12000, 8000 Jami 20 000 bo’ladi
Bo’sh ro’yxat 0 yoki tushunarli bo’sh holat
0 summa Validatsiya xatosi
Matn ko’rinishidagi summa Son kiritish so’raladi
Budjetga teng jami Qoidangizga mos aniq xabar

Budjetga teng holat muhim: > va >= turli qoida beradi. Qaysi biri kerakligini mahsulot talabi belgilaydi. Buni oldindan yozish mantiqiy xatoni kamaytiradi.

Loyihani kengaytirish

Keyingi rivojlantirish yo’li

Loyiha ishlagach, faqat bitta yo’nalishni tanlang. Faylga saqlash uchun Python’da JSON yoki matn fayli bilan ishlashni o’rganasiz. Kategoriya uchun lug’at yoki ro’yxat tuzilmasi kerak bo’ladi. Web versiya uchun HTML forma, CSS ko’rinish va JavaScript interaksiyasi qo’shiladi. Har yangi yo’l avvalgi poydevorga tayanadi; shuning uchun ishlaydigan kichik versiya katta, lekin tugallanmagan versiyadan qimmatroq.

Ma’lumotni saqlash usullari

Birinchi versiyada xarajatlar dastur ishga tushgan paytdagi ro’yxatda turishi mumkin. Dastur yopilganda ular yo’qoladi. Bu mantiqni sinash uchun yetarli, ammo foydalanuvchi ma’lumotni keyin ham ko’rishi kerak bo’lsa, saqlash qatlami kerak. Terminal loyihasida JSON yoki matn fayli, web loyihada brauzer xotirasi yoki ma’lumotlar bazasi tanlanishi mumkin. Saqlash usuli o’zgarsa, o’qish, yozish, xato va backup holatlari ham rejalashtiriladi.

Faylga yozishda dastur yarim yozilgan ma’lumot bilan to’xtasa nima bo’lishini, fayl yo’q bo’lsa qanday boshlashini va noto’g’ri format bo’lsa foydalanuvchiga nima deyishini belgilang. Ma’lumotni o’chirishdan oldin tasdiqlash va qayta tiklash ehtiyoji ham mahsulot talabiga bog’liq.

Kategoriya va hisobot qo’shish

Keyingi imkoniyat sifatida xarajatga kategoriya berishingiz mumkin: oziq-ovqat, yo’l, ta’lim va boshqa. Bu faqat yangi input emas; ma’lumot modeli, validatsiya, ro’yxat ko’rinishi va hisoblash ham yangilanadi. Kategoriya bo’yicha jami chiqarish uchun avval har kategoriya uchun boshlang’ich qiymat, keyin ro’yxat bo’ylab sikl va shart kerak bo’ladi.

har bir xarajat uchun xarajatlar ichida:
    agar xarajat.kategoriya = "Yo'l" bo'lsa:
        yol_jami = yol_jami + xarajat.summa

Keyin bitta xarajatga kategoriya berilmagan holatni ham sinang. Uni “Boshqa” guruhiga o’tkazasizmi yoki xato ko’rsatasizmi — qoida aniq bo’lishi kerak.

Kodni tartibga keltirish

Loyiha o’sganda hamma qatorni bitta faylga yozish qiyinlashadi. Kiritishni tekshirish, jami hisoblash, saqlash va ekranga chiqarish kabi vazifalarni alohida funksiyaga ajrating. Bir funksiyani o’zgartirganda boshqasi buzilmasa, debugging va test ancha osonlashadi. Nomlar ham ma’noli bo’lsin: x o’rniga xarajatlar, f o’rniga saqlash_fayli kabi.

Tayyorlikni baholash

Tayyorlik mezoni

Loyiha “tayyor” deyilishi uchun quyidagilar ishlashi kerak:

  • xarajat nomi va musbat summa bilan qo’shiladi;
  • bo’sh yoki noto’g’ri qiymat tushunarli xabar beradi;
  • jami to’g’ri hisoblanadi;
  • budjet chegarasi aniq qoida bilan tekshiriladi;
  • bo’sh ro’yxat buzilmaydi;
  • kamida uch test holati qayta sinab ko’rilgan;
  • README yoki izohda dastur qanday ishga tushishi yozilgan.

Bu ro’yxat katta mahsulot uchun to’liq emas, ammo boshlovchi loyihasini “ekranda bir marta ishladi” darajasidan ishonchli natijaga olib chiqadi.

Loyihani baholash mashqi

Do’stingizga yoki o’zingizga dasturdan foydalanish vazifasini bering: uchta xarajat qo’shish, bittasini noto’g’ri qiymat bilan sinash, jami va budjet holatini ko’rish. Qaysi joyda savol tug’ilganini qayd qiling. Bu feedback yangi rang qo’shishdan oldin qaysi mantiq yoki xabar tushunarsizligini ko’rsatadi.

Ishni kichik vazifalarga bo’lish

Mini-loyihani boshlashda “xarajatlar ilovasini yozaman” degan katta niyat o’rniga tekshirsa bo’ladigan kichik vazifalar ro’yxatini tuzing. Masalan, birinchi vazifa ro’yxat ichida berilgan ikki xarajatning jamini chiqarish bo’lishi mumkin. Ikkinchisi bitta yangi xarajatni qo’shadi. Uchinchi vazifa noto’g’ri summani rad etadi. To’rtinchisi budjet haqida xabar beradi. Har vazifa tugagach, kutilgan natijani qo’lda sinab, keyingisiga o’ting.

Bu yondashuv sizga ayni paytda qaysi tushuncha ishlatilayotganini ko’rsatadi. Jami hisoblashda sikl va o’zgaruvchi kerak; budjet xabarida shart; kiritishni tekshirishda validatsiya; takrorlanadigan hisobda funksiya ishlaydi. Muammo chiqsa, butun ilovani emas, aynan joriy kichik vazifani tekshirasiz. Shuningdek, bajarilgan qadamlar ro’yxati motivatsiyani saqlaydi: loyiha hali tugamagan bo’lsa ham, ko’rinadigan natija paydo bo’ladi.

Foydalanuvchi oqimini sinash

Kodning ichki mantiqi to’g’ri bo’lishi bilan birga, foydalanuvchi qadamlarni tushunishi ham kerak. Oqimni oddiy gap bilan yozing: dastur ochiladi, foydalanuvchi nom va summani kiritadi, “qo’shish” amalini bajaradi, ro’yxatda yangi qator paydo bo’ladi, jami yangilanadi va budjet holati ko’rsatiladi. Keyin har bir qadamga savol bering: foydalanuvchi ayni paytda nima qilishi kerakligini biladimi, u xato qilsa nima bo’ladi, oldingi kiritganlari yo’qolib ketmaydimi?

Masalan, summa noto’g’ri bo’lsa, avval qo’shilgan xarajatlar ro’yxatda qolishi kerak. Xabar esa “Xato” deb umumiy yozishdan ko’ra “Summa 0 dan katta son bo’lishi kerak” desa foydaliroq. Budjetdan oshilganda ilova foydalanuvchini koyimasin; qancha oshgani yoki qaysi ma’lumot yangilanishi kerakligini sokin va tushunarli ko’rsatsin. Shunday mayda qarorlar mini-loyihani haqiqiy foydalanishga yaqinlashtiradi.

Natijani namoyish qilish

Loyiha ishlagach, uni namoyish qilish uchun uch-to’rtta aniq ssenariy tayyorlang: bo’sh holat, odatiy uch xarajat, budjetga teng holat va noto’g’ri kiritish. Har bir ssenariyda qaysi natija chiqishi kerakligini oldindan yozing. Bu sizga dars yakunida o’zingizni tekshirishga, boshqaga loyiha qanday ishlashini ko’rsatishga va keyingi o’zgarishdan keyin regressiyani ushlashga yordam beradi.

README yoki qisqa qaydda loyihaning maqsadi, ishga tushirish usuli, mavjud imkoniyatlari va ma’lum cheklovlarini yozing. Masalan, “ma’lumotlar dastur yopilganda saqlanmaydi” degan qayd foydalanuvchi kutishini to’g’ri boshqaradi. Bu hujjat faqat boshqalar uchun emas: bir haftadan so’ng loyiha tomon qaytsangiz, o’zingiz ham qayerda to’xtaganingizni tez eslaysiz.

Yakuniy mustaqil topshiriq

Xarajatlar hisoblagichining birinchi versiyasini o’zingiz tanlagan tilda yarating. Avval terminalda yoki bitta skriptda ishlating. Keyin faqat bitta qo’shimcha imkoniyatni tanlang: xarajatni o’chirish, kategoriya, faylga saqlash yoki sana qo’shish. Tanlangan imkoniyat uchun yangi talab, kamida uch test holati va foydalanuvchiga chiqadigan xabarni yozing. Shundan keyin kodga o’ting. Shu ketma-ketlik sizni “avval yozib, keyin nimani qilganini bilish” odatidan saqlaydi.

Keyin bu rejani Python yoki JavaScript bilan ishlaydigan dasturga aylantiring.

Keyingi darsda dasturchining ish vositalari — kod muharriri, terminal va Git bilan tanishasiz.

Bu dars foydali bo'ldimi?

marta ko'rildi