Talabalarni fanlardan berilgan topshiriqlardan olgan baholarini, statistikalarini namoyish etuvchi dasturiy ta’minoti

 “  Talabalarni fanlardan berilgan topshiriqlardan olgan baholarini, statistikalarini
namoyish etuvchi dasturiy ta’minot ”
Mundarija:
Kirish ........................................................................................................................................................ 2
Nazariy qism ............................................................................................................................................ 5
1.1. Vizual dasturlash haqida asosiy tushunchalar. .................................................................................. 5
1.2. Vizual muhit komponentlari ............................................................................................................. 7
Asosiy qism ............................................................................................................................................ 12
2.1. Visual studioda forma yaratish va visual ko’rinishni xosil qilish ...................................................... 12
2.2. Talabalarni fanlardan olgan baholarini kiritish uchun kompanentalar ............................................ 15
2.3. Fanlardan olgan baholaridan talabaning umumiy baholarini hisoblovchi funksiya tuzish. ............. 18
2.4. Funksiyadan qaytgan qiymatni visual ko’rinishda chiqarish va dizayn qismini mukammallashtirish
............................................................................................................................................................... 19
Xulosa .................................................................................................................................................... 22
1 Kirish
Ushbu   kurs   ishida   “ Talabalarni   fanlardan   berilgan   topshiriqlardan   olgan
baholarini,   statistikalarini   namoyish   etuvchi   dasturiy   ta’minot ”   mavzusini   yoritib
berar   ekanmiz   nazariy   qismida   Visual   studio   tarixi,   dinamik   dasturlash   tamoyili
mavzulariga   to’xtalib   ketamiz.   Amaliy   qismida   esa   electron   kutubxonada
muammolar   yechim   topishi,   electron   kutubxona   mavzusini   visual   studio   tilida
ifodalanishi   kabi   misollarni   ishlab   ketamiz.   Xulosa   qismini   hamma   ishlarni
bajarganimizdan   keyin   yozamiz.Inson   va   ma’lumotlarga   ishlov   berish   o’rtasidagi
aloqa kompyuter dasturlari orqali boshqariladi. Markaziy protsessor (CRI) belgilari
to’plami   ikkita   belgigacha   “0”   va   “1”   yoki   “yoqilgan”   va   “o’chirilgan”   bilan
chegeralangan.   Inson   harflardan,   raqamlardan,   tasvirlardan   foydalanadi.   Inson   va
mashina   o’rtasidagi   interfeysni   (muloqotni),   (kodlashtirish)ni   dasturiy   ta’minot
tartibga   solib   turadi.   Bu   vazifadan   tashqari   kompyuter   dasturi   operatsion   tizimi
ko’rinishida   kompyuterni   butun   apparat   qismini   boshqarilishini   tartibga   soladi.
Shunday qilib dasturiy ta’minot ikki qismga bo’linadi: 
 tizimli dastur ko’rinishidagi apparat qismining boshqarilishi   
 muammolarning yechilishiga qaratilgan amaliy dasturlar 
Bu bilan bir qatorda tizimli va amaliy dasturlar ishlab chiqish va kompyuter
xizmatini   yengillashtirish   uchun   bir   qator   dasturlash   tillari   va   qo’llash   servisi
mavjud.
Tizimli   dastur   shu   bilan   birga,   kompyuter   va   unga  tegishli   periferiyalardan
foydalanishga imkon beradi. Tizimli dasturlarga foydalanuvchining ma’lumotlarga
ishlov berish tizimining ishlash tamoyillari bo’yicha keyingi texnik belgilarga ega
bo’lishini   talab   qilmasdan,   masalani   kiritish   va   chiqarish   boshqaruvini
tayyorlaydigan operatsion tizimlarini o’z ichiga oladi.
2 Xizmat   uchun   belgilangan   va   yordamchi   dasturlar   ham   tizimli   dasturlarga
oid bo’lib, masalan formatlash va nusxalashda axborot tashuvchilar bilan muomala
qilish singari operatsion tizimlar bilan munosabatni yengillashtiradi. Windows XP,
Windows   2003   mijozserver   arxitekturali   Novell,   UNIX   va   LINUXning   har   xil
variantlari mashhur operatsiya tizimlaridandir.
Professional   va   kundalik   masalalar   qo’yilishini   hal   qilish   uchun   iqtisodiy,
texnik   va   ilmiy   sohadan     amaliy   dasturlar   foydalaniladi   yoki   ishlab   chiqiladi.
Foydalanuvchilar   va   qo’llanish   miqdoriga  ko’ra   soni   va   ushbu   amaliy  dasturlarni
yana bo’laklarga bo’lib chiqish mumkin.   
Standart   dasturiy   ta’minot   quyidagicha   ko’rinishda   deyarli   har   qanday
masala qo’yilishi uchun amal qiladi, masalan: 
 Matnga ishlov berish (masalan, MS Word) 
 Elektron jadvallar bilan ishlash (masalan, MS Excel) 
 Ma’lumotlar bazalari (masalan, MS Access, Oracle) 
 Grafiklar (masalan, Visio, CorelDraw) 
 Nashriy   tizimlar   (Desktop   Publishing)   (mas.   Adobe   Pagemaker,
QuarkXPress) 
 Loyihalash (masalan, MS Project)
Standart   dasturiy   ta’minot   foydalanuvchilarning   keng   doirasi   talablarini
hisobga   olgan   holda   ishlab   chiqilgan   va   bu   bilan   eng   ko’p   umumiy   vazifalarni
namoyon qilgan bir paytda, soliq idorasi, arxitektorlar, mebel tayyorlovchilar kabi
muayyan   kasbiy   guruhlar   tegishli   talablarga   muvofiqlashtirilgan   tayyor   xizmatlar
ko’lamiga   ega   bo’lgan   amaliy   dasturlarning   tarmoq   paketlari   deb   ataluvchi
dasturlardan foydalanadilar, ya’ni bunday dasturlarga talabgor bo’ladilar.
Agar   xizmatlarning   bunday   o’ziga   xos   tarmoq   ko’lami   alohida   tashkilot
muammolarini   hal   qilish   uchun   baribir   haddan   tashqari   umumiy   bo’lib   chiqsa,
unda   bir   yoki   bir   nechta   tashkilotlar   talablariga   moslashuvchi   alohida   dasturiy
3 ta’minot   ishlab   chiqish   imkoniyatigina   qoladi   xolos.   Bu   yerda   misol   sifatida   bir
yoki   bir   nechta   tashkilotlar   tomonidan   foydalaniladigan   mutlaqo   o’zgacha   ishlab
chiqarish   mashinalarini   boshqarish   uchun   qo’llanuvchi   ishlab   chiqarishni
rejalashtirish tizimini tasavvur qilish mumkin. 
Yuqorida   bayon   qilingan   fikr-mulohazalarga   muvofiq   texnik   yoki   iqtisodiy
sohalaridagi   muammolarni   ma’lumotlarga   ishlov   berish   texnikasi   va
texnalogiyalari   yordamida   yechish   uchun   turlicha   alternativalar   (yondoshuvlar)
mavjud: 
 Mavjud dasturiy ta’minotdan foydalanish yoki uni qo’lga kiritish. 
 Yangi standart, tarmoq yoki alohida dasturiy ta’minotni ishlab chiqish. 
Bu orqali o’z kuchlari bilan yoki ishlab chiqish haqidagi yoki chetdan taklif
qilingan   mutaxassislar   tomonidan   ishlab   chiqish   haqidagi   masalaga   bevosita
bog’liq   bo’lib,   u   har   doim   ham   tashkilotning   ichki   «Nou-Xau»si   tomonidan
aniqlanavermaydi.   AT   tashkilotiga   dasturiy   mahsulot   ishlab   chiqishni   topshirish
foydalimi yoki bunday dasturiy loyihani o’z tashkilotida amalga oshirish foydalimi
degan savolga javob beradi va mohiyatiga ko’ra ishlab chiqarish iqtisodiy tabiatini
namoyon qiladi (xarajatlar, foydalar, tahlil).
4 Nazariy qism
1.1. Vizual dasturlash haqida asosiy tushunchalar.
Microsoft   Visual   Studio   –   Microsoft   mahsuloti   bo’lib,   dasturiy   ta’minot
yaratish   uchun   integrallashgan   muhitni   va   boshqa   instrumentlar   qatorini   taqdim
etadi.   Ushbu   mahsulot   konsolli   ilovalar,   grafik   intefeys   bilan   ishlovchi   ilovalar
yaratish imkoniyatini beradi, Windows Forms texnologiyasi qo’llagan holda web-
saytlar,  web-ilovalar,  web-xizmatlar,  turli  xil  platformalar  kodlarini   boshqaruvchi
Windows,   Windows   Mobile,   Windows   CE,   .NET   Framework,   Xbox,   Windows
Phone, .NET Compact Framework va Silverlightlarni qo’llaydi.
Komponentlari.  Visual Studio quyidagi bitta yoki bir qancha komponentlarni
qo’llaydi:  
 Visual Basic .NET  – u Visual Basic asosida paydo bo’lgan  
 Visual C++  
 Visual C#  
 Visual F#  (Bu Visual Studio 2010 dan boshlab ishlatiladi)
BIRINCHI LOYIHANI YARATISH 
Visual   Studio   2013   muhitida   C++   tili   yordamida   Windows   formalarni
yaratish   haqida   suhbatlashamiz.   Avvalo   shuni   aytishimiz   kerakki,   VS   2012
muhitida mavjud bo’lgan Windows Forms ilovasi yangi muhitdan olib tashlangan.
Yangi   muhitda   bu   ilova   C#   tili   tarkibiga   kiritilgan,   lekin   biz   bu   ishni   C++   bilan
bajarishimiz   kerak.   Ro’yxatda   Windows   Forms   yo’q   bo’lsada,   biz   buni   qanday
yaratishni o’rganamiz.
5 Birinchi loyihani ishga  tushirish:
Файл → Создать → Проект
Пустой проект CLR punkti
Имя   –   qismiga   loyiha   nomi   yoziladi   (masalan   „Loyiha_nomi“);
Расположение   –   qismiga   loyihamiz   saqlanadigan   manzil   ko’rsatiladi.   (Обзор
tugmasi   yordamida)     Решение   –   qismiga,   agar   yangi   loyiha   yaratmoqchi
6 bo’lsangiz   Создать   новое   решение,   agar   eski   loyihangizga   loyiha   qo’shmoqchi
bo’lsangiz   Добавить   в   решение,   agar   oldin   yaratilgan   loyihaning   xossalarini
saqlagan   holda   undan   nusxa   olmoqchi   bo’lsangiz   Создать   в   новом   экземпляре
punktlaridan   birini   tanlashingiz   kerak   bo’ladi.   (Biz   Создать   новое   решение   ni
tanlaymiz.)     Имя   решение   –qismiga   esa   loyihangizning   barcha   fayllari
saqlanadigana   asosiy   katalog   nomini   kiritiladi   (Biz   Asosiy   katalog   deb   nom
beraylik.)  OK tugmasini bosamiz.
1.2. Vizual muhit komponentlari
Ushbu   komponenta   komponentalarning   Стандартные   элементы   управления
bo’limida   joylashgan.   Bu   komponentada   formada   sichqoncha   tugmasi   yordamida
bosiladigan   “tugma”   vazifasini   bajaradi.   Button   komponentasi   bir   qancha
xossalarga ega.
Ma’lumotlarga ishlov berish komponentasi. button komponentasi .
Bu   yerdagi   ko’plab   xossalar   bilan   biz   “Formaning   xossalari”   mavzusida
allaqachon tanishib ulgurdik. 
Bizga tanish bo’lmagan xossalardan ba’zilarini ko’rib chiqamiz: 
Anchor  – komponentaning pozitsiyani mustahkamlashni aniqlaydi. Agar siz
formada shu ko’rinishida shakllantirgan bo’lsangiz, ilovadan foydalanish rejimida
foydalanuvchi   formaning   o’lchamlarini   o’zgartirganda,   komponenta   ham   sizning
formangizda   o’z   pozitsiyasini   o’zgartirgan   holda   paydo   bo’ladi.   Anchor   xossasi
o’zaro AutoSize ta’sirida yuzaga keladi.
AutoEllipsis  – komponentaning o’lchami kichik bo’lib, unga yozilgan matn
esa  uzun  bo’lsa,  u  oxirida  ko’p nuqta  shaklida  komponenta  ustida  paydo bo’ladi.
Mana shu holatlarda (ilovadan foydalanish rejimida) komponenta nomining to’liq
ko’rinishi   haqidagi   ma’lumotni   foydalanuvchi   yetkazish   uchun   ushbu   xossa
7 qo’llaniladi.   Agar   uning   true   va   AutoSize   xossasining   qiymati   false   bo’lsa,   bu
haqida xabar yetkazish mumkin. Buni quyidagi rasmda to’liqroq ko’rish mumkin.
DialogResult  – modal rejimida ochilgan formani yopishni ta’minlash uchun
xizmat   qiladi.   Uning   qiymatlari   berilgan   ro’yxatdan   tanlanadi   (q.   1-bo’lim,
“Formaning metodlari”) 
Dock   – komponentani formaning turli tomonlari bo’yicha, yoki butun sathi
bo’yicha   burchak   yoki   markaz   tarafiga   joylashtirish.   Agar   bunda   boshqa
komponentalar   ham   mavjud   bo’lsa,   u   holda   bu   komponentalar   uning   ustiga
joylashib   qoladi.   Bu   xossaning   qiymatini   tanlash   uchun,   komponenta   belgilanib,
ro’yxatdagi to’g’ri to’rtburchaklardan biri tanlanadi. Agar (none) qiymati tanlansa,
komponenta   qanday   joylashtirilgan   bo’lsa,   shu   holatda   qoladi.   Uning   qiymatlari
natijalarini ko’rishimiz mumkin.
FlatAppearance   –   bu   xossadan   foydalanish   uchun,   FlatStyle   xossasining
qiymatini Flat deb belgilash kerak. Bu xossa o’zining bir qancha ichki xossalar ega
bo’lib, ularning barchasini tugmani bezash uchun ranglar bilan ishlashni anglatadi.
Ular quyidagilar: 
BorderColor – komponentaning chegara rangini aniqlaydi 
BorderSize – komponentaning chegarasi qalinligini aniqlaydi 
MouseDownBackColor   -   komponentaning   sichqoncha   kursori   bosilmagan
holati 
MouseOverBackColor – komponentaning sichqoncha kursori bosilgan holati
ImageAlign   –   joylashtirilgan   rasmning   tugmachaning   qaysi   tarafida
joylashishi   aniqlash   uchun   ishlatiladi.   Keltirilgan   qiymatlar   ro’yxatida   bir   qancha
to’g’ri   to’rtburchak   shakllari   bo’lib,   ular   birini   tanlash   orqali   rasmning   o’rnini
aniqlash mumkin.
Ma’lumotlarga ishlov berish komponentasi. button komponentasi
Ulardan   ko’pchiligi   forma   hodisalari   bilan   analogik   hisoblanadi.   Ulardan
ba’zilarini ko’rib chiqamiz:
Click – Sichqoncha tugmasining bosilish hodisasi
8 Enter   –   tugmaning   kiritish   fokusini   olish,   ya’ni   uni   aktivlashtirish   (uni
bosish
mumkin)
MouseHover – Tugmacha ustida joylashgan sichqoncha kursori holati.
Shuning uchun bu hodisa tugma xossalarini o’zgartiradi. (Ushbu tugmaning
ustiga sichqoncha kursori turganligini bildiradi).
MouseLeave – sichqoncha kursori olinganda yuz beradi.
Ma’lumotlarni   formada tasvirlash  va  kiritish  komponentalari. LABEL
KOMPONENTASI
Label   (Nishon)   komponentasi   ham   Стандартные   элементы   управления
bo’limida   joylashgan.   Bu   komponenta   o’zining   maydonida   matnlar   va   tasvirlar
joylashtirish   imkoniyatini   beradi,   bu   matnni   ilovadan   foydalanish   rejimida
o’zgartirib bo’lmaydi.
9 TEXTBOX XOSSALARI
Ulardan ba’zilarini ko’rib chiqaylik: 
AcceptsReturn   –   <Enter>   tugmasini   bosilishi   natijasida   kopsatrli   rejimda
komponentada   yangi   satrli   qator   hosil   qilish   (true   qiymatini   qabul   qilgan   holda)
yoki formada jimlik bo’yicha tugmani aktivlashtirish (false) vazifasini bajaradi. 
Agar   ushbu   xossa   false   (jimlik   bo’yicha)   qiymatini   qabul   qilsa,   ko’psatrli
rejimda kiritishni tashkil qilish uchun <Ctrl>+<Enter> klavishlar kombinatsiyadan
foydalanishi kerak. 
Agar   forma   uchun   tugmacha   ahamiyatsiz   bo’lsa,   AcceptsReturn
xossasining   qiymatidan   qat’i   nazar,   <Enter>   klavishasi   bosilishi   har   doim   yangi
satrli qator qo’shishni bildiradi. 
Tugmachada   jimlik   bo’yicha   Свойства   oynasida   ko’rsatilmagan
AcceptButton   xossasi o’rnatilgan bo’ladi. Bu xossa tugmacha avtomatik ravishda
<Enter>   tugmasining   ishlashini   ta’minlaydi.   Jimlik   bo’yicha   bu   xossa   mavjud
bo’ladi. Agar bu xossa aniqlanmasa, yuqoridagi qoida amal qiladi:  AcceptsReturn
xossasining   qiymatidan   qat’I   nazar,   <Enter>   klavishasi   bosilishi   har   doim   yangi
satrli qator qo’shishni bildiradi.
AcceptsTab   –   Yuqoridagi   mavzularda   keltirib   o’tilgan   TabIndex   xossasini
eslang. Bunda biz tugmasini bosganimizda birin-ketin komponentalar navbati bilan
10 faollashardi.   Agar   komponentaning   ushbu   xossasiga   False   qiymatini   bersak,
tugmasi   bosilganda   ushbu   jarayon   bajariladi.   Aks   holda   true   qiymatini   qabul
qilganda   ushbu   tugma   bosilganda,   xuddi   matn   muharrirlarida   bo’lgani   kabi   bir
nechta belgili joy tashlaydi (tabulyatsiya vazifasini bajaradi). 
AutoCompleteCustomSource   –   ushbu   komponentaning   vazifasiga
to’xtalishdan   avval   bir   misolni   keltiraylik.   Aytaylik,   siz   Brouzerlardan   birining
manzil qatorida biror saytning manzilini yozmoqchisiz, masalan, ziyonet.uz. Agar
siz   ushbu   saytga   oldin   ham   tashrif   buyurgan   bo’lsangiz   ‘z’   harfini   yozishingiz
bilanoq   pastda   ziyonet.uz   va   boshqa   ‘z’   harfi   bilan   boshlanuvchi   saytlar   ketma-
ketligi hosil bo’ladi. Xo’sh, bu qanday sodir bo’ladi? Aynan mana shu xossa, shu
savolga   javob   beradi   Bu   xossaga   qiymatlar   berishdan   avval,   AutoCompleteMode
va AutoCompleteSource xossalariga qiymat berish lozim. Ulardan birinchisi taklif
turini   aniqlasa,   ikkinchisi   qiymat   turini   aniqlaydi.   Qiymat   turlari:   URL   adreslari,
fayl nomlari, komandalar, kompyuterdagi manzillar. Shuni aytib o’tish kerakki, bu
faqat bir qatorli ma’lumotlar uchun o’rinlidir.
AutoCompleteCustomSource xossasining ishlashi
11 Asosiy qism
2.1. Visual studioda forma yaratish va visual ko’rinishni xosil qilish
Birinchi navbatda windows form yaratib olamiz:
2- qadam:
12 3-qadam:
4-qadam:
13 Endi loyiha uchun form yaratish va uni ishga tushirishni ko’rib o’tamiz:
14 2.2. Talabalarni fanlardan olgan baholarini kiritish uchun kompanentalar
Bunda label, combobox, textbox, button kompanentalaridan foydalandim. 
Dastlab formda fanlarni nomlari bilan labellarni hosil qildim:
Keyin fanlardan baholarni turi bo’yicha labellar hosil qildim:
15 Bu yerda :
OR – oraliq nazorat uchun baho
YK – Yakuniy nazorat uchun baho
UM – Umumiy baho
Keyingi qadam fanlardan baholarni kiritish uchun combobox yaratdim textbox 
yaratmaganligim sababi fandan faqat 0, 3, 4, 5 baho qo’yish mumkinligi.
16 Keyingi qadam UM bahoni default xolatda baholanmaganini bildirish:
Keyingi qadam hisoblash, chiqish, tozalash tugmalarini yaratish:
17 Hisoblash tugmasini vazifasi umumiy bahoni hisoblab UM ga chiqarish:
2.3. Fanlardan olgan baholaridan talabaning umumiy
baholarini hisoblovchi funksiya tuzish.
Tashqi ko’rinishini qilib bo’ldik endi backendga o’tamiz:
Funksiyani yaratamiz:
// Umumiy baho hisoblash uchun funksiya
double   UmumiyBahoHesobla(System::Windows::Forms::ComboBox^
comboBox1,   System::Windows::Forms::ComboBox^   comboBox2,
System::Windows::Forms::Label^ labelResult) {
    int selectedValue1 = System::Convert::ToInt32(Convert::ToString(comboBox1-
>SelectedItem));
18     int selectedValue2 = System::Convert::ToInt32(Convert::ToString(comboBox2-
>SelectedItem));
     double umumiyBaho = static_cast<double>(selectedValue1 + selectedValue2) /
2;
    labelResult->Text = "Umumiy baho : " + Convert::ToString(umumiyBaho);
    return umumiyBaho;
}
2.4. Funksiyadan qaytgan qiymatni visual ko’rinishda chiqarish va dizayn
qismini mukammallashtirish
“hisoblash”  buttoni bosganda ishlaydigan funksiya
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
UmumiyBahoHesobla(comboBox1, comboBox2, label22);
UmumiyBahoHesobla(comboBox3, comboBox4, label25);
UmumiyBahoHesobla(comboBox5, comboBox6, label23);
UmumiyBahoHesobla(comboBox7, comboBox8, label24);
UmumiyBahoHesobla(comboBox9, comboBox10, label26);
}
“tozalash”  buttoni bosganda ishlaydigan funksiya
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^
e) {
19 label22->Text = "xali baholanmadi";
label23->Text = "xali baholanmadi";
label24->Text = "xali baholanmadi";
label25->Text = "xali baholanmadi";
label26->Text = "xali baholanmadi";
}
“yopish”  buttoni bosganda ishlaydigan funksiya
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^
e) {
this->Close();
}
Endi dizayn qismini kampanentalar xususiyatlaridan yanada mukammal qilamiz:
20 21 Xulosa
“ Talabalarni   fanlardan   berilgan   topshiriqlardan   olgan   baholarini,
statistikalarini   namoyish   etuvchi   dasturiy   ta’minot ”   mavzusidagi   kurs   ishini
bajarilgan   ilova   talabalarga   va   o’qituvchi   professorlarga   anchagina   qulaylik
tug’diradi.   Talaba   o’zining   login   paroli   orqali   kirib   baholarini   ko’rishi   va
o’qituvchi   tomonidan   yuklangan   topshiriqlarni   bajarib   yuborishi   mumkin.
O’qituvchi   esa   o’zining   login   paroli   orqali   kirib   talabalarni   baholashi   va
topshiriqlarni yuklashi mumkin bo’ladi.
Bu ilovaning hozirgi versiyasidagi asosiy vazifalaridan biri talabani umumiy
bahosini va yillik ko’rsatkich va statistikasini avtomatik chiqarishidir. Bu ilovaning
yangi versiyalarida yanada qulaylik tug’diruvchi imkoniyatlar yaratib o’tiladi.
22 Foydalanilgan adabiyotlar:
1. “C++ dasturlash tili” – Bjarne Stroustrup, 1985-y.
2. “Effektiv C++” – Skott Meyers, 1992-y;
3. “C va C++ tili” – Sh. A. Nazarov, 2017-y;
4. “Algoritmlash va dasturlash asoslari” – B.J. Bolytayev, A.R. Azamatov, A.D. 
Rahimov, B.A. Azamatov, D.T.   Asrayeva, Sh.Z. Qambaraliyev;
1. “Dasturlash Asoslari” – R.A Ro’ziyev;
23