Qurulish loyihalarini boshqarish va ishchilarning faoliyatini nazorat qilish uchun ilova

O‘ZBEKISTON RESPUBLIKASI 
OLIY TA’LIM, FAN VA INNOVATSIYALAR VAZIRLIGI 
SHAROF   RASHIDOV   NOMIDAGI   SAMARQAND   DAVLAT
UNIVERSITETI 
 
MATEMATIKA FAKULTETI AMALIY MATEMATIKA YO‘NALISHI
207-GURUH TALABASI
                ESHQUVVATOV ELOMONNING
ALGORITMIK TILLAR VA DASTURLASH FANIDAN
“QURULISH LOYIHALARINI BOSHQARISH VA ISHCHILARNING
FAOLIYATINI NAZORAT QILISH”
MAVZUSIDA TAYYORLAGAN
 
      KURS ISHI
 
 
                                                                                                                                     Tekshirdi: Meliyev F
SAMARQAND – 2025   
Reja: 
Kirish 
1.   Qurilish   sohasining   faoliyati   bilan   tanishish   va   ma’lumotlarni   tayyorlash   2.
Qurilish loyihalarini boshqarish dastur ilovasining grafik dizaynini ishlab chiqish
va loyihalash 
3. Ilovaning funksional imkoniyatlarini shakllantirish 
4. Ilovaga ma’lumotlarni kiritish, natijalar olish va testlash 
Xulosa 
  
 
   
2  
  Kirish 
Kurs ishimning asosiy yo‘nalishi  qurilish sohasidagi muhim bir masalaga, ya’ni
loyihalarni   boshqarish   va   ishchilar   faoliyatini   nazorat   qilish   jarayonlarini
kompyuterlashtirishga   qaratilgan.   Qurilish   ishlari   ko‘plab   vazifalarni,   odamlarni   va
materiallarni   o‘z   ichiga   olganligi   sababli,   bu   jarayonlarni   tartibli   yuritish   loyihaning
muvaffaqiyati   uchun   juda   muhim.   An’anaviy   usullarda,   qog‘oz   yoki   oddiy   jadvallar
yordamida   ma’lumotlarni   boshqarish   ko‘pincha   chalkashliklarga   olib   kelishi   kurs
ishimning dolzarbligini  belgilaydi. Shu bois, kompyuter dasturlaridan foydalanish bu
vazifalarni yengillashtirishning samarali yo‘li hisoblanadi. 
Kurs   ishimning   predmeti   –   qurilish   korxonasi   uchun   loyihalar   va   ularda
ishlaydigan   xodimlar   haqidagi   ma’lumotlarni   kiritish   hamda   ko‘rsatishga
mo‘ljallangan dasturiy ilovani yaratishdir.   Kurs ishimning texnologik asosi   sifatida
Microsoft   Visual   Studio   2015   dasturlash   muhiti   tanlandi   va   ilova   C++/CLI
dasturlash tili hamda Windows Forms kutubxonalari yordamida ishlab chiqildi. 
Kurs   ishimning   maqsadi   –   foydalanuvchiga   tushunarli   oynalar   orqali   yangi
loyihalarni   (nomi,   boshlanish   sanasi,   holati   bilan)   va   ishchilarni   (ismi-sharifi,
lavozimi,   qaysi   loyihaga   biriktirilgani   bilan)   dasturga   qo‘shish,   kiritilgan
ma’lumotlarni   DataGridView   jadvallarida   ko‘rsatish   va   sodda   hisobotni   .csv
formatidagi faylga saqlash imkonini beradigan amaliy dastur yaratishdan iborat. 
Kurs   ishimning   natijasi   bo‘lgan   ushbu   dastur,   garchi   boshlang‘ich
imkoniyatlarga ega bo‘lsa-da, loyihalar va ishchilar haqidagi ma’lumotlarni bir joyga
jamlash, ularni tartibli ko‘rish va dastlabki hisobotni tezda olishga yordam beradi. Bu
esa   qurilish   jarayonlarini   boshqarishni   qisman   bo‘lsa-da   osonlashtiradi   va   kurs
ishimning amaliy ahamiyatini  ko‘rsatadi. 
Albatta,   kurs   ishimning   doirasida   yaratilgan   bu   dasturni   kelajakda   yanada
takomillashtirish   mumkin.   Keyingi   bosqichlarda   ma’lumotlarni   maxsus   ma’lumotlar
bazasida doimiy saqlash, loyihalar va ishchilar uchun ko‘proq ma’lumot maydonlarini
qo‘shish,   murakkabroq   hisobotlarni   yaratish   kabi   funksiyalarni   qo‘shish   keyingi
tadqiqotlar   uchun   yo‘nalish   bo‘la   oladi.   Umuman,   qurilish   sohasida   smeta   tuzish,
chizmalar   bilan   ishlash   yoki   omborxonani   boshqarish   kabi   vazifalar   uchun   boshqa
turdagi dasturiy yechimlarga ham ehtiyoj mavjudligi  aniq.    
3  
  1. Qurilish sohasining faoliyati bilan tanishish va ma’lumotlarni tayyorlash 
Qurilish loyihalarini boshqarishning axborot ehtiyojlari  
Qurilish   sohasi   o‘zining   ko‘p   qirraliligi,   ko‘plab   jarayonlarning   bir   vaqtda
kechishi va katta hajmdagi resurslar (moliyaviy, inson, texnik) bilan ishlashi bilan
tavsiflanadi.   Bunday   murakkab   sharoitda   har   bir   loyihaning   holatini,   uning
bosqichlarini,   belgilangan   muddatlarga   rioya   etilishini   va   loyihada   ishtirok
etayotgan xodimlarning faoliyatini samarali kuzatib borish zarurati tug‘iladi. 
An’anaviy   boshqaruv   usullarida   ma’lumotlar   ko‘pincha   qog‘oz   jurnallarda,   turli
elektron   jadvallarda   yoki   alohida   hujjatlarda   tarqoq   holda   saqlanadi.   Bu   esa
quyidagi   qiyinchiliklarni   keltirib   chiqaradi:   ma’lumotlarni   topish   va   jamlash
qiyinlashadi,   kerakli   ma’lumotni   olish   uchun   bir   nechta   manbani   ko‘rib   chiqish
kerak   bo‘ladi.   Ma’lumotlarning   dolzarbligini   ta’minlash,   ya’ni   loyiha   holati   yoki
ishchi   tarkibidagi   o‘zgarishlarni   barcha   hujjatlarga   o‘z   vaqtida   kiritish
murakkablashadi.   Umumiy   hisobotlarni   (masalan,   qaysi   ishchi   qaysi   loyihada
bandligi,   loyihalarning   joriy   holati)   tayyorlash   uchun   ko‘p   vaqt   va   qo‘l   mehnati
talab   qilinadi.   Qo‘lda   ma’lumot   kiritish   yoki   ko‘chirishda   xatoliklarga   yo‘l
qo‘yilishi ehtimoli yuqori bo‘ladi. 
Shu   kabi   muammolarni   hal   qilish   va   boshqaruv   samaradorligini   oshirish   uchun
qurilish   loyihalari   va   ishchilar   faoliyatini   hisobga   oluvchi   maxsus   dasturiy
ta’minotlarni yaratish va joriy etish muhim ahamiyat kasb etadi. Ushbu kurs ishida
aynan shu ehtiyojning kichik bir qismini qondirishga harakat qilingan. 
Dasturda modellashtirilgan asosiy obyektlar va ularning xususiyatlari  
Yaratilgan dasturiy ilova qurilish sohasining ikkita asosiy konseptual obyektini
aks ettirishga harakat qiladi:  Loyiha  va  Ishchi . 
Loyiha  obyekti uchun dastur quyidagi asosiy ma’lumotlarni qayta ishlaydi: 
Loyiha nomi:  Loyihani aniqlash uchun ishlatiladigan matnli nom ( MyForm1  dagi
textBox1 ). 
Boshlanish  sanasi:  Loyihaning  boshlangan  kuni 
( MyForm1  dagi  dateTimePicker1 ). 
4  
  Holati:   Loyihaning   hozirgi   bosqichi,   masalan,   "Boshlanmagan",   "Jarayonda",
"Yakunlangan" kabi qiymatlarni qabul qilishi mumkin 
( MyForm1  dagi  comboBox1 ). 
Ishchi  obyekti uchun dastur quyidagi ma’lumotlarni qamrab oladi: 
F.I.O.:  Ishchining to‘liq ismi va familiyasi ( MyForm1  dagi  textBox2 ). 
Lavozimi:   Ishchining   korxonadagi   yoki   loyihadagi   egallagan   o‘rni   ( MyForm1
dagi  textBox3 ). 
Biriktirilgan   loyiha:   Ishchi   ayni   paytda   qaysi   loyihada   faoliyat   yuritayotganini
ko‘rsatuvchi ma’lumot ( MyForm1  dagi  comboBox2  orqali tanlanadi). 
Ushbu   xususiyatlar   dasturning   MyForm1   oynasida   foydalanuvchi   tomonidan
kiritiladigan   asosiy   ma’lumotlardir.   Ma’lumotlar   kiritilgach,   ular   vaqtinchalik
ravishda shu oynadagi   DataGridView   komponentlarida ( dataGridView1   loyihalar
uchun,  dataGridView2  ishchilar uchun) ko‘rsatiladi. 
Ma’lumotlar oqimi va dasturdagi jarayonlar  
Dastur   bilan   ishlash   jarayonida   ma’lumotlar   quyidagi   mantiqiy   ketma-ketlikda
harakatlanadi: 
Dastlab   foydalanuvchi   asosiy   oynadan   ( MyForm )   kerakli   bo‘limni   tanlaydi.
"Loyihalar   va   ishchilar"   oynasiga   ( MyForm1 )   o‘tgach,   u   yangi   loyiha
ma’lumotlarini  (nomi, sanasi,   holati)   kiritadi   va "Qo‘shish"   tugmasini   bosadi.  Bu
ma’lumotlar  dataGridView1  jadvalida aks etadi va shu bilan birga kiritilgan loyiha
nomi   ishchilarni   loyihaga   biriktirish   uchun   mo‘ljallangan   comboBox2   ro‘yxatiga
ham   qo‘shiladi.   Keyin   foydalanuvchi   yangi   ishchi   ma’lumotlarini   (F.I.O.,
lavozimi)   kiritadi   va   comboBox2   dan   mavjud   loyihalardan   birini   tanlab,
"Qo‘shish"   tugmasini   bosadi.   Bu   ma’lumotlar   dataGridView2   jadvalida
ko‘rsatiladi. 
Asosiy   oynadan   "Hisobot   oynasiga   o‘tish"   tanlanganda   esa   MyForm2   ochiladi.
Hozirgi   dastur   versiyasida ,   bu   oyna   MyForm1   da   kiritilgan   ma’lumotlarni   olib
o‘tmaydi. Buning o‘rniga, oyna yuklanganda o‘zining kodida oldindan belgilangan
10 ta ishchi haqidagi ma’lumotni   dataGridView1   ga yuklaydi. "Saqlash" tugmasi
5  
  bosilganda   esa   aynan   shu   ko‘rsatilayotgan   (oldindan   belgilangan)   ma’lumotlarni
hisobot.csv  fayliga yozadi. 
Ma’lumotlarni   saqlash   va   qayta   ishlash   muammolari   (Joriy   Dastur
Misolida)  
Ushbu   dasturning   eng   muhim   cheklovlaridan   biri   ma’lumotlarning   doimiy
saqlanmasligi   hisoblanadi.   MyForm1   oynasida   foydalanuvchi   tomonidan
kiritilgan   barcha   loyiha   va   ishchi   ma’lumotlari   faqat   dastur   ishlab   turgan   vaqtda,
oynaning  DataGridView  komponentlari xotirasida mavjud bo‘ladi. Oyna yopilishi
yoki dasturdan chiqilishi bilan bu ma’lumotlar  to‘liq yo‘qoladi . Dastur qayta ishga
tushirilganda jadvallar bo‘sh bo‘ladi. 
Shuningdek, hisobot oynasi ( MyForm2 ) va loyihalar/ishchilar oynasi ( MyForm1 )
o‘rtasida   ma’lumot   almashinuvi   yo‘qligi   sababli,   hisobot   real   kiritilgan
ma’lumotlar   asosida   emas,   balki   statik,   kodda   belgilangan   ma’lumotlar   asosida
shakllanadi. Bu dasturning amaliy qo‘llanilishini jiddiy cheklaydi. 
Real   sharoitda   bunday   muammolar   ma’lumotlar   bazasidan   (masalan,   SQL
Server,   SQLite)   yoki   hech   bo‘lmaganda   ma’lumotlarni   fayllarda   (XML,   JSON)
saqlash   va   qayta   yuklash   mexanizmlarini   joriy   etish   orqali   hal   qilinadi.   Joriy
dasturda bu mexanizmlar qo‘llanilmagan. 
Natijaviy ma’lumotlar va hisobot shakli  
Dastur foydalanuvchiga quyidagi natijalarni taqdim eta oladi: 
Loyiha   va   ishchilarning   joriy   ro‘yxati   ( MyForm1 ):   Kiritilgan   loyihalar   va
ishchilar 
ma’lumotlari  MyForm1  oynasidagi   dataGridView1  va  dataGridView2  jadvallarid
a   vaqtinchalik   ko‘rsatiladi.   Ishchi   qo‘shish   paytida   comboBox2   da   mavjud
loyihalar   ro‘yxati   ham   natijaviy   ma’lumot   sifatida   qaralishi   mumkin.   Bu
ma’lumotlar faqat oyna ochiq turganda mavjud. 
Hisobot  fayli  ( MyForm2 ):   MyForm2  oynasidagi  "Saqlash"  tugmasi 
bosilganda,  hisobot.csv  nomli fayl yaratiladi. Bu faylga (hozirgi versiyada oldindan
belgilangan) ishchilarning ismi, kasbi, yoshi va biriktirilgan loyihasi haqidagi 
ma’lumotlar nuqtali vergul bilan ajratilgan holda yoziladi. Faylning birinchi qatori 
6  
  ustun nomlarini o‘z ichiga oladi. Bu faylni keyinchalik elektron jadval dasturlarida 
ochish mumkin. 
Ishlatilgan komponentalar (Dastur Kontekstida)  
Dastur interfeysini  qurish va funksionallikni  ta’minlash uchun quyidagi asosiy
Windows Forms komponentalaridan foydalanilgan: 
Form :   Dasturning   asosiy   oynalari   ( MyForm ,   MyForm1 ,   MyForm2 ).   Har   bir
oyna alohida vazifani bajaradi. 
Label :   Foydalanuvchiga   yo‘naltiruvchi   matnlarni,   sarlavhalarni   va   maydon
nomlarini ko‘rsatish uchun ishlatilgan ( label1 ,  label2 , ...). 
Button :   Foydalanuvchining   ma’lum   bir   harakatini   (masalan,   oynaga   o‘tish,
ma’lumot  qo‘shish, saqlash, chiqish)  amalga oshirish uchun bosiladigan tugmalar
( button1 ,  button2 ,  button3 ). 
TextBox :   Foydalanuvchi   tomonidan   matnli   ma’lumotlarni   (loyiha   nomi,   F.I.O.,
lavozim) kiritish uchun ishlatilgan ( textBox1 ,  textBox2 ,  textBox3 ). 
DateTimePicker :  Sanani  tanlash  uchun  ishlatilgan  komponent 
( dateTimePicker1  loyihaning boshlanish sanasi uchun). 
ComboBox :   Ochiladigan   ro‘yxatdan   qiymat   tanlash   uchun   ishlatilgan
( comboBox1   loyiha   holatini   tanlash   uchun,   comboBox2   ishchini   loyihaga
biriktirish uchun). 
DataGridView :   Ma’lumotlarni   jadval   ko‘rinishida   (qatorlar   va   ustunlar   bilan)
ko‘rsatish   uchun   ishlatilgan   ( dataGridView1   loyihalar   va   hisobot   uchun,
dataGridView2   ishchilar   uchun).   Joriy   dasturda   bu   komponentlar   asosan
ma’lumotlarni ko‘rsatish uchun ishlatilgan. 
PictureBox :   (Agar   MyForm   da   ishlatilgan   bo‘lsa,   kodda   yo‘q   edi,   lekin   rasmda
borga o‘xshaydi)  Rasm  yoki  ikonka ko‘rsatish  uchun ishlatilishi  mumkin bo‘lgan
komponent. 
Ushbu   komponentlar   foydalanuvchiga   ma’lumotlarni   kiritish,   ko‘rish   va   dastur
bilan   ishlash   imkonini   beradi.   Keyingi   rejada   ushbu   komponentlar   bilan   bog‘liq
kodlar va funksionallik batafsil tahlil qilinadi. 
   
7  
  2.   Qurilish   loyihalarini   boshqarish   dastur   ilovasining   grafik   dizaynini   ishlab
chiqish va loyihalash 
Ushbu   kurs   ishimda   yaratilgan   "Qurilish   loyihalarini   boshqarish   va
ishchilarning   faoliyatini   nazorat   qilish"   dasturiy   ilovasining   foydalanuvchi
interfeysi   Microsoft   Visual   Studio   2015   muhitida,   Windows   Forms
texnologiyasi   yordamida   loyihalandi.   Dizaynni   ishlab   chiqishda   foydalanuvchiga
qulaylik,   vazifalarning   mantiqiy   ajratilishi   va   ma’lumotlarni   aniq   ko‘rsatishga
e’tibor qaratildi. Dastur uchta asosiy oynadan (Form) iborat bo‘lib, ular birgalikda
tizimning funksionalligini ta’minlaydi. 
Dastur interfeysining umumiy tuzilishi  
Dastur quyidagi uchta asosiy oynadan tashkil topgan: 
MyForm   (Asosiy   Oyna):   Dastur   ishga   tushganda   birinchi   ochiladigan   oyna
bo‘lib,   asosiy   menyu   vazifasini   bajaradi   va   boshqa   ixtisoslashgan   oynalarga
o‘tishni ta’minlaydi. 
MyForm1   (Loyihalar   va   Ishchilar   Oynasi):   Loyihalar   va   ishchilar   haqidagi
ma’lumotlarni kiritish, ko‘rish va dastlabki boshqarish uchun mo‘ljallangan asosiy
ishchi oyna. 
MyForm2   (Hisobot   Oynasi):   Tizimdagi   ma’lumotlar   asosida   (hozirgi   versiyada
statik ma’lumotlar) hisobotni ko‘rsatish va faylga saqlash uchun ishlatiladi. 
Foydalanuvchi   dastlab   MyForm   oynasidan   kerakli   bo‘limga   ( MyForm1   yoki
MyForm2 )   o‘tadi.   MyForm1   va   MyForm2   oynalaridan   esa   yana   asosiy   oynaga
qaytish yoki  MyForm  orqali dasturdan chiqish mumkin. 
MyForm  (Asosiy Oyna) dizayni va vazifalari  
Asosiy   oyna   sodda   va   tushunarli   dizaynga   ega   bo‘lib,   uning   asosiy   vazifasi
foydalanuvchini kerakli bo‘limga yo‘naltirishdir. 
Oyna dizaynining asosiy elementlari:  
8  
  label1   (Label):   Oynaning   yuqori   markaziy   qismida   joylashgan   "Asosiy   oyna"
sarlavhasi.   Katta   shrift   ( Font :   Microsoft   Sans   Serif,   22pt)   orqali   oynaning
maqsadini aniq ko‘rsatib turadi. 
button1   (Button):   Chap   tomonda   joylashgan,   "Loyihalar   va   ishchilar   oynasiga
o‘tish" yozuvli tugma. Yorqin fon rangi ( BackColor : Aqua) va katta o‘lchami uni
asosiy navigatsiya elementlaridan biri sifatida ajratib turadi. Bu tugma bosilganda
MyForm1  oynasi ochiladi. 
button2   (Button):   O‘ng   tomonda   joylashgan,   "Hisobot   oynasiga   o‘tish"   yozuvli
tugma.   button1   bilan   bir   xil   dizayn   uslubiga   ega   bo‘lib,   MyForm2   oynasiga
o‘tishni ta’minlaydi. 
button3   (Button):   Oynaning   pastki   markaziy   qismida   joylashgan   "Oynani
yopish" tugmasi. Qizil fon rangi  ( BackColor : Red)  uning chiqish yoki  yakunlash
amalini   bildirishini   ta’minlaydi   va   boshqa   tugmalardan   vizual   farqlanadi.   Bu
tugma bosilganda butun dastur yopiladi ( Application::Exit() ). 
Fon:   Oynaning   umumiy   foni   ( BackColor :   LavenderBlush)   yumshoq   va   ko‘zga
yoqimli ko‘rinish beradi. 
Ma’lumotlar   bilan   ishlash:   Ushbu   oyna   faqat   navigatsiya   uchun   xizmat   qiladi.
Unda   ma’lumotlarni   kiritish,   tahrirlash,   o‘chirish   yoki   saqlash   amallari
bajarilmaydi.   Ma’lumot   almashinuvi   faqat   boshqa   oynalarni   chaqirish   orqali
amalga oshiriladi. 
MyForm1  (Loyihalar va Ishchilar Oynasi) dizayni va vazifalari  
Bu   oyna   dasturning   asosiy   ma’lumot   kiritish   va   ko‘rish   markazi   hisoblanadi.
Uning dizayni ikki asosiy bo‘limga – "Loyihalar" va "Ishchilar" ga ajratilgan. 
(Rasm 2.2. Loyihalar va ishchilar oynasi (MyForm1) interfeysi - Bu yerga 
MyForm1 skrinshotini joylashtiring)  
Oyna dizaynining asosiy elementlari:  
Umumiy Sarlavha ( label1 ):   Oynaning yuqori  qismida  joylashgan  "Loyihalar  va
ishchilar oynasi" sarlavhasi oynaning umumiy maqsadini bildiradi. 
"Loyihalar" Bo‘limi (Chap Tomon):  
9  
  label2 : "Loyihalar" sarlavhasi. 
dataGridView1   (DataGridView):   Kiritilgan   loyihalar   ro‘yxatini   ko‘rsatish
uchun mo‘ljallangan jadval. Dastlab bo‘sh bo‘ladi. 
label4 ,  label5 ,  label6  (Labels): Mos ravishda "Loyiha nomi", "Boshlanish 
sanasi",   "Holati"   yorliqlari,   ma’lumot   kiritish   maydonlarini   tavsiflaydi.
textBox1  (TextBox): Loyiha nomini kiritish uchun maydon. 
dateTimePicker1  (DateTimePicker): Loyihaning boshlanish sanasini tanlash
uchun qulay kalendar elementini taqdim etadi. 
comboBox1  (ComboBox):  Loyihaning  holatini  ("Boshlanmagan", 
"Jarayonda" va h.k.) tanlash uchun ochiladigan ro‘yxat. 
button1   (Button): "Qo‘shish" tugmasi. Yashil fon rangi ( BackColor : Lime)
ma’lumot qo‘shish amalini bildiradi. Bosilganda yuqoridagi maydonlardagi
ma’lumotlar  dataGridView1  ga yangi qator sifatida qo‘shiladi. 
"Ishchilar" Bo‘limi (O‘ng Tomon):  
label3 : "Ishchilar" sarlavhasi. 
dataGridView2  (DataGridView): Kiritilgan ishchilar ro‘yxatini ko‘rsatish 
uchun jadval. 
label7 ,  label8 ,  label9  (Labels): Mos ravishda "F.I.O.", "Lavozimi", "Qaysi 
loyihada   ishlayotganini   tanlash"   yorliqlari.   textBox2   (TextBox):
Ishchining F.I.O.sini kiritish uchun maydon.   textBox3   (TextBox):
Ishchining lavozimini kiritish uchun maydon. 
comboBox2   (ComboBox):   Ishchini   biriktirish   uchun   mavjud   loyihalar
ro‘yxatidan   tanlash   imkonini   beradi   (bu   ro‘yxat   "Loyihalar"   bo‘limida
loyiha qo‘shilganda avtomatik to‘ldiriladi). 
button2   (Button):   "Qo‘shish"   tugmasi.   Yashil   rangda,   "Loyihalar"
bo‘limidagi   kabi   ma’lumot   qo‘shish   amalini   bildiradi.   Bosilganda   ishchi
ma’lumotlari  dataGridView2  ga qo‘shiladi. 
Umumiy Tugma:  
button3   (Button):   "Asosiy   oynaga   qaytish"   tugmasi.   Oynaning   pastki   o‘ng
burchagida   joylashgan.   Qizil   fon   rangi   ( BackColor :   Red)   va   oq   matn
( ForeColor :   ButtonHighlight)   bilan   bu   tugma   oynani   yopish   yoki   orqaga
10  
  qaytishni   bildiradi   (kodda   this->Hide()   ishlatilgan,   ya’ni   oyna   yopilmaydi,
yashiriladi). 
Fon:  Oynaning umumiy foni ( BackColor : Silver/Gray) ishchi muhit uchun neytral
ko‘rinish beradi. 
Ma’lumotlar bilan ishlash:  Ushbu oyna  ma’lumotlarni kiritish  (TextBox, 
DateTimePicker,   ComboBox   orqali)   va   vaqtinchalik   ko‘rish   ( DataGridView
orqali) uchun asosiy markaz hisoblanadi.   Ma’lumotlarni tahrirlash va o‘chirish
funksiyalari joriy kodda implementatsiya qilinmagan. 
Ma’lumotlar   faqat   oyna   ochiq   turganda   saqlanadi.   "Loyiha   nomi"   textBox1   dan
comboBox2   ga   uzatiladi.   Boshqa   oynalarga   ma’lumot   uzatilmaydi   (faqat   oyna
yashiriladi). 
MyForm2  (Hisobot Oynasi) dizayni va vazifalari  
Hisobot   oynasi   ( MyForm2 )   ma’lumotlarni   jamlangan   holda   ko‘rsatish   va   faylga
saqlash uchun mo‘ljallangan.  Oyna dizaynining asosiy elementlari:  
label1  (Label):  Oynaning yuqori qismida joylashgan "Hisobot oynasi" sarlavhasi.
dataGridView1   (DataGridView):   Oynaning asosiy qismini egallagan jadval. Bu
yerda   hisobot   ma’lumotlari   (hozirgi   versiyada   -   oldindan   belgilangan   ishchilar
ro‘yxati)   ko‘rsatiladi.   Katta   hajmi   uning   oynadagi   markaziy   rolini   ko‘rsatadi.
Ustunlar   ("Ism",   "Kasb",   "Yosh",   "Olgan   loyihasi")   MyForm2_Load   hodisasida
kod orqali qo‘shiladi. 
button1   (Button):   "Saqlash"   tugmasi.   Sariq   fon   rangi   ( BackColor :   Yellow)   va
katta shrifti bilan asosiy funksional tugma ekanligi ajratib ko‘rsatilgan. Bosilganda
dataGridView1  dagi ma’lumotlar  .csv  fayliga yoziladi. 
button3  (Button):  "Asosiy oynaga qaytish" tugmasi.  MyForm1  dagidek qizil 
rangda, oynani yashirish ( this->Hide() ) vazifasini bajaradi. 
Fon:   Oynaning   foni   ( BackColor :   Aqua)   asosiy   oynadan   va   ma’lumot   kiritish
oynasidan farqli rangda bo‘lib, uni alohida bo‘lim sifatida ajratadi. 
Ma’lumotlar  bilan  ishlash:  Ushbu  oyna  ma’lumotlarni ko‘rsatish  
( DataGridView  orqali,  hozircha  statik)  va  ma’lumotlarni saqlash  
11  
  ("Saqlash" tugmasi orqali  .csv  fayliga) vazifalarini bajaradi. Ma’lumotlarni kiritish 
yoki tahrirlash imkoniyati yo‘q. Oldingi oynalardan ma’lumot qabul qilmaydi. 
 
 
 
Oynalararo interfeys mantiqi va ma’lumot oqimi  
Oynalarni   Ochish:   MyForm   oynasidagi   button1   va   button2   bosilganda   mos
ravishda   MyForm1   va   MyForm2   oynalari   ShowDialog()   metodi   orqali   ochiladi.
ShowDialog()   oynani   modal   rejimda   ochadi,   ya’ni   yangi   oyna   yopilmaguncha
avvalgi oynaga (bu holda  MyForm  ga) qaytib bo‘lmaydi. Bu foydalanuvchini joriy
vazifaga e’tibor qaratishga undaydi. 
Ma’lumot uzatish:  
MyForm  dan boshqa oynalarga hech qanday ma’lumot uzatilmaydi. 
MyForm1  ichida "Loyiha nomi"  textBox1  dan  comboBox2  ga uzatiladi. 
MyForm1   dan   MyForm2   ga   ma’lumot   uzatish   joriy   kodda   mavjud
emas.  Bu tizimning uzilgan joyi hisoblanadi. 
Oynalarni Yopish/Yashirish:  
MyForm   dagi   button3   ( Application::Exit() )   butun   dasturni   yopadi.
MyForm1   va   MyForm2   dagi "Asosiy oynaga qaytish" tugmalari ( button3 )
this->Hide()   metodini   chaqiradi.   Bu   joriy   oynani   yopmaydi,   balki
yashiradi .   Agar   oyna   ShowDialog()   bilan   ochilgan   bo‘lsa,   Hide()   uni
yopadi   va   boshqaruvni   avvalgi   oynaga   qaytaradi.   Agar   Show()   bilan
ochilgan bo‘lsa, oyna shunchaki ko‘rinmay qoladi, lekin xotirada qoladi. 
Umuman   olganda,   dasturning   dizayni   har   bir   oynaning   o‘z   vazifasiga   ega
bo‘lishiga   qaratilgan.   Komponentlar   joylashuvi   va   vizual   ko‘rinishi   (ranglar,
shriftlar) ularning ahamiyati  va funksiyasini  foydalanuvchiga yetkazishga  harakat
qiladi.   Biroq,   ma’lumotlar   oqimi   va   doimiy   saqlash   masalalari   dizayn   va
implementatsiyaning   keyingi   bosqichlarida   hal   qilinishi   kerak   bo‘lgan   asosiy
yo‘nalishlardir. 
 
12  
  3. Ilovaning funksional imkoniyatlarini shakllantirish 
Ma’lumotlarni kiritish mexanizmlari ( MyForm1 )  
Dasturning asosiy ma’lumot kiritish funksionalligi   MyForm1   oynasida jamlangan
bo‘lib,   u   loyihalar   va   ishchilar   haqidagi   ma’lumotlarni   qabul   qilish   uchun
mo‘ljallangan. 
Loyiha ma’lumotlarini kiritish ( MyForm1::button1_Click ):  
Foydalanuvchi  loyiha  nomini  textBox1 ,  boshlanish sanasini 
dateTimePicker1  va holatini  comboBox1  orqali kiritadi/tanlaydi. "Qo‘shish"
( button1 ) tugmasi bosilganda quyidagi hodisa ishlovchisi ishga tushadi: 
private : System::Void  button1_Click (System:: Object ^
sender, System::EventArgs^  e) { 
     // 1. Kiritish maydonlaridan ma’lumotlarni 
olish:  
     String ^ loyihanomi = textBox1->Text; 
     // Sana DateTime obyektidan qisqa formatli 
satrga o‘giriladi:  
     String ^ boshlanishsanasi = dateTimePicker1-
>Value.ToShortDateString();  
     // ComboBox dan tanlangan matn olinadi:  
     String ^ holati = comboBox1->Text;  
 
     // 2. dataGridView1 uchun ustunlarni sozlash 
(agar hali sozlanmagan bo‘lsa):  
     // BU YERDA XATOLIK BO‘LISHI MUMKIN: Ustunlar 
har safar qayta qo‘shilyapti!  
     // Ustunlarni faqat bir marta, masalan, 
Form_Load da qo‘shish kerak.  
    dataGridView1->ColumnCount =  3 ;      
dataGridView1->Columns[ 0 ]->Name =  "Loyiha nomi" ;   
dataGridView1->Columns[ 1 ]->Name =  "Boshlanish 
sanasi" ;     dataGridView1->Columns[ 2 ]->Name = 
"Holati" ; 
 
13  
       // 3. Olingan ma’lumotlar bilan dataGridView1 
ga yangi qator qo‘shish:  
    dataGridView1->Rows->Add(loyihanomi, 
boshlanishsanasi, holati); 
 
     // 4. comboBox2 (Ishchi formasidagi loyiha 
tanlovi) ga yangi loyiha nomini qo‘shish:      
comboBox2->Items->Add(loyihanomi); 
 
     // 5. Kiritish maydonlarini tozalash:      
textBox1->Clear();     comboBox1->SelectedIndex = -
1 ;  // Tanlovni olib tashlash  
  
} 
Tahlil:   Kod   kiritilgan   ma’lumotlarni   olib,   dataGridView1   ga   yangi   qator   sifatida
qo‘shadi. Muhim jihati, har bir yangi loyiha qo‘shilganda uning nomi  comboBox2  ga
ham qo‘shiladi, bu esa keyinchalik ishchini  shu loyihaga biriktirish imkonini beradi.
Kamchilik:   dataGridView1   ning   ustunlari   har   bir   tugma   bosilganda   qayta
yaratilmoqda,   bu   noto‘g‘ri   va   xatoliklarga   olib   kelishi   mumkin.   Ustunlarni   faqat   bir
marta, masalan,  MyForm1_Load  hodisasida yaratish kerak. 
Ishchi Ma’lumotlarini Kiritish ( MyForm1::button2_Click ):  
Foydalanuvchi   ishchining   F.I.O.sini   textBox2 ,   lavozimini   textBox3   ga
kiritadi   va   comboBox2   dan   ishchi   biriktiriladigan   loyihani   tanlaydi.
"Qo‘shish" ( button2 ) tugmasi bosilganda quyidagi kod bajariladi: 
private : System::Void  button2_Click (System:: Object ^
sender, System::EventArgs^  e) { 
     // 1. Kiritish maydonlaridan ma’lumotlarni 
olish:  
     String ^ fio = textBox2->Text; 
     String ^ lavozim = textBox3->Text; 
     String ^ loyiha = comboBox2->Text;  // Tanlangan 
loyiha nomi  
 
     // 2. dataGridView2 uchun ustunlarni sozlash 
(bir xil xatolik ehtimoli):  
     // BU YERDA HAM XATOLIK BO‘LISHI MUMKIN: 
14  
  Ustunlar har safar qayta qo‘shilyapti!      
dataGridView2->ColumnCount =  3 ;     dataGridView2-
>Columns[ 0 ]->Name =  "F.I.O." ;     dataGridView2-
>Columns[ 1 ]->Name =  "Lavozimi" ;     dataGridView2-
>Columns[ 2 ]->Name =  "Loyiha" ; 
 
     // 3. Olingan ma’lumotlar bilan dataGridView2 
ga yangi qator qo‘shish:  
    dataGridView2->Rows->Add(fio, lavozim, loyiha);
 
     // 4. Kiritish maydonlarini tozalash:  
    textBox2->Clear();     textBox3->Clear();     
comboBox2->SelectedIndex = - 1 ;  // Tanlovni olib 
tashlash  
} 
Tahlil:  Bu kod ishchi haqidagi ma’lumotlarni va u biriktirilgan loyiha 
nomini olib,  dataGridView2  ga  yangi  qator  sifatida qo‘shadi.  Kamchilik:
dataGridView2  ustunlari  ham  har  safar  qayta yaratilmoqda. 
Dastlabki Qiymatlarni Yuklash ( MyForm1::MyForm1_Load ):  
MyForm1  oynasi birinchi marta ochilganda  Load  hodisasi ishga tushadi va 
comboBox1  (Loyiha holati) uchun tanlov variantlarini yuklaydi: 
private : System::Void  MyForm1_Load (System:: Object ^ 
sender, System::EventArgs^  e) {     comboBox1-
>Items->Add( "Boshlanmagan" );     comboBox1->Items-
>Add( "Jarayonda" );     comboBox1->Items-
>Add( "Yakunlangan" );     comboBox1->Items-
>Add( "To‘xtatilgan" ); 
} 
Tahlil:  Bu  kod  comboBox1  ga  kerakli  qiymatlarni yuklaydi. 
Taklif:   DataGridView  ustunlarini ham aynan shu  Load  hodisasida bir marta
yaratish kerak. 
Ma’lumotlarni ko‘rsatish mexanizmlari  
Dastur   kiritilgan   va   (hisobot   oynasida)   tayyor   ma’lumotlarni   ko‘rsatish   uchun
asosan  DataGridView  komponentidan foydalanadi. 
15  
  MyForm1  da Ko‘rsatish ( dataGridView1 ,  dataGridView2 ):  
Loyiha yoki ishchi qo‘shilganda, tegishli ma’lumotlar  Rows->Add()  metodi
orqali   dataGridView1   yoki   dataGridView2   ga   yangi   qator   sifatida
qo‘shiladi. 
Cheklov:   Bu   ma’lumotlar   faqat   oyna   ochiq   turganda   ko‘rinadi   va   dastur
yopilganda   yo‘qoladi.   Ma’lumotlarni   tahrirlash   yoki   o‘chirish   funksiyasi
yo‘q.   Ustunlar   har   safar   qayta   yaratilishi   sababli   formatlash   yoki   kenglik
sozlamalari ishlamasligi mumkin. 
MyForm2  da Ko‘rsatish ( dataGridView1 ):  
Hisobot  oynasi  ( MyForm2 )  yuklanganda 
( MyForm2_Load  hodisasida)  dataGridView1  ning ustunlari kod orqali 
yaratiladi ( Columns->Add() ) va keyin 10 ta statik (oldindan belgilangan) 
ishchi ma’lumoti  Rows->Add()  metodi orqali qo‘shiladi: 
private : System::Void  MyForm2_Load (System:: Object ^ 
sender, System::EventArgs^  e) { 
     // 1. Ustunlarni qo‘shish:  
    dataGridView1->Columns->Add( "Ism" ,  "Ism" );     
dataGridView1->Columns->Add( "Kasb" ,  "Kasb" );     
dataGridView1->Columns->Add( "Yosh" ,  "Yosh" );     
dataGridView1->Columns->Add( "Loyiha" ,  "Olgan 
loyihasi" ); 
 
     // 2. Statik ma’lumotlarni qator qilib 
qo‘shish:  
     dataGridView1->Rows->Add( "Abdulloh" ,  "Muandis" ,  "34" , 
"Ko‘p qavatli uy qurilishi" );     dataGridView1->Rows-
>Add( "Murod" ,  "Loyihachi" , 
"29" ,  "Yo‘l qurilishi loyihasi" ); 
    dataGridView1->Rows->Add( "Dilshod" ,  "Elektrik" , 
"31" ,  "Tashqi yoritish tizimi" ); 
    dataGridView1->Rows->Add( "Javlon" ,  "Smeta 
mutaxassisi" ,  "36" ,  "Bino byudjeti hisoboti" );    
dataGridView1->Rows->Add( "Nasiba" , 
16  
  "Boshqaruvchi" ,  "40" ,  "Loyihani umumiy nazorat qilish" );  
  dataGridView1->Rows->Add( "Olim" ,  "Suv tizimi 
injeneri" ,  "33" ,  "Ichimlik suvi tarmog‘i" ); 
    dataGridView1->Rows->Add( "Aziz" ,  "Payvandchi" , 
"28" ,  "Metall konstruksiyalar" ); 
    dataGridView1->Rows->Add( "Nodira" ,  "Arxitektor" , 
"30" ,  "Ofis binosi loyihasi" ); 
    dataGridView1->Rows->Add( "Rustam" ,  "Smeta 
hisobchisi" ,  "35" ,  "Qurilish xarajatlari tahlili" );    
dataGridView1->Rows->Add( "Zarina" ,  "Texnika nazoratchi" , 
"32" ,  "Qurilish sifati monitoringi" ); } 
Tahlil:   Bu oyna faqat tayyor ma’lumotlarni ko‘rsatish uchun xizmat qiladi.
U   MyForm1   da   kiritilgan   real   ma’lumotlarni   aks   ettirmaydi.   Ustunlar   shu
yerda to‘g‘ri, bir marta yaratilmoqda. 
Navigatsiya va oynalar boshqaruvi  
Dastur   oynalari   orasidagi   harakat   va   ularni   yopish/yashirish   quyidagi   tugmalar
orqali amalga oshiriladi: 
MyForm  dan Oynalarga O‘tish ( button1_Click ,  button2_Click ):  
// MyForm::button1_Click  MyForm1^ x = gcnew 
MyForm1 (); x->ShowDialog();  // MyForm1 ni modal 
rejimda ochadi  
 
// MyForm::button2_Click  
MyForm2^ x = gcnew  MyForm2 (); x->ShowDialog();  // 
MyForm2 ni modal rejimda ochadi   Tahlil:  Ikkala tugma ham 
yangi oyna obyektini yaratadi va uni  ShowDialog()  orqali ochadi. Bu 
foydalanuvchi yangi ochilgan oynani yopmaguncha asosiy ( MyForm ) 
oynaga qayta olmasligini anglatadi. 
MyForm1  dan Asosiy Oynaga Qaytish ( button3_Click ):  
private : System::Void  button3_Click (System:: Object ^  
sender, System::EventArgs^  e) {      this ->Hide();  // 
Joriy MyForm1 oynasini yashiradi  
} 
17  
  Tahlil:   Bu   tugma   oynani   yopmaydi,   balki   yashiradi.   ShowDialog()   bilan
ochilgani   uchun,   Hide()   metodi   oynani   yopadi   va   boshqaruvni   MyForm   ga
qaytaradi.   Kiritilgan   ma’lumotlar   yo‘qoladi.   MyForm2   dan   Asosiy   Oynaga
Qaytish ( button3_Click ):  
private : System::Void  button3_Click (System:: Object ^  
sender, System::EventArgs^  e) {      this ->Hide();  // 
Joriy MyForm2 oynasini yashiradi  
} 
Tahlil:   MyForm1  dagi  button3  bilan bir  xil   ishlaydi,   oynani   yopib,
boshqaruvni  MyForm  ga qaytaradi. 
Dasturdan Chiqish ( MyForm::button3_Click ):  
private : System::Void  button3_Click (System:: Object ^  
sender, System::EventArgs^  e) { 
     Application ::Exit();  // Butun dasturni yopadi  
} 
Tahlil:   Bu   tugma   dasturning   barcha   oynalarini   yopib,   uning   ishlashini
to‘xtatadi. 
Ma’lumotlarni saqlash (Hisobot) funksionalligi ( MyForm2 )  
Dasturda  ma’lumotlarni  doimiy  saqlashning  yagona 
implementatsiyasi  MyForm2  dagi "Saqlash" tugmasida amalga oshirilgan. 
Hisobotni CSV ga Saqlash ( MyForm2::button1_Click ):  
private : System::Void  button1_Click (System::Object^  
sender, System::EventArgs^  e) {      // 1. Fayl nomini 
belgilash:  
    String^ faylNomi =  "hisobot.csv" ;      // 2. 
Faylga yozish uchun StreamWriter yaratish:  
    System::IO::StreamWriter^  fayl  =  gcnew 
System::IO::StreamWriter(faylNomi);  
     // 3. Faylning birinchi qatoriga ustun nomlarini 
yozish (nuqtali vergul bilan):      fayl-
>WriteLine( "Ism;Kasb;Yosh;Olgan Loyiha" );       // 4. 
dataGridView1 dagi qatorlarni aylanib chiqish:       for  
( int  i =  0 ; i < dataGridView1->Rows->Count -  1 ; i++) { 
         // 5. Har bir qatordagi katakchalar qiymatini 
olib, ‘;’ bilan ajratib faylga yozish:  
18  
          fayl->WriteLine(             dataGridView1-
>Rows[i]->Cells[ 0 ]->Value + 
";"  +             dataGridView1->Rows[i]->Cells[ 1 ]-
>Value + 
";"  +             dataGridView1->Rows[i]->Cells[ 2 ]-
>Value + 
";"  +             dataGridView1->Rows[i]->Cells[ 3 ]-
>Value 
        ); 
    } 
     // 6. Faylni yopish (bu juda muhim!):  
    fayl->Close();  
     // 7. Foydalanuvchiga xabar berish:  
     MessageBox::Show( "Hisobot saqlandi!" );  
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. Ilovaga ma’lumotlarni kiritish, natijalar olish va testlash 
Ushbu bobda "Qurilish loyihalarini boshqarish va ishchilarning faoliyatini nazorat
qilish"   uchun   yaratilgan   dasturiy   ilovaning   amalda   qanday   ishlatilishi,
foydalanuvchi tomonidan ma’lumotlar kiritilganda qanday natijalar olinishi hamda
19  
  dastur funksionalligini tekshirish maqsadida  o‘tkazilgan test  sinovlari  va ularning
natijalari bayon etiladi. 
Ma’lumot kiritish: yangi loyiha va ishchini qo‘shish  
Dasturning asosiy ma’lumot kiritish imkoniyatlarini sinash uchun quyidagi amallar
ketma-ketligi bajarildi: 
Asosiy   Oynadan   Boshlash:   Dastur   ishga   tushirilgach,   MyForm   oynasidan
"Loyihalar va ishchilar oynasiga o‘tish" ( button1 ) tugmasi bosildi. 
Natijada  MyForm1  oynasi ochildi. 
Yangi   Loyiha   Kiritish:   MyForm1   oynasining   "Loyihalar"   qismida   quyidagi
ma’lumotlar kiritildi: 
Loyiha nomi ( textBox1 ): "Yangi Bog‘cha Binolari" 
Boshlanish   sanasi   ( dateTimePicker1 ):   Joriy   yoki   kelajakdagi   biror   sana
tanlandi (masalan, 01.06.2025). 
Holati ( comboBox1 ): Ro‘yxatdan "Boshlanmagan" tanlandi. 
20  
  So‘ngra "Qo‘shish" ( button1 ) tugmasi bosildi. 
Olingan   Natija  (Loyiha):   "Qo‘shish"   tugmasi   bosilgandan   so‘ng  quyidagi
o‘zgarishlar kuzatildi: 
Chap   tarafdagi   dataGridView1   jadvaliga   yangi   qator   qo‘shilib,   unda
kiritilgan "Yangi Bog‘cha Binolari", tanlangan sana va 
"Boshlanmagan" holati aks etdi. 
O‘ng   tarafdagi   "Ishchilar"   bo‘limida   joylashgan   comboBox2   (Qaysi
loyihada ishlayotganini tanlash) ro‘yxatiga "Yangi Bog‘cha Binolari"
loyihasi nomi qo‘shildi. 
"Loyiha nomi" va "Holati" maydonlari tozalandi. 
Yangi Ishchi Kiritish va Loyihaga Biriktirish:   MyForm1  oynasining "Ishchilar"
qismida quyidagi ma’lumotlar kiritildi: 
F.I.O. ( textBox2 ): "Karimov Karimjon Karimboyevich" 
Lavozimi ( textBox3 ): " Arxitektor yordamchisi" 
Qaysi   loyihada   ishlayotganini   tanlash   ( comboBox2 ):   Ro‘yxatdan   avval
kiritilgan "Yangi Bog‘cha Binolari" tanlandi. So‘ngra "Qo‘shish" ( button2 )
tugmasi bosildi. 
21  
  Olingan   Natija   (Ishchi):   "Qo‘shish"   tugmasi   bosilgandan   so‘ng   quyidagi
o‘zgarish kuzatildi: 
O‘ng   tarafdagi   dataGridView2   jadvaliga   yangi   qator   qo‘shilib,   unda
kiritilgan   F.I.O.,   lavozim   va   tanlangan   loyiha   ("Yangi   Bog‘cha
Binolari") aks etdi. 
"F.I.O.", "Lavozimi" va "Qaysi loyihada..." maydonlari tozalandi. 
Ma’lumot   kiritish   tahlili:   Ushbu   ssenariy   shuni   ko‘rsatdiki,   dastur   yangi   loyiha
va   ishchi   ma’lumotlarini   qabul   qilish,   ularni   vaqtinchalik   jadvallarda   ko‘rsatish
hamda   loyiha   nomini   ishchi   biriktirish   uchun   ro‘yxatga   qo‘shish   funksiyalarini
bajara oladi. Biroq, kiritilgan ma’lumotlar faqat oyna ochiq turganda saqlanadi va
tahrirlash yoki o‘chirish imkoniyati mavjud emas. 
Hisobotni shakllantirish va saqlash  
Dasturning   hisobot   bilan   ishlash   imkoniyatlarini   tekshirish   uchun   quyidagi
qadamlar bajarildi: 
Hisobot   oynasiga   o‘tish:   Asosiy   oyna  ( MyForm )   dan   "Hisobot   oynasiga   o‘tish"
( button2 ) tugmasi bosildi. Natijada  MyForm2  oynasi ochildi. 
22  
  Hisobot   Ma’lumotlarini   Ko‘rish:   Oyna   ochilishi   bilan   dataGridView1   jadvali
avtomatik   tarzda   oldindan   belgilangan   (kodda   qat’iy   yozilgan)   10   ta   ishchi
ma’lumoti bilan to‘ldirildi. 
Olingan   natija   (Hisobot   ko‘rinishi):   dataGridView1   da   "Abdulloh",
"Murod",   "Dilshod"   kabi   ismlar   va   ularga   mos   kasb,   yosh,   loyiha   nomlari
ko‘rsatildi.   Bu   ma’lumotlar   MyForm1   da   kiritilgan   real   ma’lumotlar
emasligi kuzatildi. 
Hisobotni faylga saqlash:  "Saqlash" ( button1 ) tugmasi bosildi. 
Olingan natija (Saqlash):  
Dastur bajarilayotgan papkada  hisobot.csv  nomli fayl paydo bo‘ldi. 
23  
  Ekranda   "Hisobot   saqlandi!"   matnli   xabar   oynasi   ( MessageBox )
chiqdi. 
Yaratilgan   hisobot.csv   fayli   ochib   ko‘rilganda,   uning   ichida
MyForm2   dagi   dataGridView1   da   ko‘rsatilgan   10   ta   statik   ishchi
ma’lumoti nuqtali vergul bilan ajratilgan holda yozilganligi aniqlandi.
 
24  
  Hisobot   tahlili:   Ushbu   ssenariy   dasturning   DataGridView   dagi   ma’lumotlarni
.csv  formatidagi faylga eksport qilish funksiyasi ishlayotganligini ko‘rsatdi. Biroq,
eng   muhim   kamchilik   shundaki,   hisobot   MyForm1   da   kiritilgan   haqiqiy
ma’lumotlar   asosida   emas ,   balki   dastur   kodida   oldindan   belgilangan   statik
ma’lumotlar asosida shakllanmoqda. 
   
25  
  Xulosa 
Ushbu   kurs   ishida   qurilish   sohasidagi   muhim   amaliy   masalalardan   biri   –
loyihalarni   boshqarish   va   ularda   ishtirok   etuvchi   xodimlarning   faoliyatini   dastlabki
hisobga   olish   jarayonlarini   kompyuterlashtirishga   urinish   amalga   oshirildi.
Belgilangan   maqsadga   erishish   uchun   Microsoft   Visual   Studio   2015   dasturlash
muhiti tanlanib,   C++/CLI   tili va   Windows Forms   platformasining imkoniyatlaridan
foydalanildi. 
Bajarilgan  ishning  asosiy  natijasi  sifatida  uchta  oynadan 
( MyForm ,   MyForm1 ,   MyForm2 )   iborat   desktop   dastur   ilovasi   yaratildi.   Asosiy
masala   –   loyiha   va   ishchi   ma’lumotlarini   kiritish,   ularni   vizual   ko‘rsatish   va   sodda
hisobot   shaklini   generatsiya   qilish   –   qisman   hal   etildi.   Dastur   interfeysini
shakllantirishda   Label ,   Button ,   TextBox ,   DateTimePicker ,   ComboBox   va   ayniqsa,
ma’lumotlarni   jadval   ko‘rinishida   aks   ettirish   uchun   DataGridView   kabi   standart
komponentalar  qo‘llanildi. 
Yaratilgan dastur quyidagi  funksional imkoniyatlarni  namoyish etdi: 
• Foydalanuvchi   uchun   alohida   oynalar   orqali   loyiha   (nomi,   sanasi,   holati)   va
ishchi (F.I.O., lavozimi) ma’lumotlarini kiritish. 
• Yangi   loyiha   qo‘shilganda,   uni   ishchi   biriktirish   mumkin   bo‘lgan   loyihalar
ro‘yxatiga ( comboBox2 ) avtomatik tarzda qo‘shish. 
• Kiritilgan ma’lumotlarni  DataGridView  jadvallarida vaqtinchalik ko‘rsatish. 
• Oldindan   belgilangan   (statik)   ma’lumotlar   asosida   .csv   formatidagi   hisobot
faylini generatsiya qilish va saqlash. 
• Oynalar   orasida   modal   rejimda   ( ShowDialog )   navigatsiya   qilish   va   dasturdan
chiqish. 
Biroq,   dasturni   tahlil   qilish   va   testlash   jarayonida   uning   amaliy   qo‘llanilishini
cheklovchi   bir   qator   muhim   kamchiliklar   aniqlandi.   Eng   asosiysi   –
ma’lumotlarning   doimiy   saqlanmasligi ;   MyForm1   da   kiritilgan   barcha   loyiha   va
ishchi   yozuvlari   dastur   yopilishi   bilan   yo‘qoladi.   Shuningdek,   hisobot   oynasi
( MyForm2 )   kiritilgan   real   ma’lumotlar   bilan   bog‘lanmagan   va   faqat   statik
26  
  ma’lumotlarni   ko‘rsatadi   hamda   saqlaydi.   Ma’lumotlarni   tahrirlash   yoki   o‘chirish
imkoniyati ham mavjud emas.  
27  
  Foydalanilgan adabiyotlar 
       1.  Шилдт, Герберт. C++: Базовый курс, 3-е издание. Вильямс , 2010 
       2. Stroustrup, Bjarne. The C++ Programming Language, 4th Edition. 
Addison-Wesley Professional, 2013. 
3.  Прата ,  Стивен .  Язык программирования C++. Лекции и 
упражнения, 6-е издание. Вильямс , 2012 
   4. "Loyiha boshqaruvi: Asoslar va amaliyot" Muallif :  James P. Lewis
        5. "Qurilish Boshqaruvi"    Muallif :  Tomas X. M. (Thomas H. M.)
 
 
 
 
 
 
28